eoip-clanek-obrazek

Linux: EoIP tunel proti Mikrotik

EoIP tunel je technologie důvěrně známá ze zařízení společnosti Mikrotik, eoip (ethernet over IP) je tunelovácí nešifrovaný protokol postavený na zapouzdření ethernet rámce do standartního GRE protokolu (Geneneric Routing Encapsulation, IP protokol 47, RFC1701).

Mikrotik samotný podporuje pochopitelně i GRE tunel, ovšem můžete být v situaci, kdy bude vyžadováno použití EoIP, EoIP samotný je stavěn primárně pro tunelování L2 provozu (přenáší navíc proti GRE Ethernet hlavičku a MAC adresy), umí fragmentovat, zachová tedy MTU, má relativně nízký overhead (28bytes), vetší režii právě díky dis/assemblování a tím i nižší propustnost, ale hlavně velmi snadnou konfiguraci, proto je oblíben.

Zpět k našemu problému, na jedné straně máme Mikrotik s RouterOS a na druhé straně Linux router (např. Debian).

linux-eoip-mikrotik

Projekt linux-eoip implementoval proprietární řešení EoIP Mikrotik, autorem je Denys Fedoryshchenko , stáhneme zdrojový kód, přeložíme, nainstalujeme, nastavíme. (https://code.google.com/p/linux-eoip, předpokládejme nainstalovaný překladač GCC)

root@raspberrypi:/usr/src# wget https://linux-eoip.googlecode.com/files/linux-eoip-0.5.tgz
root@raspberrypi:/usr/src# tar -xvzf linux-eoip-0.5.tgz
root@raspberrypi:/usr/src# cd linux-eoip-0.5
root@raspberrypi:/usr/src/linux-eoip-0.5# ./configure
root@raspberrypi:/usr/src/linux-eoip-0.5# make
root@raspberrypi:/usr/src/linux-eoip-0.5# make install

Máme nainstalováno, v /usr/local/bin/eoip je samotný démon, k samotnému spuštění je potřeba ještě konfigurační soubor, ukázka a spuštění démona.

root@raspberrypi:~# cat /etc/eoip.cfg 
[zeoip0]
id=50
dst=x.x.x.x
root@raspberrypi:~# /usr/local/bin/eoip /etc/eoip.cfg

Konfigurační soubor je velmi jednoduchý, id je ekvivalent tunnel-id na Mikrotiku, dst je ekvivalent remote-address, tedy vzdálená adresa protějšího routeru, soubor může obsahovat libovolné množství tunelů, konfigurace na Mikrotik routeru najdete v sekci /interface eoip postačí pouze dodržet shodná tunnel-id a vyplniť korektní adresu protějšku.

Po spuštění bude vytvořeno nové rozhraní s názvem uvedeným v eoip.cfg, v našem případě zeoip0, chová se jako konec tunelu, je možné na něj nasadit spojovací ip adresy, použít ho pro routing či dále bridge-ovat, lze ho zmiňovat v iptables apod.

TIP! Šifrování provozu EoIP tunelem lze dosáhnout např. vytvořením PPTP tunelu mezi dvěma routery a EoIP tunel vystavět v rámci PPTP tunelu, přihlédneme-li k menší bezpečnosti  je to jednoduchý způsob, jak výkonově (CPU) tak konfiguračně, na vše ostatní je IPSec, pokud tedy máme dostatečně výkonný router.

Závěrem, pro zvídavé geeky doporučuji udělat si čas prostudovat si zdrojové kódy projektu linux-eoip, jsou velmi jednoduché, přehledné a dají Vám přehled o tom jak vlastně funguje takové zapouzdření, co na to jádro atd., prostě dobré čtení.

A to je vše, děkuji za Váš čas. František Havel