Hlavní navigace

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

Petr Krčmář

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:

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?

10. 6. 2010 9:45

Proč by nemohlo? Potíž je, pokud má něco pouze klikací rozhraní, proto je důležité, že VirtualBox má i to konsolové rozhraní. Hodně lidí nemá na serveru Xka ;-) resp. grafická instalace se dá ještě přežít – tunelovat přes SSH – ale pro běh je to prakticky nepoužitelné, tam je negrafický/dé­monizovaný režim nutnost.

10. 6. 2010 9:42

VirtualBox je „free“ (ve smyslu svobodný software), resp. má dvě verze – jednu pod GPL licencí a pak binární pod jakousi „Personal Use and Evaluation License“ (PUEL).

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

DigiZone.cz: SES zajistí HD pro M7 Group

SES zajistí HD pro M7 Group

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Podnikatel.cz: E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech