OVS+VXLAN實現兩個宿主機上的VM間的通信


 

 一、組網圖

 

 

 說明:

1、使用網絡命名空間表示vm1和vm2. 因為我沒有兩台物理服務器。

2、使用virtualbox 的兩條虛機模擬作為host1和host2。

二、配置指導

1、創建網橋 br0

 分別在host1和host2上輸入命令

 #ovs-vsctl add-br br0

 

2、創建網絡命名空間,用來模擬VM

分別在host1和host2上輸入命令

#ip netns add nsvm1

#ip netns add nsvm2

 

 3、創建配對端口,一端加入到命名空間,同時配置ip地址

在host1和host2上輸入命令

#ip link add tap1 type veth peer name tap2

#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

 

4、端口加入網橋

在host1和host2上輸入命令

#ovs-vsctl add-port br0 tap2

#ovs-vsctl add-port br0 tap4

 

5、驗證本地網橋相連的VM間通信

在host1上輸入命令

#ip netns exec nsvm1 ping 192.168.0.12

 

 6、配置vxlan隧道

在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

 

 7、驗證跨主機的vxlan隧道端口間通信

在host1上輸入命令

#ping 20.0.0.2

 

8、vxlan0端口加入到網橋,實現跨主機的VM間通信

在host1和host2上輸入命令

#ovs-vsctl add-port br0 vxlan0

 

9、驗證跨主機的VM通過vxlan隧道端口間通信

 

抓包如下:

 

三、結論:

 通過OVS+VXLAN隧道口,可以模擬出跨主機的VM間通過vxlan隧道的通信過程,從抓包結果看,也是有vxlan格式封裝的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM