Připojujeme QEMU do sítě

Michal Nosek 8. 6. 2006

Pokud jste si nainstalovali QEMU a do něj nějaký OS, tak ho určitě budete chtít připojit do sítě. Takže pozorně čtěte, ať o něco nepřijdete.

QEMU umožňuje dva režimy práce v síti, první a jednodušší je napojení do uživatelského stacku TCP/IP. Což, pokud neexistuje soubor /etc/qemu-ifup, o kterém si povíme více později, bude výchozí volba. Pokud soubor existuje a přesto chcete použít tento režim, přidejte do příkazového řádku volbu --user-net. Tento režim provede napojení virtuálního stroje do user stacku IP protokolu, což vám umožní přístup na Internet, ale to je asi tak všechno.

Pokud potřebujete připojit virtuální stroj přímo do sítě, např kvůli připojení do domény windows, je nutno na hostujícím OS použít virtuální síťové rozhraní TAP/TUN. Takže asi nejlepší bude začít příkazem modprobe tun. Dále budete potřebovat bridge-utils, jejichž pomocí spojíme virtuální rozhraní s fyzickým do jednoho, takže virtuální stroj bude jakoby přímo připojen do sítě, což si lze jednoduše představit jako virtuální HUB (ano HUB, ne switch). Pro nastavení bridge jsem připravil jednoduchý skript, ze kterého je snad jasný princip vytvoření a připojení fyzického rozhraní.

#!/bin/bash
#Zde nastavte síťové rozhraní, na které bude připojen virtuální stroj
et=eth0

if=/sbin/ifconfig
br=/sbin/brctl

#Nastavení bridge br0 a připojení fyzického rozhraní
$br addbr br0
$if $et down
$if $et 0.0.0.0 promisc up
$br addif br0 $et

#Pokud používáte v síti DHCP server odkomentujte následující dva řádky
#$if br0 promisc
#/sbin/dhcpcd br0

#Pokud DHCP server nepoužíváte nastavte správnou IP adresu a odkomentujte
následující řádek
#$if br0 192.168.1.150 promisc up 

Pokud chcete na svém PC používat QEMU často, je vhodné tento skript začlenit do spouštěcích skriptů. Jinak je možno ho spustit vždy jen před použitím emulátoru.

Dalším krokem je vytvoření souboru /etc/qemu-ifup s následujícím obsahem:

#!/bin/bash
if=/sbin/ifconfig
br=/sbin/brctl
$if $1 0.0.0.0 promisc up
$br addif br0 $1 

Pokud existuje tento soubor, použije QEMU při spuštění jako výchozí volbu –net tap, pokud soubor neexistuje bude výchozí volbou --user-net, přesto se mi osvědčilo vždy používat volby --net tap --net nic, které mi zaručily požadovanou funkci.

Tomuto skriptu je po spuštění QEMU, jako parametr ($1), předán název virtuálního rozhraní tun, které je následně nakonfigurováno a přidáno do bridge br0. Tím je zajištěno připojení virtuálního OS do sítě, přes naše fyzické rozhraní. Pokud byste potřebovali, aby byl zpracován jiný skript než výchozí, lze ho zadat parametrem  -n skript.

Jednotlivá tun rozhraní hostujícího OS připojená v bridge nemusí, ale mohou mít přidělenu IP adresu. Pokud si chcete ověřit nastavení bridge spusťte příkaz brctl show a budou vám vypsána všechna nakonfigurovaná rozhraní. Ve výpisu ifconfig by mělo být rozhraní br0 s platnou IP adresou.

V hostujícím operačním systému již provedeme nastavení tak, jako bychom ho připojovali přímo do naší sítě. Tudíž použijeme buď DHCP server, nebo pevnou IP adresu. V případě problémů lze opět použít konsoli QEMU, do které se přepneme pomocí CTRL-ALT-2 a na níž zadáme info network, mělo by dojít k vypsání nastavení sítové karty včetně MAC adresy. Pokud nám z nějakého důvodu nevyhovuje náhodně vytvořená MAC, lze ji zadat za parametr  -macaddr.

widgety

Pár rad na závěr

Pokud by bylo potřeba spouštět emulovaný stroj na pozadí, nejlépe po spuštění hostujícího OS, lze toho dosáhnout zadáním -nographic -monitor /dev/null -serial /dev/null. Tímto přesměrujeme jak konzoli monitoru, tak i sériovou konzoli do /dev/null a QEMU spustíme bez grafického rozhraní. Pro svou potřebu jsem si vytvořil spouštěcí skriptík, do kterého jsem zadal veškeré nutné parametry:

#!/bin/bash
qemu -hda /var/lib/qemu/winxp.iso -boot c -m 256 -net nic -net tap -nographic
-monitor /dev/null -serial /dev/null 

Tímto se mi spustí WinXP, na které se mohu připojit vzdálenou plochou po síti. Zkoušel jsem takto i Win 2003 SBS jako terminálový server, ale rychlost byla velmi mizerná.

Ohodnoťte jako ve škole:

Průměrná známka 3,02

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
Vitalia.cz: Maurer: Nechci Jamieho Olivera za pět miliónů

Maurer: Nechci Jamieho Olivera za pět miliónů

Podnikatel.cz: Poděs, Slibotechna a další. Ty berte obloukem

Poděs, Slibotechna a další. Ty berte obloukem

120na80.cz: 10 nejžádanějších bylinných čajů

10 nejžádanějších bylinných čajů

Podnikatel.cz: Nemocenské pojištění. Chystají se velké změny

Nemocenské pojištění. Chystají se velké změny

Lupa.cz: Další útok: po ČSSD je pod palbou ČTK

Další útok: po ČSSD je pod palbou ČTK

DigiZone.cz: Jak by měla vypadat sportovní reality show?

Jak by měla vypadat sportovní reality show?

120na80.cz: Čím namazat zmožené nohy?

Čím namazat zmožené nohy?

Lupa.cz: Jaký je Průvodce světem Arduina?

Jaký je Průvodce světem Arduina?

Vitalia.cz: Sami nezvládají. Z čeho platit péči o seniora?

Sami nezvládají. Z čeho platit péči o seniora?

Vitalia.cz: Kontrola: Med bez potíží. Konečně!

Kontrola: Med bez potíží. Konečně!

Podnikatel.cz: Ve hře jsou další výjimky u EET

Ve hře jsou další výjimky u EET

Vitalia.cz: Jak se žije na kozí farmě

Jak se žije na kozí farmě

Podnikatel.cz: Nepřišlo vaše hlášení k DPH? Beřnák po vás jde

Nepřišlo vaše hlášení k DPH? Beřnák po vás jde

Podnikatel.cz: Když si reklamou „zabíjíte“ zákazníky

Když si reklamou „zabíjíte“ zákazníky

Lupa.cz: Roaming se mění. Co byste o něm měli vědět?

Roaming se mění. Co byste o něm měli vědět?

Podnikatel.cz: Statisíce plátců DPH podávají první hlášení

Statisíce plátců DPH podávají první hlášení

Podnikatel.cz: Obavy z EET? Nejvíc se bojí, aby na to měli

Obavy z EET? Nejvíc se bojí, aby na to měli

Podnikatel.cz: Soused složenku k dani z nemovitostí má, vy ne?

Soused složenku k dani z nemovitostí má, vy ne?

Vitalia.cz: Proč jsou po vyřazení lepku zdravější?

Proč jsou po vyřazení lepku zdravější?

Vitalia.cz: Příčina choroby: lék

Příčina choroby: lék

Ušetřete