Open vSwitch系列實驗(三):Open vSwitch的VxLAN隧道網絡實驗

1 實驗目的

該實驗通過Open vSwitch構建Overlay的VxLAN網絡,更直觀的展現VxLAN的優勢。在實驗過程中,可以瞭解如何建立VxLAN隧道並進行配置,並實現相同網段和不同網段之間的通信。

2 實驗原理

VxLAN 是 Virtual eXtensible LANs 的縮寫,它是對 VLAN 的一個擴展,是非常新的一個 tunnel 技術,在Open vSwitch中應用也非常多。Linux 內核的 upstream 中也剛剛加入 VXLAN 的實現。相比 GRE tunnel 它有着很好的擴展性,同時解決了很多其它問題。

從數量上講,它把 12 bit 的 VLAN tag 擴展成了 24 bit。從實現上講,它是 L2 over UDP,它利用了UDP 同時也是 IPv4 的單播和多播,可以跨 L3 邊界,很巧妙地解決了 GRE tunnel 和 VLAN 存在的不足,讓組網變得更加靈活。

3 實驗任務

基於Open vSwitch的VxLAN隧道,實現了相同和不同網段內設備的通信,啓動OpenvSwitch服務,創建VxLAN隧道,本實驗主要是通過在OpenvSwitch上手動命令操作設置連接VxLAN來實現相同和不同網段的通信;

基於Open vSwitch的VxLAN隧道實驗網絡 圖1

因實驗平臺中在虛擬機中沒有創建數據層面下的虛擬機,如圖中的VM1、VM2,所以通過在數據層面Br0上實現不同網段通信,以達到和VM1、VM2相同和不同網段通信的目的。此實驗將創建兩個網橋,一個作爲控制層面,如包含eth0端口的Br1;一個作爲數據層面,如Br0,兩臺Mininet虛擬機的Br0在實驗中分別屬於相同和不同的網段。

首先先對Vxlan有一個瞭解:

https://blog.csdn.net/zhipingxi/article/details/78741942

網段的定義:

通常使用同一物理層的設備之間必然通過相同的傳輸介質直接相互連接,(如交叉雙絞線直接連接的兩臺主機),但是兩組其傳輸介質並非直接相連的網絡設備,如果它們的傳輸介質通過工作在物理層的擴展設備如中繼器集線器等轉接連接,則仍然被視爲同一物理層中的設備,是一個而非兩個網段。另外,工作在數據鏈路層或更高層的設備如網橋交換機路由器等等,由它們連接起來的兩組設備仍然分別處於各自獨立的物理層,因此是兩個網段。

網橋實現兩個網段的橋接功能,同時也起到重發器的作用,即延長線路距離及信號再生和轉發。交換機原理上也工作在數據鏈路層,可實現多個網段的信息交換,網橋和交換機可以隔離兩個網段,可以防止在某一個網段的數據被無條件地廣播到另一網段,這是因爲網橋接到數據幀後,判斷接收到的數據幀目的地址是否和源地址在同一網段,是的話,就不再轉發。交換機被稱爲多端口網橋,交換機的每個端口可以連接一個網段。 [1] 

前面所討論的學術定義是“網段”在物理層的嚴格定義,“網段”還有一些不嚴格的含義,比如指代以太網上的一個廣播域,這是數據鏈路層上一個獨立的內部相互作用區域。

4.1 預先配置好兩個虛擬機

4.1.1   ifconfig

4.1.2  分別在兩臺機器上創建網橋

 ovs-vsctl add-br br0  #數據層面
 ovs-vsctl add-br br1  #控制層面

4.1.3   將ens33的IP賦予給這個網橋br1

ifconfig ens33 0 up
ifconfig br1 20.0.4.196/29 up

4.1.4  給mn虛擬機的br1重新添加路由並添加端口ens33

route add default gw 20.0.4.193

ovs-vsctl add-port br1 ens33 

另一臺虛擬機也是如此:

ovs-vsctl add-br br0  
ovs-vsctl add-br br1  
ifconfig ens33 0 up
ifconfig br1 20.0.4.195/29 up
route add default gw 20.0.4.193
ovs-vsctl add-port br1 ens33 
ovs-vsctl show

4.2  設置VxLAN實現同一網段的通信

4.2.1 給兩臺虛擬機上的br0配置一個IP

ifconfig br0 30.0.0.2/8 up #第一個虛擬機
ifconfig br0 30.0.0.3/8 up #第二個虛擬機

可發現兩個的br1是可以ping通的:

而一號機ping二號機的br0是不通的:

4.2.2  開通Vxlan隧道

我們需要搭建一個隧道讓兩機的br0連接起來這樣就可以ping通啦(如下:第一行是一號機第二行是二號機)

ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.195 
ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.196

兩機互ping:

抓包測試:

sudo tcpdump -i ens33

4.4 設置VxLAN實現不同網段的通信

重新設置兩機的br0的地址:

ifconfig br0 30.0.0.1/8 up
ifconfig br0 40.0.0.1/8 up

 然後設置靜態路由:

route add –net 40.0.0.0 netmask 255.0.0.0 gw 30.0.0.1 dev br0
route add –net 30.0.0.0 netmask 255.0.0.0 gw 40.0.0.1 dev br0

HOWEVER設置靜態路由的時候出了點小問題導致無法ping通

總結:更加了解了網段,網關,網橋還有Vxlan隧道的概念

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章