Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: QEMU a nastavení sítě  (Přečteno 2244 krát)

TomAker

  • Návštěvník
  • Příspěvků: 83
QEMU a nastavení sítě
« kdy: 22 Července 2007, 19:47:59 »
Ahoj,
sedím nad tím už celý den, ale pořád mi funguje síť tak nějak "polovičatě".

Pochopil jsem správně, jak to má v principu fungovat?
Ve fyzickém PC se vytvoří virtuální rozhraní tap0. V Qemu-PC se rozhraní eth0 "naroubuje" na rozhraní tap0 ve fyzickém PC. Z rozhraní tap0 se pak pakety přepošlou na eth0, které je přepošlou dále do LAN...

Přeposílání by se mělo zajistit:
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.3.1/24 -j MASQUERADE

KUbuntu-PC:
Po spuštění Qemu se vytvoří rozhraní TAP0

Kód: [Vybrat]
tomaker@tomaker:~$ ifconfig

eth0      Link encap:Ethernet
          inet addr:10.30.4.7  Bcast:10.30.4.63  Mask:255.255.255.192
          inet6 addr: fe80::213:8fff:fe28:7a11/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2873 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2042 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2035499 (1.9 MiB)  TX bytes:299664 (292.6 KiB)
          Interrupt:18 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1612 (1.5 KiB)  TX bytes:1612 (1.5 KiB)

tap0      Link encap:Ethernet  HWaddr 52:72:87:39:2E:A6
          inet addr:192.168.3.1  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::5072:87ff:fe39:2ea6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:87 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:10453 (10.2 KiB)  TX bytes:11156 (10.8 KiB)

tomaker@tomaker:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.30.4.0       *               255.255.255.192 U     0      0        0 eth0
192.168.3.0     *               255.255.255.0   U     0      0        0 tap0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         10.30.4.1       0.0.0.0         UG    0      0        0 eth0
Qemu-PC (Fedora):
Kód: [Vybrat]
eth0
          inet addr:192.168.3.10  Bcast:192.168.3.255  Mask:255.255.255.0

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.0       *               255.255.255.0  U     0      0        0 eth0
169.254.0.0     *               255.255.0.0   U     0      0        0 eth0         // Nevim, kde se to tu vzalo
default         192.168.3.1       0.0.0.0         UG    0      0        0 eth0
Ping z Qemu-PC na KUbuntu-PC funguje (IP 192.168.3.1 i IP 10.30.4.7), ale nefunguje ping na IP např. 10.30.1.1, který ale funguje z KUbuntu-PC normálně.

Ping z KUbuntu-PC na Qemu-PC funguje (IP 192.168.3.1 i IP 192.168.3.10)

Firwall je na obou PC vypnutý.
Řekl bych, že problém je v předávání paketů mezi TAP0 a ETH0 v KUbuntu-PC. Ale to by zas neměl jít ping z Qemu-PC na IP adresu fyzického počítače.

Nepřipojoval někdo Qemu do lokální sítě?

Díky za pomoc.
Kriegovo základní pravidlo:
Práce na počítači se podobá předem prohrané válce.

morbid

  • Návštěvník
  • Příspěvků: 3
QEMU a nastavení sítě
« Odpověď #1 kdy: 25 Července 2007, 09:46:49 »
Já to řešil pomocí bridge-utils a popsal zde http://www.root.cz/clanky/pripojujeme-qemu-do-site/

TomAker

  • Návštěvník
  • Příspěvků: 83
QEMU a nastavení sítě
« Odpověď #2 kdy: 28 Července 2007, 21:57:37 »
Citace: morbid
Já to řešil pomocí bridge-utils a popsal zde http://www.root.cz/clanky/pripojujeme-qemu-do-site/
Jasně, taky možná cesta. Pouze se mi nelíbí použití bridge.

Nakonec jsem problém úspěšně vyřešil :)

1. Na fyzickém PC se musí zapnout routování
Kód: [Vybrat]
cat /proc/sys/net/ipv4/ip_forward # Pokud příkaz vypíše 1, tak je routování již zapnuto
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
2. Zapnutí maskování IP adresy
Kód: [Vybrat]
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE3. Konfigurace pravidel paketového filtru
Kód: [Vybrat]
iptables -P FORWARD DROP # nejprve zakážeme forwardování paketů
iptables -A FORWARD -i tap0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tap0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# nakonec povolíme příchozí pakety z/na tap0 a to ještě pouze pro již navázané spojení
4. Nastavení DNS
Kód: [Vybrat]
echo "nameserver prislusna_ip_adresa_serveru" > /etc/resolv.confA můžu si bez problémů testovat na virtuálním PC bez toho, aniž bych si zaneřádil systém... :D
Kriegovo základní pravidlo:
Práce na počítači se podobá předem prohrané válce.

 

Provoz zaštiťuje spolek OpenAlt.