Virtlab:Komponenty/Tunelovací server
Z VirtlabWiki
Verze z 19:17, 18. 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 12: | Řádka 26: | ||
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== | + | == Detailní informace pro vývojáře == |
- | 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. | + | * [[Virtlab:Tunelovací server]] |
- | + | ||
- | 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:Komponenty virtlabu]] | ||
[[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í