OVS problem-shoot

SDNLAB 上相關(guān)博客可以看看

http://www.sdnlab.com/tag/openvswitch/page/3/

關(guān)于ovs-vsctl用法參考

關(guān)于ovs-ofctl用法參考

1、mininet中自帶的OVS會(huì)出現(xiàn)很多問題,比如沒有ovs-sandbox,并不能很好完成官網(wǎng)上相關(guān)實(shí)驗(yàn),為了避免新安裝的OVS與之前的沖突,可以不用安裝,直接下載一個(gè)官網(wǎng)的最新版packet,在tutorial文件夾中運(yùn)行ovs-sandbox。直接按照官網(wǎng)進(jìn)行實(shí)驗(yàn)
http://aidaiz.com/openvswitch-build/
2、ovs-vsctl主要用于創(chuàng)建網(wǎng)橋以及相應(yīng)的端口等,與網(wǎng)橋相關(guān);而ovs-ofctl主要是用來控制流表。

3、帶內(nèi)帶外控制:

帶外網(wǎng)管是指通過專門的網(wǎng)管通道實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的管理,將網(wǎng)管數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)分開,為網(wǎng)管數(shù)據(jù)建立獨(dú)立通道。在這個(gè)通道中,只傳輸管理數(shù)據(jù)、統(tǒng)計(jì)信息、計(jì)費(fèi)信息等,網(wǎng)管數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)分離,可以提高網(wǎng)管的效率與可靠性,也有利于提高網(wǎng)管數(shù)據(jù)的安全性。
帶內(nèi)管理使得網(wǎng)絡(luò)中的網(wǎng)管數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)在相同的鏈路中傳輸,當(dāng)管理數(shù)據(jù)(包括SNMP,Netflow,Radius,計(jì)費(fèi)等)較多時(shí),將會(huì)影響到整個(gè)網(wǎng)絡(luò)的性能;管理數(shù)據(jù)的流量較少,對(duì)整個(gè)網(wǎng)絡(luò)的性能影響不明顯,可采用帶內(nèi)管理。

4、OVS使用下列框架監(jiān)控流量

sFlow NetFlow Port Mirroring(SPAN RSPAN ERSPAN)

5、OVS框架
Paste_Image.png
6、公鑰私鑰以及SSL加密理解

http://chenling1018.blog.163.com/blog/static/1480254201058112410789/
http://www.linuxde.net/2012/03/8301.html
證書機(jī)構(gòu)有自己的

8、OVS上流表添加基礎(chǔ)

ovs-ofctl add-flow ovs-switch "in_port=2,actions=output:8"
flow有很多syntax, 一半來說actions之前都是match的部分,常用的一般是:

in_port: switch的端口 dl_src: 源mac地址
dl_dst:目的mac地址
dl_type:以太網(wǎng)協(xié)議類型 0x0806是arp packet 0x0800是ip packet
nw_src:源IP
nw_dst:目的ip
nw_proto:協(xié)議類型 ,注意和dl_type區(qū)分,同時(shí)也需要和dl_type一起使用,比如dl_type是ip(0x0800),那么nw_proto=1就表示icmp packet
tp_src: tcp udp源端口
tp_dst: tcp udp目的端口

ip      Same as dl_type=0x0800. 
icmp        Same as dl_type=0x0800,nw_proto=1.  
tcp     Same as dl_type=0x0800,nw_proto=6.  
udp     Same as dl_type=0x0800,nw_proto=17. 
arp     Same as dl_type=0x0806. 
rarp        Same as dl_type=0x8035. 

actions:
output:port
controller(key=value) 送到controller作為packet-in 消息,括號(hào)內(nèi)的key value pair可以是:
reason=reason reason 可以是action,no_match,invalid_ttl
id=controller-id 默認(rèn)是0,特殊的controller會(huì)有一個(gè)16位的id
mod_dl_src:mac
Sets the source Ethernet address to mac.
mod_dl_dst:mac
Sets the destination Ethernet address to mac.
mod_nw_src:ip
Sets the IPv4 source address to ip.
mod_nw_dst:ip
Sets the IPv4 destination address to ip.
mod_tp_src:port
Sets the TCP or UDP source port to port.
mod_tp_dst:port
Sets the TCP or UDP destination port to port.

9、OVS的兩種模式

Standalone:這種模式下,沒有運(yùn)行controller的情況下,OVS會(huì)自動(dòng)調(diào)回普通switch模式,如果有controller的情況,ovs會(huì)自動(dòng)變成 openflow switch 命令:
ovs-vsctl set-fail-mode ovs-switch standalone
ovs-switch替換成bridge的名字
Secure:這種模式下,無論有沒有controller, ovs都會(huì)作為openflow switch運(yùn)行, 也就是所有interface在bridge上,等待controller或者用戶添加flow到switch來進(jìn)行通信
ovs-vsctl set-fail-mode ovs-switch secure

10、OVS的卸載和升級(jí)

https://github.com/mininet/mininet/wiki/Installing-new-version-of-Open-vSwitch

11、當(dāng)出現(xiàn)如下問題時(shí)

ovs-vsctl: unix:/usr/var/run/openvswitch/db.sock: database connection failed (Connection refused)
解決辦法為:sudo /usr/share/openvswitch/scripts/ovs-ctl start

12、一些注意:

http://docs.openvswitch.org/en/latest/tutorials/ovn-openstack/
openvswitch官方文檔2.7.90版本中,在OVN一節(jié)中增加了對(duì)openstack應(yīng)用,等學(xué)習(xí)到openstack時(shí)可以了解。

13、An overview of Openvswitch implementation
  • OVS分為用戶層和內(nèi)核層,用戶層包括一些模塊,以daemon程序存在,實(shí)現(xiàn)了以下功能:交換機(jī)和流表的實(shí)現(xiàn),交換機(jī)管理組件,數(shù)據(jù)庫,和內(nèi)核層之間的交互。當(dāng)OVS服務(wù)啟動(dòng)時(shí)會(huì)運(yùn)行以下三個(gè)daemon:ovs-vswitchd,是交換機(jī)的核心實(shí)現(xiàn)模塊;ovsdb-server,管理虛擬交換機(jī)和流表的配置的數(shù)據(jù)庫系統(tǒng);ovs-brcompatd,keeps the compatibility with the traditional bridges。
  • 其中最重要的是ovs-vswitchd,他直接通過netlink協(xié)議和內(nèi)核進(jìn)行交互。Ovs-vstl是一個(gè)配置交換機(jī)的小工具,顯然,需要先和ovs-vswitchd進(jìn)行交互。ovs-vswitchd將交換機(jī)的配置和變更信息保存到數(shù)據(jù)庫中,該數(shù)據(jù)庫由vsdb-server直接管理,因此,ovs-vswitchd對(duì)數(shù)據(jù)庫的信息增減也得先和vsdb-server進(jìn)行交互,via Unix domain socket, in order to retrieve or save the configuration information,這也是為什么OVS的配置能夠開機(jī)保留。
  • Ovs-vsctl可以完成大部分的openvswitch的管理,ovs-appctl也可以通過發(fā)送一些內(nèi)部命令給ovs-vswitchd完成一些簡單操作。但有時(shí)候需要直接管理內(nèi)核的datapath,這種情況下你可以使用ovs-dpctl去使ovs-vswitchd直接管理內(nèi)核層的datapath,而不需要database。
  • 當(dāng)需要和ovsdb-server通信做一些數(shù)據(jù)庫操作時(shí),可以使用ovsdb-client,如果想不通過ovsdb-server直接管理數(shù)據(jù)庫可以通過ovsdb-tool工具。
    OVS可以通過openflow協(xié)議進(jìn)行遠(yuǎn)程管理,實(shí)現(xiàn)軟件定義網(wǎng)絡(luò),sFlow是一個(gè)數(shù)據(jù)包監(jiān)控和分析協(xié)議,兩者都可以通過ovs-ofctl進(jìn)行配置管理。
14、OVS支持的端口類型:
  • Normal port:用戶可以把操作系統(tǒng)中的網(wǎng)卡綁定到Open vSwitch上,Open vSwitch會(huì)生成一個(gè)普通端口處理這塊網(wǎng)卡進(jìn)出的數(shù)據(jù)包。
  • Internal Port: 當(dāng)設(shè)置端口類型為internal,Open vSwitch會(huì)創(chuàng)建一塊虛擬網(wǎng)卡,此端口收到的所有數(shù)據(jù)包都會(huì)交給這塊網(wǎng)卡,網(wǎng)卡發(fā)出的包會(huì)通過這個(gè)端口交給Open vSwitch。當(dāng)Open vSwitch創(chuàng)建一個(gè)新網(wǎng)橋時(shí),默認(rèn)會(huì)創(chuàng)建一個(gè)與網(wǎng)橋同名的Internal Port,同時(shí)也創(chuàng)建一個(gè)與Port同名的Interface。三位一體,所以操作系統(tǒng)里就多了一塊網(wǎng)卡,但是狀態(tài)是down的。
  • Patch Port: 當(dāng)機(jī)器中有多個(gè)Open vSwitch網(wǎng)橋時(shí),可以使用Patch Port把兩個(gè)網(wǎng)橋連起來。Patch Port總是成對(duì)出現(xiàn),分別連接在兩個(gè)網(wǎng)橋上,在兩個(gè)網(wǎng)橋之間交換數(shù)據(jù)。
  • Tunnel Port: 隧道端口是一種虛擬端口,支持使用gre或vxlan等隧道技術(shù)與位于網(wǎng)絡(luò)上其他位置的遠(yuǎn)程端口通訊。
15、清除OVS的配置和重新初始化OVS
  • 單獨(dú)的配置用 remove即可,如比如我們用如下命令設(shè)置了vlan
    ovs-vsctl set port vnet0 tag=100
    用remove替代set,并去掉賦值的=語句即可
    ovs-vsctl remove port vnet0 tag 100
  • 重新初始化OVS
    service openvswitch stop
    rm -rf /etc/openvswitch/conf.db
    service openvswitch start
16、OVS 添加端口問題

網(wǎng)上sudo ovs-vsctl add-port br0 <port>
執(zhí)行上述命令都是會(huì)報(bào)錯(cuò)的,最后顯示:

Port "vnet10"
tag: 103
Interface "vnet10"
error: "could not open network device vnet10 (No such device)"

因?yàn)闆]有這個(gè)端口,所以報(bào)錯(cuò),類型設(shè)置為虛擬端口可以解決這個(gè)問題
ovs?vsctl add?port br0 vlan10 ?? set Interface vlan10 type=internal
http://aidaiz.com/openvswitch-build/ 可以詳細(xì)參考這篇文章,自己真是渣渣

17、網(wǎng)橋添加物理端口eth0時(shí)斷開遠(yuǎn)程連接問題

根據(jù)官方文檔解釋,一個(gè)物理網(wǎng)卡連接到一個(gè)網(wǎng)橋不應(yīng)該分配地址,否則該地址不會(huì)完整工作。可以將該地址轉(zhuǎn)交到一個(gè) internal端口。

$ ovs-vsctl add-br br0
$ ovs-vsctl add-port br0 eth0  #這步就導(dǎo)致所有遠(yuǎn)程連接到eth0的連接斷開
#解決
$ ifconfig eth0 0.0.0.0
$ ifconfig br0 <原來的IP地址>

注意兩點(diǎn),一是要將原來的eth0的地址清空,新增加的端口br0可以使用原來的地址,即通過上述命名直接靜態(tài)配置,也可以通過啟用DHCP方式。
sudo dhclient eth0 #在端口eth0上打開dhcp監(jiān)聽服務(wù)
可能用到的操作
sudo dhclient -r eth0 #釋放該地址
sudo dhclient -d eth0 #重新分配地址
實(shí)際測(cè)試兩種方法都有效。
還要注意一點(diǎn)就是路由,br0接管eth0 后,路由表會(huì)失效,通過 route -n查看eth0的路由表,再根據(jù)相應(yīng)命令添加。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,415評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,104評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,884評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,647評(píng)論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,130評(píng)論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,366評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,887評(píng)論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,737評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,939評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,174評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,586評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,827評(píng)論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,608評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,914評(píng)論 2 372

推薦閱讀更多精彩內(nèi)容

  • 裝載自http://sdnhub.cn/index.php/openv-switch-full-guide/ 1 ...
    ximitc閱讀 6,027評(píng)論 0 11
  • OpenStackOVSGRE/VXLAN網(wǎng)絡(luò) 學(xué)習(xí)或者使用OpenStack普遍有這樣的現(xiàn)象:50%的時(shí)間花費(fèi)在...
    石頭和齊齊閱讀 2,458評(píng)論 0 12
  • Open vSwitch介紹 在過去,數(shù)據(jù)中心的服務(wù)器是直接連在硬件交換機(jī)上,后來VMware實(shí)現(xiàn)了服務(wù)器虛擬化技...
    殺破魂閱讀 24,900評(píng)論 1 18
  • 1、構(gòu)建物理機(jī)和物理機(jī)相互連接的網(wǎng)絡(luò) 在安裝open vswitch的主機(jī)上有兩塊網(wǎng)卡,分別為eth0、eth1,...
    殺破魂閱讀 3,887評(píng)論 0 0
  • neutron網(wǎng)絡(luò)目的是為OpenStack云更靈活的劃分網(wǎng)絡(luò),在多租戶的環(huán)境下提供給每個(gè)租戶獨(dú)立的網(wǎng)絡(luò)環(huán)境。 n...
    石頭和齊齊閱讀 893評(píng)論 0 0