OpenStack Network-as-a-Service - Neutron

30
Seminario OpenStack Network-as-a-Service: Neutron di Giuseppe Casale

Transcript of OpenStack Network-as-a-Service - Neutron

Page 1: OpenStack Network-as-a-Service - Neutron

Seminario OpenStack

Network-as-a-Service:Neutrondi Giuseppe Casale

Page 2: OpenStack Network-as-a-Service - Neutron

IL MONDO DI OPENSTACK

Page 3: OpenStack Network-as-a-Service - Neutron

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;

Page 4: OpenStack Network-as-a-Service - Neutron

INTERAZIONI di NEUTRON CON L’UNIVERSO OPENSTACK

Page 5: OpenStack Network-as-a-Service - Neutron

NEUTRON DAL PUNTO DI VISTA LOGICO…

Page 6: OpenStack Network-as-a-Service - Neutron

…E FISICO

Page 7: OpenStack Network-as-a-Service - Neutron

ARCHITETTURA NEUTRON

Architettura di Riferimento: ML2 plugin; Open vSwitch edges; GRE tunnels transport;

Page 8: OpenStack Network-as-a-Service - Neutron

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:

Page 9: OpenStack Network-as-a-Service - Neutron

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;

Page 10: OpenStack Network-as-a-Service - Neutron

ARCHITETTURA DELL’AGENTE OVSRappresentazione concettuale dell’Agente OVS

- Non mappa i componenti reali / processi.

Page 11: OpenStack Network-as-a-Service - Neutron

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;

Page 12: OpenStack Network-as-a-Service - Neutron

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;

Page 13: OpenStack Network-as-a-Service - Neutron

TUNNEL MESH CON L2-POPULATION

Page 14: OpenStack Network-as-a-Service - Neutron

Wiring & security interfaces

Page 15: OpenStack Network-as-a-Service - Neutron

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;

Page 16: OpenStack Network-as-a-Service - Neutron

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;

Page 17: OpenStack Network-as-a-Service - Neutron

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

Page 18: OpenStack Network-as-a-Service - Neutron

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;

Page 19: OpenStack Network-as-a-Service - Neutron

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;

Page 20: OpenStack Network-as-a-Service - Neutron

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;

Page 21: OpenStack Network-as-a-Service - Neutron

COME FUNZIONA IL DHCP AGENT

Page 22: OpenStack Network-as-a-Service - Neutron

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;

Page 23: OpenStack Network-as-a-Service - Neutron

COME FUNZIONA IL METADATA AGENT

Page 24: OpenStack Network-as-a-Service - Neutron

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;

Page 25: OpenStack Network-as-a-Service - Neutron

LOADBALANCER-AS-A-SERVICE

Page 26: OpenStack Network-as-a-Service - Neutron

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.

Page 27: OpenStack Network-as-a-Service - Neutron

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 !!!

Page 28: OpenStack Network-as-a-Service - Neutron

VPN-AS-A-SERVICE

Page 29: OpenStack Network-as-a-Service - Neutron
Page 30: OpenStack Network-as-a-Service - Neutron

CREDIT

Giuseppe Casale

[email protected]