Back to top

dom0, domU, mostki i vlan-y

Kilka słów o vlan-ach - krótki, ale wydaje mi się ciekawy temat :) Rysunek pierwszy przedstawia początkową sytuację - mostek w dom0, do którego wpięty jest interfejs eth0 domU (nazwy dom0/U to terminologia używana w dokumentacji Xen-a). W domU terminujemy vlan 50 na interfejsie eth0.50 - prosty scenariusz z życia wzięty.

Teraz ten sam vlan 50 chcemy "rozpakować" również w dom0, wpisujemy więc w dom0:

vconfig add peth0 50

co prowadzi nas do sytuacji przedstawionej na rys. 2. Skutek, który może pozostać niezauważony - nasz vlan 50 w domU przestaje "działać"! Ot niespodzianka, choć jak sobie to "rozrysować" to sytuacja staje się dość "klarowna" - tag z vlan-u zdjęty jest w dom0 przed eth0, tagowane pakiety nie trafiają już na port mostka i nie są propagowane do domU.

Rozwiązania problemu są dwa. Pierwsze, zakłada trochę inną politykę łączenie domU z vlan-ami (bądź więcej pracy w celu "naprawienia" sytuacji, jeżeli takiej polityki nie stosujemy od początku). Sytuację "naprawioną" przedstawia rysunek 3.

Każdy vlan jest "wpuszczany" w dom0 na osobny mostek, do tych mostków łączone są domU wg. "zapotrzebowania" na dostęp do vlan-ów. W domU nie musimy już ściągać taga, vlan otrzymujemy w postaci osobnego interfejsu, co może niekiedy skutkować dużą liczbą interfejsów, ale (choć to może akurat nie jest mocny argument) nie musimy używać vconfig w domU (a to przy parawirtualizacji może mieć znaczenie :)).

Rozwiązanie drugie - jak dla mnie "nieładne", ale daje szybko rozwiązanie, jeżeli zabrnęliśmy w sytuację z rysunku 2. W dom0 wykonujemy:

vconfig add eth0 50

Czyli zamiast peth0 (fizyczny interfejs) wykorzystujemy mostek - eth0.
Tworzy to jakąś dziwną sytuację, dla mnie mniej elegancką od tej z rysunku 3, w której wyniku otrzymujemy interfejs eth0.50 w dom0. Jednak nie "ubijamy" tym ruchu na interfejsie eth0.50 w domU - wszystko wydaje się działać bez zakłóceń, choć nie przeprowadzałem testów poza zwykłym "pingowaniem" - wykorzystuję jednak zawsze rozwiązanie pierwsze. Ale "dwójka" też działa!

Istnieje jeszcze rozwiązanie trzecie - można powiedzieć "przyszłościowe", wymagać będzie większych zmian jednak zapowiada się bardzo ciekawie. Jak można przeczytać na http://wiki.xen.org/wiki/Xen_Networking, od Xen-a 4.3 mamy mieć możliwość wykorzystania Open vSwitch-a! W sumie Xen 4.3 już został wydany (na początku lipca), jednak Debian Wheezy jak na razie oferuje jedynie wersję 4.1, przyjdzie więc jeszcze trochę poczekać na testowanie tego rozwiązania, ale wygląda na to, że temat "sieciowy" w tandemie GNU/Linux + Xen zyska niedługo zupełnie nową jakość! :)