其实Open vSwitch组Vxlan的方法跟设置GRE/patch port的方法差不多的:

基本场景:

  • 物理机HostA 网卡eth0 的 IP 是172.16.8.105
  • 物理机HostB 网卡eth0 的 IP 是172.16.8.106

创建网桥:

# HostA
ovs-vsctl add-br br0  
ovs-vsctl add-port br0 eth0  
ifconfig eth0 0  
ip a add 172.16.8.105 dev br0  
ip link set br0 up

# HostB
ovs-vsctl add-br br0  
ovs-vsctl add-port br0 eth0  
ifconfig eth0 0  
ip a add 172.16.8.106 dev br0  
ip link set br0 up  

增加netns命名空间

# HostA 和 HostB
ip netns add ns1  

创建内部端口

# HostA 和 HostB
ovs-vsctl add-port br0 tap1 -- set Interface tap1 type=internal  

设置命令空间

# HostA 和 HostB
ip link set tap1 netns ns1  

配置

# HostA 
ip netns exec ns1 ip addr add 192.168.0.110/24 dev tap1  
ip netns exec ns1 ip link set tap1 up  
ip netns exec ns1 ip link set lo up  
ip netns exec ns1 ping 192.168.0.110

# HostB
ip netns exec ns1 ip addr add 192.168.0.111/24 dev tap1  
ip netns exec ns1 ip link set tap1 up  
ip netns exec ns1 ip link set lo up  
ip netns exec ns1 ping 192.168.0.111  

设置vxlan

# HostA
ovs-vsctl add-port br1 vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=172.16.8.106

# HostB
ovs-vsctl add-port br1 vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=172.16.8.105  

测试(在HostA执行)

ip netns exec ns1 ping 192.168.0.110  
ip netns exec ns1 ping 192.168.0.111  
comments powered by Disqus