說明:服務器
一、使用網絡命名空間表示vm1和vm2. 由於我沒有兩臺物理服務器。網絡
二、使用virtualbox 的兩條虛機模擬做爲host1和host2。spa
分別在host1和host2上輸入命令blog
#ovs-vsctl add-br br0ip
分別在host1和host2上輸入命令rem
#ip netns add nsvm1table
#ip netns add nsvm2virtualbox
在host1和host2上輸入命令配置
#ip link add tap1 type veth peer name tap2iptables
#ip link add tap3 type veth peer name tap4
#ip link set tap1 netns nsvm1
#ip link set tap3 netns nsvm2
配置ip地址。
#ip netns exec nsvm1 ip addr add 192.168.0.11/24 dev tap1 (host2上配置爲 192.168.0.13)
#ip netns exec nsvm2 ip addr add 192.168.0.12/24 dev tap3 (host2上配置爲 192.168.0.14)
設置端口up.
#ip netns exec nsvm1 ip link set tap1 up
#ip netns exec nsvm2 ip link set tap3 up
#ip link set tap2 up
#ip link set tap4 up
在host1和host2上輸入命令
#ovs-vsctl add-port br0 tap2
#ovs-vsctl add-port br0 tap4
在host1上輸入命令
#ip netns exec nsvm1 ping 192.168.0.12
在host1上配置以下命令
#ip link add vxlan0 type vxlan id 42 dstport 4789 remote 172.16.56.4 local 172.16.56.3 dev enp0s3
#ip addr add 20.0.0.1/24 dev vxlan0
#ip link set vxlan0 up
在host2上進行對應配置(remote/local互換,以及ip)
#ip link add vxlan0 type vxlan id 42 dstport 4789 remote 172.16.56.3 local 172.16.56.4 dev enp0s3
#ip addr add 20.0.0.2/24 dev vxlan0
#ip link set vxlan0 up
刪除主機上默認的INPUT iptables規則
iptables -D INPUT 11
在host1上輸入命令
#ping 20.0.0.2
八、vxlan0端口加入到網橋,實現跨主機的VM間通訊
在host1和host2上輸入命令
#ovs-vsctl add-port br0 vxlan0
九、驗證跨主機的VM經過vxlan隧道端口間通訊
抓包以下:
3、結論:
經過OVS+VXLAN隧道口,能夠模擬出跨主機的VM間經過vxlan隧道的通訊過程,從抓包結果看,也是有vxlan格式封裝的。