Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 
Tematem niniejszego artykułu będzie budowanie sieci pomiędzy maszyną wirtualną, a hostem w celu np. testowania rozwiązań sieciowych, testowania zabezpieczeń czy zabawy usługami sieciowymi.
Dopuszczenie naszej maszyny wirtualnej w VirtualBox do internetu czy sieci lokalnej jest dosyć proste. Wystarczy aktywować kartę sieciową i wybrać opcję NAT. Wtedy host staje się przekaźnikiem pakietów wirtualnej maszyny w sposób przezroczysty i jeśli system goszczony obsługuje DHCP bez problemu można śmigać w po sieci. Ale nie możemy w ten sposób spingować maszyny wirtualnej spod hosta, ani podłączyć się do którejś z usług. Dlatego potrzebne jest zrobienie takiego wirtualnego kabla sieciowego, który będzie podłączony do naszego wirtualnego portu. Dzięki temu jeśli na maszynie wirtualnej postawimy serwer www, to z hosta po wpisaniu adresu w przeglądarce wyświetli się strona. Ja osobiście to rozwiązanie wykorzystywałem do sprawdzania integracji Samby z Windows'em.
Aby w ten sposób połączyć hosta z maszyną wirtualną w VirtualBox należy wybrać opcję Mostkowana karta sieciowa i wybrać interfejs sieciowy do którego będzie podpięta wirtualna maszyna. Poniżej przedstawiam schemat w jaki sposób maszyna wirtualna będzie komunikować się z hostem.
(Jeśli schemat jest za mały kliknij tutaj)
Zacznijmy najpierw od zainstalowania pakietów odpowiedzialnych za tworzenie mostków pomiędzy interfejsami. Wykorzystując apturl można je zainstalować prosto ze tej strony (jak skonfigurować apturl dowiemy się z tej strony):
Po zainstalowaniu pakietów tworzymy interfejs br0 za pomocą następujących poleceń:
$ sudo brctl addbr br0
$ sudo ifconfig br0 up
$ sudo ifconfig br0 192.168.0.1 netmask 255.255.255.0
Oczywiście polecenia wpisujemy bez znaczka dolara (to tylko zachęta, jak w terminalu). Pierwszym poleceniem tworzymy wirtualny interfejs br0. Drugim poleceniem podnosimy interfejs. Trzecim nadajemy numer IP i maskę podsieci. Ten numer będzie numerem IP hosta w naszej sieci. A o to wynik polecenia ifconfig po wykonaniu tychże poleceń:
$ ifconfig
br0       Link encap:Ethernet  HWaddr 1e:2b:49:f4:10:98 
inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::1c2b:49ff:fef4:1098/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)
(...)
Teraz zajmiemy się tworzeniem interfejsu dla wirtualnej maszyny czyli tap0.
$ sudo tunctl -t tap0 -u qkiz
Set 'tap0' persistent and owned by uid 1000
$ sudo ifconfig tap0 up
$ sudo brctl addif br0 tap0
Pierwszym poleceniem tworzymy wirtualny interfejs tap0 i nadajemy właściciela urządzenia. Tutaj tym właścicielem jestem ja (uid 1000), ale normalnie za parametr -u dajcie swój login Smile Drugim poleceniem podnosimy interfejs, a trzecim mostkujemy oba interfejsy.
Tak wygląda wynik polecenia ifconfig po wykonaniu obu poleceń:
$ ifconfig
br0       Link encap:Ethernet  HWaddr ee:99:b1:b9:81:72 
inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::1c2b:49ff:fef4:1098/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)
(...)
tap0      Link encap:Ethernet  HWaddr ee:99:b1:b9:81:72 
inet6 addr: fe80::ec99:b1ff:feb9:8172/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:6 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Tyle rzeźbienia w konsoli. Teraz uruchamiamy VirtualBox'a i wchodzimy we właściwości maszyny wirtualnej. Przechodzimy do ustawień sieci i z Podłączona do wybieramy Mostkowana karta sieciowa. Poniżej wybieramy którego interfejsu ma używać maszyna, oczywiście wybieramy tap0.Ustawienia sieci maszyny wirtualnej Naciskamy OK i wychodzimy z ustawień maszyny. Teraz uruchamiamy maszynę wirtualną i konfigurujemy interfejs sieciowy w goszczonym systemie. Nadajemy na przykład numer IP 192.168.0.2 i oczywiście tą samą maskę co w Ubuntu, w interfejsie br0: 255.255.255.0.
Teraz spróbujmy spod Ubuntu (host) spingować maszynę wirtualną.

$ ping -c 4 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=128 time=0.624 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=128 time=0.809 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=128 time=3.83 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=128 time=0.655 ms

--- 192.168.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.624/1.481/3.838/1.362 ms
Jeśli żaden firewall (ani po stronie hosta czy gościa) nie blokuje nam połączeń powinniśmy zobaczyć coś takiego jak wyżej. Ja używam Firestartera i pingi poszły dopiero po ustawieniu sieci lokalnej na interfejsie br0 i włączeniu udostępniania połączenia internetowego. Taki urok Firestartera Tongue out Ale dzięki temu w maszynie mamy od razy wyjście na świat (po ówczesnym ustawieniu bramy i DNSów).
Ustawienia Firestartera
Teraz spróbujmy spingować odwrotnie, z maszyny goszczonej.
Wynik z konsoli Windowsa
Jak widać odpowiedzi są. Teraz możemy się bawić w kolejne usługi sieciowe np. udostępnianie plików. W Ubuntu klikamy prawym na jakiś folder i udostępniamy go. W systemie goszczonym np. Windows'ie montujemy udział jako dysk sieciowy i próbujemy się na niego dostać. Należy pamiętać o swoich zabezpieczeniach, u mnie w tym momencie Firestarter zaczął "krzyczeć", że numer 192.168.0.2 (czy wirtualna maszyna) próbuje wejść na port 445 i 139 (czyli Samba). Dodałem jej numer do wyjątków i już mogłem przeglądać udostępnione zasoby.
Montowanie udziału pod Windows'em Udział zamontowany
Jak widać działa. To otwiera nam kolejne możliwości jeśli chodzi o rozwiązania sieciowe. Możemy podstawić Ubuntu Server, a na nim serwer www i testować różne konfiguracje. Możemy postawić Windows Server i próbować go shakować Laughing Duży plus tego rozwiązania to to, że taka wirtualna sieć zachowuje się jak połączenie ethernet i mamy jej wszystkie właściwości.
Spodobało Ci się? Udostępnij, przypnij, podziel się z innymi:


Wykorzystanie zawartości tej strony w celach komercyjnych bez zgody autora jest zabronione.
Jeśli wykorzystujesz zawartość tej strony w swoich artykułach, podaj jako źródło adres URI tej strony. Google+
Creative Commons License