0

I have an Ubuntu MAAS managed KVM. Primary network for the host is an balance-rr bond with a static IP Address. The virtual machine is attempting to use MAAS configured bridge to PXE Boot but it's not working. After a lot of digging it looks like the bridge is seeing the MAC of the VM on the wrong port. I would expect the mac address to show up on the port from the vnet assigned to the vm but instead it shows up on the port of the bond. Hopefully someone notices what I'm missing.

Here is the network configuration.

network:
bonds:
        #        bond0:
        #            interfaces:
        #            - eno1
        #            - eno2
        #            macaddress: b0:83:fe:eb:ba:60
        #            mtu: 1500
        #            parameters:
        #                down-delay: 0
        #                mii-monitor-interval: 100
        #                mode: balance-rr
        #                transmit-hash-policy: layer2
        #                up-delay: 0
    bond1:
        interfaces:
        - eno3
        - eno4
        macaddress: b0:83:fe:eb:ba:66
        mtu: 1500
        parameters:
            down-delay: 0
            mii-monitor-interval: 100
            mode: balance-rr
            transmit-hash-policy: layer2
            up-delay: 0
bridges:
    br-bond1:
        addresses:
        - 10.0.2.11/24
        gateway4: 10.0.2.1
        interfaces:
        - bond1
        macaddress: b0:83:fe:eb:ba:66
        mtu: 1500
        nameservers:
            addresses:
            - 10.0.2.17
            - 10.0.2.18
            search:
            - maas
        parameters:
            forward-delay: 15
            stp: false
ethernets:
    eno1:
        match:
            macaddress: b0:83:fe:eb:ba:60
        mtu: 1500
        set-name: eno1
    eno2:
        match:
            macaddress: b0:83:fe:eb:ba:62
        mtu: 1500
        set-name: eno2
    eno3:
        match:
            macaddress: b0:83:fe:eb:ba:64
        mtu: 1500
        set-name: eno3
    eno4:
        match:
            macaddress: b0:83:fe:eb:ba:66
        mtu: 1500
        set-name: eno4
version: 2

Relevant configuration from VM

<interface type='bridge'>
  <mac address='52:54:00:ba:86:77'/>
  <source bridge='br-bond1'/>
  <target dev='vnet0'/>
  <model type='virtio'/>
  <alias name='net0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>

Bridge configuration

ubuntu@cloud1:~$ sudo brctl show
bridge name bridge id       STP enabled interfaces
br-bond1        8000.b083feebba66   no      bond1
                            vnet0

MAC Table

ubuntu@cloud1:~$ sudo brctl showmacs br-bond1
port no mac addr        is local?   ageing timer
  1 20:4e:71:f0:cb:90   no         0.01
  1 52:54:00:ba:86:77   no       168.71
  1 5a:c2:49:d8:87:bc   no        17.18
  1 72:81:ef:86:30:9d   no       182.17
  1 9a:cf:84:97:91:3e   no        17.18
  1 d0:67:e5:b6:a0:f6   no        10.15
  2 fe:54:00:ba:86:77   yes        0.00
  2 fe:54:00:ba:86:77   yes        0.00

Port 1 is bond1 and port 2 is vnet0.

STP Information

ubuntu@cloud1:~$ sudo brctl showstp br-bond1
br-bond1
 bridge id      8000.b083feebba66
 designated root    8000.b083feebba66
 root port         0            path cost          0
 max age          20.00         bridge max age        20.00
 hello time        2.00         bridge hello time      2.00
 forward delay        15.00         bridge forward delay      15.00
 ageing time         300.00
 hello timer           0.00         tcn timer          0.00
 topology change timer     0.00         gc timer           0.00
 flags          


bond1 (1)
 port id        8001            state            forwarding
 designated root    8000.b083feebba66   path cost          4
 designated bridge  8000.b083feebba66   message age timer      0.00
 designated port    8001            forward delay timer    0.00
 designated cost       0            hold timer         0.00
 flags          

vnet0 (2)
 port id        8002            state            forwarding
 designated root    8000.b083feebba66   path cost        100
 designated bridge  8000.b083feebba66   message age timer      0.00
 designated port    8002            forward delay timer    0.00
 designated cost       0            hold timer         0.00
 flags
  • If I comment out the bond and change the bridge to use eno3 everything starts working. I've founded lots of documentation about using bonds and bridges for kvm and tried to match their configuration but it still doesn't behave. – Shawn Weeks Jul 31 at 19:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.