场景:
使用docker容器来对网络进行仿真,一个docker容器对应一个网络节点,每个docker容器中有一个ovs交换机,docker容器之间使用veth-pair连接起来,并且绑定到ovs交换机上,docker容器的ip地址设置在ovs的网卡上,如:创建了s1的ovs交换机,就设置本地端口s1的IP地址为docker容器的IP地址,其他的都是转发的端口,命令(ifconfig s1 192.168.0.1 netmask 255.255.255.0 up)。整个网络与宿主机隔离。
docker容器内的默认路由为 route add default dev s1这样,即进入网络当中。
当使用ovs-vsctl set-controller 命令时,由于网络时有环的,当建立ovs到控制器的连接时,会产生arp风暴。
这是由于ovs默认时带内设置,需要把ovs和连接远程控制器都设置为带外设置。
可参考:https://docs.openvswitch.org/en/latest/faq/openflow
设置命令
ovs-vsctl set controller br0 connection-mode=out-of-band
ovs-vsctl set bridge br0 other-config:disable-in-band=true