本篇內(nèi)容介紹了“openvswitch的原理和常用命令介紹”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供源城網(wǎng)站建設(shè)、源城做網(wǎng)站、源城網(wǎng)站設(shè)計(jì)、源城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、源城企業(yè)網(wǎng)站模板建站服務(wù),十年源城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
openvSwitch是一個(gè)高質(zhì)量的、多層虛擬交換機(jī),使用開(kāi)源Apache2.0許可協(xié)議,由 Nicira Networks開(kāi)發(fā),主要實(shí)現(xiàn)代碼為可移植的C代碼。它的目的是讓大規(guī)模網(wǎng)絡(luò)自動(dòng)化可以通過(guò)編程擴(kuò)展,同時(shí)仍然支持標(biāo)準(zhǔn)的管理接口和協(xié)議(例如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。此外,它被設(shè)計(jì)位支持跨越多個(gè)物理服務(wù)器的分布式環(huán)境,類似于VMware的vNetwork分布式vswitch或Cisco Nexus 1000 V。Open vSwitch支持多種linux 虛擬化技術(shù),包括Xen/XenServer, KVM和VirtualBox。
openvswitch是一個(gè)虛擬交換軟件,主要用于虛擬機(jī)VM環(huán)境,作為一個(gè)虛擬交換機(jī),支持Xen/XenServer,KVM以及virtualBox多種虛擬化技術(shù)。在這種虛擬化的環(huán)境中,一個(gè)虛擬交換機(jī)主要有兩個(gè)作用:傳遞虛擬機(jī)之間的流量,以及實(shí)現(xiàn)虛擬機(jī)和外界網(wǎng)絡(luò)的通信。
內(nèi)核模塊實(shí)現(xiàn)了多個(gè)“數(shù)據(jù)路徑”(類似于網(wǎng)橋),每個(gè)都可以有多個(gè)“vports”(類似于橋內(nèi)的端口)。每個(gè)數(shù)據(jù)路徑也通過(guò)關(guān)聯(lián)一下流表(flow table)來(lái)設(shè)置操作,而這些流表中的流都是用戶空間在報(bào)文頭和元數(shù)據(jù)的基礎(chǔ)上映射的關(guān)鍵信息,一般的操作都是將數(shù)據(jù)包轉(zhuǎn)發(fā)到另一個(gè)vport。當(dāng)一個(gè)數(shù)據(jù)包到達(dá)一個(gè)vport,內(nèi)核模塊所做的處理是提取其流的關(guān)鍵信息并在流表中查找這些關(guān)鍵信息。當(dāng)有一個(gè)匹配的流時(shí)它執(zhí)行對(duì)應(yīng)的操作。如果沒(méi)有匹配,它會(huì)將數(shù)據(jù)包送到用戶空間的處理隊(duì)列中(作為處理的一部分,用戶空間可能會(huì)設(shè)置一個(gè)流用于以后碰到相同類型的數(shù)據(jù)包可以在內(nèi)核中執(zhí)行操作)。
ovs-vswitchd:OVS守護(hù)進(jìn)程是,OVS的核心部件,實(shí)現(xiàn)交換功能,和Linux內(nèi)核兼容模塊一起,實(shí)現(xiàn)基于流的交換(flow-based switching)。它和上層 controller 通信遵從 OPENFLOW 協(xié)議,它與 ovsdb-server 通信使用 OVSDB 協(xié)議,它和內(nèi)核模塊通過(guò)netlink通信,它支持多個(gè)獨(dú)立的 datapath(網(wǎng)橋),它通過(guò)更改flow table 實(shí)現(xiàn)了綁定和VLAN等功能。
ovsdb-server:輕量級(jí)的數(shù)據(jù)庫(kù)服務(wù),主要保存了整個(gè)OVS 的配置信息,包括接口啊,交換內(nèi)容,VLAN啊等等。ovs-vswitchd 會(huì)根據(jù)數(shù)據(jù)庫(kù)中的配置信息工作。它于 manager 和 ovs-vswitchd 交換信息使用了OVSDB(JSON-RPC)的方式。
ovs-dpctl:一個(gè)工具,用來(lái)配置交換機(jī)內(nèi)核模塊,可以控制轉(zhuǎn)發(fā)規(guī)則。
ovs-vsctl:主要是獲取或者更改ovs-vswitchd 的配置信息,此工具操作的時(shí)候會(huì)更新ovsdb-server 中的數(shù)據(jù)庫(kù)。
ovs-appctl:主要是向OVS 守護(hù)進(jìn)程發(fā)送命令的,一般用不上。
ovsdbmonitor:GUI 工具來(lái)顯示ovsdb-server 中數(shù)據(jù)信息。
ovs-controller:一個(gè)簡(jiǎn)單的OpenFlow 控制器
ovs-ofctl:用來(lái)控制OVS 作為OpenFlow 交換機(jī)工作時(shí)候的流表內(nèi)容。
1.VM實(shí)例 instance 產(chǎn)生一個(gè)數(shù)據(jù)包并發(fā)送至實(shí)例內(nèi)的虛擬網(wǎng)絡(luò)接口 VNIC,圖中就是 instance 中的 eth0.
2.這個(gè)數(shù)據(jù)包會(huì)傳送到物理機(jī)上的VNIC接口,如圖就是vnet接口.
3.數(shù)據(jù)包從 vnet NIC 出來(lái),到達(dá)橋(虛擬交換機(jī)) br100 上.
4.數(shù)據(jù)包經(jīng)過(guò)交換機(jī)的處理,從物理節(jié)點(diǎn)上的物理接口發(fā)出,如圖中物理機(jī)上的 eth0 .
5.數(shù)據(jù)包從 eth0 出去的時(shí)候,是按照物理節(jié)點(diǎn)上的路由以及默認(rèn)網(wǎng)關(guān)操作的,這個(gè)時(shí)候該數(shù) 據(jù)包其實(shí)已經(jīng)不受你的控制了.
注:一般 L2 switch 連接 eth0 的這個(gè)口是一個(gè) trunk 口, 因?yàn)樘摂M機(jī)對(duì)應(yīng)的 VNET 往往會(huì)設(shè)置 VLAN TAG, 可以通過(guò)對(duì)虛擬機(jī)對(duì)應(yīng)的 vnet 打 VALN TAG 來(lái)控制虛擬機(jī)的網(wǎng)絡(luò)廣播域. 如果跑多個(gè)虛擬機(jī)的話, 多個(gè)虛擬機(jī)對(duì)應(yīng)的 vnet 可以設(shè)置不同的 vlan tag, 那么這些虛擬機(jī)的數(shù)據(jù)包從 eth0(4)出去的時(shí)候, 會(huì)帶上TAG標(biāo)記. 這樣也就必須是 trunk 口才行。
通過(guò)以下命令即可實(shí)現(xiàn):
root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-br br0 root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-port br0 eth0 root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-port br0 eth2
添加網(wǎng)橋:
ovs-vsctl add-br br0
列出所有網(wǎng)橋:
ovs-vsctl list-br
判斷網(wǎng)橋是否存在:
ovs-vsctl br-exists br0
將物理網(wǎng)卡掛載到網(wǎng)橋上:
ovs-vsctl add-port br0 eth0
列出網(wǎng)橋中的所有端口:
ovs-vsctl list-ports br0
列出所有掛載到網(wǎng)卡的網(wǎng)橋:
ovs-vsctl port-to-br eth0
查看ovs的網(wǎng)絡(luò)狀態(tài):
ovs-vsctl show
刪除網(wǎng)橋上已經(jīng)掛載的網(wǎng)口:
ovs-vsctl del-port br0 eth0
刪除網(wǎng)橋:
ovs-vsctl del-br br0
設(shè)置控制器:
ovs-vsctl set-controller br0 tcp:ip:6633
刪除控制器:
ovs-vsctl del-controller br0
設(shè)置支持OpenFlow Version 1.3:
ovs-vsctl set bridge br0 protocols=OpenFlow13
刪除OpenFlow支持設(shè)置:
ovs-vsctl clear bridge br0 protocols
設(shè)置vlan標(biāo)簽:
ovs-vsctl add-port br0 vlan3 tag=3 -- set interface vlan3 type=internal
刪除vlan標(biāo)簽:
ovs-vsctl del-port br0 vlan3
查詢 VLAN:
ovs-vsctl show ifconfig vlan3
查看網(wǎng)橋上所有交換機(jī)端口的狀態(tài):
ovs-ofctl dump-ports br0
查看網(wǎng)橋上所有的流規(guī)則:
ovs-ofctl dump-flows br0
查看ovs的版本:
ovs-ofctl -V
“openvswitch的原理和常用命令介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!