Virtlab:Tunelovací server

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 21:19, 17. 10. 2007
Vav166 (Diskuse | příspěvky)
(Stránka Tunelovací server přemístěna na stránku Virtlab:Tunelovací server)
← 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 35: Řádka 42:
|} |}
 +[[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.''
 +[[Kategorie:Komponenty virtlabu]]
 +[[Kategorie:Server]]
[[Kategorie:Tunelovací server]] [[Kategorie:Tunelovací server]]

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ří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