Forse hai già sentito parlare del termine “wirespeed”. È qualcosa che il reparto marketing ama usare quando si tratta di vendere apparecchiature di rete. Significa che i pacchetti possono essere inoltrati senza alcun ritardo evidente. A proposito, per il resto di questa lezione le parole “multilayer switch” e “router” sono la stessa cosa. Tutto ciò che spiego sugli switch multilayer d’ora in poi si applica anche ai router.Diamo un’occhiata alla differenza tra switch layer 2 e multilayer dal punto di vista dello switch:
Sai che gli switch di livello 2 commutano solo i frame Ethernet all’interno di una VLAN e, se vogliamo, possiamo filtrare il traffico in base al livello 2 (ad esempio con la sicurezza delle porte). Lo switch multilayer può fare lo stesso, ma è anche in grado di instradare tra VLANS e filtrare sul livello 3 o 4 utilizzando gli elenchi di accesso.
L’inoltro sul livello 2 si basa sull’indirizzo MAC di destinazione. Il nostro switch apprende gli indirizzi MAC di origine sui frame in arrivo e crea la tabella degli indirizzi MAC. Ogni volta che un frame Ethernet entra in una delle nostre interfacce, controlleremo la tabella degli indirizzi MAC per trovare l’indirizzo MAC di destinazione e lo invieremo all’interfaccia corretta.
L’inoltro sul livello 3 si basa sull’indirizzo IP di destinazione. L’inoltro si verifica quando lo switch riceve un pacchetto IP in cui l’indirizzo IP di origine si trova in una sottorete diversa dall’indirizzo IP di destinazione.
Quando il nostro switch multistrato riceve un pacchetto IP con il proprio indirizzo MAC come destinazione nell’intestazione Ethernet, ci sono due possibilità :
- Se l’indirizzo IP di destinazione è un indirizzo configurato sullo switch multistrato, il pacchetto IP era destinato a questo switch.
- Se l’indirizzo IP di destinazione è un indirizzo non configurato sullo switch multilayer, allora dobbiamo agire da gateway e “instradare” il pacchetto. Ciò significa che dovremo fare una ricerca nella tabella di instradamento per verificare la corrispondenza più lunga . Inoltre dobbiamo verificare se il pacchetto IP è consentito se hai configurato un ACL.
Ai tempi … la commutazione veniva eseguita alla velocità dell’hardware mentre il routing veniva eseguito nel software . Al giorno d’oggi sia la commutazione che l’instradamento avvengono alla velocità dell’hardware. Nel resto di questa lezione imparerai perché.
Diamo un’occhiata alla differenza tra la gestione di frame Ethernet e pacchetti IP:
La durata di un interruttore di livello 2 è semplice:
- Lo switch verificherà il checksum del frame Ethernet per assicurarsi che non sia danneggiato o alterato.
- Lo switch riceve un frame Ethernet e aggiunge l’indirizzo MAC di origine alla tabella degli indirizzi MAC.
- Lo switch inoltra il frame Ethernet all’interfaccia corretta se conosce l’indirizzo MAC di destinazione. In caso contrario, sarà allagato.
Non v’è alcuna alterazione del frame Ethernet!
Ora vediamo cosa dobbiamo fare quando riceviamo un pacchetto IP su uno switch multistrato:
Nell’esempio sopra H1 sta inviando un pacchetto IP verso H2. Nota che si trovano in sottoreti diverse, quindi dovremo instradarlo. Quando il nostro switch multistrato riceve il pacchetto IP, ecco cosa accadrà :
- Lo switch verificherà il checksum del frame Ethernet per assicurarsi che non sia danneggiato o alterato.
- Lo switch verificherà il checksum del pacchetto IP per assicurarsi che non sia danneggiato o alterato.
Lo switch multistrato controllerà la tabella di instradamento, noterà che 192.168.20.0/24 è connesso direttamente e accadrà quanto segue:
- Controlla la tabella ARP per vedere se c’è una mappatura da 2 a 3 per H2. Se non è presente alcuna mappatura, lo switch multistrato invierà una richiesta ARP.
- L’indirizzo MAC di destinazione cambia da FFF (Multilayer switch Fa0 / 1) a BBB (H2).
- L’indirizzo MAC di origine cambia da AAA (H1) a GGG (interruttore multistrato Fa0 / 2).
- Il campo TTL (time to live) nel pacchetto IP viene ridotto di 1 e per questo motivo il checksum dell’intestazione IP verrà ricalcolato.
- Il checksum del frame Ethernet deve essere ricalcolato.
- Il frame Ethernet che trasporta il pacchetto IP verrà inviato dall’interfaccia verso H2.
Come puoi vedere, ci sono alcuni passaggi coinvolti se vogliamo instradare i pacchetti IP.
Quando guardiamo agli interruttori multistrato c’è una “separazione dei compiti”. Dobbiamo costruire una tabella per gli indirizzi MAC, riempire una tabella di routing, richieste ARP, controllare se un pacchetto IP corrisponde a un elenco di accesso, ecc. E dobbiamo inoltrare i nostri pacchetti IP. Queste attività sono suddivise tra il ” piano di controllo ” e il ” piano dati “. Lascia che ti dia un’illustrazione:
Il piano di controllo è responsabile dello scambio delle informazioni di instradamento utilizzando i protocolli di instradamento, della creazione di una tabella di instradamento e di una tabella ARP. Il piano dati è responsabile dell’effettivo inoltro dei pacchetti IP. La tabella di instradamento non è molto adatta per l’inoltro veloce perché abbiamo a che fare con l’ instradamento ricorsivo . Cos’è il routing ricorsivo? Lasciate che vi faccia un esempio:
Nell’esempio sopra ho tre router. R3 ha un’interfaccia di loopback che vogliamo raggiungere da R1. Userò percorsi statici per la raggiungibilità :
R1(config)#ip route 3.3.3.0 255.255.255.0 192.168.23.3
R1(config)#ip route 192.168.23.0 255.255.255.0 192.168.12.2
Il primo percorso statico è raggiungere l’interfaccia loopback0 di R3 e punta all’interfaccia FastEthernet0 / 0 di R3. La seconda route statica è necessaria per raggiungere la rete 192.168.23.0/24.
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 -IS-IS level-2
ia - IS-IS inter area, * - candidate default, per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
S 3.3.3.0 [1/0] via 192.168.23.3
S 192.168.23.0/24 [1/0] via 192.168.12.2
Ogni volta che R1 vuole raggiungere 3.3.3.0/24 dobbiamo fare 3 ricerche:
- La prima ricerca consiste nel controllare la voce per 3.3.3.0 / 24. È lì e l’indirizzo IP dell’hop successivo è 192.168.23.3
- La seconda ricerca è per 192.168.23.3. C’è una voce e l’indirizzo IP dell’hop successivo è 192.168.12.2.
- La terza e ultima ricerca è per 192.168.12.2. C’è un’entrata ed è collegata direttamente.
R1 deve controllare la tabella di instradamento 3 volte prima di sapere dove inviare il traffico. Non suona molto efficiente, vero? L’esecuzione di più ricerche per raggiungere una determinata rete è chiamata instradamento ricorsivo .
La maggior parte delle volte tutti i pacchetti IP in entrata e in uscita verranno elaborati e inoltrati dal piano dati, ma ci sono alcune eccezioni, prima lascia che ti mostri questa immagine:
La maggior parte dei pacchetti IP può essere inoltrata dal piano dati. Tuttavia ci sono alcuni pacchetti IP “speciali” che non possono essere inoltrati immediatamente dal piano dati e vengono inviati al piano di controllo, ecco alcuni esempi:
- Pacchetti IP destinati a uno degli indirizzi IP dello switch multilayer.
- Instradamento del traffico del protocollo come OSPF, EIGRP o BGP.
- Pacchetti IP che hanno alcune delle opzioni impostate nell’intestazione IP.
- Pacchetti IP con un TTL scaduto.
Il piano di controllo può inoltrare i pacchetti IP in uscita al piano dati o utilizzare il proprio meccanismo di inoltro per determinare l’interfaccia in uscita e l’indirizzo IP dell’hop successivo. Un esempio di ciò è il routing basato sulla politica locale. Se non hai mai sentito parlare di routing basato su policy, non preoccuparti … è coperto da CCNP ROUTE.
Il nostro interruttore multistrato ha molti più passaggi da eseguire rispetto agli interruttori di livello 2, quindi in teoria dovrebbe essere più lento, giusto?
Uno dei motivi per cui gli switch multistrato sono in grado di inoltrare frame e pacchetti alla velocità del filo è dovuto all’hardware speciale chiamato ASIC nel piano dati.
Informazioni come gli indirizzi MAC, la tabella di instradamento o gli elenchi di accesso vengono archiviati in questi ASIC. Le tabelle sono archiviate nella memoria indirizzabile dal contenuto (CAM) e nella memoria indirizzabile del contenuto ternario (TCAM) .
- La tabella CAM viene utilizzata per memorizzare le informazioni di livello 2 come:
- L’indirizzo MAC di origine.
- L’interfaccia su cui abbiamo appreso l’indirizzo MAC.
- A quale VLAN appartiene l’indirizzo MAC.
Le ricerche nelle tabelle sono veloci! Ogni volta che lo switch riceve un frame Ethernet, utilizzerà un algoritmo di hashing per creare una “chiave” per l’indirizzo MAC di destinazione + VLAN e confronterà questo hash con le informazioni già hash nella tabella CAM. In questo modo è in grado di cercare rapidamente le informazioni nella tabella CAM.
- La tabella TCAM viene utilizzata per memorizzare informazioni di “livello superiore” come:
- Elenchi di accesso.
- Informazioni sulla qualità del servizio.
- Tabella di instradamento.
- La tabella TCAM può corrispondere a 3 diversi valori:
- 0 = deve essere 0.
- 1 = deve essere 1.
- X = 0 o 1 entrambi accettabili.
- La corrispondenza più lunga restituirà un successo.
- Utile per una ricerca in cui non è necessaria una corrispondenza esatta. (tabella di instradamento o ACL per esempio).
Poiché ci sono 3 valori, lo chiamiamo ternario .
Allora perché ci sono 2 tipi di tabelle?
Quando cerchiamo un indirizzo MAC, richiediamo sempre una corrispondenza esatta . Abbiamo bisogno dell’indirizzo MAC esatto se vogliamo inoltrare un frame Ethernet. La tabella degli indirizzi MAC è memorizzata in una tabella CAM.
Ogni volta che abbiamo bisogno di abbinare un pacchetto IP alla tabella di instradamento o a un elenco di accesso , non sempre abbiamo bisogno di una corrispondenza esatta . Ad esempio, un pacchetto IP con indirizzo di destinazione 192.168.20.44 corrisponderà a:
- 192.168.20.44 / 32
- 192.168.20.0 / 24
- 192.168.0.0 / 16
Informazioni come la tabella di instradamento vengono memorizzate in una tabella TCAM per questo motivo. Possiamo decidere se tutti o alcuni bit devono corrispondere.
Ecco un esempio di una tabella TCAM:
Se vogliamo far corrispondere l’indirizzo IP 192.168.10.22, lo switch multilayer prima vedrà se c’è una “corrispondenza più specifica”. Non c’è niente che corrisponda a 192.168.10.22 / 32, quindi continueremo se c’è qualcos’altro che corrisponde. In questo caso è presente una voce che corrisponde a 192.168.10.0 / 24. L’esempio sopra si applica alle ricerche nelle tabelle di instradamento, agli elenchi di accesso ma anche alla qualità del servizio, agli elenchi di accesso VLAN e altro ancora.
Ora conosci tutti i passaggi che uno switch multilayer deve compiere quando deve inoltrare i pacchetti ip, il piano di controllo / dati e che utilizziamo diverse tabelle memorizzate in un hardware speciale chiamato ASIC. Diamo uno sguardo più da vicino all’effettivo “inoltro” dei pacchetti IP.
Esistono diversi metodi di commutazione per inoltrare i pacchetti IP. Ecco le diverse opzioni di commutazione:
- Cambio di processo :
- Tutti i pacchetti vengono esaminati dalla CPU e tutte le decisioni di inoltro vengono prese nel software … molto lentamente!
- Cambio rapido (noto anche come memorizzazione nella cache del percorso ):
- Il primo pacchetto in un flusso viene esaminato dalla CPU; la decisione di inoltro viene memorizzata nella cache dell’hardware per i pacchetti successivi nello stesso flusso. Questo è un metodo più veloce.
- (CEF) Cisco Express Forwarding (noto anche come commutazione basata sulla topologia):
- Tabella di inoltro creata in precedenza nell’hardware. Tutti i pacchetti verranno scambiati utilizzando l’hardware. Questo è il metodo più veloce ma ci sono alcune limitazioni. Switch e router multistrato utilizzano CEF.
Quando si utilizza la commutazione del processo, il router rimuoverà l’intestazione per ogni frame Ethernet, cercare l’indirizzo IP di destinazione nella tabella di instradamento per ogni pacchetto IP e quindi inoltrare il frame Ethernet con gli indirizzi MAC riscritti e CRC all’interfaccia in uscita. Tutto viene eseguito nel software, quindi è molto impegnativo per la CPU.