Routing
Azioni da intraprendere per lo smistamento di un pacchetto (datagramma) dal nodo di rete corrente ad un altro nodo di rete generico
Compiuto da IP: Internetworking Protocol
- In cooperazione con altri protocolli di rete: TCP o UDP, ICMP, ARP, RIP o OSPF, ecc.
Due filosofie interoperanti:
- Destination driven routing
- Scelte determinate dall’indirizzo IP del destinatario
- Tradizionale
- Policy driven routing
- Scelte determinate da più fattori, anche indirizzo IP del mittente, porte, metrica, tipi di link, ...
- In generale: Quality of Service
Tabella di Routing
Tabella del kernel con le informazioni necessarie per lo smistamento dei pacchetti
Tutti i nodi hanno una tabella di routing
Esempio di host connesso solo ad un gateway (Linux):
route -een
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp3s0 0 0 0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp3s0 0 0 0
192.168.0.0 0.0.0.0 255.255.0.0 U 600 0 0 wlp3s0 0 0 0
I nodi con multiple connessioni hanno una tabella di routing molto più complessa
Tabella di routing di Linux:
Superreti e Sottoreti
Operazioni Binarie
Data una rete net
di maschera mask
, un indirizzo ind
appartiene a tale rete se:
(ind AND mask) == net
- Un pacchetto in arrivo, che deve essere smistato, non ha maschera
- Si considera a quali delle reti della tabella di routing appartiene
- Se ve ne è più di una viene scelta quella con lunghezza di maschera maggiore
- Viene smistato al gateway corrispondente
La tabella di routing associa reti generiche a gateways.
La maschera è generica. Non implica che esista una rete con quella maschera.
Quando arriva un pacchetto da smistare:
-
Il pacchetto viene smistato al gateway della superrete meno generica disponibile che lo contiene
-
Se vi sono più reti con la stessa genericità viene smistato al gateway della rete con metrica minore
-
Se non vi sono reti a cui il pacchetto appartiene, il pacchetto viene scartato, senza ulteriori azioni
-
La rete 0.0.0.0/0 è la più generica possibile e corrisponde al default
-
Dovrebbe sempre esserci in una tabella di routing
Popolare la Tabella di Routing
Due modi:
- Manualmente
- Per reti semplici
- Configurazione statica e poco flessibile
- Tramite un protocollo di Route Update
- Per reti più complesse
- Dinamicamente
- Necessita installazione e configurazione
- Richiede CPU e RAM
- Sente e si adatta ai cambiamenti di rete
Protocolli Vector Distance
Ogni nodo sa quanti hops mancano a destinazione
- Lo comunica ai nodi vicini
- La metrica di ogni link è 1
Protocolli State Link
Ogni nodo possiede una mappa della rete
- Più o meno completa e aggiornata
- Ogni link ha una metrica diversa
Unreliable, Best Effort
Il routing IP non è formalmente affidabile:
- Non vi è alcuna garanzia che un pacchetto arrivi a destinazione
- Un pacchetto non smistabile è semplicemente scartato
- Anche in altre occasioni un pacchetto può venire scartato:
- Filtraggio pacchetti
- Saturazione del router
- A volte il mittente viene avvertito, altre volte no
- Tocca ai protocolli a più alto livello preoccuparsi della conferma di ricezione o della richiesta di trasmissione
Protocolli ausiliari aiutano IP a mantenere la tabella di routing efficiente:
- ICMP: Internet Control Message Protocol
- Messaggi di servizio sullo stato della rete
- Protocolli vari di Route Update