Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?

lz

Zdravím, rád bych vás poprosil o radu. Hraju si s Qemu a chci se připojit k internetu. Postupoval jsem podle návodu na následujícím odkazu https://blog.elastocloud.org/2015/07/qemukvm-bridged-network-with-tap.html . Bohužel tímto si vždy znemožním prohlížení internetu na hostitelském počítači. Víte někdo, jak by bylo možné nakonfigurovat síť, aby běžela jak na hostitelském PC, tak na virtuálu?

Díky za odpovědi!


David

Bridge na hostu a do něj připojit sitovku v guestu. Dostanete adresu z DHCP a máte přístup k internetu.

ffaf

U bridge je ale problém se napojit host<->guest i když má každý svou adresu z DHCP. Pokud by tak chtěl provozovat třeba NFS mezi nimi. Jen pro info.

Sten

U bridge je ale problém se napojit host<->guest i když má každý svou adresu z DHCP. Pokud by tak chtěl provozovat třeba NFS mezi nimi. Jen pro info.

V čem? Sice tam neprovozuji NFS, ale to, co používám (WebDAV, DNS, SSH), tam funguje bez problémů. Úplně stejně jako u bridge mezi fyzickými síťovkami.

ffaf

V čem?
Host Debian 9, Guest W10. V režimu bridge nefungovalo spojení Guest->Host. Při hledání řešení jsem narazil na větu, kterou jsem napsal. Jedu tak přes NAT a to funguje.
Výhodou v určitých situacích může být, že to funguje i když Host není připojen do žádné sítě.


LarryLin

V čem?
Host Debian 9, Guest W10. V režimu bridge nefungovalo spojení Guest->Host. Při hledání řešení jsem narazil na větu, kterou jsem napsal. Jedu tak přes NAT a to funguje.
Výhodou v určitých situacích může být, že to funguje i když Host není připojen do žádné sítě.
Taky moc nechápu proč by nemělo fungovat spojení Guest->Host při řežimu bridge. A jet by to mělo i když Host (česky: hostitel) není připojen do žádné sítě, říká se tomu Host-Only Networking - viz https://wiki.archlinux.org/index.php/QEMU#Host-only_networking

LarryLin

@původní tazatel: Kdy přesně se ti "znemožním prohlížení" na hostitelském počítači? Když zapneš VM nebo když zadáš nějaký příkaz?
Ten návod se mi zdá být v pořádku a to co popisuješ by se dít nemělo. Sice místo ručního vytváření TAP zařízení bych ti doporučil používat qemu-bridge-helper, který si sám vytvoří TAP zařízení a přiřadí ho do br0:
Kód: [Vybrat]
-netdev bridge,id=device-name0,br=br0,helper=/usr/lib/qemu/qemu-bridge-helperale myslím, že v tom tvůj problém nebude.
Pro qemu-bridge-helper je ještě potřeba přidat do souboru /etc/qemu/bridge.conf řádek:
Kód: [Vybrat]
allow br0

lz

@původní tazatel: Kdy přesně se ti "znemožním prohlížení" na hostitelském počítači? Když zapneš VM nebo když zadáš nějaký příkaz?
Ten návod se mi zdá být v pořádku a to co popisuješ by se dít nemělo. Sice místo ručního vytváření TAP zařízení bych ti doporučil používat qemu-bridge-helper, který si sám vytvoří TAP zařízení a přiřadí ho do br0:
Kód: [Vybrat]
-netdev bridge,id=device-name0,br=br0,helper=/usr/lib/qemu/qemu-bridge-helperale myslím, že v tom tvůj problém nebude.
Pro qemu-bridge-helper je ještě potřeba přidat do souboru /etc/qemu/bridge.conf řádek:
Kód: [Vybrat]
allow br0

Nakonec vypadá, že mi to znemožní prohlížení kompletně. Vytvořil jsem ty zařízení, přidal je do bridge, a od toho okamžiku se jednoduše nedostanu na internet. V guestu se mi to očividně opakovaně pokouší připojit přes DHCP, ale nikdy se to nepodaří. Prozatím netuším, čím to je, případně co bych měl kde povolit. Přes VirtualBox nemám problém, ale tam je to řešené přes NAT. Rád bych to rozchodil přes Qemu, protože mi připadá, že nabízí více možností, byť se někdy z toho datlování do příkazového řádku můžu zbláznit.

LarryLin

Nakonec vypadá, že mi to znemožní prohlížení kompletně. Vytvořil jsem ty zařízení, přidal je do bridge, a od toho okamžiku se jednoduše nedostanu na internet.
Tak to vypadá, že do bridge nemáš dobře napojené fyzické zařízení, které si ti napojuje do internetu. Používáš v příkazu místo "eth0" skutečně správné zařízení?
Mušeš komunikovat Host<>Guest?
Nezkoušíš ten bridge náhodou na bezdrátovém zařízení? Bridge se totiž dá použít pouze na drátové.

LarryLin

... ještě v tom návodu nevidím:
Kód: [Vybrat]
sysctl net.ipv4.ip_forward=1
nebo pro permanentní povolení:
change
Kód: [Vybrat]
net.ipv4.ip_forward = 0 to
Kód: [Vybrat]
net.ipv4.ip_forward = 1 in /etc/sysctl.d/99-sysctl.conf

lz

Nakonec vypadá, že mi to znemožní prohlížení kompletně. Vytvořil jsem ty zařízení, přidal je do bridge, a od toho okamžiku se jednoduše nedostanu na internet.
Tak to vypadá, že do bridge nemáš dobře napojené fyzické zařízení, které si ti napojuje do internetu. Používáš v příkazu místo "eth0" skutečně správné zařízení?
Mušeš komunikovat Host<>Guest?
Nezkoušíš ten bridge náhodou na bezdrátovém zařízení? Bridge se totiž dá použít pouze na drátové.

Správné zařízení používám, na výběr jich ostatně ani moc není. Mohl bych to napojit omylem tak leda na loopback.

Ping jsem bohužel nezkoušel, protože jsem se dočetl, že bez nějakého konkrétního povolení nemusí fungovat. Nevěděl bych, jestli jde o vlastnost TAP nebo o nefunkčnost bridge.

lz

... ještě v tom návodu nevidím:
Kód: [Vybrat]
sysctl net.ipv4.ip_forward=1
nebo pro permanentní povolení:
change
Kód: [Vybrat]
net.ipv4.ip_forward = 0 to
Kód: [Vybrat]
net.ipv4.ip_forward = 1 in /etc/sysctl.d/99-sysctl.conf

Díky za Vaši radu, situace se změnila. Teď jsem schopný se připojit alespoň přes hosta. Vypadá, že ten net.ipv4.ip_forward mi alespoň částečně pomohl. Guest stále síť nemá, ale ještě uvidím, co se s tím dá dělat...

Honza

Pokud je to QEMU, v režimu bridge, a nefunguje DHCP v Guestovi, tak zkus toto:
Kód: [Vybrat]
sudo bash -c 'echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables'
Jestli ti ale původně vypadávalo připojení na Hostovi, tak bych řekl, že ten bridge je opravdu nastavený špatně.

lz

Pokud je to QEMU, v režimu bridge, a nefunguje DHCP v Guestovi, tak zkus toto:
Kód: [Vybrat]
sudo bash -c 'echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables'
Jestli ti ale původně vypadávalo připojení na Hostovi, tak bych řekl, že ten bridge je opravdu nastavený špatně.
Bohužel, thuhle cestu na mém počítači nenajdu. Zkoušel jsem se podívat na /proc/sys/net/ipv4/conf/br0/ , ale tam jsem taky nic podobného nenašel.

lz

Jinak ten bridge je po restartu nastavený znovu.