环境如上: 两边一个是ubuntu,一个是centos,都是双网卡绑定。

步骤:

两台机器都建立网桥:

ovs-vsctl add-br remibr0  

可以增加一个vlan tag=101的管理网桥挂到remibr0上去

ovs-vsctl add-br mgmt0 remibr0 101  

更进一步,两个网卡bonding,注意,这里需要硬件交换机配置802.3ad才能支持balance-tcp:

ovs-vsctl add-bond remibr0 bond0 em49 em50 bond_mode=balance-tcp lacp=active other_config:lacp-time=fast  

在ubuntu机器上执行:

ovs-vsctl add-br remibr0  
ovs-vsctl add-port remibr0 vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=92.168.2.34  
ovs-vsctl add-port remibr0 vi0 -- set Interface vi0 type=internal  
ifconfig vi0 10.250.204.10/24 up  

centos上修改执行以上的脚本即可。

ubuntu看看:

# ovs-vsctl show
129f100b-1377-46bd-89ba-eaf1f1bc5162  
 Bridge "remibr0"
   Port "vi0"
     Interface "vi0"
       type: internal
   Port "vxlan0"
     Interface "vxlan0"
       type: vxlan
       options: {remote_ip="92.168.2.34"}
   Port "remibr0"
     Interface "remibr0"
       type: internal
 ovs_version: "2.3.90"

互相ping一下,10.250.204.10和10.250.204.20,如果能通就ok了。

更进一步,假设我们在这两台机器上布了keepalived,设置虚拟ip是10.250.204.30

 virtual_ipaddress {
 10.250.204.30/24 
 }

两台机器都运行keepalived后,你会发现他们会自动从vi0这个接口上互相发现对方。

注意:MTU 真实的网络环境中如果要跑vxlan,由于缺省mtu是1500,很有可能帧过大,我们需要给vxlan留出空间,否则就会发生fragmentation(将数据包分割成适合实体网络传输所能接受大小)。

ip link set dev vi0 mtu 1412  
comments powered by Disqus