OpenvSwitch系列之五 網橋特性功能配置


Open vSwitch系列之一 Open vSwitch誕生 

Open vSwitch系列之二 安裝指定版本ovs

Open vSwitch系列之三 ovs-vsctl命令使用

Open vSwitch系列之四 ovs-ofctl命令使用

Open vSwitch系列之五 網橋特性功能配置

Open vSwitch系列之六 vlan隔離

Open vSwitch系列之七 meter表限速

 

查看網橋mac學習地址表

ovs作為一個交換機,既可以工作在SDN模式也可以工作在普通交換機模式。工作在普通交換機模式下就有mac自學習功能。和普通的交換機一樣,ovs交換機也能查看mac和端口關系的對應表。

ovs-appctl fdb/show s1

設置網橋不連接控制器的轉發模式

ovs 交換機在連接不上控制器時有一個fail_mode的標志,所謂fail_mode就是故障模式,意思是SDN控制器故障時,交換機未連接控制器時的模式。

fail_mode 故障模式有兩種狀態,一種是standalone,一種是secure狀態。

如果是配置了standalone mode,在三次探測控制器連接不成功后,此時ovs-vswitchd將會接管轉發邏輯(后台仍然嘗試連接到控制器,一旦連接則退出fail狀態),OpenvSwitch將作為一個正常的mac 學習的二層交換機。

如果是配置了secure mode,則ovs-vswitchd將不會自動配置新的轉發流表,OpenvSwitch將按照原先有的流表轉發。

簡單來說:

standalone(default):清除所有控制器下發的流表,ovs自己接管 
secure:按照原來流表繼續轉發

ovs-vsctl get-fail-mode br0

ovs-vsctl set-fail-mode br0 secure 

再次查看交換機,可以看到交換機的fail_mode已經變成standalone模式。這里有一點需要說明,fail_mode連不上交換機之后的ovs的轉發模式,跟當前ovs交換機連沒連控制器沒有關系。

 

 同樣也可以刪除fail_mode

ovs-vsctl del-fail-mode br0 

 

開啟STP 生成樹協議

STP是Spanning Tree Protocol的縮寫,意思是指生成樹協議,可應用於計算機網絡中樹形拓撲結構建立,主要作用是防止網橋網絡中的冗余鏈路形成環路工作。

在上面的拓撲中,交換機之間形成環路,交換機中的廣播數據包會形成廣播風暴,而STP生成樹的作用就是經過計算阻塞交換機的部分端口,使得交換機之間不會形成環路。

查看ovs交換機是否開啟stp協議。

ovs-vsctl get bridge s1 stp_enable

設置交換機開啟stp協議

ovs-vsctl set bridge br0 stp_enable=true

查看網橋配置信息

對於一個網橋來說有很多特性,比如前面提到的是否開啟STP生成樹,當控制器故障時的fail-mode是standalone還是secure。網橋的特性遠不止於此,可以命令查看到一個網橋的配置信息。

ovs-vsctl list bridge s1

  

查看端口配置信息

網橋的配置信息可以查看到,同樣端口的配置也可以查看到。端口是否有vlan,tag號多少等。通過命令能夠查看到端口的特性。

ovs-vsctl list port s1 s1-eth1 

 

網卡加入網橋IP失效的解決辦法

 在ovs操作中常常有這么一個現象,將本機的網卡加入到網橋之中后就發現機器的ip地址失效了,不能ssh,不能ping通。這是因為當網卡加入網橋之后,網卡就是交換機上的一個端口,交換機作為二層設備,其端口是不可能有IP地址的,所以本機的IP地址失效。

那么這樣的情況如何處理?處理方法還是有的,關鍵點就在網橋的一個端口。網橋創建成功后會默認帶一個與網橋同名的port,並且這個port的類型是比較特殊的Internal。

ovs中port有四種類型

  類型       說明
Normal                             用戶可以把操作系統中的網卡綁定到ovs上,ovs會生成一個普通端口處理這塊網卡進出的數據包。
Internal                   端口類型為internal時,ovs會創建一塊虛擬網卡,虛擬網卡會與端口自動綁定。當ovs創建一個新網橋時,默認會創建一個與網橋同名的Internal Port。
Patch 當機器中有多個ovs網橋時,可以使用Patch Port把兩個網橋連起來。Patch Port總是成對出現,分別連接在兩個網橋上,在兩個網橋之間交換數據。
Tunne 隧道端口是一種虛擬端口,支持使用gre或vxlan等隧道技術與位於網絡上其他位置的遠程端口通訊。

 

 

 

 

 

 

 

Internal 類型可以看做每個OVS交換機有個可以用來處理數據報的本地端口,可以為這個網絡設備配置 IP 地址。當創建ovs網橋時會自帶一個同名的端口,該端口就是類型為Internal 端口。解決的思路就是Internal類型的port會生成一個虛擬網卡,將綁定到網橋的網卡的IP地址轉移到該虛擬網卡上,然后配置路由即可。

解決步驟:

1.查看當前網卡ip地址

查看路由

 

2.創建網橋,綁定端口

當創建網橋之后網橋自帶一個類型為Internal的port,該port就是一個虛擬網卡。使用ifconfig能夠查看得到,網卡名字就叫做s1.

  

3.將網卡eth0的ip地址轉移到網卡s1上

由於我是ssh遠程到虛擬機上操作,當將eth0綁定到網橋上之后ip失效,所以ssh斷開,只能在虛擬機上操作。

 

 

 4.查看路由

當前路由中已經沒有發往外網的路由

5.添加新路由

為新網卡s1添加網關路由 

route add default gw 30.0.0.1

 

6.測試生效

添加好路由之后可以發現能夠重新通外網。網卡eth0的ip在新網卡s1上生效

 

 

 

 

 


免責聲明!

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



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