back

Per visualizzare le singole tabelle:

debian:~# ip route show table ISP1
debian:~# ip route show table ISP2
debian:~# ip route show table main

Per visualizzare le regole di ogni singola tabella:

debian:~# ip rule show | grep ISP1
debian:~# ip rule show | grep ISP2

In questo modo i pacchetti provenienti dalle reti 10.11.11.0/24 e 10.12.12.0/24, saranno "veicolati" dalle regole contenute nella tabella ISP1 e quindi passate al gateway ISP1. Allo stesso modo, i pacchetti provenienti dalle reti 10.22.22.0/24 e 10.33.33.0/24, saranno veicolate dal gateway ISP2.
Tutti quei pacchetti, invece, provenienti da reti non contemplate dalle regole precedenti, saranno veicolati secondo quelle contenute nella main routing table.

Tunneling

Può capitare di avere l'esigenza che due nodi della rete scambino traffico incapsulato con un protocollo differente da IPV4 o che è indirizzato verso una lan privata i cui indirizzi IPV4, ovviamente, non sono validi su internet. In queste situazioni si utilizza una connessione virtuale tra i due nodi chiamata "tunnel". Essi non funzionano quando attraversano il processo di NAT. In più, se c'è un firewall, questo dovrà essere opportunamente configurato per permettere il passaggio di questo particolare tipo di traffico.
Di solito si utilizza il tunnel per collegare due nodi IPV6 separati da una rete IPV4. Tra i due nodi si implementerà un tunnel che incapsulerà ogni pacchetto IPV6 in un pacchetto IPV4 di modo che le due entità possano essere interconnesse.
Creare un tunnel con iproute2 è davvero semplice:

debian:~# ip tunnel add nostrotunnel mode sit local 192.168.0.1 remote 192.168.1.99 dev eth0

Si è creato il tunnel chiamato "nostrotunnel" sull'interfaccia *eth0* avente come ip *192.168.0.1* in cui l'altro estremo si trova all'indirizzo *192.168.1.99*.
Controlliamo la situazione:

debian:~# ip tunnel show
sit0: ipv6/ip  remote any  local any  ttl 64  nopmtudisc
pippo: ipv6/ip  remote 192.168.1.42  local 192.168.0.1  dev eth0  ttl inherit

debian:~# ip link show
1: lo: <loopback,up> mtu 16436 qdisc noqueue
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <broadcast,multicast,up> mtu 1500 qdisc pfifo_fast qlen 100
   link/ether 00:48:54:1b:25:30 brd ff:ff:ff:ff:ff:ff
4: sit0@none: <noarp> mtu 1480 qdisc noop 
   link/sit 0.0.0.0 brd 0.0.0.0
11: pippo@eth0: <pointopoint,noarp> mtu 1480 qdisc noop 
   link/sit 192.168.0.1 peer 192.168.1.42

Da notare che ora l'interfaccia è identificata dal nome pippo@eth0.
Se ci interessa, invece, incanalare traffico IPV4, invece di utilizzare l'opzione *mode sit*, utilizzeremo quella *modegre*:

back