1Cosa definisce una WAN
Le tecnologie WAN definiscono due cose: gli standard fisici di livello 1 e i protocolli data-link di livello 2 che permettono di comunicare su lunghe distanze. Sopra, dal livello 3 in su, non cambia niente: è sempre IP.
Il caso base è: due LAN, un router per ciascuna, e un collegamento WAN in mezzo.
2Linee dedicate
Una leased line consegna bit in entrambe le direzioni a una velocità prestabilita, in full-duplex. Concettualmente si comporta come se ci fosse un cavo crossover tra i due router, solo lungo chilometri.
Essendo un servizio di livello 1, serve un protocollo data-link sopra. I due classici sono HDLC (High-Level Data Link Control) e PPP (Point-to-Point Protocol).
La differenza interessante rispetto a Ethernet: su un collegamento seriale punto-punto l'indirizzo di destinazione nel frame è implicito, perché dall'altra parte c'è un solo dispositivo. Non c'è nessuno da distinguere.
3Ethernet come tecnologia WAN
Per decenni Ethernet è stata solo roba da LAN, per via del limite dei 100 metri sul rame. Con la fibra, che regge collegamenti fino a decine di chilometri, è diventata anche una tecnologia WAN sensata.
Oggi i service provider vendono servizi in fibra che dal punto di vista logico si comportano come un collegamento punto-punto tra due router. Il vantaggio pratico è che il router incapsula i pacchetti con lo stesso header e trailer 802.3 che userebbe in LAN: nessun protocollo nuovo da imparare.
Da ricordare
- La WAN definisce livello 1 e 2. IP sopra resta identico.
- Linea dedicata: full-duplex, velocità fissa, HDLC o PPP.
- Su un link seriale punto-punto l'indirizzo di destinazione è implicito.
- Ethernet WAN usa lo stesso frame 802.3 della LAN.
4La logica dell'host
Un PC che deve mandare un pacchetto fa un ragionamento semplice, in due possibilità:
- Se l'IP di destinazione è nella sua stessa subnet, manda il frame direttamente al destinatario.
- Se non lo è, manda il frame al default gateway e se ne lava le mani. Da lì in poi è problema del router.
Il punto che mi ha aiutato a chiarire le idee: l'host non sceglie un percorso, sceglie solo tra "consegna locale" e "dallo al router".
5La logica del router
Ogni router mantiene una tabella di routing che elenca reti e sottoreti conosciute, con l'interfaccia di uscita e, se serve, l'IP del router successivo (next-hop).
Quando arriva un frame, il router esegue sempre gli stessi quattro passi:
- Controlla l'FCS del frame. Se ci sono errori, lo scarta e finisce qui.
- De-incapsula: butta via header e trailer di livello 2, tiene il pacchetto IP.
- Confronta l'IP di destinazione con la tabella di routing e trova l'interfaccia di uscita.
- Re-incapsula il pacchetto in un nuovo frame, adatto al collegamento di uscita, e lo trasmette.
La conseguenza importante è che gli indirizzi di livello 2 cambiano a ogni salto, mentre gli indirizzi IP sorgente e destinazione restano gli stessi per tutto il viaggio. Il pacchetto è sempre lo stesso, la busta viene rifatta ogni volta.
Da ricordare
- L'host decide solo: stessa subnet o default gateway.
- I quattro passi del router: FCS, de-incapsula, consulta la tabella, re-incapsula.
- Gli IP non cambiano lungo il percorso. I MAC sì, a ogni salto.
6Perché l'indirizzamento aiuta il routing
TCP/IP raggruppa gli indirizzi assegnati alla stessa rete fisica in reti o sottoreti. Il motivo è tenere piccola la tabella di routing: una sola rotta rappresenta un intero gruppo di indirizzi invece di uno per host.
Le due regole di base:
- Due indirizzi non separati da un router devono stare nella stessa subnet.
- Due indirizzi separati da almeno un router devono stare in subnet diverse.
7Protocolli di routing
Perché il routing funzioni, ogni router deve conoscere tutte le destinazioni possibili. Configurarle a mano è impraticabile oltre le reti minuscole, quindi si usa un protocollo di routing come OSPF, con cui i router si scambiano quello che sanno.
Il meccanismo, in tre fasi:
- Ogni router aggiunge alla tabella le sottoreti a cui è direttamente connesso.
- Comunica ai vicini le rotte che conosce.
- Ascolta i vicini, impara le rotte verso destinazioni remote e, quando ne trova più di una, sceglie la migliore.
8DNS, ARP e ping
Tre servizi che stanno intorno al livello di rete e senza cui in pratica non funziona niente.
DNS
Esiste per non farci imparare a memoria gli indirizzi IP. Quando scrivi un nome, il PC manda una query a un server DNS e riceve indietro l'indirizzo a cui mandare i pacchetti. Solo a quel punto la comunicazione vera comincia.
ARP
Serve a colmare il salto tra livello 3 e livello 2. Un dispositivo che deve mandare un pacchetto su un'interfaccia Ethernet conosce l'IP di destinazione, ma per costruire il frame gli serve il MAC.
Manda quindi una ARP Request in broadcast, che equivale a chiedere ad alta voce chi ha quell'indirizzo IP. Il dispositivo interessato risponde con una ARP Reply in unicast contenente il proprio MAC. Il risultato finisce nella ARP cache, così la domanda non va rifatta ogni volta.
Ping
Usa i messaggi ICMP echo request e echo reply. Siccome non si appoggia a nessuna applicazione, se il ping funziona sai che livelli 1, 2 e 3 stanno lavorando. Se non funziona, il problema è lì sotto e non nell'applicazione.
Da ricordare
- DNS: da nome a indirizzo IP.
- ARP: da indirizzo IP a MAC, request in broadcast e reply in unicast.
- Ping usa ICMP e verifica i livelli 1, 2 e 3.
- Una rotta in tabella rappresenta un'intera subnet, non un singolo host.