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:

Tabroute

Superreti e Sottoreti

Supersot

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

Rip

Ogni nodo possiede una mappa della rete

  • Più o meno completa e aggiornata
  • Ogni link ha una metrica diversa

Ospf

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