Seminario OpenStack
Network-as-a-Service:
Neutron
di Giuseppe Casale
IL MONDO DI OPENSTACK
MIGRAZIONE
Principali motivazioni:
Esigenza di «Alleggerire» la funzione di Compute;
Assicurare che gli elementi del piano di controllo possano
continuare a lavorare;
Assicurare che un operatore possa eseguire
aggiornamenti dei singoli componenti;
INTERAZIONI di NEUTRON
CON L’UNIVERSO OPENSTACK
NEUTRON DAL PUNTO DI VISTA LOGICO…
…E FISICO
ARCHITETTURA NEUTRON
Architettura di Riferimento:
 ML2 plugin;
 Open vSwitch edges;
 GRE tunnels transport;
MODULAR LAYER-2 PLUGIN
• Type Drivers: Usato per gestire i Transport Type (es. GRE, VLAN, …);
• Mechanism Drivers: Fornisce funzionalità aggiuntive o Ottimizzazioni (es. L2-Polulation);
 Consente di cambiare la tecnologia di back-end agevolmente;
 Consente di usare un qualcosa di diverso per il Layer-3;
Driver-based Vs. Monolitico;
2 Tipi di Drivers:
RESPONSABILITA’ DELL’AGENTE OVS
• Crea Tunnel Mesh GRE
- Alternativamente VxLAN o No Mesh se le VLAN sono usate come trasport network;
• Popola la MAC Forwarding Table per un veloce Look-up delle istanze (L2-Population);
• Effettua wiring delle VIFs all’appropriata rete virtuale;
• Sicurezza sulle Interfacce Virtuali:
- Regole di base per l’Anti-Spoofing (ARP, MAC, IP);
- Security Groups;
• Gira su ogni Hypervisor;
• Comunica con il server usando RPC attraverso il Bus AMQP;
ARCHITETTURA DELL’AGENTE OVS
Rappresentazione concettuale dell’Agente OVS
- Non mappa i componenti reali / processi.
THE GRE TUNNEL OVELAY MESH
• Una Full Mesh tra Hosts ha complessità di n (n – 1) Tunnels;
• Il Tunnel è una struttura di incapsulamento L2 in L3:
- Permette di destinare il traffico direttamente all’Host di destinazione;
- Consente di ignorare la Struttura sottostante;
• Soffre di Overhead a causa dell’incapsulamento:
- Assenza Hardware TSO (TCP Segmentation Offload), quindi fatta in software;
• Concetti applicabili sia a GRE che VxLAN;
HANDLING BUMS: L2-POPULATION
• BUMs = Broadcast, Unknown Unicast & Multicast
- Serio problema per le grandi reti;
• Conoscenza di Neutron sulla destinazione delle instanze nelle VM
- Pre-Popolazione delle Forwarding Table MAC;
- Riduzione e quindi Ottimizzazione del Carico nei Tunnels GRE e VxLAN;
• Implementazione L2-Population:
- Server side Driver;
- Ogni Host possiede localmente un ARP Responde e una Forwarding Table;
TUNNEL MESH CON L2-POPULATION
Wiring & security interfaces
I SERVIZI DI LAYER-3
Fondamentalmente 3 Servizi:
 East / West Routing: Per la comununicazione tra
diverse reti all’interno della stessa Cloud;
 External Gateway: Per consentire alla VM di
andare su Internet;
 Floating IP: associando ad ogni IP pubblico un IP
privato delle nostre istanze;
NETWORK NAMESPACE
• Copia isolata dello Stack di Networking:
- Clonati dal «Root Namespace»;
- Scope limitato al Namespace;
- Le Veth collegano tra loro i Namespace;
- Possibilità di riutilizzare: Indirizzi IP, Regole IP Table e Routes;
• Gli Agenti: Layer-3, DHCP e Metadata
- Si avvalgono dei Namespace per fornire Router virtuali multipli e indipendenti;
ESEMPIO DEL NETWORK NAMESPACE
• veth pair
ip netns add A
ip link add tapA-root type veth peer
name tapA-ns
ip link set tapA-ns netns A
ovs-vsctl add-port br-int tapA-root
• OVS internal interface
ip netns add B
ip link add tapB-int
ip link set tapB-int netns B
ovs-vsctl add-port br-int tapB-int –
set Interface tapB-int type=internal
RESPONSABILITA’ DEGLI AGENTI LAYER-3
1. Gestire le notifiche dal Server per i cambi di stato dei Router
- Ad esempio: Aggiunta / Rimozione Interfacce, Floating IP;
2. L’Agente interroga il Server per avere i dettagli sullo stato corrente
- L’agente si assicura di avere sempre uno stato coerente col Server;
- Fonde diversi cambiamenti in poco tempo;
3. Applica la configurazione sugli Host
- Aggiunge le interfacce dei Router nel Namespace;
- Imposta le regole SNAT di default per l’External Gateway;
- Riconfigura le regole di NATting per i Floating IPs;
- Applica le extra static route al Network Namespace;
COME LAVORA IL LAYER-3
• Si Opera all’interno del Namespace;
• Ogni Router ha il suo Namespace specifico;
• Interfacce interne per le reti dei Tenant
- Creare interfacce, Configurare IP, ma non fa il
Port Wiring;
• Interfacce Gateway per gli uplink alla rete
esterna;
• Regole IP table all’interno della tabella del NAT
per il default Gateway e Floating IP;
AGENTI DI CONFIGURAZIONE: DHCP
• Riceve notifiche dal Server tramite RCP per:
- Cambi di Stato nelle Subnet;
- Cambia una coppia di indirizzi IP / MAC;
• Gli indirizzi vengono distribuiti con DNSMASQ
- E’ comunque consentito implementare altri driver;
• L’Isolamento è assicurato tramite i Network Namespace
- Overlapping Ips;
COME FUNZIONA IL DHCP AGENT
AGENTI DI CONFIGURAZIONE: METADATA
• Unico Agente che fa un Bridging tra la rete del Tenant e la Management
Network;
• Richieste Proxy al Nova Metadata Server;
• Il Namespace Proxy aquisisce le richieste all’indirizzo 169.254.169.254;
• Il Metadata Agent inoltra le richieste a Nova;
• Due Modi di Funzionamento:
1) Routed Networks: Incluso nel Router Namespace e l’istanza raggiunge
l’indirizzo 169.254.169.254 come route di default;
2) Non-Routed Networks: Proxy in esecuzione nel DHCP Namespace e le route
statiche vengono aggiunte con le DHCP Option X;
COME FUNZIONA IL METADATA AGENT
I SERVIZI AVANZATI
• Migrazione in 4 Repository:
1) Networking di Base L2 / L3;
2) LoadBalancer-as-a-Service;
3) Firewall-as-a-Service;
4) VPN-as-a-Service;
• Vantaggi:
 Maggiore flessibilità di esecuzione dei servizi offerti;
 Rapidi cambi di Iterazione dei Servizi al di fuori del Core di Neutron;
 Riduzione complessità in fase di testing;
 Tutti i cambi avvengono senza modifiche alle Interfacce API o CLI;
LOADBALANCER-AS-A-SERVICE
LBaaS: CARATTERISTICHE
• Metodi per Distribuire il Carico:
1) Round Robin: Ruota le richieste in modo uniforme tra le varie Istanze;
2) IP di Origine: Le richieste da un IP univoco vanno alla stessa Istanza;
3) Minime Connessioni: Alloca le richieste all’Istanza con meno Connessioni Attive;
Caratteristiche:
 Monitor: Stabiliscono se i membri di un Pool possono gestire le richieste
- Metodi di Ping, TCP, http e HTTPS Get;
 Utilizza insieme di Tools per l’Amministrazione Programmatica e Scripts
- Gli Utenti li eseguono attraverso le CLI o la Dashboard;
 Limite di Connessione al Traffico in Ingresso
- Regola il Carico di Lavoro e Mitica il problema del DoS;
 Sessione Persistente
- supporta le decisioni di routing basate su Cookies e l’indirizzo IP di origine.
FIREWALL-AS-A-SERVICE
• Implementazione basata su IP Table;
• Uniche regole di Filtraggio per Tutti i Routers di un Progetto;
• Gestione disponibile direttamente dalla Dashboard di Openstack;
• Tutti i Permessi Negati alla prima attivazione;
• Progetto ancora SPERIMENTALE !!!
VPN-AS-A-SERVICE
CREDIT
Giuseppe Casale
peppecasale@virgilio.it

OpenStack Network-as-a-Service - Neutron

  • 1.
  • 2.
    IL MONDO DIOPENSTACK
  • 3.
    MIGRAZIONE Principali motivazioni: Esigenza di«Alleggerire» la funzione di Compute; Assicurare che gli elementi del piano di controllo possano continuare a lavorare; Assicurare che un operatore possa eseguire aggiornamenti dei singoli componenti;
  • 4.
    INTERAZIONI di NEUTRON CONL’UNIVERSO OPENSTACK
  • 5.
    NEUTRON DAL PUNTODI VISTA LOGICO…
  • 6.
  • 7.
    ARCHITETTURA NEUTRON Architettura diRiferimento:  ML2 plugin;  Open vSwitch edges;  GRE tunnels transport;
  • 8.
    MODULAR LAYER-2 PLUGIN •Type Drivers: Usato per gestire i Transport Type (es. GRE, VLAN, …); • Mechanism Drivers: Fornisce funzionalità aggiuntive o Ottimizzazioni (es. L2-Polulation);  Consente di cambiare la tecnologia di back-end agevolmente;  Consente di usare un qualcosa di diverso per il Layer-3; Driver-based Vs. Monolitico; 2 Tipi di Drivers:
  • 9.
    RESPONSABILITA’ DELL’AGENTE OVS •Crea Tunnel Mesh GRE - Alternativamente VxLAN o No Mesh se le VLAN sono usate come trasport network; • Popola la MAC Forwarding Table per un veloce Look-up delle istanze (L2-Population); • Effettua wiring delle VIFs all’appropriata rete virtuale; • Sicurezza sulle Interfacce Virtuali: - Regole di base per l’Anti-Spoofing (ARP, MAC, IP); - Security Groups; • Gira su ogni Hypervisor; • Comunica con il server usando RPC attraverso il Bus AMQP;
  • 10.
    ARCHITETTURA DELL’AGENTE OVS Rappresentazioneconcettuale dell’Agente OVS - Non mappa i componenti reali / processi.
  • 11.
    THE GRE TUNNELOVELAY MESH • Una Full Mesh tra Hosts ha complessità di n (n – 1) Tunnels; • Il Tunnel è una struttura di incapsulamento L2 in L3: - Permette di destinare il traffico direttamente all’Host di destinazione; - Consente di ignorare la Struttura sottostante; • Soffre di Overhead a causa dell’incapsulamento: - Assenza Hardware TSO (TCP Segmentation Offload), quindi fatta in software; • Concetti applicabili sia a GRE che VxLAN;
  • 12.
    HANDLING BUMS: L2-POPULATION •BUMs = Broadcast, Unknown Unicast & Multicast - Serio problema per le grandi reti; • Conoscenza di Neutron sulla destinazione delle instanze nelle VM - Pre-Popolazione delle Forwarding Table MAC; - Riduzione e quindi Ottimizzazione del Carico nei Tunnels GRE e VxLAN; • Implementazione L2-Population: - Server side Driver; - Ogni Host possiede localmente un ARP Responde e una Forwarding Table;
  • 13.
    TUNNEL MESH CONL2-POPULATION
  • 14.
  • 15.
    I SERVIZI DILAYER-3 Fondamentalmente 3 Servizi:  East / West Routing: Per la comununicazione tra diverse reti all’interno della stessa Cloud;  External Gateway: Per consentire alla VM di andare su Internet;  Floating IP: associando ad ogni IP pubblico un IP privato delle nostre istanze;
  • 16.
    NETWORK NAMESPACE • Copiaisolata dello Stack di Networking: - Clonati dal «Root Namespace»; - Scope limitato al Namespace; - Le Veth collegano tra loro i Namespace; - Possibilità di riutilizzare: Indirizzi IP, Regole IP Table e Routes; • Gli Agenti: Layer-3, DHCP e Metadata - Si avvalgono dei Namespace per fornire Router virtuali multipli e indipendenti;
  • 17.
    ESEMPIO DEL NETWORKNAMESPACE • veth pair ip netns add A ip link add tapA-root type veth peer name tapA-ns ip link set tapA-ns netns A ovs-vsctl add-port br-int tapA-root • OVS internal interface ip netns add B ip link add tapB-int ip link set tapB-int netns B ovs-vsctl add-port br-int tapB-int – set Interface tapB-int type=internal
  • 18.
    RESPONSABILITA’ DEGLI AGENTILAYER-3 1. Gestire le notifiche dal Server per i cambi di stato dei Router - Ad esempio: Aggiunta / Rimozione Interfacce, Floating IP; 2. L’Agente interroga il Server per avere i dettagli sullo stato corrente - L’agente si assicura di avere sempre uno stato coerente col Server; - Fonde diversi cambiamenti in poco tempo; 3. Applica la configurazione sugli Host - Aggiunge le interfacce dei Router nel Namespace; - Imposta le regole SNAT di default per l’External Gateway; - Riconfigura le regole di NATting per i Floating IPs; - Applica le extra static route al Network Namespace;
  • 19.
    COME LAVORA ILLAYER-3 • Si Opera all’interno del Namespace; • Ogni Router ha il suo Namespace specifico; • Interfacce interne per le reti dei Tenant - Creare interfacce, Configurare IP, ma non fa il Port Wiring; • Interfacce Gateway per gli uplink alla rete esterna; • Regole IP table all’interno della tabella del NAT per il default Gateway e Floating IP;
  • 20.
    AGENTI DI CONFIGURAZIONE:DHCP • Riceve notifiche dal Server tramite RCP per: - Cambi di Stato nelle Subnet; - Cambia una coppia di indirizzi IP / MAC; • Gli indirizzi vengono distribuiti con DNSMASQ - E’ comunque consentito implementare altri driver; • L’Isolamento è assicurato tramite i Network Namespace - Overlapping Ips;
  • 21.
    COME FUNZIONA ILDHCP AGENT
  • 22.
    AGENTI DI CONFIGURAZIONE:METADATA • Unico Agente che fa un Bridging tra la rete del Tenant e la Management Network; • Richieste Proxy al Nova Metadata Server; • Il Namespace Proxy aquisisce le richieste all’indirizzo 169.254.169.254; • Il Metadata Agent inoltra le richieste a Nova; • Due Modi di Funzionamento: 1) Routed Networks: Incluso nel Router Namespace e l’istanza raggiunge l’indirizzo 169.254.169.254 come route di default; 2) Non-Routed Networks: Proxy in esecuzione nel DHCP Namespace e le route statiche vengono aggiunte con le DHCP Option X;
  • 23.
    COME FUNZIONA ILMETADATA AGENT
  • 24.
    I SERVIZI AVANZATI •Migrazione in 4 Repository: 1) Networking di Base L2 / L3; 2) LoadBalancer-as-a-Service; 3) Firewall-as-a-Service; 4) VPN-as-a-Service; • Vantaggi:  Maggiore flessibilità di esecuzione dei servizi offerti;  Rapidi cambi di Iterazione dei Servizi al di fuori del Core di Neutron;  Riduzione complessità in fase di testing;  Tutti i cambi avvengono senza modifiche alle Interfacce API o CLI;
  • 25.
  • 26.
    LBaaS: CARATTERISTICHE • Metodiper Distribuire il Carico: 1) Round Robin: Ruota le richieste in modo uniforme tra le varie Istanze; 2) IP di Origine: Le richieste da un IP univoco vanno alla stessa Istanza; 3) Minime Connessioni: Alloca le richieste all’Istanza con meno Connessioni Attive; Caratteristiche:  Monitor: Stabiliscono se i membri di un Pool possono gestire le richieste - Metodi di Ping, TCP, http e HTTPS Get;  Utilizza insieme di Tools per l’Amministrazione Programmatica e Scripts - Gli Utenti li eseguono attraverso le CLI o la Dashboard;  Limite di Connessione al Traffico in Ingresso - Regola il Carico di Lavoro e Mitica il problema del DoS;  Sessione Persistente - supporta le decisioni di routing basate su Cookies e l’indirizzo IP di origine.
  • 27.
    FIREWALL-AS-A-SERVICE • Implementazione basatasu IP Table; • Uniche regole di Filtraggio per Tutti i Routers di un Progetto; • Gestione disponibile direttamente dalla Dashboard di Openstack; • Tutti i Permessi Negati alla prima attivazione; • Progetto ancora SPERIMENTALE !!!
  • 28.
  • 30.