Jak přidělit virtuálnímu počítači vlastní IP adresu

Petr Krčmář 10. 6. 2010

Pokud provozujete virtualizaci jen tak pro zábavu nebo protože testujete nové distribuce, pak vám bude stačit standardní připojení do internetu, které využívá NAT. Někdy je ale potřeba, aby byl virtuální počítač na síti vidět, měl vlastní IP adresu a bylo možné se k němu připojit a využít jeho služeb.

V následujícím textu se budeme zabývat především virtualizátorem VirtualBox. Ten je velmi populární zejména kvůli jednoduchému nasazení, solidnímu výkonu a multuplatformnosti. Protože má řádkové ovládání, je možné jej nasadit i na serveru. Přestože budeme mluvit o VirtualBoxu, celý postup je použitelný i pro další virtualizační nástroje.

NAT nebo pot

Pokud si ve VirtualBoxu (dále jen VB) vytvoříte nový virtuální počítač, bude mít zapnutou síťovou kartu a zvolen bude režim NAT. Ten je nejjednodušší a pro jednoduché testování systémů bohatě stačí. VB pak funguje jako router a vytváří virtuální síť, která je celá ukrytá za virtuální NAT.

Počítač uvnitř si může po síti požádat o IP adresu a dostane nějakou z rozsahu 10.0.x.x. Síť samozřejmě funguje a z hostitelského systému je pak možné se normálně připojit k internetu nebo k počítačům v okolní síti. Problém je ale v tom, že NAT je jednosměrný, takže není možné se k virtualizovanému počítači připojit a využít například jeho služeb jako serveru.

Existuje samozřejmě řešení, při kterém je ale třeba změnit konfiguraci hostitelského počítače. V něm vytvoříme virtuální síťovou kartu, která pak bude propojena do vnitřního prostředí hostovaného systému. Ten jí může využít dle libosti a na síti se tak objeví nový počítač, který bude nerozeznatelný od toho fyzického.

Vytváříme virtuální bridge

Předpokládejme, že vaše fyzická síťová karta má v systému označení eth0. Všechny následující kroky budeme provádět v hostitelském systému, tedy v tom, ve kterém běží VirtualBox. Samozřejmě budeme potřebovat práva nejvyššího, tedy roota. Pro postup budeme ještě potřebovat v systému dva balíčky: uml-utilities (pro příkaz tunctl) a bridge-utils (pro brctl. Jdeme na to.

Nejprve si zavedeme jaderný modul, který se nám postará o virtuální síťovou kartu.

# modprobe tun

Dále si vytvoříme novou kartu, která se bude jmenovat tap0. Zároveň jej dovolíme používat uživateli, který bude spouštět VirtualBox. Dejme tomu, že se bude jmenovat  ferda.

# tunctl -t tap0 -u ferda
# chmod 666 /dev/net/tun

Nová karta se nám normálně objeví v systému vedle standardního eth0. Máme teď v systému vlastně dvě síťové karty. Ta nová je ale ještě „hluchá“, protože její virtuální kabel nikam nevede. Obě zařízení přepneme do promiscuous režimu.

# ifconfig eth0 0.0.0.0 promisc
# ifconfig tap0 0.0.0.0 promisc

Zbývá předposlední, ale nejdůležitější krok. Vytvoříme virtuální bridge a do něj „zasuneme kabely&ldqup; z obou síťových karet. Tím oživíme spojení.

# brctl addbr br0
# brctl addif br0 eth0
# brctl addif br0 tap0

Jako poslední pak musíme bridgi přidělit IP adresu. Nejjednodušší je samozřejmě použít DHCP, pokud na síti nějaké máme:

# dhclient br0

Samozřejmě můžeme přidělit i ruční IP adresu. V tuhle chvíli máme ve výpisu síťových zařízení (třeba ifconfig bez parametrů) nejméně tři zařízení: eth0, br0 a tap0. Poslední jmenovaný ale nemá vlastní IP adresu a nepoužívá se.

A ještě VirtualBox

Úplně posledním krokem je pak samozřejmě přenastavení VirtualBoxu. Tomu musíme říci, že nemá používat svůj vlastní NAT, ale může se připojit k virtuální síťové kartě. Klikněte na vybraný virtuální počítač a vpravo vyberte položku Síť. Položku NAT změňte na Síťový most a zvolte zařízení tap0. V pokročilých volbách pak ještě můžete změnit MAC adresu virtuálního počítače. Ta se bude propagovat do sítě.

Teď už stačí jen spustit virtuální stroj a užít si v něm plnohodnotné sítě. Chová se to tak, jako by virtuál měl skutečně vlastní kabel, který vede do stejného switche jako ten z vašeho počítače. Oba stroje (virtuální i reálný) na sebe na síti vidí, stejně tak, jako oba počítače vidí i všichni ostatní. Virtuální stroj se jeví jako naprosto reálné síťové zařízení ve vaší síti. Využití je pak už na vás.

Poznámky na závěr

Pokud máte nahozený firewall a výše popsané řešení vám nefunguje, budete muset povolit komunikaci s bridgem. Je to velmi jednoduché:

# iptables -I INPUT -i br0 -j ACCEPT

Může se stát, že vám VirtualBox zobrazí následující hlášku:

widgety

V takovém případě pomůže jednoduše virtuální síťovou kartu v hostitelském systému nahodit:

# ifconfig tap0 up

Pokud budete mít jakýkoliv problém, můžete se jednoduše všeho zbavit a uvést nastavení sítě do původního stavu:

# ifconfig tap0 down
# ifconfig br0 down
# brctl delbr br0
Našli jste v článku chybu?
Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Vitalia.cz: Jaký je rozdíl mezi brambůrky a chipsy?

Jaký je rozdíl mezi brambůrky a chipsy?

DigiZone.cz: Test LG 55UH750V aneb Cena/výkon

Test LG 55UH750V aneb Cena/výkon

Vitalia.cz: Inspekce našla nelegální sklad v SAPĚ. Zase

Inspekce našla nelegální sklad v SAPĚ. Zase

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Lupa.cz: Hackeři mají data z půlmiliardy účtů Yahoo

Hackeři mají data z půlmiliardy účtů Yahoo

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz

Podnikatel.cz: EET pro e-shopy? Postavené na hlavu

EET pro e-shopy? Postavené na hlavu

Vitalia.cz: Když všichni seli řepku, on vsadil na dýně

Když všichni seli řepku, on vsadil na dýně

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků