Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Xen and Netbsd's agr [LONG]



Selon "Brian A. Seklecki" <bseklecki%collaborativefusion.com@localhost>:

> No, that sounds like a very standard / expected configuration.
>
> Care to share some details / configuration files / ifconfig/brctl
> output?

Sure. On the DOM0:
$ uname -a
NetBSD hercules.freebox 4.0.1 NetBSD 4.0.1 (TEST) #0: Sat Dec 27 17:31:13 CET
2008  tinou%hercules.freebox@localhost:/usr/src/sys/arch/i386/compile/TEST i386

TEST is just a copy of XEN3_DOM0 with one more line to add agr support:

$ cat /usr/src/sys/arch/i386/compile/TEST
#       $NetBSD: XEN3_DOM0,v 1.6 2006/10/17 19:57:24 bouyer Exp $
#
#       XEN3_0: Xen 3.0 domain0 kernel

include "arch/i386/conf/XEN2_DOM0"

options         XEN3    #Xen 3.x support

# boot messages with MPBIOS, acpi and ioapic can be quite large
options         MSGBUFSIZE=24576

vcpu*           at hypervisor?          # Xen virtual CPUs
xenbus*         at hypervisor?          # Xen virtual bus
ppb*    at pci? dev ? function ?        # PCI-PCI bridges
pci*    at ppb? bus ?

acpi0           at hypervisor?
options         MPBIOS
options         MPDEBUG
options         MPVERBOSE
options         ACPIVERBOSE
#options         PCI_ADDR_FIXUP         # fixup PCI I/O addresses
#options         PCI_BUS_FIXUP          # fixup PCI bus numbering
#options         PCI_INTR_FIXUP         # fixup PCI interrupt routing

ioapic*         at mainbus? apid ?

# ACPI devices
acpiacad*       at acpi?                # ACPI AC Adapter
acpibat*        at acpi?                # ACPI Battery
acpibut*        at acpi?                # ACPI Button
acpiec*         at acpi?                # ACPI Embedded Controller
acpilid*        at acpi?                # ACPI Lid Switch

pseudo-device   xvif
pseudo-device   xbdback
pseudo-device   agr                     # IEEE 802.3ad link aggregation

There are two interfaces (vr0 and rtk0) configured via DHCP:

$ cat /etc/ifconfig.agr0
create
agrport vr0
agrport rtk0
up

$ cat /etc/ifconfig.bridge0
create
!brconfig $int add agr0 up

$ tail -8 /etc/rc.conf
hostname=hercules.freebox
dhclient=YES
dhclient_flags="agr0"
wscons=YES
sshd=YES
powerd=YES
xend=YES
xenbackendd=YES

And here's the config file for my DOMU:
$ cat vanguard
#kernel = "/usr/pkg/xen3-kernel/netbsd-XEN3_DOMU.gz"
kernel = "/usr/pkg/xen3-kernel/netbsd-INSTALL_XEN3_DOMU.gz"
memory = 64
name = "vanguard"
vif = [ 'mac=aa:00:00:ed:61:f5, bridge=bridge0' ]
disk = [ 'phy:/dev/wd0g,wd0d,w' ]

And when the machine is up and running:

$ ifconfig -a
rtk0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu
1500
        address: 00:13:d4:3b:7a:a0
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
vr0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu
1500
        address: 00:13:d4:3b:7a:a0
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
agr0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        agrport: vr0, flags=0x3<COLLECTING,DISTRIBUTING>
        agrport: rtk0, flags=0x3<COLLECTING,DISTRIBUTING>
        address: 00:13:d4:3b:7a:a0
        inet 192.168.1.127 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::213:d4ff:fe3b:7aa0%agr0 prefixlen 64 scopeid 0x6
bridge0: flags=41<UP,RUNNING> mtu 1500

Then I start my DOMU (the install of which I made succeed with a simpler network
setup). All the following is read from the DOMU term.
# xm create -c vanguard
[...]
Starting network.
Hostname: vanguard.freebox
IPv6 mode: host
Configuring network interfaces: xennet0.
Adding interface aliases:
xennet0: DAD detected duplicate IPv6 address fe80:0002::a800:00ff:feed:61f5: NS
in/out=1/1, NA in=0
xennet0: DAD complete for fe80:0002::a800:00ff:feed:61f5 - duplicate found
xennet0: manual intervention required
xennet0: possible hardware address duplication detected, disable IPv6
Starting dhclient.
Internet Systems Consortium DHCP Client V3.0.3
Copyright 2004-2005 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP

Listening on BPF/xennet0/aa:00:00:ed:61:f5
Sending on   BPF/xennet0/aa:00:00:ed:61:f5
Sending on   Socket/fallback
DHCPDISCOVER on xennet0 to 255.255.255.255 port 67 interval 3
DHCPDISCOVER on xennet0 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on xennet0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on xennet0 to 255.255.255.255 port 67 interval 16
DHCPDISCOVER on xennet0 to 255.255.255.255 port 67 interval 20
DHCPDISCOVER on xennet0 to 255.255.255.255 port 67 interval 10
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
[...]

NetBSD/i386 (vanguard.freebox) (console)

login:

# tail -4 /etc/rc.conf
hostname=vanguard.freebox
dhclient=YES
dhclient_flags="xennet0"
wscons=YES

> We need to see what tcpdump(8) looks like inside your DomU as well.

Sure:
# tcpdump
00:39:48.010342 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request
from aa:00:00:ed:61:f5, length: 300
00:39:48.010523 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request
from aa:00:00:ed:61:f5, length: 300
00:39:57.010433 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request
from aa:00:00:ed:61:f5, length: 300
00:39:57.010628 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request
from aa:00:00:ed:61:f5, length: 300
00:40:10.010394 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request
from aa:00:00:ed:61:f5, length: 300
00:40:10.010591 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request
from aa:00:00:ed:61:f5, length: 300
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel

And at this stage:
# ifconfig -a
ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
xennet0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=2800<TCP4CSUM_Tx,UDP4CSUM_Tx>
        enabled=0
        address: aa:00:00:ed:61:f5
        inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
        inet6 fe80::a800:ff:feed:61f5%xennet0 prefixlen 64 duplicated scopeid
0x2

I now try to set up the network interface manually, and to ping my DNS:
# ifconfig xennet0 192.168.1.179 netmask 0xffffff00 up
# route add default 192.168.1.254
add net default: gateway 192.168.1.254
# ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
xennet0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=2800<TCP4CSUM_Tx,UDP4CSUM_Tx>
        enabled=0
        address: aa:00:00:ed:61:f5
        inet 192.168.1.179 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::a800:ff:feed:61f5%xennet0 prefixlen 64 duplicated scopeid
0x2
# ping -c 4 192.168.1.10
PING 192.168.1.10 (192.168.1.10): 56 data bytes

----192.168.1.10 PING Statistics----
4 packets transmitted, 0 packets received, 100.0% packet loss

I don't understand that "duplicate IPv6 address found" message, as I have only 3
other  DOMU on this local network, and I have checked that their MAC adresses
are all different. The lines in their configuration files are:
vif = [ 'mac=aa:00:00:50:02:f0, bridge=bridge0' ]
vif = [ 'mac=aa:00:00:46:b5:2f, bridge=bridge0' ]
vif = [ 'mac=aa:00:00:17:de:16, bridge=bridge0' ]

Thank you for reading up to here.

-- 
Etienne


Home | Main Index | Thread Index | Old Index