国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SDN架構(gòu)的VXLAN網(wǎng)絡(luò)探索與實驗研究

2022-04-21 21:13王飛
時代金融 2022年4期
關(guān)鍵詞:流表租戶交換機(jī)

王飛

摘要:近年來,隨著數(shù)據(jù)中心的不斷發(fā)展,實現(xiàn)了數(shù)據(jù)中心計算和存儲資源的虛擬化和按需分配,但網(wǎng)絡(luò)虛擬化一直受各種因素的限制,SDN技術(shù)的出現(xiàn),為有效整合現(xiàn)有數(shù)據(jù)中心網(wǎng)絡(luò)資源提供很好的解決方式。本文通過軟件仿真,對數(shù)據(jù)中心VXLAN的構(gòu)建、openflow流表的下發(fā)機(jī)制進(jìn)行實驗和驗證,實現(xiàn)了SDN網(wǎng)絡(luò)集中規(guī)劃管理、控制面和數(shù)據(jù)面分離、網(wǎng)絡(luò)軟件化和網(wǎng)絡(luò)可編程等特性,為省級數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)升級轉(zhuǎn)型提供實踐經(jīng)驗。

如今,數(shù)據(jù)中心計算和存儲資源的虛擬化和按需分配,已基本滿足各種軟硬件資源池化和信息系統(tǒng)整合重構(gòu)的要求,充分保障業(yè)務(wù)系統(tǒng)的連續(xù)性。但隨著數(shù)據(jù)中心的不斷發(fā)展壯大,網(wǎng)絡(luò)資源的有效整合利用一直被各種因素制約和限制,值得關(guān)注。

一、數(shù)據(jù)中心網(wǎng)絡(luò)資源利用存在的問題

(一)虛擬化環(huán)境下網(wǎng)絡(luò)配置的復(fù)雜度極大提升

隨著數(shù)據(jù)中心計算及存儲資源不斷虛擬化,形成多個虛擬網(wǎng)絡(luò)共享底層物理網(wǎng)絡(luò)資源的情況;一方面物理層的故障將會影響虛擬網(wǎng)絡(luò)的可用性,導(dǎo)致網(wǎng)絡(luò)服務(wù)中斷;另一方面不同業(yè)務(wù)系統(tǒng)間虛擬網(wǎng)絡(luò)的增加,安全策略的不同,也進(jìn)一步增加了網(wǎng)絡(luò)配置的復(fù)雜度,導(dǎo)致網(wǎng)絡(luò)運維極其困難。

(二)虛擬化環(huán)境下大二層網(wǎng)絡(luò)不斷膨脹

在虛擬化環(huán)境下,網(wǎng)絡(luò)虛擬機(jī)通過bridge方式接入,使得大二層網(wǎng)絡(luò)節(jié)點不斷增加;同時,為了實現(xiàn)虛擬機(jī)在不同物理服務(wù)器的自由遷移,將使得VLAN無法隔離廣播域、大二層網(wǎng)絡(luò)的不斷膨脹。以上兩種情況,導(dǎo)致整個數(shù)據(jù)中心被分割成相互獨立的多個業(yè)務(wù)網(wǎng)絡(luò),極大限制了虛擬機(jī)遷移的范圍和用戶網(wǎng)絡(luò)的擴(kuò)展性;同時不斷的網(wǎng)絡(luò)冗余將帶來廣播包過多、交換機(jī)轉(zhuǎn)發(fā)表溢出、生成樹算法導(dǎo)致帶寬利用率低等問題。

(三)多租戶網(wǎng)絡(luò)隔離難以很好的實現(xiàn)

在目前云計算環(huán)境下,由于各業(yè)務(wù)系統(tǒng)共用一套核心交換機(jī)、路由器、防火墻等設(shè)備,數(shù)據(jù)中心存在大二層互通的需求, 為了讓大二層可以連通且區(qū)分不同租戶,通常采用VLAN技術(shù),其4k的理論數(shù)值遠(yuǎn)不能滿足當(dāng)前用戶的需求。同時,在傳統(tǒng)網(wǎng)絡(luò)基礎(chǔ)上,很難既滿足云數(shù)據(jù)中心對IP地址、VLAN、安全等網(wǎng)絡(luò)策略統(tǒng)一規(guī)劃,又實現(xiàn)各系統(tǒng)間的有效隔離,并支持其個性化要求。

二、SDN技術(shù)與網(wǎng)絡(luò)虛擬化

SDN(Software Defined Network)軟件定義網(wǎng)絡(luò),是網(wǎng)絡(luò)虛擬化的一種實現(xiàn)方式。SDN技術(shù)的核心技術(shù)OpenFlow通過將網(wǎng)絡(luò)設(shè)備的控制面與數(shù)據(jù)面分離,從而實現(xiàn)集中管控和開放可編程,可實現(xiàn)靈活、快速、高效網(wǎng)絡(luò)配置。

網(wǎng)絡(luò)虛擬化則是云計算和SDN發(fā)展到一定階段的產(chǎn)物。網(wǎng)絡(luò)虛擬化簡單來講是指把邏輯網(wǎng)絡(luò)從底層的物理網(wǎng)絡(luò)分離開來。當(dāng)前,網(wǎng)絡(luò)虛擬化主要基于Overlay技術(shù)實現(xiàn),Overlay是一種將(業(yè)務(wù)的)二層網(wǎng)絡(luò)構(gòu)架在(傳統(tǒng)網(wǎng)絡(luò)的)三層/四層報文中進(jìn)行傳遞的網(wǎng)絡(luò)技術(shù)。該技術(shù)實際上是一種隧道封裝技術(shù),主要有VXLAN、NVGRE、STT這三種技術(shù)。VXLAN是目前主流的Overlay技術(shù),將二層報文封裝到udp報文中,擴(kuò)大二層網(wǎng)絡(luò)的范圍,將不同數(shù)據(jù)中心置于同一個大二層網(wǎng)絡(luò),滿足多數(shù)據(jù)中心虛擬機(jī)遷移和多租戶隔離的需求。

SDN集中控制管理的方式,非常適合用于管理VXLAN多租戶、跨域的虛擬網(wǎng)絡(luò)。本文通過實驗,模擬利用SDN控制器實現(xiàn)對整個網(wǎng)絡(luò)的統(tǒng)一管理、規(guī)劃和控制,理解SDN控制平面和轉(zhuǎn)發(fā)平面分離的模式與openflow協(xié)議,檢驗網(wǎng)絡(luò)軟件化和網(wǎng)絡(luò)可編程化,進(jìn)一步掌握SDN的openflow和VXLAN技術(shù)原理,為省級數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)升級轉(zhuǎn)型提供實踐經(jīng)驗。

三、基于SDN架構(gòu)的VXLAN網(wǎng)絡(luò)實驗探索

本文采用虛擬環(huán)境模擬兩個數(shù)據(jù)中心(DC)和SDN控制器,實現(xiàn)兩個數(shù)據(jù)中心之間VXLAN隧道的建立,不同數(shù)據(jù)中心同一租戶主機(jī)通過VXLAN實現(xiàn)基于三層網(wǎng)絡(luò)的二層連接,并隔離不同的租戶;通過SDN控制器下發(fā)網(wǎng)絡(luò)的VXLAN配置和open vswitch(ovs)的openflow流表,利用流表項控制數(shù)據(jù)的轉(zhuǎn)發(fā)。

(一)總體規(guī)劃

實驗采用三臺虛擬機(jī),兩臺模擬數(shù)據(jù)中心(dc1、dc2),使用mininet構(gòu)建網(wǎng)絡(luò)拓?fù)洌總€dc包括一臺ovs交換機(jī)和兩臺主機(jī),兩臺主機(jī)分屬不同的租戶;第三臺虛擬機(jī)安裝OpenDaylight(odl)做為SDN控制器。三臺虛擬機(jī)分別安裝于不同的物理機(jī),為模擬真實的網(wǎng)絡(luò)環(huán)境,通過路由器實現(xiàn)虛擬機(jī)之間三層網(wǎng)絡(luò)連通。

(二)實現(xiàn)步驟

1.構(gòu)建網(wǎng)絡(luò)拓?fù)洹尤_虛擬機(jī),測試虛擬機(jī)之間的網(wǎng)絡(luò)連通性,三臺虛擬機(jī)分屬不同的網(wǎng)段,通過路由器實現(xiàn)三層互聯(lián),拓?fù)洳捎肞ython代碼預(yù)先定義,通過Mininet調(diào)用來構(gòu)建。數(shù)據(jù)中心一(dc1)的拓?fù)涠x文件(dc1.py)主要配置內(nèi)容如下:

#添加主機(jī)和交換機(jī)

leftHost=self.addHost('hosta1',ip="192.168.200.1/24",mac="00:00:00:00:aa:01")

rightHost=self.addHost('hostb1',ip="192.168.200.3/24",mac="00:00:00:00:bb:01")

leftSwitch = self.addSwitch( 's1' )

# 增加連接

self.addLink( leftHost, leftSwitch )

self.addLink( rightHost, leftSwitch )

#在dc1虛擬機(jī)操作系統(tǒng)命令行輸入以下命令:

sudo mn --custom dc1.py --topo mytopo

--controller=remote,ip=10.160.141.35,protocols=OpenFlow13

dc1的網(wǎng)絡(luò)拓?fù)錁?gòu)建完成后,按同樣方法構(gòu)建dc2網(wǎng)絡(luò),dc2.py的對應(yīng)參數(shù)根據(jù)網(wǎng)絡(luò)地址規(guī)劃做相應(yīng)調(diào)整。

啟動控制器,安裝必要的組件(feature):

$> feature:install odl-l2switch-all odl-restconf-all odl-nsf-all odl-mdsal-apidocs

$> feature:install odl-ovsdb-southbound-impl odl-ovsdb-southbound-impl-rest odl-openflowplugin-all-li

將ovs openflow版本設(shè)為1.3并將交換機(jī)設(shè)為被動監(jiān)聽控制器模式,在dc1和dc2上mininet提示符下執(zhí)行:

mininet> sh ovs-vsctl set bridge s1 protocols=OpenFlow13

mininet> sh ovs-vsctl set-manager ptcp:6640

2.配置VXLAN隧道。采用SDN集中控制的理念,利用odl的restconf南向API接口,通過控制器ovsdb模塊實現(xiàn)VXLAN的配置,配置命令如下:

#將vswitch注冊到odl:

http請求方法:PUT;

URL:http://10.160.141.35:8181/restconf/config/network-topology:network-topology/topology/ovsdb:1

#請求body json使用ODL的YANG UI構(gòu)造,主要參數(shù):

"topology-id": "ovsdb:1",

"node-id": "mininet1",

"remote-ip": "192.168.101.1",

"remote-port": "6640"

#創(chuàng)建VXLan隧道:

http請求方法:PUT;

URL:http://10.160.141.35:8181/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/mininet1%2Fbridge%2Fs1/termination-point/vxlanport

#請求body json使用ODL的YANG UI構(gòu)造,主要參數(shù):

"tp-id": "vxlanport",

"ovsdb:name": "vxlanport",

"ovsdb:interface-type": "ovsdb:interface-type-vxlan",

"option": "key",

"option": "remote_ip",

"ovsdb:ofport": "10",

"ovsdb:ofport_request": "10"

以上是針對dc1的配置,dc2的配置應(yīng)修改相應(yīng)的參數(shù)值。在mininet命令行執(zhí)行以下命令,檢查vtep是否添加成功:

mininet> sh ovs-vsctl -- --columns=name,ofport list Interface

3.下發(fā)openflow流表。上述步驟完成后,基于三層網(wǎng)絡(luò)的overlay已搭建完成,但此時ovs交換機(jī)中還沒有流表項,需要控制器下發(fā)流表才能完成數(shù)據(jù)的轉(zhuǎn)發(fā)。在下發(fā)流表前進(jìn)行ping測試,實驗中4臺host互不連通。實驗中主要用到流表的匹配字段(match)和指令(instruction)字段,匹配字段類似acl,根據(jù)數(shù)據(jù)包入端口和包頭信息匹配符合條件的數(shù)據(jù)包,并按指令處理、轉(zhuǎn)發(fā)、丟棄、設(shè)置值或轉(zhuǎn)到下一流表。交換機(jī)S1流表項設(shè)計如下:

table=0,in_port=1,actions=set_field:100->tun_id,resubmit(,1)

table=0,in_port=2,actions=set_field:200->tun_id,resubmit(,1)

table=0,actions=resubmit(,1)

table=1,tun_id=100,dl_dst=00:00:00:00:aa:01,actions=output:1

table=1,tun_id=200,dl_dst=00:00:00:00:bb:01,actions=output:2

table=1,tun_id=100,dl_dst=00:00:00:00:aa:02,actions=output:10

table=1,tun_id=200,dl_dst=00:00:00:00:bb:02,actions=output:10

table=1,tun_id=100,arp,nw_dst=192.168.200.1,actions=output:1

table=1,tun_id=200,arp,nw_dst=192.168.200.3,actions=output:2

table=1,tun_id=100,arp,nw_dst=192.168.200.2,actions=output:10

table=1,tun_id=200,arp,nw_dst=192.168.200.4,actions=output:10

table=1,priority=10,actions=drop

流表table0根據(jù)入端口為數(shù)據(jù)包設(shè)置不同的VNI,并跳轉(zhuǎn)到流表table1;流表table1根據(jù)VNI、目的MAC地址決定數(shù)據(jù)包轉(zhuǎn)發(fā)的出端口;對于arp請求,根據(jù)VNI和目的IP地址決定數(shù)據(jù)包轉(zhuǎn)發(fā)的出端口。dc2的交換機(jī)S2流表根據(jù)實際的mac和ip作相應(yīng)調(diào)整。

將以上流表內(nèi)容保存到名為flows的文本文件,可在mininet下用下述命令下發(fā)流表到交換機(jī):

mininet> sh ovs-ofctl add-flows –O openflow13 s1 'flows'

為驗證odl流表下發(fā)功能,我們使用odl的restconf API,通過控制器來完成流表下發(fā),以第一條流表為例:

http請求方法:PUT;

URL:http://10.160.141.35:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/flow/1

Json請求body:略

流表需要轉(zhuǎn)換為符合API要求的json請求body,可通過odl的YANG ui界面,輸入流表項參數(shù)后逐條生成,共12條。API調(diào)用可使用多種方法實現(xiàn),如在命令行使用curl命令、使用odl的YANG ui界面、Chrome瀏覽器安裝postman插件、使用編程調(diào)用API等。使用用前三種方法,每次只能下發(fā)一條流表規(guī)則;使用編程調(diào)用API,則可實現(xiàn)批量下發(fā),這也體現(xiàn)了SDN網(wǎng)絡(luò)可編程控制的特點。

在mininet命令行執(zhí)行以下命令,檢查流表是否下發(fā)成功:

Mininet> sh ovs-ofctl dump-flows -O openflow13 s1

4.連通測試。測試dc1與dc2同一租戶主機(jī)網(wǎng)絡(luò)連通性:

mininet> hosta1 ping 192.168.200.2

PING 192.168.200.2 (192.168.200.2) 56(84) bytes of data.

64 bytes from 192.168.200.2: icmp_seq=1 ttl=64 time=3.55 ms

mininet> hostb1 ping 192.168.200.4

PING 192.168.200.4 (192.168.200.4) 56(84) bytes of data.

64 bytes from 192.168.200.4: icmp_seq=1 ttl=64 time=3.08 ms

測試不同租戶主機(jī)網(wǎng)絡(luò)連通性:

mininet> hosta1 ping 192.168.200.4

PING 192.168.200.4 (192.168.200.4) 56(84) bytes of data.

From 192.168.200.1 icmp_seq=1 Destination Host Unreachable

mininet> hostb1 ping 192.168.200.2

PING 192.168.200.2 (192.168.200.2) 56(84) bytes of data.

From 192.168.200.3 icmp_seq=1 Destination Host Unreachable

主機(jī)則被隔離,達(dá)到了實驗預(yù)期的目標(biāo)。

驗證分析:由于VXLAN是L2 over L4的封裝,以udp報文傳輸,因此僅抓取dc1(192.168.101.1)與dc2(192.168.102.1)之間往來的udp數(shù)據(jù)包,對實驗結(jié)果(如圖2)進(jìn)行驗證和分析。

從192.168.101.1到192.168.102.1的udp數(shù)據(jù)包,目的端口已顯示為VXLAN,將其數(shù)據(jù)載荷部分(data)按VXLAN解碼(如圖3):

data部分被解析為VXLAN數(shù)據(jù)包,VNI值為100,是租戶A兩臺主機(jī)之間的icmp報文。租戶B主機(jī)的報文顯示VNI值為200,源地址為192.168.200.3,目的地址為192.168.200.4(如圖4)。

分析可知,數(shù)據(jù)包進(jìn)入交換機(jī)后,按流表規(guī)則加上VNI,并發(fā)送到vtep;vtep被封裝成udp報文,通過傳統(tǒng)三層網(wǎng)絡(luò)發(fā)送到對端vtep,去除udp報頭后按流表規(guī)則發(fā)送到目的端口。對于同租戶的兩臺主機(jī),雖然位于兩個數(shù)據(jù)中心,但處于同一個虛擬的大二層,其連接是透明的,可以直接互通。

四、小結(jié)

通過模擬省級人民銀行真實網(wǎng)絡(luò)環(huán)境,旨在對相關(guān)原理和技術(shù)有更深入的理解和更直觀的認(rèn)識,為省級數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)升級轉(zhuǎn)型提供實踐經(jīng)驗。

通過實驗,探索了openflow流表的設(shè)計應(yīng)用,加深了對openflow規(guī)范的理解;VXLAN的構(gòu)建、openflow流表的下發(fā)均由控制器完成,從而將控制面和數(shù)據(jù)面分離在不同的設(shè)備中,使OpenFlow 控制器可同時控制多臺OpenFlow交換機(jī)。實踐了SDN網(wǎng)絡(luò)集中規(guī)劃管理、控制面和數(shù)據(jù)轉(zhuǎn)發(fā)面分離、網(wǎng)絡(luò)軟件化和網(wǎng)絡(luò)可編程等特性。下一步將依托實驗結(jié)果,探索雙活技術(shù)的實現(xiàn),將省級數(shù)據(jù)中心主中心雙活的兩臺存儲之一遷移至同城轉(zhuǎn)接中心,將兩數(shù)據(jù)中心系統(tǒng)融合為一個統(tǒng)一的虛擬化集群,實現(xiàn)兩中心應(yīng)用級高可用。

參考文獻(xiàn):

[1] 魏娜,基于SDN和VXLAN相結(jié)合的數(shù)據(jù)中心構(gòu)建.科技創(chuàng)新導(dǎo)報.2019年9期

[2] 王穎,龐志鵬,基于SDN的云數(shù)據(jù)中心網(wǎng)絡(luò)[J].通訊世界,2017(16): 3-4.

[3] 陳銳,謝人超,黃韜,等.基于SDN的CDN技術(shù)研究[J].電信技術(shù),2014,(6).18-21.

[4] 盧志剛,姜政偉,劉寶旭.一種基于VXLAN的虛擬網(wǎng)絡(luò)訪問控制方法[J].計算機(jī)工程,2014,(8).86-90,95.doi:10.3969/j.issn.1000-3428.2014.08.016.

作者單位:中國人民銀行天門市支行

猜你喜歡
流表租戶交換機(jī)
基于時序與集合的SDN流表更新策略
基于緩存策略的OpenFlow流表存儲優(yōu)化方案研究
修復(fù)損壞的交換機(jī)NOS
簡析yangUI流表控制
軟件定義網(wǎng)絡(luò)中一種兩步式多級流表構(gòu)建算法
使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
基于MVC模式的多租戶portlet應(yīng)用研究*
PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計
羅克韋爾自動化交換機(jī)Allen-Bradley ArmorStratix 5700
企業(yè)多租戶云存儲平臺的設(shè)計與實現(xiàn)