Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: lz 23. 06. 2018, 17:14:40

Název: Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: lz 23. 06. 2018, 17:14:40
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!
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: David 23. 06. 2018, 19:14:47
Bridge na hostu a do něj připojit sitovku v guestu. Dostanete adresu z DHCP a máte přístup k internetu.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: ffaf 23. 06. 2018, 23:22:59
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.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: Sten 24. 06. 2018, 01:45:43
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.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: ffaf 24. 06. 2018, 08:57:47
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ě.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: LarryLin 24. 06. 2018, 10:56:30
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
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: LarryLin 24. 06. 2018, 11:12:28
@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
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: lz 24. 06. 2018, 11:34:24
@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.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: LarryLin 24. 06. 2018, 11:52:33
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é.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: LarryLin 24. 06. 2018, 12:03:58
... 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
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: lz 24. 06. 2018, 12:33:00
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.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: lz 24. 06. 2018, 12:50:06
... 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...
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: Honza 24. 06. 2018, 13:08:58
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ě.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: lz 24. 06. 2018, 13:23:29
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.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: lz 24. 06. 2018, 13:24:20
Jinak ten bridge je po restartu nastavený znovu.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: LarryLin 24. 06. 2018, 15:49:56
Jinak ten bridge je po restartu nastavený znovu.
Nevím přesně co tím chtěl básník říci :) , ale bridge by po restartu PC nastavený být neměl. Ty příkazy co jsou v tom příkladu nevytváří bridge permanentně. Takže si musíš vytvořit vlastní scripty a spustit je před spuštěním Qemu nebo bridge vytvořit přes NetworkManager a zaškrtnout "Automatické připojování" po startu OS.

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...
Guest by měl dostat IP adresu od DHCP stejně jako ji získal Host. Předpokládám, že od routeru. Takže jediné co mě napadá, že ti blokuje firewall na Guestovi příchozí spojení z DHCP.
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: LarryLin 12. 11. 2018, 14:26:30
Vím, že je to stará diskuze, ale něco jsem zrovna nastavoval a narazil jsem na stejný problém, protože jsem zapomněl na jednu drobnost a možná, že to byl i problém tazatele (případně dalších kdo narazí na tuto diskuzi).

Po provedení těch příkazů z toho odkazu v úvodním komentáři je nutné na hostiteli odpojit připojení eth0 a následně je nutné, aby si most br0 získal IP adresu z routeru (takže pokud používáte NetworkManager, tak u připojení br0 změníte ze "Zakázané" na "Automaticky DHCP"). Pak by se vám hostitel měl již sám připojit pomocí rozhraní br0.

Kdyby to chtěl někdo vizuálně, tak horní obrázek je špatně, spodní správně: https://unix.stackexchange.com/questions/191174/how-to-understand-virtual-switch-in-linux
Název: Re:Jak nakonfigurovat síť v Qemu tak, abych nepřišel o internetové připojení?
Přispěvatel: V. 12. 11. 2018, 20:28:12
Jedna rada k ladění: pokud máte zaplý bridge i guesta, měly by procházet broadcasty. Tj. třeba i ARPy. Měli byste aspoň něco vidět (dejme tomu v tcpdumpu), i když provoz negenerujete a jen nasloucháte.