Pochi giorni fa Balle Kurt e Cooper Lees mi ha dato accesso ad un ambiente di prova QFabric. Ho sempre voluto sapere cosa stava realmente accadendo dietro le quinte QFabric e il momento in cui Kurt era in grado di vedere alcuni di questi dettagli, ero completamente agganciato.
Breve riassunto: QFabric funziona esattamente come avevo previsto tre mesi prima che l'utente-documentale si rivolta al pubblico (il dietro le quinte vista descritto in questo post del blog è probabilmente ancora difficile da trovare).
Questo post non è affatto una critica di QFabric. Se non altro, io sono contento ci sia ancora un fornitore di rete in grado di creare soluzioni innovative senza lacrime unicorno, basandosi invece su testate sul campo le tecnologie ... che potrebbe, tra le altre cose, rendono la soluzione più stabile.
Sembra come un interruttore gigante
Quando si accede l'indirizzo IP di gestione QFabric (VIP), appare esattamente come un interruttore gigante - singola configurazione, unico insieme di interfacce, comandi show ecc Tutti i componenti familiari di configurazione Junos sono lì: gruppo di sistema, interfacce VLAN e protocolli . L'unico componente veramente nuovo è il tessuto oggetto con il nodo del gruppo definizioni ( più informazioni su gruppi di nodi QFabric ).
Tuttavia, ogni interruttore gigante ha bisogno di risoluzione dei problemi, che normalmente richiede l'accesso ai singoli componenti, nel caso QFabric, la componente richiesta di accesso di comando che svela il mondo davvero interessante dietro la tenda.
ip @ test> Entra componente richiesta? Completamenti possibili: <node-name> nome Inventario per il nodo remoto DRE-0 di diagnostica del motore di routing IC-Left/RE0 Interconnect dispositivo di scheda di controllo IC-Left/RE1 Interconnect dispositivo di scheda di controllo IC-Right/RE0 Interconnect dispositivo di scheda di controllo IC-Right/RE1 Interconnect dispositivo di scheda di controllo FC-0 Tessuto di controllo FC-1 tessuto di controllo FM-0 Fabric Manager NW-NG-0 Nodo gruppo R2-19-Node0 nodo del dispositivo R2-19-nodo 1 nodo del dispositivo R2-7-Node4 nodo del dispositivo R2-7-Node5 nodo del dispositivo R3-12-Node6 nodo del dispositivo R3-12-Node7 nodo del dispositivo R3-19-nodo 2 nodo del dispositivo R3-19-Node3 nodo del dispositivo RSNG01 Nodo gruppo RSNG02 Nodo gruppo
I nomi delle persone fisiche (QF / Nodi, QF / Collegamenti) potrebbe essere o il loro numero di serie (impostazione predefinita) o configurabili dall'utente nomi (consigliato).
Come si può vedere, è possibile accedere ai singoli dispositivi fisici, gruppi di nodi e componenti virtuali come i controlli in tessuto e Fabric Manager. Questi componenti virtuali eseguiti su QF / Amministrazione - caselle di CentOS in esecuzione KVM (è possibile accedere al QF / Direttore shell di Linux e vedere le macchine virtuali con ps-elf).
Ogni QF / Director è in esecuzione una serie di servizi comuni, tra cui database (MySQL), DHCP, FTP, NTP, SSH, GFS, DLM (distribuito gestore di blocco), NFS e server Syslog:
ip @ QFabric> mostra tessuto amministrazione inventario direttore del gruppo di stato Stato gruppo Direttore sab 25 ago 2012 09:52:08 PDT Membri di stato Ruolo Mgmt Indirizzo CPU virtuali di memoria liberare tempo -------------------------------------------------- --------------- DG0 on line maestro xxxxxxxxxxxx 10% 17642780k 4 3 giorni, ore 16:23 DG1 backup online xxxxxxxxxxxx 6% 20509268k 3 3 giorni, ore 16:13 Iscritto ID dispositivo / Stato Alias Ruolo -------------------------------------- DG0 xxxxxxxxxxxxxxxx on line maestro Master Service --------------- Database Server on line Load Balancer Direttore on-line QFabric partizione online Indirizzo Direttore Gruppo Managed Services ------------------------------- Il file condiviso in linea di sistema Network File System on-line Virtual Machine Server on line Load Balancer / DHCP on-line Stato unità rigido ---------------- Volume ID: ottimale 4 Fisica ID: 1 on-line Fisico ID: 0 on-line SCSI ID: 1 100% SCSI ID: 0 100% % Disponibilità Dimensione Usato Usato Montato su ---------------------------- 395g 6.3g 423G 2% / 99M 20M 75M 21% / boot 91 octies 93g 2.0G 3% / pbData Direttore del Gruppo Processi ------------------------ Direttore responsabile del gruppo on-line Partition Manager on-line Mirroring software on-line Shared File System master on line Secure Shell di processo on-line Network File System on-line DHCP Server master on line Master FTP Server on line Syslog on-line Gestione on-line Distributed Trap SNMP in linea Forwarder SNMP di processo on-line Management Platform on-line [... resto soppresso ...]
Ed ecco - è effettivamente in esecuzione BGP interno
Dopo l'accesso in una delle macchine di controllo del tessuto virtuali, è possibile eseguire la mostra tessuto bgp sintesi di comando, che indica chiaramente il controllo piano protocollo di dietro le quinte, è multi-protocollo BGP esegue numerose famiglie di indirizzi.Ogni VM controllo tessuto scorre BGP con tutti i server o nodi di rete (non QF individuale / nodi) e con tutti i QF / Collegamenti.
QFabric-admin @ FC-0> show bgp tessuto Riassunto | no-more Gruppi: 2 Peers: 6 peers di Down: 0 Coetanei non configurati: 5 Tabella Percorsi Tot. Act Percorsi soppresso Stato Damp Storia attesa bgp.l3vpn.0 42 18 0 0 0 0 Peer AS InPkt OutPkt Flaps OUTQ Ultima Up / Stato Dwn | # Attiva / ricevute / Accettato / smorzato ... 128.0.128.4 100 10517 10602 0 0 3d 06:43:58 Establ bgp.l3vpn.0: 17/17/17/0 bgp.rtarget.0: 28/31/31/0 bgp.fabricvpn.0: 28/28/28/0 bgp.bridgevpn.0: 8/8/8/0 default.inet.0: 17/17/17/0 default.fabric.0: 19/19/19/0 128.0.128.8 100 10594 10593 0 0 3d 06:44:06 Establ bgp.l3vpn.0: 0/18/18/0 bgp.rtarget.0: 1/32/32/0 bgp.fabricvpn.0: 0/103/103/0 bgp.bridgevpn.0: 0/9/9/0 default.inet.0: 0/18/18/0 default.fabric.0: 0/91/91/0 128.0.130.4 100 10466 10552 0 0 3d 06:35:42 Establ bgp.rtarget.0: 0/4/4/0 bgp.fabricvpn.0: 34/34/34/0 bgp.bridgevpn.0: 0/0/0/0 default.fabric.0: 34/34/34/0 128.0.130.10 100 9751 9636 0 0 3d 01:04:34 Establ bgp.rtarget.0: 0/4/4/0 bgp.fabricvpn.0: 34/34/34/0 bgp.bridgevpn.0: 0/0/0/0 default.fabric.0: 34/34/34/0 128.0.130.24 100 10432 10547 0 0 3d 06:18:09 Establ bgp.l3vpn.0: 1/7/7/0 bgp.rtarget.0: 0/7/7/0 bgp.fabricvpn.0: 7/7/7/0 bgp.bridgevpn.0: 1/1/1/0 default.inet.0: 1/7/7/0 default.fabric.0: 4/4/4/0 128.0.130.26 100 10410 10545 0 0 3d 06:19:11 Establ bgp.l3vpn.0: 0/0/0/0 bgp.rtarget.0: 0/4/4/0 bgp.fabricvpn.0: 0/0/0/0 bgp.bridgevpn.0: 0/0/0/0
Qualsiasi altro nodo (esempio: QF / Interconnect), ha due sessioni BGP con VM tessuto sia di controllo:
QFabric-admin @ IC-sinistra> show bgp sintesi tessuto Gruppi: 1 Peers: 2 peers di Down: 0 Peer AS InPkt OutPkt Flaps OUTQ Ultima Up / Stato Dwn | # Attiva / ricevute / Accettato / smorzato ... 128.0.128.6 100 9663 9775 0 0 3d 01:16:27 Establ bgp.rtarget.0: 28/32/32/0 bgp.fabricvpn.0: 61/61/61/0 bgp.bridgevpn.0: 0/0/0/0 default.fabric.0: 61/61/61/0 128.0.128.8 100 9667 9773 0 0 3d 01:16:23 Establ bgp.rtarget.0: 0/32/32/0 bgp.fabricvpn.0: 0/61/61/0 bgp.bridgevpn.0: 0/0/0/0 default.fabric.0: 0/61/61/0
Nodi di Edge utilizzare sei MP-BGP famiglie di indirizzi (compresi default.inet.0 e default.fabric.0), QF / Collegamenti hanno solo quattro.
Il tessuto di controllo macchine virtuali agiscono come riflettori rotte BGP ( esattamente come avevo previsto ). Si può facilmente verificare che controllando ogni singola voce BGP su uno dei gruppi di nodi - vedrete il Creatore e Cluster Lista attributi BGP:
65534:1:192.168.13.37 / 32 (2 ingressi, 1 annunciato) * BGP Preferenze: 170/-101 Percorso Distinguisher: 65534:1 Hop successivo Tipo: Indiretta Indirizzo: 0x964f49c Next-hop conteggio di riferimento: 6 Fonte: 128.0.128.6 Hop successivo Tipo: Router, Prossimo Indice hop: 131070 Prossimo hop: 128.0.130.24 via dcfabric.0, selezionati Etichetta operazione: PFE Id 7 Port ID 55 Etichetta TTL azione: PFE Id 7 Port ID 55 Session ID: 0x0 Prossimo hop: 128.0.130.24 via dcfabric.0 Etichetta operazione: PFE Id Id 8 Port 55 Etichetta TTL azione: PFE Id Id 8 Port 55 Session ID: 0x0 Protocollo successivo hop: 128.0.130.24:49160 (NE_PORT) Livello 3 Etichetta tessuto 5 Composito prossimo hop: 964f440 1738 ID sessione INH: 0x0 Indiretto prossimo hop: 92c8d00 131.072 ID sessione INH: 0x0 Stato: <Active Int <esto Locali come: 100 Peer AS: 100 Età: 3d 06:54:40 Metric2: 0 Convalida dello Stato: non verificato Compito: BGP_100.128.0.128.6 33035 Annuncio (1 bit): 0-Risolvere Tree 1 AS percorso: lista Cluster I (Originator): 0.0.0.1 AS percorso: ID Originator: 128.0.130.24 Comunità: target: 65534:117440513 (L3: 1) Importazione Accettato Timestamp: 0x116 Bandiere percorso: arp Tipo di percorso: Host Percorso protocollo: arp L2domain: 5 SNPA contare: 1, lunghezza SNPA: 8 SNPA Tipo: Elemento di rete porta SNPA NE Port ID: 49160 Localpref: 100 Router ID: 128.0.128.6 Tabelle secondarie: default.inet.0 Compositi hop successivi: 1 Protocollo successivo hop: 128.0.130.24:49160 (NE_PORT) Livello 3 Etichetta tessuto 5 Composito prossimo hop: 964f440 1738 ID sessione INH: 0x0 Indiretto prossimo hop: 92c8d00 131.072 ID sessione INH: 0x0 Indiretti luppolo inoltro prossimi percorso: 2 Tipo di salto successivo: Router Prossimo hop: 128.0.130.24 via dcfabric.0 Session ID: 0x0 Prossimo hop: 128.0.130.24 via dcfabric.0 Session ID: 0x0
Indirizzamento
Piano di controllo QFabric utilizza localmente amministrati indirizzi MAC e IP 128.0.0.0/16 blocco di indirizzi. Potete vedere tutti gli indirizzi MAC e IP con la show arp comando eseguito su uno qualsiasi dei componenti interni. Le BME interfacce sono le interfacce di controllo aereo, la vlan interfaccia è un utente-interfaccia fronte SVI.
QFabric-admin @ NW-NG-0> show arp Indirizzo MAC Indirizzo Nome interfaccia Bandiere 00:13: dc: ff: 72:01 10.73.2.9 10.73.2.9 vlan.501 nessuno 02:00:00:00:40:01 128.0.0.1 128.0.0.1 permanente bme0.2 02:00:00:00:40:02 128.0.0.2 128.0.0.2 permanente bme0.2 02:00:00:00:40:05 128.0.0.4 128.0.0.4 permanente bme0.0 02:00:00:00:40:05 128.0.0.5 128.0.0.5 permanente bme0.1 02:00:00:00:40:05 128.0.0.5 128.0.0.5 permanente bme0.2 02:00:00:00:40:05 128.0.0.6 128.0.0.6 permanente bme0.0 02:00:00:00:40:07 128.0.0.7 128.0.0.7 permanente bme0.1 02:00:00:00:40:07 128.0.0.7 128.0.0.7 permanente bme0.2 02:00:00:00:40:08 128.0.0.8 128.0.0.8 permanente bme0.1 02:00:00:00:40:08 128.0.0.8 128.0.0.8 permanente bme0.2 02:00:00:00:40:09 128.0.0.9 128.0.0.9 permanente bme0.1 02:00:00:00:40:09 128.0.0.9 128.0.0.9 permanente bme0.2 [... resto soppresso ...]
Guarda mamma! Ci sono le etichette!
Nel mio post sul blog avevo previsto QFabric usi MPLS internamente. E 'impossibile capire senza uno sniffer di 40 Gbps se pila etichetta MPLS è il formato di incapsulamento esatto QFabric sta usando, ma sembra sicuro come MPLS dall'esterno.
Il dcfabric interfaccia utilizza MPLS come uno dei protocolli:
QFabric-admin @ RSNG01> show interfaces dcfabric.0 Interfaccia logica dcfabric.0 (Indice 64) (SNMP ifIndex 1214251262) Bandiere: SNMP-Traps incapsulamento: ENET2 Pacchetti di ingresso: 0 Pacchetti di uscita: 0 Protocollo inet, MTU: 1558 Bandiere: Is-primaria Protocollo MPLS, MTU: 1546, etichette massimo: 3 Bandiere: Is-primaria Protocollo eth-switch, MTU: 0 Bandiere: Is-primaria
È anche possibile vedere MPLS-come le etichette in numerose voci BGP, ad esempio nelbridgevpn famiglia di indirizzi ...
. 65534:1:5 c8: e2: c3: 01:78:8 f/144 * [BGP/170] 1w3d 15:28:00, localpref 100 AS percorso: I, la convalida dello stato: non verificato 128.0.128.4 per via dcfabric.0, Push 1730, Push 1, Push 55 (in alto) > Per 128.0.128.4 via dcfabric.0, Push 1730, spinta 2, push 55 (in alto) [BGP/170] 1w3d 15:28:00, localpref 100, da 128.0.128.8 AS percorso: I, la convalida dello stato: non verificato 128.0.128.4 per via dcfabric.0, Push 1730, Push 1, Push 55 (in alto) > Per 128.0.128.4 via dcfabric.0, Push 1730, spinta 2, push 55 (in alto)
La stessa serie di tre etichette appare in una route di host che punta a un host collegato ad un altro QF / Node:
65534:1:10.73.2.9 / 32 * [BGP/170] 3d 12:32:09, localpref 100 AS percorso: I, la convalida dello stato: non verificato > Per 128.0.128.4 via dcfabric.0, Push 5, Push 1, Push 23 (in alto) [BGP/170] 3d 12:32:09, localpref 100, da 128.0.128.8 AS percorso: I, la convalida dello stato: non verificato > Per 128.0.128.4 via dcfabric.0, Push 5, Push 1, Push 23 (in alto)
Prefissi IP collegati direttamente alla QFabric avere una sola etichetta - probabilmente un puntatore ad una voce di tabella di inoltro IP.
65534:1:10.73.2.0 / 29 * [BGP/170] 3d 12:31:59, localpref 101, da 128.0.128.4 AS percorso: I, la convalida dello stato: non verificato > Per 128.0.128.4:129 (NE_PORT), Layer 3 Etichetta tessuto 5 [BGP/170] 3d 12:31:59, localpref 101, da 128.0.128.8 AS percorso: I, la convalida dello stato: non verificato > Per 128.0.128.4:129 (NE_PORT), Layer 3 Etichetta tessuto 5
D'altra parte, il routing MPLS e tabelle di inoltro sono vuote, indicando che questo non è molto probabilmente il MPLS siamo abituati.
Riassunto
Dietro le quinte, piste QFabric come ogni ben progettata rete del provider: un cluster di server centrali fornisce servizi comuni (tra cui DHCP, NFS, FTP, NTP e Syslog), BGP viene utilizzato nel piano di controllo per distribuire i prefissi dei clienti (indirizzi IP , host / ARP itinerari, indirizzi MAC) e MPLS-come incapsulamento in grado di allegare una etichetta stack ad un telaio L2 o L3 datagramma viene utilizzato nel piano di inoltro.
La vera magia del QFabric è la VM CLI, che presenta l'interno IP MPLS + simile a rete come un singolo switch, senza OpenFlow o SDN magia. Non sarebbe bello avere qualcosa di simile nelle reti del prestatore?