IP forwarding in LINUX

Transcript

IP forwarding in LINUX
IP forwarding in LINUX
Laboratorio di Reti
Ing. Telematica - Università Kore Enna
A.A. 2008/2009
Ing. A. Leonardi
gateway
192.168.10.0
192.168.1.0
•  Il kernel deve essere abilitato all’IP forwarding
•  verifica:
–  sysctl net.ipv4.ip_forward
–  cat /proc/sys/net/ipv4/ip_forward
•  abilitazione:
–  sysctl –w net.ipv4.ip_forward=1
–  echo 1 > /proc/sys/net/ipv4/ip_forward
•  disabilitazione (come prima ma con 0 al posto di 1)
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Tabella di instradamento
•  Serve per sapere come inoltrare i pacchetti
•  Informazioni contenute:
–  indirizzo di destinazione (host o network)
–  netmask (verifica la corrispondenza con la
destinazione)
–  gateway (indica il tipo di consegna da effettuare)
•  nel caso di consegna indiretta indica l’indirizzo del next-hop
–  interfaccia di rete (specifica quale interfaccia di rete
utilizzare)
–  metrica (indica il costo del link)
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Table lookup
•  Per ogni pacchetto la ricerca nella tabella avviene
tramite:
–  indirizzo IP di destinazione del pacchetto
–  indirizzo di destinazione e la netmask specificati in ciascuna
riga
•  Operazioni da effettuare:
–  i controlli vengono effettuati controllando prima la riga che
presenta una netmask con un numero maggiore di 1
•  prima host, poi reti piccole, poi reti grandi
–  operazione AND (bit per bit) tra indirizzo IP di destinazione e la
netmask in ciascuna riga
–  il risultato viene confrontato con la destinazione specificata nella
stessa riga
•  se coincidono, la riga e’ quella giusta
–  una volta trovata la riga, il lookup si ferma e il pacchetto
instradato
–  se nessuna riga corrisponde si usa il default gateway
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Esempio di lookup (1)
Destinazione
Netmask
Etc.
…
…
1
0.0.0.0
0.0.0.0
…
…
…
2
192.168.10.0
255.255.255.0
…
…
…
3
192.168.10.5 255.255.255.255
…
…
…
…
…
…
4
…
…
•  pacchetto con destinazione 192.168.10.5
•  confronto con riga 3, poi 2, poi 1
•  operazione AND (bit a bit)
–  192.168.10.5 AND 255.255.255.255 == 192.168.10.5
–  la riga 3 e’ giusta
•  si ferma alla riga 3  host
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Esempio di lookup (2)
Destinazione
Netmask
Etc.
…
…
1
0.0.0.0
0.0.0.0
…
…
…
2
192.168.10.0
255.255.255.0
…
…
…
3
192.168.10.5 255.255.255.255
…
…
…
…
…
…
4
…
…
•  pacchetto con destinazione 192.168.10.10
•  confronto con riga 3, poi 2, poi 1
•  operazione AND (bit a bit)
–  192.168.10.10 AND 255.255.255.255 == 192.168.10.10
•  la riga 3 non e’ quella giusta, passa alla 2
–  192.168.10.10 AND 255.255.255.0 == 192.168.10.0
•  si ferma alla riga 2  network
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Esempio di lookup (3)
Destinazione
Netmask
Etc.
…
…
1
0.0.0.0
0.0.0.0
…
…
…
2
192.168.10.0
255.255.255.0
…
…
…
3
192.168.10.5 255.255.255.255
…
…
…
…
…
…
4
…
…
•  pacchetto con destinazione 151.97.6.198
•  confronto con riga 3, poi 2, poi 1
•  operazione AND (bit a bit)
–  151.97.6.198 AND 255.255.255.255 == 151.97.6.198
•  la riga 3 non e’ quella giusta, passa alla 2
–  151.97.6.198 AND 255.255.255.0 == 151.97.6.0
•  passa alla riga 1
–  151.97.6.198 AND 0.0.0.0 == 0.0.0.0
•  la riga 1 e’ giusta  default gateway
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Screenshot
•  consegna indiretta tramite il gateway 151.97.6.6
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Modifica tabella di routing
•  aggiungere il default gateway
–  route add default gw <ip_del_gateway>
•  aggiungere una entry (se si omette gw si ha la
consegna diretta)
–  route add –net <dest> netmask <mask> gw
<gateway> dev <interface>
–  route add –host <dest> gw <gateway> dev
<interface>
•  eliminare una entry
–  route del default
–  route del –net <dest> netmask <mask>
–  route del –host <dest>
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009
Esercizio
•  Creare due reti differenti
–  192.168.10.0
–  192.168.1.0
•  Raggiungere un host appartente alla rete
192.168.1.0 da un host appartenente alla
rete 192.168.10.0 tramite un router linux
modificando la tabella di routing
•  Verificare lo scambio di pacchetti (es.
Ping) tramite il tool tcpdump
Ing. A. Leonardi - Laboratorio di Reti A. A. 2008/2009

Documenti analoghi

IP forwarding - DEISNet Reti di Telecomunicazione

IP forwarding - DEISNet Reti di Telecomunicazione • abilitazione/disabilitazione: sysctl –w net.ipv4.conf.eth0.send_redirects=[ 1 | 0 ] echo [ 1 | 0 ] > /proc/sys/net/ipv4/conf/eth0/send_redirects host1

Dettagli

Instradamento IP - Reti di Telecomunicazioni

Instradamento IP - Reti di Telecomunicazioni destinazione del datagramma e la netmask di ciascuna riga – il risultato viene confrontato con la destinazione specificata nella riga stessa: se coincidono, la riga è quella giusta – il controllo v...

Dettagli

Network Tools in Linux

Network Tools in Linux Network Tools in Linux Laboratorio di Reti Ing. Telematica - Università Kore Enna A.A. 2008/2009

Dettagli