Linux E X P R E S

Facebook

VirtualBox a Bridge na Debianu/Ubuntu

Před několika dny jsem na svém blogu objevil prosbu o radu , týkající se nastavení bridge v emulátoru VirtualBox . Tento problém řeším poměrně často v práci, s kamarády i na různých fórech a tak jsem se rozhodl, že přesný postup nastavení pro jednou sepíšu alespoň do několika bodů, podle kterých bude možné zvládnout nastavení bridge za pár okamžiků.


Bridge vs NAT

Jestliže v emulátoru VirtualBox vytvoříme "nový počítač", automaticky se nastaví síťová karta a to konkrétně do režimu NAT. Ten zapříčiní, že z emulovaného počítače se téměř okamžitě můžeme dostat do sítě internet. Bohužel při použití NATu přicházíme o některé možnosti sítě - například o možnost procházení okolních počítačů, sdílení složek atp. Tento problém lze docela elegantně vyřešit dvěma způsoby. Prvním z nich je routování, které by pro některé mohlo představovat těžký kámen úrazu. Druhou metodou je použití bridge módu u síťové karty, který je sice poněkud náročnější na prvotní konfiguraci, ale na druhou stranu nabízí stejné "rozhraní" a přístup k síti jako má stroj, ze kterého ho spouštíte...

Poznámka: Network address translation (zkráceně NAT, česky překlad síťových adres) je funkce síťového routeru pro změnu IP adres paketů procházejících zařízením, kdy se zdrojová nebo cílová IP adresa převádí mezi různými rozsahy. Nejběžnější formou je tzv. maškaráda (maskování), kdy router IP adresy z nějakého rozsahu mění na svoji IP adresu a naopak - tím umožňuje, aby počítače ve vnitřní síti (LAN) vystupovaly v Internetu pod jedinou IP adresou. Router si drží po celou dobu spojení v paměti tabulku překladu adres.
-- převzato ze stránky http://cs.wikipedia.org/wiki/NAT

Postup instalace:

Z domovských stránek VirtualBoxu stáhneme poslední verzi VirtualBoxu

# wget http://www.virtualbox.org/download/1.5.2/virtualbox_1.5.2-25433_Ubuntu_gutsy_i386.deb

 Stažený balíček pomocí příkazu "dpkg -i" nainstalujeme 

# sudo dpkg -i virtualbox_1.5.2-25433_Ubuntu_gutsy_i386.deb

 Aby VirtualBox správně fungoval, musíme nastavit správná práva na nově vytvořené zařízení /dev/vboxdrv a také musíme přidat uživatele, pod kterým právě pracujeme (u mě je to uživatel hodza) do skupiny vboxusers.

# sudo chmod 666 /dev/vboxdrv
# sudo usermod -G vboxusers -a hodza

 Od této chvíle bychom již VirtualBox mohli používat. My však budeme dále pokračovat v instalaci nástrojů potřebných pro spuštění bridge.

# sudo apt-get install bridge-utils uml-utilities kdesudo

 Po instalaci těchto třech balíků přidáme záznam o bridge do souboru /etc/network/interfaces.

# sudo vi /etc/network/interfaces

 Konkrétně přidáme na konec souboru následující řádky

auto br0
iface br0 inet dhcp
bridge_ports eth0
Výše uvedený výpis označuje, že bridge bude označený jako br0, IP adresu získá ze serveru DHCP a bude připojený k zařízení eth0 .

Celý soubor /etc/network/interfaces u mě pak pak vypadá například takto:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0
Aby se změny projevily, je potřeba znovu načíst konfiguraci sítě. To provedeme příkazem
# sudo /etc/init.d/networking restart
Nyní je zapotřebí vytvořit permanentní síťové zařízení. Ve VirtualBoxu se tyto zařízení označují ve tvaru vbox[číslo]. V našem případě vytvoříme zařízení vbox0, které bude určené pro uživatele hodza a slinkované se zařízením br0.
# sudo VBoxAddIF vbox0 hodza br0 

 Dále nezapomeneme opravit přístupová práva k zařízení /dev/net/tun. Na internetu je popsaný postup, kdy zařízení /dev/net/tun dostane práva 660.Níže popsané řešení je však mnohem elegantnější a né tak drastické.

# sudo chown root.vboxusers /dev/net/tun
# sudo chmod g+rw /dev/net/tun

Předposledním krokem je vytvoření skriptů, které VirtualBox spouští při startu či ukončení virtuálního stroje.

První skript si uložíme například do domovského adresáře pod názvem "TapUP". Jeho obsah bude následovný:

#!/bin/sh
kdesu "/sbin/ifconfig $2 up && /usr/sbin/brctl addif br0 $2"

Druhý skript si uložíme do stejného adresáře například pod jménem TapDOWN. Jeho obsah bude:

#!/bin/sh
kdesu /usr/sbin/brctl delif br0 $2
Nakonec nezapomene dát skriptům patřičná práva (pro spuštění)
# chmod +x TapUP
# chmod +x TapDOWN

Teď již nebrání nic tomu, spustit VirtualBox a v nastavení Síťové karty zvolit položku "Připojit k Hostitelskému rozhraní".

Nezapomeneme vyplnit:
Název rozhraní: - vbox0
Nastavení aplikace: /home/hodza/TapUP (opravte na správnou složku - podle vašeho nastavení)
Ukončit aplikaci:  /home/hodza/TapDOWN (opravte na správnou složku - podle vašeho nastavení)
VirtualBoxSiteSettings.png
Zvolíme Ok a spustíme náš virtuální stroj.

Objeví se okno KDESU, do kterého zadáme heslo aktuálně přihlášeného uživatele.
VirtualBoxSudo.png
Po naběhnutí systému zkontrolujeme, zda-li systém dostal správné IP adresy a defaultní routy.

VirtualBoxIPRoute.png

Vše by mělo být v pořádku a fungovat na první pokus. Snad jsem vám pomohl...

Diskuze (13) Nahoru