Virtual-IT.pl - data center cloud computing SDx AI storage network cybersecurity
Najlepsze kursy internetowe w kategorii IT i oprogramowanie

Artykuły

Wdrożenie wirtualnego środowiska XEN cz.6


Modele sieci Xen - skrypty startowe

 

Przy starcie fizycznego komputera Xen, korzystając z wbudowanych  skryptów, ustawia jeden z trzech trybów, w którym będzie pracowała wirtualna sieć. Domyślnie jest to model „mostowania VM”. Podczas startu, w Dom0 uruchamiany jest jeden ze skryptów z rodziny „network-*”. Natomiast podczas startu DomU, uruchamiany jest dla tej wirtualnej maszyny skrypt z rodziny „vif-*”, tworzący dla niej jej własny wirtualny interfejs1 (jest to zawsze para połączonych ze sobą interfejsów - jeden w dom0 i jeden w domU, vif1.0 <-> eth0).

Pierwszy tryb polega na łączeniu maszyn „wirtualnymi kablami”. Jest to tryb prosty do zrozumienia, analogiczny do fizycznego podłączania skrętki do switcha. Wszystkie połączenia odbywają się w warstwie fizycznej/łącza danych OSI. W trybie drugim dochodzi do tego też warstwa sieciowa (NAT, iptables). Trzeci tryb polega na łączeniu maszyn w sieć jedynie za pomocą polecenia route (warstwa sieciowa OSI).

Zatem Xen oferuje następujące modele sieci:
1. Zmostowane maszyny (network-bridge / vif-bridge) - domyślna konfiguracja w Xenie. Wszystkie maszyny wirtualne podłączane są poprzez interfejsy vifX lub tapX do głównego mostu xenbr0. Jest to najprostszy rodzaj konfiguracji, który nie wymaga stosowania iptables, dnsmasq, dhcpd czy ip route. Jeśli dodatkowo do xenbr0 podłączymy peth0, uzyskamy połączenie z zewnętrznymi sieciami np. Internetem.

 

 

Dom1 Dom0 DomU

Rys. Połączenia interfejsów Xena w trybie „mostowania”
(Kliknij w obrazek by powiększyć)

 


2. Maszyny za NATem (network-nat / vif-nat) - przy uruchamianiu Xen tworzy prywatną sieć (192.168.122.0/24, virbr0), uruchamia dla niej serwer DNS i DHCP (dnsmasq) oraz ustawia tę sieć za NATem (iptables).

DomU automatycznie są przyłączane do tego mostu i pobierają adres IP z tej sieci. Do  Internetu ruch wysyłany jest przez adres IP interfejsu eth0.
 

 

VM Xen NAT

Rys. Połączenia interfejsów Xena w trybie „maszyn za NATem”
(Kliknij w obrazek by powiększyć)

 


3. Routowanie maszyn (network-route / vif-route) - wszystkie interfejsy wirtualnych maszyn „wiszą w powietrzu”, żaden nie jest podłączony „kablem” z jakimkolwiek innym (nie ma żadnych mostów). Dom0 staje się jakby wielkim routerem, w którym poprzez dodawanie odpowiednich tras do tablicy routingu Dom0, różne sieci zaczynają komunikować się między sobą.

Jest to rozwiązanie dość skomplikowane. Interfejs eth0 w domU musi zostać ręcznie skonfigurowany wewnątrz domU. Jego IP musi być ustawione na takie samo jak podane w pliku startowym VM. Istnieje więc konieczność nadania statycznych, znanych wcześniej adresów IP w każdym domU. Adresy te muszą być znane (podane po znaczniku ip=), tak aby można było przy starcie domU utworzyć z nich automatycznie tablicę routingu w dom0. Jako bramę można tutaj wpisać również ten sam adres IP.

Kiedy startuje domU skrypt vif-route, dokonuje następujące zmiany w dom0:
• kopiuje adres IP ze swojego eth0 do vif<id>.0, a następnie podnosi vif<id>.0 (mamy więc kilka interfejsów o takich samych adresach IP, maska jednak jest ustawiana na 32 bity),
• dodaje statyczną trasę routingu dla domU, z adresu IP pobranego w pliku konfiguracyjnym domU, wskazującą na interfejs vif<id>.0/tap<id>
 

 

Xen Routeing

Rys. Połączenia interfejsów Xena w trybie „routowania”
(Kliknij w obrazek by powiększyć)

 


Uwaga: Skrypt Xena network-route nie działa poprawnie! Nie włącza on bowiem proxy ARP i routing między dom0 a domU nie działa. Musimy włączyć go ręcznie:

 

Xen

(Kliknij w obrazek by powiększyć)

 

Bez proxy ARP zapytania rozgłoszeniowe ARP who-has-<ip> idące z DomU zatrzymywały się na granicy podsieci czyli na interfejsie vif<id>.0. Ponieważ nie przechodzą do dom0, VM nie może poznać MAC adresu docelowego, nie wie więc gdzie wysyłać pakietów.

W niniejszym odcinku opisano wirtualne sieci z szczególnym naciskiem na interfejsy wirtualne i modele sieci. W następnym odcinku, kontynuując tematykę sieci wirtualnych przyjrzymy się możliwościom łączenia maszyn wirtualnych w różnych warstwach modelu OSI.
 


Autor:
Andrzej Dymała, jest góralem, pasjonatem bluesa oraz darmowych i wolnych rozwiązań. Zajmuję się administrowaniem sieciami i Linuksem, ze szczególnym wskazaniem na bezpieczeństwo (iptables, DansGuardian) oraz podział łącza QoS.



Czytaj również:
-> Wdrożenie wirtualnego środowiska Xen cz.1
-> Wdrożenie wirtualnego środowiska Xen cz.2
-> Wdrożenie wirtualnego środowiska Xen cz.3
-> Wdrożenie wirtualnego środowiska Xen cz.4
-> Wdrożenie wirtualnego środowiska Xen cz.5

 

Logowanie i rejestracja