我想testingovs上的LACP绑定。 我有3台Ubuntu电脑。
使用其中的2个作为openvswitch,其中一个作为主机。
第一个ubuntu(称之为switch1)有三个网卡(其中两个是usb / eth转换器)
第二个ubuntu(称为switch2)有2个网卡,其中一个是usb / eth转换器(与上面的Marvell Tech一样)
第三个ubuntu(称之为主机)将主机连接到switch1,它有一个embedded式以太网接口接口。
我想在交换机1和交换机2上绑定(lacp = active)eth0 end eth1。然后用电缆将switch1的eth0连接到switch2的eth0。 并连接eth1的。
我做了所有的设置。 在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
我的第一个问题是为什么我的接口禁用债券?
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
我在Switch2上做了相同的ovs设置。 并连接switch1和2.testing债券连接我已经计划从主机发送一个ping到任何地方,把一个规则switch1到端口eth2的任何东西都应该镜像到switch0上的bond0。
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
之后,当我检查镜子
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}
我开始从主机发送ping通过ping -I eth0 anywhere.com切换1,并通过sudo tcpdump -i eth2监听switch1我可以看到来自主机的arp消息
… 17:00:49.293446 ARP,要求who-has s3-website-us-west-1.amazonaws.com告诉192.168.50.51,长度为46 …
但是,当我尝试在Switch1上侦听eth0或eth1时,没有任何东西来这些端口。 我不能用tcpdump来监听bond0端口,但我可以检查我的镜像。
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}
我可以看到有一些tx / rx字节,所以我期望从我的switch1发送一切通过bond0从eth2到switch2。 但是,当我检查switch2接口与tcpdump,我什么也看不到switch2。
在这里,我的第二个问题出现了,是否有任何方法来监听bond0上的数据包(两个交换机)?
而我最后一个问题,我想当我把eth2stream量镜像到switch0的输出端口bond0时,它应该把数据包转发到switch2; 这个设置有什么问题吗?我应该在ovs-ofctl中join一些规则吗?