/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO - en - pl


5.2. Tunelowanie IP w IP

Ten rodzaj tunelowania jest dostępny w Linuksie już od bardzo dawna. Wymaga dwóch modułów kernela: ipip.o oraz new_tunnel.o.

Powiedzmy że masz 3 sieci: Wewnętrzne A i B i pośrednią C (na przykład Internet). Mamy więc sieć A:

network 10.0.1.0
netmask 255.255.255.0
router  10.0.1.1

W sieci C router ma adres 172.16.17.18.

Oraz sieć B:

network 10.0.2.0
netmask 255.255.255.0
router  10.0.2.1

W sieci C router ma adres 172.19.20.21.

Jeśli chodzi o sieć C, zakładamy że przekazuje pakiety od A do B i odwrotnie. Można do tego używać nawet Internetu.

Oto co trzeba zrobić:

Po pierwsze, upewnij się że zainstalowano moduły:

insmod ipip.o
insmod new_tunnel.o

Teraz, na routerze sieci A wykonaj:

ifconfig tunl0 10.0.1.1 pointopoint 172.19.20.21
route add -net 10.0.2.0 netmask 255.255.255.0 dev tunl0

A na routerze sieci B:

ifconfig tunl0 10.0.2.1 pointopoint 172.16.17.18
route add -net 10.0.1.0 netmask 255.255.255.0 dev tunl0

A gdy skończyłeś używać tunelu, wykonaj:

ifconfig tunl0 down

Presto, koniec. Nie możesz jednak przekazywać pakietów rozgłoszeniowych (ang. broadcasts) i ruchu IPv6 przez tunel IP-w-IP. Można tylko łączyć dwie sieci IPv4, które normalnie nie mogłyby ze sobą rozmawiać - to wszystko. Jeśli chodzi o zgodność w dół, kod znalazł się w jądrze w okolicach wersji 1.3 - jest już obecny zatem jakiś czas. Natomiast jeśli chodzi o inne systemy - ten rodzaj tunelowania nie działa z innymi systemami czy routerami - przynajmniej na tyle na ile wiem. Jest bardzo prosty, ale działa. Używaj jeśli musisz, w przeciwnym razie sięgnij po tunele GRE.


/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO