Virtlab:Komponenty/Tunelovací server

Z VirtlabWiki

< Virtlab:Komponenty(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 07:11, 19. 10. 2007
Vav166 (Diskuse | příspěvky)

← Předchozí porovnání
Aktuální verze
Kuc274 (Diskuse | příspěvky)

Řádka 1: Řádka 1:
Při návrhu distribuované varianty virtuální síťové laboratoře se ukázala potřeba propojovat dvě i více vzdálených zařízení do jednoho virtuálního ethernetového segmentu a to dynamicky, podle potřeby uživatele. Navíc bylo potřeba počítat s tím, že v každé lokalitě může být zařízení, které má být do virtuálního ethernetového segmentu, připojeno do jiné VLAN. Při zkoumání možných řešení nebyl nalezen žádný vhodný existující software pro tunelování VLAN, a proto bylo přistoupeno k implementaci vlastního řešení. Při návrhu distribuované varianty virtuální síťové laboratoře se ukázala potřeba propojovat dvě i více vzdálených zařízení do jednoho virtuálního ethernetového segmentu a to dynamicky, podle potřeby uživatele. Navíc bylo potřeba počítat s tím, že v každé lokalitě může být zařízení, které má být do virtuálního ethernetového segmentu, připojeno do jiné VLAN. Při zkoumání možných řešení nebyl nalezen žádný vhodný existující software pro tunelování VLAN, a proto bylo přistoupeno k implementaci vlastního řešení.
-Tunelovací server je démon běžící na zvláštním serveru, jež je součástí každého segmentu distribuovaného virtuálního spojovacího pole a jeho úkolem je zajistit propojení 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 segmentu distribuovaného spojovacího pole. Takto lze zajistit, aby síťová zařízení, která jsou připojena na tunelované VLAN, byla zapojena jakoby v jediném zdánlivém ethernetovém segmentu, přestože je každé zařízení v jiné lokalitě a zde dokonce v jiné VLAN. + 
 +Tunelovací server je jeden ze šesti serverů distribuovaného virtlabu. Jelikož se předpokládá jeho velké vytížení a hlavně potřeba vysoké rychlosti, je vhodné, aby běžel na vlastním fyzickém stroji. Pro svou činnost vyžaduje (minimálně) dvě síťová rozhraní. Jedním rozhraním je připojen k virtuálnímu spojovacímu poli a druhým do Internetu.
 + 
 +Od spojovacího pole přebírá všechny rámce směřující k prvku v jiné lokalitě. Úkolem je "zamaskovat" skutečnost, že prvek fyzicky není ve stejném ethernetovém segmentu, ale třeba na druhém konci světa.
 + 
 +'''Příklad:'''
 + | |
 + PC 1 -- Switch A -- | Internet | -- Switch B -- PC 2
 + | |
 + 
 +Uživatel Virtlabu chce spojit Switch A a Switch B fyzickou linkou. Tyto switche se však mohou nacházet v různých lokalitách Distribuovaného Virtlabu. Tunelovací server tedy převezme všechny rámce směřující od Switche A do Switche B a zabalí je do UDP datagramu. Ten je poslán do lokality, kde se Switch B nachází. Tam jej opět převezme místní Tunelovací server a postará se o vybalení z UDP a odeslání směrem ke Switchi B.
 + 
 +'''Uživateli Virtlabu je však celá tato procedura skryta a vše se mu jeví, jako by switche byly opravdu přímo fyzicky spojeny.'''
---- ----
 +== Shrnutí ==
 +'''Tunelovací server'''
* má síťová rozhraní k lokálnímu segmentu virtuálního spojovacího pole (trunk do spojovacích prvků C3550) a do Internetu * má síťová rozhraní k lokálnímu segmentu virtuálního spojovacího pole (trunk do spojovacích prvků C3550) a do Internetu
Řádka 11: Řádka 25:
Později předpoklad doplnění návaznosti na enkapsulační server synchronních rozhraní Později předpoklad doplnění návaznosti na enkapsulační server synchronních rozhraní
- 
-==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.'' 
== Detailní informace pro vývojáře == == Detailní informace pro vývojáře ==
Řádka 38: Řádka 32:
[[Kategorie:Server]] [[Kategorie:Server]]
[[Kategorie:Tunelovací server]] [[Kategorie:Tunelovací server]]
-[[Kategorie:UNCOMPLETE]] 

Aktuální verze

Při návrhu distribuované varianty virtuální síťové laboratoře se ukázala potřeba propojovat dvě i více vzdálených zařízení do jednoho virtuálního ethernetového segmentu a to dynamicky, podle potřeby uživatele. Navíc bylo potřeba počítat s tím, že v každé lokalitě může být zařízení, které má být do virtuálního ethernetového segmentu, připojeno do jiné VLAN. Při zkoumání možných řešení nebyl nalezen žádný vhodný existující software pro tunelování VLAN, a proto bylo přistoupeno k implementaci vlastního řešení.


Tunelovací server je jeden ze šesti serverů distribuovaného virtlabu. Jelikož se předpokládá jeho velké vytížení a hlavně potřeba vysoké rychlosti, je vhodné, aby běžel na vlastním fyzickém stroji. Pro svou činnost vyžaduje (minimálně) dvě síťová rozhraní. Jedním rozhraním je připojen k virtuálnímu spojovacímu poli a druhým do Internetu.

Od spojovacího pole přebírá všechny rámce směřující k prvku v jiné lokalitě. Úkolem je "zamaskovat" skutečnost, že prvek fyzicky není ve stejném ethernetovém segmentu, ale třeba na druhém konci světa.

Příklad:

                      |              |
PC 1 -- Switch A  --  |   Internet   |  --  Switch B -- PC 2
                      |              | 

Uživatel Virtlabu chce spojit Switch A a Switch B fyzickou linkou. Tyto switche se však mohou nacházet v různých lokalitách Distribuovaného Virtlabu. Tunelovací server tedy převezme všechny rámce směřující od Switche A do Switche B a zabalí je do UDP datagramu. Ten je poslán do lokality, kde se Switch B nachází. Tam jej opět převezme místní Tunelovací server a postará se o vybalení z UDP a odeslání směrem ke Switchi B.

Uživateli Virtlabu je však celá tato procedura skryta a vše se mu jeví, jako by switche byly opravdu přímo fyzicky spojeny.


Shrnutí

Tunelovací server

  • má síťová rozhraní k lokálnímu segmentu virtuálního spojovacího pole (trunk do spojovacích prvků C3550) a do Internetu
  • podle své konfigurace tuneluje rámce vybraných VLAN přicházející z lokálního segmentu virtuálního spojovacího pole k příslušným tunelovacím serverům jiných lokalit a opačně
    • umí i kopírovat rámce do více VLAN
  • umožňuje přemosťovat mezi lokálními VLAN (kvůli propojování simulovaných laboratorních prvků připojených ke konstantě přiřazeným VLAN)

Později předpoklad doplnění návaznosti na enkapsulační server synchronních rozhraní

Detailní informace pro vývojáře