Virtlab:Tunelovací server

Z VirtlabWiki

Přejít na: navigace, hledání

Tunelovací server je démon běžící na zvláštním serveru, jež je součástí Distribuované virtuální laboratoře a jeho úkolem je zajistit propojení (bridge) různých VLAN mezi jednotlivými lokálními virtuálními laboratořemi a také různých VLAN v rámci jednoho ethernetového segmentu.

Obsah

Princip činnosti

Dané ethernetové rozhraní serveru je připojeno trunk linkou k příslušnému přepínači (Cisco 3550) nebo i jinému zařízení, které podporuje standard IEEE 802.1q. Tunelovacímu serveru je nakonfigurována tabulka (tabulka přesměrování), ve které je uvedeno vždy VLAN ID rámce z lokání sítě, nové VLAN ID kam bude rámec poslán a ip adresa vzdáleného (nebo i lokálního) tunelovacího serveru. Tunelovací server přepne rozhraní s trunk linkou do promiskuitního módu, což umožní přijímat veškerý provoz na trunk lince. Následně odchytává VLAN tagované ethernetové rámce a kontroluje, jestli jsou definovány v tabulce přesměrování. Pokud ano, je VLAN ID přečíslováno podle této tabulky a celý rámec je prostřednictvím UDP paketu odeslán na danou ip adresu. Zde jej tunelovací server příjme, vybalí a opět v syrové formě ethernetového rámce a odešle ven trunk linkou. Tímto způsobem dochází k virtuálnímu propojení ethernetu definovaných VLAN a to i vzdáleně (přes Internet), tedy vznikne ethernetový tunel.

Spuštění tunelovacího serveru

tun-server <interface> [-DBGLOGlevel=<level>]

  • interface - například eth0
  • DBGLOGlevel - stejně jako u všech ostatních serverů (od režimu DEBUG až po CRIT - viz. Logování a debugging)

Konfigurace

Démon, který má tunelování na starosti je možno konfigurovat prostřednictvím vzdálené řádkové konzole (CLI). Tato konzole standardně běží na portu 40001. Je tedy možno konfiguraci provést například programem telnet:

telnet tunelserver 40001

Příkazy se do konzole zadávají do jednoho řádku a za vlastním příkazem mohou následovat jeho argumenty. Vše je odděleno jednou mezerou. Příkazy, které můžeme použivat jsou uvedeny v následující tabulce:

Příkazy řádkové konzole
Příkaz Argumenty Popis
exit - Ukončí konzoli
help název příkazu Vypíše obecnou nápovědu, nebo nápovědu k příkazu
show - Vypíše tabulku přesměrování
redir z_VLAN_ID na_VLAN_ID vzdaleny server Přidá přesměrování do tabulky
noredir z_VLAN_ID Vymaže přesměrování z tabulky

Příklad konfigurace je uveden v popisu protokolu Tunelovacího serveru.

Poznámky k provozu

Zprovoznění USB-Ethernet převodníku

Rackovatelný server Abacus má dvě síťové karty, které však používají hardwarovou akceleraci a tím znemožňují přístup k číslu VLAN. Tohle číslo je ale pro tunelovací server nezbytné, proto s těmito kartami nedokáže pracovat.

Náhradní možnost je použít USB-Ethernet převodník (testováno s Edimax EU-4202). Ten se dá v linuxu (Debian s jádrem 2.6.8 a upgradovaný ze Sarge na Etch) velice jednoduše zprovoznit. Stačí příkaz modprobe usbnet. Karta se sice ze začátku "schovává" - tzn. ve vypisu ifconfig nebyla k nalezení, ale okamžiťe po připojení UTP kabelem do sítě se zobrazila jako eth2 a byla schopna práce.

Pro automatické zavádění modulu po startu systému je nutné ještě dopsat do souboru /etc/modules řádek usbnet. Dále jsem do souboru /etc/rc.local dopsal prikaz pro "nahozeni" rozhrani eth2 - ifconfig eth2 up.

Pozor na Spanning-tree

Tunelovací server nedokáže pracovat, pokud "hlavním" switchi (tzn. switch, který je k tun-serveru přímo připojen) není vypnut protokol spanning-tree. Vzorová konfigurace tohoto switche je ulozena v SVN v souboru DISTR/src/spojovac/C3550-permanent.cfg.

Problém s omezením čísel VLAN

Na "hlavním" switchi je dále vhodné vypnout protokol VTP, přesněji řečeno přepnout jej do módu transparent.

SW(config)#vtp mode transparent

V opačném případě nebyly switche schopny pracovat s VLANy s číslem větším než 1001. Buď switch vypsal při nastavování tohoto čísla chybovou hlášku (non-ethernet vlan) nebo jen port zablokoval a LEDka svítila oranžovou barvou. V každém případě port nebyl schopen práce. (Asi daná verze VTP nepodporuje takováto čísla?)

V "ukázkové konfiguraci" v souboru DISTR/src/spojovac/C3550-permanent.cfg je vše dobře.

Osobní nástroje