Hello, I want to test LACP bonding on ovs. I have 3 Ubuntu computer.
Using 2 of them as a openvswitch and one of them as a host. The first ubuntu (call it switch1) has three NIC (2 of them usb/eth converter) - 02:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000 [Condor Peak] - 85:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8072 PCI-E Gigabit Ethernet Controller (rev 10) The second ubuntu (call it switch2) has 2 NIC, one of them is usb/eth converter (same with Marvell Tech above) The third ubuntu (call it host) will be host connected to switch1 and it has one embedded ethernet interface interface. I want to bond (lacp=active) eth0 end eth1 on both switch 1 and switch 2. And connect switch1's eth0 to switch2's eth0 with a cable. And connect eth1's as well. I did all setup. On switch1 : sudo ovs-vsctl add-br br0 sudo ovs-vsctl add-bond br0 bond0 eth0 eth1 lacp=active bond_mode=balance-tcp sudo ovs-vsctl add-port br0 eth2 sudo ovs-vsctl show 72a6ecb7-8ad9-4c6e-b727-503207e3844c Bridge "br0" fail_mode: standalone Port "eth2" Interface "eth2" Port "bond0" Interface "eth0" Interface "eth1" Port "br0" Interface "br0" type: internal My first question is why my interfaces are disabled on bond ? sudo ovs-appctl bond/show bond0 ---- bond0 ---- bond_mode: balance-tcp bond may use recirculation: yes, Recirc-ID : 2 bond-hash-basis: 0 updelay: 0 ms downdelay: 0 ms next rebalance: 7634 ms lacp_status: configured active slave mac: 00:00:00:00:00:00(none) slave eth0: disabled may_enable: false slave eth1: disabled may_enable: false I made same ovs setup on Switch2. And connected switch1 and 2. to test bond connectivity i have planned to send a ping from host to anywhere, put a rule to switch1 that anything comes to port eth2 should be mirrored to bond0 on switch1. sudo ovs-vsctl -- set Bridge br0 mirrors=@m -- --id=@bond0 get Port bond0 -- --id=@eth2 get Port eth2 -- --id=@m create Mirror name=mymirror select-dst-port=@eth2 select-src-port=@eth2 output-port=@bond0 after that when i check the mirror sudo ovs-vsctl list Mirror _uuid : 9bb76b24-d169-4a9c-ab00-ef0bd1df91e6 external_ids : {} name : mymirror output_port : [] output_vlan : [] select_all : false select_dst_port : [04e085fc-3b4d-448f-b8cc-6d4fd2038381] select_src_port : [04e085fc-3b4d-448f-b8cc-6d4fd2038381] select_vlan : [] statistics : {tx_bytes=212272, tx_packets=1112} I start send ping from host to switch 1 with ping -I eth0 anywhere.com and listen in switch1 withsudo tcpdump -i eth2 I can see arp messages from hosts ... 17:00:49.293446 ARP, Request who-has s3-website-us-west-1.amazonaws.com tell 192.168.50.51, length 46 ... But when i try to listen eth0 or eth1 on Switch1, nothing comes those ports. I cannot listen bond0 port with tcpdump but i can check my mirrors. sudo ovs-vsctl list Mirror _uuid : 9bb76b24-d169-4a9c-ab00-ef0bd1df91e6 external_ids : {} name : mymirror output_port : [] output_vlan : [] select_all : false select_dst_port : [04e085fc-3b4d-448f-b8cc-6d4fd2038381] select_src_port : [04e085fc-3b4d-448f-b8cc-6d4fd2038381] select_vlan : [] statistics : {tx_bytes=212272, tx_packets=1112} I can see there are some tx/rx bytes so i expect from my switch1 to send everything comes from eth2 to switch2 via bond0. But when i check switch2 interfaces with tcpdump, i see nothing pass over switch2. Here my second question arises, is there any way to listen packets on bond0 (for both switches) ? And my last question, I suppose when i mirror eth2 traffic to bond0 as output port on switch1, it should forward packets to switch2; is there anything wrong with this setup, should I put some rules with ovs-ofctl ?
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss