Right, I've tried several NICs -- with no success.  It's surely the qemu
problem, because VirtualBox works just fine with the same setup, except
that it doesn't create a tap interface, but just sniffs and filters
incoming traffic on a selected host machine interface.  So yeah, wrong
mailing list.

Thanks for your attention.

P PQP:, 19/07/2009 P2 14:35 +1000, Aaron Mason P?P8QP5Q:
> Hi Dmitry,
>
> Have you tried different NICs in QEMU?  Could just be an issue with this
one.
>
> There's no problems on a real machine, so perhaps this query would be
> best directed at QEMU's mailing lists.
>
> HTH
>
> On Sat, Jul 18, 2009 at 3:41 AM, Dmitiry Y. Zotikov<x...@ungrund.org> wrote:
> > Hello everyone,
> >
> > I'm using OpenBSD as a guest system with qemu, and currently I'm unable
> > to get network working.  As far as I can say, the problem is not in my
> > qemu setup, since I've also tried LFS Linux LiveCD as a guest and it
> > worked fine (see below).
> >
> > Host:   Debian Linux testing
> > Guest:  OpenBSD 4.5
> > qemu:   0.10.4 w/o kqemu
> >
> > OpenBSD installs fine, then the following setup is used to run qemu
> > (skipping tests and irrelevant stuff):
> >
> > run-openbsd.sh:
> > ------------------------------------------------------------------------
> > disk_image="`dirname $0`/obsd1.img"
> > boot="c"
> > mem="256"
> > output="-vnc 192.168.1.1:1"
> > ifname=`sudo tunctl -u $USER -b`
> > net_nic="nic,vlan=0,model=pcnet,name=obsd1-pcnet0"
> > net_mode="tap,vlan=0,ifname=${ifname},script=/etc/qemu-ifup"
> >
> > qemu    -hda $disk_image \
> >        -boot $boot \
> >        -m $mem \
> >        $output \
> >        -net $net_nic \
> >        -net $net_mode
> > ------------------------------------------------------------------------
> >
> > /etc/qemu-ifup:
> > ------------------------------------------------------------------------
> > ADDR='192.168.3.1 netmask 255.255.255.252'
> > sudo -p "Password for $0:" /sbin/ifconfig $1 $ADDR
> > ------------------------------------------------------------------------
> >
> > As a result, I get on Linux (host):
> >
> > $ ip addr show dev tap0
> > 35: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state
> UNKNOWN qlen 500
> >    link/ether 00:ff:3f:3b:dc:6b brd ff:ff:ff:ff:ff:ff
> >    inet 192.168.3.1/30 brd 192.168.3.3 scope global tap0
> >    inet6 fe80::2ff:3fff:fe3b:dc6b/64 scope link
> >       valid_lft forever preferred_lft forever
> >
> > $ ip route show
> > 192.168.3.0/30 dev tap0  proto kernel  scope link  src 192.168.3.1
> > 192.168.0.0/30 dev eth1  proto kernel  scope link  src 192.168.0.2
> > 192.168.255.0/30 via 192.168.1.2 dev eth0
> > 192.168.2.0/24 dev wlan0  proto kernel  scope link  src 192.168.2.1
> > 192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
> > default via 192.168.0.1 dev eth1
> >
> > Okay, now in the freshly installed OpenBSD (guest):
> >
> > # ifconfig pcn
> > pcn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> >        lladdr 52:54:00:12:34:56
> >        priority: 0
> >        groups: egress
> >        media: Ethernet autoselect (autoselect)
> >        inet 192.168.3.2 netmask 0xfffffffc broadcast 192.168.3.3
> >        inet6 fe80::5054:ff:fe12:3456%pcn0 prefixlen 64 scopeid 0x1
> >
> > # netstat -f inet -rn
> > Routing tables
> >
> > Internet:
> > Destination        Gateway            Flags   Refs      Use   Mtu  Prio
> Iface
> > default            192.168.3.1        UGS        1     1927     -     8
> pcn0
> > 127/8              127.0.0.1          UGRS       0        0 33204     8
lo0
> > 127.0.0.1          127.0.0.1          UH         1       62 33204     4
lo0
> > 192.168.3.0/30     link#1             UC         1        0     -     4
> pcn0
> > 192.168.3.1        link#1             UHLc       1        5     -     4
> pcn0
> > 224/4              127.0.0.1          URS        0        0 33204     8
lo0
> >
> > And when I ping host's tap0 from it (default gw)
> >
> > # ping 192.168.3.1
> > PING 192.168.3.1 (192.168.3.1): 56 data bytes
> > ping: sendto: Host is down
> > ping: wrote 192.168.3.1 64 chars, ret=-1
> > ping: sendto: Host is down
> > ping: wrote 192.168.3.1 64 chars, ret=-1
> > ping: sendto: Host is down
> > ping: wrote 192.168.3.1 64 chars, ret=-1
> > --- 192.168.3.1 ping statistics ---
> > 6 packets transmitted, 0 packets received, 100.0% packet loss
> >
> > Because
> >
> > # arp -an
> > ? (192.168.3.1) at (incomplete) on pcn0
> >
> > So I launched tcpdump to see what's wrong (on linux host):
> >
> > $ sudo tcpdump -i tap0 -s 0 -w obsd1.dump
> >
> > Booted OpenBSD, made few pings, halted it, then analyzed the dump:
> >
> > $ tcpdump -t -r obsd1.dump
> > reading from file obsd1.dump, link-type EN10MB (Ethernet)
> > IP6 fe80::2ff:c6ff:fead:f73e > ip6-allrouters: ICMP6, router
solicitation,
> length 16
> > IP6 fe80::2ff:c6ff:fead:f73e > ff02::16: HBH ICMP6, multicast listener
> report v2, 1 group record(s), length 28
> > IP6 fe80::2ff:c6ff:fead:f73e > ip6-allrouters: ICMP6, router
solicitation,
> length 16
> > arp who-has 192.168.3.2 tell 192.168.3.2
> > IP6 :: > ff02::1:ff12:3456: ICMP6, neighbor solicitation, who has
> fe80::5054:ff:fe12:3456, length 24
> > arp who-has 192.168.3.1 tell 192.168.3.2
> > arp reply 192.168.3.1 is-at 00:ff:c6:ad:f7:3e (oui Unknown)
> > arp who-has 192.168.3.1 tell 192.168.3.2
> > arp reply 192.168.3.1 is-at 00:ff:c6:ad:f7:3e (oui Unknown)
> > arp who-has 192.168.3.1 tell 192.168.3.2
> > arp reply 192.168.3.1 is-at 00:ff:c6:ad:f7:3e (oui Unknown)
> > arp who-has 192.168.3.1 tell 192.168.3.2
> > arp reply 192.168.3.1 is-at 00:ff:c6:ad:f7:3e (oui Unknown)
> > arp who-has 192.168.3.1 tell 192.168.3.2
> > arp reply 192.168.3.1 is-at 00:ff:c6:ad:f7:3e (oui Unknown)
> >
> > It seems like OpenBSD guest doesn't recieve or ignores arp replies.
> >
> > I also tried Linux LFS LiveCD to check that it's not my qemu
> > configuration problem.  Did the ususal:
> >
> > $ ip link set dev eth0 up
> > $ ip addr add 192.168.3.2/30 brd 192.168.3.3 dev eth0
> > $ ping -c 2 192.168.3.1
> >
> > And it worked fine (and even ping www.ru, with additional setup).
> > Tcpdump:
> >
> > $ tcpdump -t  -r lfs.dump
> > reading from file lfs.dump, link-type EN10MB (Ethernet)
> > IP6 fe80::2ff:39ff:fe72:bf12 > ip6-allrouters: ICMP6, router
solicitation,
> length 16
> > IP6 fe80::2ff:39ff:fe72:bf12 > ff02::16: HBH ICMP6, multicast listener
> report v2, 1 group record(s), length 28
> > IP6 fe80::2ff:39ff:fe72:bf12 > ip6-allrouters: ICMP6, router
solicitation,
> length 16
> > IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from
> 52:54:00:12:34:56 (oui Unknown), length 548
> > IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from
> 52:54:00:12:34:56 (oui Unknown), length 548
> > IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from
> 52:54:00:12:34:56 (oui Unknown), length 548
> > arp who-has 192.168.3.1 tell 192.168.3.2
> > arp reply 192.168.3.1 is-at 00:ff:39:72:bf:12 (oui Unknown)
> > IP 192.168.3.2 > 192.168.3.1: ICMP echo request, id 31748, seq 0, length
64
> > IP 192.168.3.1 > 192.168.3.2: ICMP echo reply, id 31748, seq 0, length 64
> > IP 192.168.3.2 > 192.168.3.1: ICMP echo request, id 31748, seq 256,
length
> 64
> > IP 192.168.3.1 > 192.168.3.2: ICMP echo reply, id 31748, seq 256, length
64
> > arp who-has 192.168.3.2 tell 192.168.3.1
> > arp reply 192.168.3.2 is-at 52:54:00:12:34:56 (oui Unknown)
> >
> > Additionally, I've found that OpenBSD sends a 'gratuitous arp request',
> > while linux doesn't, but I think that's not the case.
> >
> > Any guesses?
> >
> >
>
>
>
> --
> Aaron Mason - Programmer, open source addict
> - Oh, why does everything I whip leave me?
>

--
wbr, xio

Reply via email to