IPIP Tunely - HOWTO
Zde jest ku všeobecnému prospěchu návod kterak tunel mezi dvěma sítěmi vykopati. Po zjištění, že různé návody na vebu stejně nejsou správně, bylo při akci v Lužánkách různým experimentováním, uspěšně prokopáno spojení mezi AP Šlapanice (Tydýt) a AP Jiráskova (Petr Švestka). Zde začíná kýžený script z pohledu AP jiráskova:#! /bin/bash # Tydyt REMOTE_PUBLIC_IP=212.96.177.38 REMOTE_PRIVATE_IP=10.128.9.1 REMOTE_NET=10.128.9.0 REMOTE_MASK=255.255.255.0 # Petr LOCAL_PUBLIC_IP=194.149.102.98 LOCAL_PRIVATE_IP=10.128.33.1 LOCAL_NET=10.128.33.0 LOCAL_MASK=255.255.255.0 /sbin/iptunnel add tunl1 mode ipip remote $REMOTE_PUBLIC_IP /sbin/ifconfig tunl1 $LOCAL_PRIVATE_IP pointopoint $REMOTE_PRIVATE_IP /sbin/route add -net $REMOTE_NET netmask $REMOTE_MASK gw $REMOTE_PRIVATE_IP
Název interface (zde tunl1) může být prakticky cokoliv kromě tunl0. Vhodné je použít názvy jako: tun-tydyt, tunl-9, ipip-128-9, ze kterých je na první pohled patrné kam vedou. Na opačné straně tunelu bude stejný skript, jen hodnoty konstant REMOTE_ se prohodí s hodnotami konstant LOCAL_. $LOCAL_PRIVATE_IP a $REMOTE_PRIVATE_IP jsou IP adresy již přiřazené některému jinému rozhrani (eth0, wlan0) internetové gw. Aby ste mohli tunel vykopat potřebujete modul ipip.o.
Zavřít tunel můžete následujícím skriptem:
#! /bin/bash /sbin/ifconfig tunl1 down /sbin/iptunnel del tunl1
Tunel typu IPIP nemá žádné zabezpečení, ale je nejjednodušší a má nejmenší režii. Trochu univerzálnější je tunel GRE, který ale má i vyšší režii. Na postavení GRE tunelu by mělo stačit v příkazu iptunnel zaměnit ipip s gre.
Při natažení modulu ipip.o (ip_gre.o) vznikne interface tunl0 (gre0) jemuž nejdou změnit parametry. Předpokládám, že by mohl být použitelný k přijímání tunelovaných paketů odkudkoliv, což by šlo využít pro výběr internetové gw, ale to jsou jen takové moje fantazie.
Možnost přidat tunelovací interface do bridge jsme nezkoušeli, rádi se dozvíme jestli se to někomu povedlo.
Quagga a IPIP tunely
IPIP pakety (obalovací) mají standardně stejné TTL jako pakety tunelované (obalené). To je fajn pro normální provoz, ale spolehlivě to likviduje Quaggu. Packety Quaggy maji TTL=1, a tím pádem tunel skončí na prvním hopu... Aby se tomu zabránilo, musíme nastavit ručně TTL na hodnotu vyšší než je počet hopů na trase tunelu.IPIP tunely v Debianu
Komu se nechce psát vlastní skripty může zadat následující kus kódu do /etc/network/interfaces:iface tunl1 inet static pre-up /sbin/ip tu add tunl1 mode ipip remote 212.96.177.38 ttl 30 post-down /sbin/ip tu del tunl1 address 10.128.9.238 netmask 255.255.255.255 pointopoint 10.128.9.237