Nowe posty

Autor Wątek: pump z QEMU do dhcpd na tun w macierzystym systemie  (Przeczytany 5712 razy)

arctgx

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« dnia: 2008-04-24, 02:30:56 »
Ostatnio ze swoją znikomą znajomością zagadnień sieciowych próbuję postawić demona dhcpd3 tak, by uzyskać od niego adres IP dla systemu pracującego na QEMU. Niestety nie mogę dojść, w czym siedzi problem że "pump -i eth0" na systemie w QEMU nie działa jak trzeba.

Demon dhcpd3 działa na interfejsie tap0 (INTERFACES="tap0" w debianowym /etc/default/dhcp3-server - mógłbym po prostu "dhcpd3 tap0" dać, ale korzystam ze skryptu usługi). Dla zwięzłości pokazuję w skrypcie jak odpalam QEMU.

#!/bin/bash
# Załadowany jest moduł tun w jądrze
# Tworzę urządzenie tap0
tunctl -b
# Na razie dla prostoty na sztywno zakładam, że istnieć moze tylko tap0
ifconfig tap0 10.10.1.1 netmask 255.255.255.0 up
/etc/init.d/dhcp3-server start
# SDL_VIDEO_X11_DGAMOUSE=0 obchodzi pewien problem działania kursora myszy
SDL_VIDEO_X11_DGAMOUSE=0 qemu \\
 -net nic,vlan=0,macaddr=00:10:5A:DB:1E:BD \\
 -net tap,fd=0,vlan=0,ifname=tap0 -cdrom "$1"
# Sprzątam po sobie
/etc/init.d/dhcp3-server stop
ifconfig tap0 down
tunctl -b -d tap0
Plik /etc/dhcp3/dhcpd.conf wygląda tak:
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
authoritative;
allow bootp;
subnet 10.10.1.0 netmask 255.255.255.0
{
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.1.255;
option routers 10.10.1.1;
pool
{
range 10.10.1.2 10.10.1.8;
max-lease-time 1200;
}
}
host q1
{
hardware ethernet 00:10:5A:DB:1E:BD;
allow booting;
}
Czy coś więcej może podać?

Kiedy daję "pump -i eth0" w Knoppiksie czy DSL na QEMU, to wyjście konsoli, z której uruchamiałem QEMU drukuje niepotrzebne znaczki, no a samo pump kończy się błędem. Plik /var/log/messages niczego nie odnotowuje. Podobnie jest, kiedy pinguję do 10.10.1.1.

Kiedy zamiast usługi odpaliłem ręcznie "dhcpd3 tap0", nie dostałem dodatkowych logów.

darko

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« Odpowiedź #1 dnia: 2008-04-24, 17:44:03 »
Sproboj z maska odpowiednia dla klasy twojego adresu IP.

arctgx

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« Odpowiedź #2 dnia: 2008-04-24, 21:17:13 »
Gdzie tam... Spróbowałem i szesnasto-, i ośmiobitowej maski. Z tego, co widzę w Wikipedii, klasa nie musi jednoznacznie narzucać maski (wygląda to bardziej na zwyczaj).

Nadal nie mogę skomunikować się z macierzystym systemem. Ani do sieci (teraz 10.0.0.0) pingować, ani (co, jak mogę podejrzewać, wynika z tego) wysłać nigdzie DHCPDISCOVER.

Cytat: man_dhcpd.conf
Address allocation is actually only done when a client is in the INIT state and has sent  a  DHCPDISCOVER  message.
Poszukam, co to ten "INIT state" i jak to sprawdzać, ale może w międzyczasie ma ktoś inny pomysł?

darko

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« Odpowiedź #3 dnia: 2008-04-25, 17:43:16 »
A statycznie przydzielone adresy rozwiazuja problem?

arctgx

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« Odpowiedź #4 dnia: 2008-04-25, 18:52:24 »
Statycznie, tzn. przez ifconfig?

Dawałem na gościu (czyli w QEMU) "ifconfig eth0 10.10.1.2 up" lub odpowiedni adres do konfiguracji tap0 na zewnątrz i też z pingowania do hosta nic.

Ale nie wiem czemu półtora roku temu dało się połączyć QEMU z Debianem w sieci 172.20.0.0. Nie używałem wtedy tunctl do tworzenia interfejsu tap0. Nie miałem też internetu ani karty sieciowej.

Może uproszczę sytuację: przy załadowanych modułach tun i kqemu daję

SDL_VIDEO_X11_DGAMOUSE=0 qemu -kernel-kqemu \\
-net nic,vlan=0,macaddr=00:10:5A:DB:1E:BD,model=rtl8139 \\
-net tap,fd=0,vlan=0,ifname=tap0,script=/etc/qemu-ifup -k pl obraz_DSL.iso
gdzie qemu-ifup nie trzeba deklarować - powinien być odpalany domyślnie, a zawiera on tylko

#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
Pingowanie z 172.20.0.2 (podniesiony eth0 gościa) do 172.20.0.1 daje niedrukowalne znaki w konsoli, pakiety giną.

Kiedy tak odpalam QEMU, na hoście ifconfig nie pokazuje interfejsu tap0.

arctgx

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« Odpowiedź #5 dnia: 2008-04-30, 19:50:15 »
Muszę dojść, dlaczego w Knoppiksie (5.3.1) nie mam takich problemów. Tam nie ładuję ręcznie ani modulu tun, ani też nie tworzę ręcznie interfejsów tap*.

Jako root odpalam tylko "qemu -net nic -net tap -cdrom obraz.iso" i gra. To widać już na starcie w konsoli QEMU (Ctrl-Alt-2):

(qemu) info network
VLAN 0 devices:
  tap: ifname=tap0 setup_script=/etc/qemu-ifup
  ne2000 pci macaddr=52:54:00:12:34:56
Po uruchomieniu systemu na gościu bez problemu dostaję przez DHCP adres IP i maskę od hosta - tak jak sobie w dhcpd.conf ustawiłem.

arctgx

  • Gość
pump z QEMU do dhcpd na tun w macierzystym systemie
« Odpowiedź #6 dnia: 2008-05-01, 17:49:05 »
Tak się złożyło, że do mojego Debiana przed chwilą dotarła aktualizacja QEMU. I chociaż nie jest w dzienniku zmian wspomniane o moim problemie, już mogę działać jak na Knoppiksie.