Seminario OpenStack
Network-as-a-Service:Neutrondi Giuseppe Casale
IL MONDO DI OPENSTACK
MIGRAZIONEPrincipali 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 OVSRappresentazione 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 pairip netns add A
ip link add tapA-root type veth peer
name tapA-ns
ip link set tapA-ns netns Aovs-vsctl add-port br-int tapA-root
• OVS internal interfaceip netns add B
ip link add tapB-int
ip link set tapB-int netns Bovs-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