Is my OVS Bonding/Bridging set up correctly?

tycoonbob

Member
Aug 25, 2014
67
0
6
Hi all, finally installed Proxmox to one of my Dell R610's for the first time. I'm having some difficulties with my OVS Bonding/Bridging config, as in I thought I set it up right but it's not working.

Code:
# cat /etc/network/interfaces

# network interface settings
auto lo
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

iface eth2 inet manual

iface eth3 inet manual

allow-vmbr0 bond0
iface bond0 inet manual
     ovs_bonds eth1 eth2 eth3 eth4
     ovs_type OVSBond
     ovs_bridge vmbr0
     ovs_options lacp=active bond_mode=balance-slb

auto vmbr0
iface vmbr0 inet static
     address 172.16.1.202
     netmask 255.255.255.0
     gateway 172.16.1.254
     ovs_type OVSBridge
     ovs_ports bond0

As I'm sure you can figure out, I have 4 NICs (all on board), configured in a ovs_bond called bond0. I then have bond0 bridge to vmbr0, and vmbr0 is configured with an IP. My network is 172.16.1.0/24, so no routing neccessary. This server is connected to a Dell PowerConnect 2824 switch, and the 4 ports are configured in a LAG. The LAG and all ports are in an up state on the switch.

Code:
# ifconfig vmbr1

vmbr0     Link encap:Ethernet  HWaddr f0:4d:a2:09:bf:31
          inet addr:172.16.1.202  Bcast:172.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::f24d:a2ff:fe09:bf31/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:858 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:36252 (35.4 KiB)

I configured the bridge/bond via the web UI, and rebooted the server. I am not able to ping this server from my computer, nor ping my computer (or 8.8.8.8) from this server.

Any ideas?

Thanks!
 
Last edited:
Hi, I don't understand your first post,

you have vmbr0 in /etc/network/interfaces

and after you show ifconfig vmbr1 (with same ip)

My apologies; that was actually a typo. Since I don't have network connectivity, I can't ssh in and copy/paste my config. I had to type out all that by hand, but the above has been corrected.

So last night I tried one more time, and instead of using OVS bonding, I used Linux bonding. Here is what I currently have set:
Rdczp3l.png

So yeah, on my server I only have ONE network cable plugged in, and that is eth0. eth1, eth2, and eth3 are NOT plugged into this server. However, I get a response from this server on 172.16.1.202 as well as 172.16.1.222. Based on what I have set, I would NOT expect to get a response on 172.16.1.202, as that is supposed to be bridged to bond0, which is set to eth2 and eth3, which are not currently plugged in. I can load (and log into) the web UI from either of these IP addresses. The above is my current working config, and there are no pending changes as I have reboot this server 2 times since I last made network configs.

What is going on, or do I just not understanding how bonding and bridging works on Linux?
 

Attachments

  • bUUXQJa.png
    bUUXQJa.png
    18.2 KB · Views: 24
Last edited:
Do you test from the same network ? 172.16.1.X ?

or from another network, using the gateway ?


You shouldn't use same network from both vmbr0 and vmbr1, because the default gateway is always used when the packets are going outside the network.
 
Do you test from the same network ? 172.16.1.X ?

or from another network, using the gateway ?


You shouldn't use same network from both vmbr0 and vmbr1, because the default gateway is always used when the packets are going outside the network.

Yes, I am testing from 172.16.1.99/24.

I have no intention of using both .202 and .222, once I can get bonding working. What I want is all 4 NICs bonded, bridged, and using the .202 IP. Even with this less-than-ideal setup, it doesn't explain why I can ping .202 and eth0 is responding.
 
Shouldn't. Proxmox is just a default install, and I don't use a proxy on my network.

Maybe it's coming from balance-slb, I known that it's using arp-macaddress tricks for loadbalacing.
Do you have tested with lacp (if you can) or active-backup (with 2links) to see if it's works ?

Edit : I just see that you said "PowerConnect 2824 switch, and the 4 ports are configured in a LAG".
So, you need to use LACP !


 
Last edited:
Maybe it's coming from balance-slb, I known that it's using arp-macaddress tricks for loadbalacing.
Do you have tested with lacp (if you can) or active-backup (with 2links) to see if it's works ?

Edit : I just see that you said "PowerConnect 2824 switch, and the 4 ports are configured in a LAG".
So, you need to use LACP !

PowerConnect 2824 doesn't support LACP; only LAG. I have a LAG set up between eth2 and eth3, so I should be fine there, I believe.
 
Have you tried balance-alb?

My current configuration is using Linux Bonding, and it is set to balance-alb.

Code:
root@hv02:/etc/network# cat interfaces# network interface settings
auto lo
iface lo inet loopback


iface eth0 inet manual


iface eth1 inet manual


iface eth2 inet manual


iface eth3 inet manual


auto bond0
iface bond0 inet manual
        slaves eth2 eth3
        bond_miimon 100
        bond_mode balance-alb


auto vmbr0
iface vmbr0 inet static
        address  172.16.1.222
        netmask  255.255.255.0
        gateway  172.16.1.254
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0


auto vmbr1
iface vmbr1 inet static
        address  172.16.1.202
        netmask  255.255.255.0
        bridge_ports bond0
        bridge_stp off
        bridge_fd 0

This is what I currently have. eth0 is connected to my switch, while eth1, eth2, and eth3 are not connected at this time. I can ping .202 and .222 from my computer, and can access the web ui from both .202 and .222. I don't understand why this server is responding to pings/requests on .202, since .202 is bridged to bond0, which is using eth2 and eth3, which eth2 and eth3 are not even plugged in.