Virtlab:Tunelovací server
Z VirtlabWiki
Verze z 19:26, 18. 10. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Aktuální verze Kuc274 (Diskuse | příspěvky) (→Konfigurace) |
||
Řádka 3: | Řádka 3: | ||
== Princip činnosti == | == 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''. | 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 == | == Konfigurace == | ||
Řádka 34: | Řádka 41: | ||
| Vymaže přesměrování z tabulky | | Vymaže přesměrování z tabulky | ||
|} | |} | ||
+ | |||
+ | [[Virtlab:Protokoly/Tunelovací server#Příklad|Příklad konfigurace]] je uveden v popisu [[Virtlab:Protokoly|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 - <code>ifconfig eth2 up</code>.'' | ||
+ | |||
+ | === 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'''. | ||
+ | |||
+ | <code>SW(config)#vtp mode transparent</code> | ||
+ | |||
+ | 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.'' | ||
Aktuální verze
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ří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.