秦華+谷宇馳



摘 要 為了實(shí)現(xiàn)SDN網(wǎng)絡(luò)環(huán)境下入網(wǎng)主機(jī)自動(dòng)獲取初始化配置,并對(duì)該過(guò)程進(jìn)行細(xì)粒度的管控,提出了將IPv6協(xié)議自動(dòng)初始化機(jī)制與SDN網(wǎng)絡(luò)相結(jié)合的設(shè)計(jì)方法。同時(shí),為了減少自動(dòng)初始化過(guò)程中的信道開(kāi)銷(xiāo),提出利用SDN網(wǎng)絡(luò)集中管控的特點(diǎn)對(duì)IPv6自動(dòng)初始化機(jī)制進(jìn)行優(yōu)化的思想。首先研究了IPv6主機(jī)入網(wǎng)初始化過(guò)程,然后結(jié)合SDN網(wǎng)絡(luò)的特點(diǎn)對(duì)該初始化過(guò)程進(jìn)行優(yōu)化,從而提出適用于SDN網(wǎng)絡(luò)的自動(dòng)初始化整體機(jī)制,最后基于ONOS控制器設(shè)計(jì)并實(shí)現(xiàn)了自動(dòng)初始化機(jī)制。
【關(guān)鍵詞】軟件定義網(wǎng)絡(luò) IPv6 自動(dòng)初始化 ONOS
隨著互聯(lián)網(wǎng)規(guī)模日漸增大,如何高效靈活地控制和管理網(wǎng)絡(luò)成為非常重要的問(wèn)題。軟件定義網(wǎng)絡(luò)SDN是一個(gè)新的解決方案。在IPv6網(wǎng)絡(luò)中引入SDN將在一定程度上提高整體組網(wǎng)的靈活性和管控粒度。一方面IPv6網(wǎng)絡(luò)自動(dòng)配置機(jī)制可使SDN網(wǎng)絡(luò)中的主機(jī)擁有即插即用能力,提高SDN網(wǎng)絡(luò)組網(wǎng)的靈活性和主機(jī)網(wǎng)絡(luò)參數(shù)的配置效率。另一方面,利用SDN網(wǎng)絡(luò)控制與轉(zhuǎn)發(fā)解耦和可編程性強(qiáng)的特點(diǎn),對(duì)IPv6協(xié)議的自動(dòng)配置過(guò)程進(jìn)行優(yōu)化,不僅可進(jìn)一步提升主機(jī)入網(wǎng)自動(dòng)初始化過(guò)程的效率,并降低源于該過(guò)程的信道開(kāi)銷(xiāo),而且利用SDN集中控制的特性,使得自動(dòng)初始化過(guò)程可控,實(shí)現(xiàn)對(duì)接入主機(jī)進(jìn)行細(xì)粒度的入網(wǎng)管理。
本文主要研究SDN環(huán)境下IPv6主機(jī)入網(wǎng)的初始化過(guò)程,以不改變主機(jī)IPv6協(xié)議棧為前提,綜合利用IPv6協(xié)議和SDN網(wǎng)絡(luò)的特點(diǎn),研究SDN網(wǎng)絡(luò)自動(dòng)初始化整體機(jī)制,實(shí)現(xiàn)基于SDN的IPv6網(wǎng)絡(luò)的自動(dòng)配置,優(yōu)化自動(dòng)初始化過(guò)程。
1 相關(guān)工作
在SDN網(wǎng)絡(luò)的研究中,針對(duì)主機(jī)入網(wǎng)自動(dòng)初始化的研究還很少。而SDN網(wǎng)絡(luò)中主機(jī)入網(wǎng)方式和效率是一個(gè)不可忽視的問(wèn)題。不同于傳統(tǒng)網(wǎng)絡(luò)控制與轉(zhuǎn)發(fā)緊密耦合的關(guān)系,SDN具有數(shù)據(jù)平面與控制平面分離的設(shè)計(jì)思路。隨著IPv6協(xié)議的推廣應(yīng)用,將IPv6的即插即用特性和SDN的管控分離相結(jié)合,實(shí)現(xiàn)SDN網(wǎng)絡(luò)的快速組網(wǎng)很有意義。Broadband網(wǎng)絡(luò)實(shí)驗(yàn)室的Tseng等人提出了一種SDNv6的網(wǎng)絡(luò)。在這個(gè)架構(gòu)中,他們加入了用來(lái)提供網(wǎng)絡(luò)參數(shù)的設(shè)備(Network Provisioning Device),以實(shí)現(xiàn)IPv6網(wǎng)絡(luò)中的自動(dòng)初始化過(guò)程。SDNv6網(wǎng)絡(luò)中的Network Provisioning Device等同于傳統(tǒng)路由器,僅為鏈路本地內(nèi)的接入設(shè)備提供IP地址及網(wǎng)絡(luò)參數(shù),并沒(méi)有體現(xiàn)出SDN網(wǎng)絡(luò)的組網(wǎng)靈活性和細(xì)粒度管理的特點(diǎn)。
中國(guó)人民解放軍理工大學(xué)蔣培成等人提出了一種基于OpenFlow的多功能DHCP(VDHCP),在地址自動(dòng)配置協(xié)議機(jī)制與SDN機(jī)制之間協(xié)同工作為用戶(hù)自動(dòng)配置地址方面進(jìn)行了嘗試。該功能作為SDN控制器中的一個(gè)應(yīng)用層組件為接入主機(jī)提供有狀態(tài)地址自動(dòng)分配服務(wù)。在地址配置的基礎(chǔ)上,VDHCP還添加了多IP子網(wǎng)服務(wù)、防止對(duì)DHCP的惡意攻擊和提高IP地址利用率等功能,其中多子網(wǎng)服務(wù)解決了DHCP在為多子網(wǎng)主機(jī)服務(wù)時(shí)的復(fù)雜配置問(wèn)題。但VDHCP實(shí)現(xiàn)的是IPv4地址自動(dòng)配置的過(guò)程,不適合IPv6網(wǎng)絡(luò)的自動(dòng)配置。
在傳統(tǒng)IPv6網(wǎng)絡(luò)中,主機(jī)的即插即用特性依賴(lài)于IPv6協(xié)議的自動(dòng)初始化功能,即主機(jī)自動(dòng)配置,包括有狀態(tài)和無(wú)狀態(tài)兩種方式。主機(jī)獲取地址與參數(shù)自動(dòng)配置過(guò)程以鄰節(jié)點(diǎn)發(fā)現(xiàn)協(xié)議(NDP)為基礎(chǔ)進(jìn)行實(shí)現(xiàn)。其過(guò)程主要涉及了鏈路本地地址生成、重復(fù)地址檢測(cè)(DAD)、路由器發(fā)現(xiàn)以及DHCPv6有狀態(tài)地址分配。IPv6協(xié)議的自動(dòng)初始化過(guò)程提高了組網(wǎng)的效率和靈活性,與SDN網(wǎng)絡(luò)控制器的全局管控能力相結(jié)合能夠得到進(jìn)一步的優(yōu)化。
(1)在傳統(tǒng)IPv6網(wǎng)絡(luò)中需要對(duì)參與自動(dòng)初始化的組件分別進(jìn)行配置,如網(wǎng)絡(luò)中存在的每一臺(tái)路由器及DHCPv6服務(wù)器,而在SDN網(wǎng)絡(luò)中只需對(duì)控制器及少量DHCPv6服務(wù)器進(jìn)行配置,就可實(shí)現(xiàn)網(wǎng)絡(luò)配置。
(2)傳統(tǒng)IPv6網(wǎng)絡(luò)的自動(dòng)配置依賴(lài)于主機(jī)和路由器的物理鏈路連接特性,難以做到對(duì)主機(jī)的個(gè)性化參數(shù)配置,SDN網(wǎng)絡(luò)控制器可以利用所掌握的全局網(wǎng)絡(luò)視圖,實(shí)現(xiàn)對(duì)每臺(tái)主機(jī)實(shí)現(xiàn)個(gè)性化的參數(shù)配置。
(3)在傳統(tǒng)IPv6網(wǎng)絡(luò)中,為避免自動(dòng)配置出現(xiàn)重復(fù)地址,需要主機(jī)進(jìn)行重復(fù)地址檢測(cè),在地址配置過(guò)程中,主機(jī)將要發(fā)起多次重復(fù)地址檢測(cè)過(guò)程,而這些檢測(cè)消息將會(huì)發(fā)送到整個(gè)鏈路本地內(nèi)的所有節(jié)點(diǎn)。當(dāng)網(wǎng)絡(luò)變化較頻繁時(shí),重復(fù)地址檢測(cè)過(guò)程將會(huì)造成很大的信道開(kāi)銷(xiāo)。而在SDN網(wǎng)絡(luò)利用全局網(wǎng)絡(luò)視圖進(jìn)行地址自動(dòng)配置,將不會(huì)出現(xiàn)重復(fù)地址配置問(wèn)題。
2 基于SDN網(wǎng)絡(luò)的IPv6自動(dòng)初始化機(jī)制
2.1 自動(dòng)初始化的整體設(shè)計(jì)
在SDN網(wǎng)絡(luò)中,為了實(shí)現(xiàn)自動(dòng)配置,控制器需有能力對(duì)入網(wǎng)主機(jī)的地址與網(wǎng)絡(luò)參數(shù)請(qǐng)求進(jìn)行正確的應(yīng)答。同時(shí)結(jié)合SDN網(wǎng)絡(luò)的特點(diǎn),利用控制器對(duì)全局網(wǎng)絡(luò)信息的掌握,可對(duì)在初始化配置過(guò)程中由主機(jī)發(fā)起的重復(fù)地址檢測(cè)流程進(jìn)行優(yōu)化,從而減少不必要的信道開(kāi)銷(xiāo)。為了對(duì)每一臺(tái)入網(wǎng)主機(jī)的地址與參數(shù)分配方式進(jìn)行的集中和個(gè)性化的管理,本文提出(如圖1)基于SDN網(wǎng)絡(luò)的IPv6自動(dòng)初始化整體設(shè)計(jì)。在SDN控制器中,加入地址分配管理與IPv6自動(dòng)初始化兩個(gè)功能,分別對(duì)有狀態(tài)與無(wú)狀態(tài)地址分配過(guò)程進(jìn)行實(shí)現(xiàn)及管理。在轉(zhuǎn)發(fā)平面,加入DHCPv6服務(wù)器,與控制器協(xié)同工作完成有狀態(tài)地址及參數(shù)分配。
地址分配管理:利用流表可管控到交換機(jī)端口的特點(diǎn),對(duì)接入主機(jī)的IP地址、網(wǎng)絡(luò)參數(shù)以及其地址配置方式(采用無(wú)狀態(tài)地址配置或有狀態(tài)地址配置)進(jìn)行細(xì)粒度的控制與管理。上述的配置過(guò)程將在控制器中進(jìn)行統(tǒng)一操作,避免了傳統(tǒng)網(wǎng)絡(luò)中對(duì)網(wǎng)絡(luò)設(shè)備逐一配置所造成的效率降低。
IPv6自動(dòng)初始化:根據(jù)地址分配管理中的設(shè)置,對(duì)接入主機(jī)進(jìn)行相應(yīng)的地址與網(wǎng)絡(luò)參數(shù)應(yīng)答,從而為其按設(shè)置要求對(duì)入網(wǎng)主機(jī)進(jìn)行初始化配置。同時(shí),IPv6自動(dòng)初始化將對(duì)重復(fù)地址檢測(cè)過(guò)程進(jìn)行優(yōu)化,提高配置效率的同時(shí)減少信道開(kāi)銷(xiāo)。
DHCPv6服務(wù)器:在本文提出的初始化機(jī)制中,為了減小控制器的系統(tǒng)開(kāi)銷(xiāo),有狀態(tài)地址配置過(guò)程是控制器與DHCPv6服務(wù)器協(xié)同完成的,而不是將DHCPv6服務(wù)器的功能集成在控制器中。控制器為有狀態(tài)地址自動(dòng)配置過(guò)程提供中繼轉(zhuǎn)發(fā)服務(wù)。
IPv6接入主機(jī):傳統(tǒng)的IPv6接入主機(jī),不改變?cè)械膮f(xié)議棧。
2.2 自動(dòng)初始化機(jī)制的詳細(xì)設(shè)計(jì)
為實(shí)現(xiàn)SDN網(wǎng)絡(luò)下的IPv6自動(dòng)初始化,需實(shí)現(xiàn)無(wú)狀態(tài)地址自動(dòng)分配及有狀態(tài)地址自動(dòng)分配機(jī)制。為了實(shí)現(xiàn)兩種分配方式,SDN網(wǎng)絡(luò)需有能力正確處理和應(yīng)答地址配置過(guò)程中的各類(lèi)報(bào)文。同時(shí)需有能力對(duì)整體初始化過(guò)程進(jìn)行管控。
根據(jù)以上要求,在本文提出的自動(dòng)初始化機(jī)制中包含以下功能的設(shè)計(jì):地址分配管理功能、地址與網(wǎng)絡(luò)參數(shù)應(yīng)答功能以及重復(fù)地址檢測(cè)功能。
2.2.1 流程整體設(shè)計(jì)
主機(jī)在入網(wǎng)時(shí)會(huì)首先生成鏈路本地地址,并發(fā)起重復(fù)地址檢測(cè)過(guò)程。在控制器端會(huì)首先收到該報(bào)文并進(jìn)行處理。在上述自動(dòng)初始化機(jī)制中(如圖2所示),主要包括以下三個(gè)機(jī)制:地址分配管理機(jī)制、地址與網(wǎng)絡(luò)參數(shù)應(yīng)答機(jī)制、重復(fù)地址檢測(cè)機(jī)制。
2.2.1.1 地址分配管理
根據(jù)網(wǎng)絡(luò)管理員的設(shè)置,確定對(duì)該入網(wǎng)主機(jī)采用有狀態(tài)地址自動(dòng)配置或無(wú)狀態(tài)地址自動(dòng)配置,并且管理可分配的地址前綴,供地址與網(wǎng)絡(luò)參數(shù)應(yīng)答機(jī)制使用。
2.2.1.2 地址與網(wǎng)絡(luò)參數(shù)應(yīng)答機(jī)制
控制器依據(jù)地址分配管理機(jī)制中的設(shè)置,構(gòu)造路由器公告報(bào)文(RA報(bào)文)對(duì)主機(jī)的地址與網(wǎng)絡(luò)參數(shù)請(qǐng)求進(jìn)行應(yīng)答。
2.2.1.3 重復(fù)地址檢測(cè)機(jī)制
該機(jī)制在地址分配過(guò)程中進(jìn)行分配地址的唯一性檢測(cè),并對(duì)由主機(jī)發(fā)起的對(duì)相同地址的檢測(cè)報(bào)文進(jìn)行丟棄處理。
下文將對(duì)上述提出的機(jī)制進(jìn)行詳細(xì)介紹。
2.2.2 地址分配管理機(jī)制
地址分配管理機(jī)制在控制器上為網(wǎng)絡(luò)管理員提供入口對(duì)網(wǎng)絡(luò)的地址分配方式進(jìn)行統(tǒng)一的管理和控制。由于入網(wǎng)主機(jī)使用傳統(tǒng)IPv6協(xié)議棧,故其入網(wǎng)配置方式由接收到的RA報(bào)文中前綴信息選項(xiàng)、管理地址配置標(biāo)記(M)、其他狀態(tài)化配置標(biāo)記(O)決定。由于主機(jī)的這一特性,本文提出的地址分配管理機(jī)制需在控制器內(nèi)設(shè)置地址分配管理信息表,對(duì)管理員輸入的以上信息進(jìn)行記錄。同時(shí),該機(jī)制將地址分配管理的相關(guān)信息傳遞至后文提出的地址與網(wǎng)絡(luò)參數(shù)應(yīng)答機(jī)制使用,構(gòu)造可供入網(wǎng)主機(jī)正確處理的RA報(bào)文進(jìn)行下發(fā)。
2.2.2.1 地址分配管理信息表
如表1所示(表1),該表記錄了交換機(jī)ID、交換機(jī)端口、M標(biāo)記、O標(biāo)記以及前綴信息。其中,交換機(jī)ID與交換機(jī)端口共同決定了表中的地址分配設(shè)置供接入在哪一個(gè)位置的主機(jī)使用;M與O標(biāo)記根據(jù)管理員的設(shè)置,值為0或1;前綴信息則為供分配的地址前綴。
(1)當(dāng)M標(biāo)簽與O標(biāo)簽都設(shè)置為0,則前綴信息是必須設(shè)置的。其意義為接入主機(jī)使用無(wú)狀態(tài)方式進(jìn)行地址獲取,同時(shí)使用非有狀態(tài)方式進(jìn)行網(wǎng)絡(luò)參數(shù)獲取(如手動(dòng)配置)。
(2)當(dāng)M標(biāo)簽設(shè)置為0、O標(biāo)簽設(shè)置為1,則前綴信息是必須設(shè)置的。其意義為接入主機(jī)使用無(wú)狀態(tài)方式進(jìn)行地址獲取。其他網(wǎng)絡(luò)參數(shù)由DHCPv6服務(wù)器提供。
(3)當(dāng)M標(biāo)簽與O標(biāo)簽都設(shè)置為1,則前綴信息可為空。其意義為入網(wǎng)主機(jī)使用有狀態(tài)方式獲取地址及網(wǎng)絡(luò)參數(shù),幾使用DHCPv6服務(wù)器。
(4)當(dāng)M標(biāo)簽設(shè)置為1、O標(biāo)簽設(shè)置為0,則前綴信息可為空。其意義為入網(wǎng)主機(jī)使用DHCPv6服務(wù)器獲取地址,但使用其他方式獲取網(wǎng)絡(luò)參數(shù)(如手動(dòng)配置)。
2.2.2.2 地址分配管理信息的使用
在組網(wǎng)前,網(wǎng)絡(luò)管理員將上述表中信息在控制器中進(jìn)行設(shè)置。當(dāng)接收到入網(wǎng)主機(jī)發(fā)送的路由器請(qǐng)求報(bào)文(RS報(bào)文)時(shí),控制器會(huì)根據(jù)接收該消息的交換機(jī)ID及端口在地址分配管理信息表中查詢(xún)到適用于該主機(jī)的地址分配方式,并將M標(biāo)記、O標(biāo)記以及前綴信息傳遞到下文提出的地址與網(wǎng)絡(luò)參數(shù)機(jī)制中使用,構(gòu)造RA報(bào)文并按照接收的交換機(jī)端口發(fā)送給主機(jī)。同時(shí),根據(jù)其有狀態(tài)或無(wú)狀態(tài)的地址分配方式,進(jìn)行后續(xù)的報(bào)文轉(zhuǎn)發(fā)工作。
2.2.3 地址與網(wǎng)絡(luò)參數(shù)應(yīng)答機(jī)制
在SDN網(wǎng)絡(luò)中,由于控制層對(duì)于主機(jī)時(shí)透明的,主機(jī)為了獲取IP地址與網(wǎng)絡(luò)參數(shù),仍向上層網(wǎng)絡(luò)發(fā)送RS等報(bào)文。這些報(bào)文會(huì)由于在SDN交換機(jī)中無(wú)匹配項(xiàng)而被封裝至packet-in消息中轉(zhuǎn)發(fā)至控制器。故為了能夠在控制器中對(duì)RS等報(bào)文進(jìn)行應(yīng)答,從而完成主機(jī)入網(wǎng)初始化過(guò)程(如圖3所示,其中1、2為初始化請(qǐng)求報(bào)文,3、4為應(yīng)答報(bào)文),本文提出在控制器中添加地址與網(wǎng)絡(luò)參數(shù)應(yīng)答機(jī)制。
2.2.3.1 無(wú)狀態(tài)地址自動(dòng)分配
如下圖所示(圖4),當(dāng)主機(jī)入網(wǎng)時(shí),向上層網(wǎng)絡(luò)發(fā)送RS報(bào)文進(jìn)行路由器請(qǐng)求。交換機(jī)將該報(bào)文封裝至packet-in消息中上傳至控制器中。此時(shí)控制器調(diào)用地址與網(wǎng)絡(luò)參數(shù)應(yīng)答組件,該組件解析該數(shù)據(jù)包,獲得其接入交換機(jī)ID及端口,隨后利用這兩個(gè)參數(shù)在地址分配管理信息表中查詢(xún)到相應(yīng)的地址配置方式及前綴信息。當(dāng)表中設(shè)置M標(biāo)簽為0、O標(biāo)簽為0或1,使用從表中獲取的參數(shù)構(gòu)造RA報(bào)文,并封裝至packet-out消息中由SDN交換機(jī)轉(zhuǎn)發(fā)至入網(wǎng)主機(jī)。消息格式如圖5所示。
在報(bào)文中,OF報(bào)頭中type字段為13,即OFPT_PACKET_OUT報(bào)文;buffer ID字段為-1,表示其緩沖區(qū)為packet-out消息的data字段;actions字段為該報(bào)文所執(zhí)行的動(dòng)作,在本文中,該消息的動(dòng)作為OFPAT_OUTPUT,即執(zhí)行將該報(bào)文轉(zhuǎn)發(fā),端口為RS報(bào)文的入端口。
在data字段中將封裝構(gòu)造好的RA報(bào)文,其中M標(biāo)簽、O標(biāo)簽以及前綴信息選項(xiàng)將依據(jù)地址分配管理信息表中的設(shè)置填入。由于是無(wú)狀態(tài)地址自動(dòng)分配,前綴信息選項(xiàng)中的on_link標(biāo)簽與自治標(biāo)簽將設(shè)為1,使主機(jī)將該前綴添加址前綴列表并使用它生成無(wú)狀態(tài)地址。
當(dāng)主機(jī)接收到該RA報(bào)文時(shí),將會(huì)依據(jù)自身的IPv6協(xié)議棧進(jìn)行地址初始化操作。若O標(biāo)簽為1,則會(huì)繼續(xù)發(fā)起與DHCPv6服務(wù)器的通信,獲取網(wǎng)絡(luò)參數(shù)。由于在無(wú)狀態(tài)地址分配中,入網(wǎng)主機(jī)僅需利用接收到的RA報(bào)文進(jìn)行無(wú)狀態(tài)地址的獲取,故該過(guò)程到此已完成。主機(jī)以有狀態(tài)方式獲取網(wǎng)絡(luò)參數(shù)的過(guò)程將與有狀態(tài)地址自動(dòng)分配過(guò)程中進(jìn)行設(shè)計(jì)。
2.2.3.2 有狀態(tài)地址自動(dòng)分配
在有狀態(tài)地址自動(dòng)分配的設(shè)計(jì)中,入網(wǎng)主機(jī)獲取RA報(bào)文應(yīng)答方式與無(wú)狀態(tài)地址自動(dòng)分配過(guò)程相同。當(dāng)RA報(bào)文的M標(biāo)簽設(shè)置為1;或M標(biāo)簽設(shè)置為0,O標(biāo)簽設(shè)置為1時(shí),主機(jī)會(huì)發(fā)起與DHCPv6服務(wù)器的通信。此時(shí)控制器需充當(dāng)中繼代理的角色,對(duì)主機(jī)與DHCPv6服務(wù)器的報(bào)文進(jìn)行轉(zhuǎn)發(fā)。由于此類(lèi)報(bào)文屬于數(shù)量極小的報(bào)文,且只發(fā)生在地址配置過(guò)程。故本文設(shè)計(jì)由控制器使用packet-out消息直接控制交換機(jī)轉(zhuǎn)發(fā)(消息格式如圖6所示),不下發(fā)多余的流表。通信過(guò)程如下圖所示(圖7)。
2.2.4 重復(fù)地址檢測(cè)機(jī)制
在SDN網(wǎng)絡(luò)下,控制器掌握全局網(wǎng)絡(luò)拓?fù)洌纯刂破骺赏ㄟ^(guò)全局網(wǎng)絡(luò)視圖對(duì)網(wǎng)絡(luò)中的一切設(shè)備進(jìn)行信息查詢(xún)。在這種機(jī)制下,從控制器層面來(lái)說(shuō),若地址自動(dòng)分配的過(guò)程以控制器為載體進(jìn)行實(shí)現(xiàn),那么一切被分配的IP地址,在分配前可由控制器在全局拓?fù)渲羞M(jìn)行比對(duì),當(dāng)為全局唯一地址時(shí),才進(jìn)行后續(xù)分配操作。因此,理論上在地址自動(dòng)分配過(guò)程中,SDN網(wǎng)絡(luò)下不會(huì)存在地址重復(fù)的可能。在IP地址手動(dòng)分配時(shí),由于人為的誤操作,還是有地址重復(fù)的可能性的,此時(shí)控制器無(wú)法通過(guò)自身機(jī)制來(lái)避免這種情況的發(fā)生。在主機(jī)層面上,上層網(wǎng)絡(luò)對(duì)于主機(jī)來(lái)說(shuō)是透明的。主機(jī)只會(huì)依據(jù)傳統(tǒng)IPv6協(xié)議的要求進(jìn)行各類(lèi)操作。所以,主機(jī)在接入網(wǎng)絡(luò)或獲取新的地址時(shí),仍會(huì)對(duì)自身的IP地址進(jìn)行重復(fù)地址檢測(cè),根據(jù)檢測(cè)結(jié)果選擇初始化該地址或?qū)⑵鋸亩丝趧h除。
因此,雖然在SDN網(wǎng)絡(luò)下進(jìn)行地址自動(dòng)分配時(shí),控制器無(wú)需通過(guò)IPv6重復(fù)地址檢測(cè)機(jī)制來(lái)保證全局網(wǎng)絡(luò)設(shè)備的地址唯一性。本文提出,在地址與網(wǎng)絡(luò)參數(shù)應(yīng)答組件中,加入重復(fù)地址檢測(cè)機(jī)制。控制器在地址分配過(guò)程中,從交互報(bào)文中提取待分配的IP地址作為測(cè)試地址,在分配前將該地址與全局視圖中的IP地址進(jìn)行比對(duì),由此確定該地址是否為全局唯一。
(1)無(wú)狀態(tài)地址分配過(guò)程:在該過(guò)程中,控制器從接收到的RS報(bào)文中可獲得入網(wǎng)主機(jī)的MAC地址。同時(shí),在地址分配管理信息表中可獲取即將為該主機(jī)分配的地址前綴。利用EUI-64算法,將主機(jī)MAC地址與地址前綴生成待分配的測(cè)試地址,完成地址分配前的重復(fù)地址檢測(cè)。
(2)有狀態(tài)分配過(guò)程:在這一過(guò)程中,控制器可接收到DHCPv6服務(wù)器發(fā)送的reply報(bào)文,可從中獲取待分配給主機(jī)的地址。將其提取并進(jìn)行分配前的重復(fù)地址分配。
通過(guò)這種前置的重復(fù)地址檢測(cè),控制器可以不處理來(lái)自于主機(jī)對(duì)于該地址的重復(fù)地址檢測(cè)報(bào)文,從而杜絕了多余的報(bào)文轉(zhuǎn)發(fā)操作,降低信道開(kāi)銷(xiāo)。
對(duì)于由主機(jī)發(fā)起的重復(fù)地址檢測(cè),以及由于人為手動(dòng)配置地址時(shí)發(fā)生的錯(cuò)誤而導(dǎo)致的地址重復(fù),控制器仍需遵循IPv6重復(fù)地址檢測(cè)機(jī)制對(duì)主機(jī)進(jìn)行報(bào)文應(yīng)答,由此本文提出在非地址分配過(guò)程中,控制器將接收來(lái)自于主機(jī)的重復(fù)地址檢測(cè)報(bào)文,并將該檢測(cè)地址與全局視圖進(jìn)行比對(duì),由此判斷其是否全局唯一,并作出相應(yīng)回復(fù),無(wú)需將該報(bào)文在本地鏈路內(nèi)多播至所有節(jié)點(diǎn)。這也將在很大程度上降低信道開(kāi)銷(xiāo)。
3 自動(dòng)初始化機(jī)制的實(shí)現(xiàn)
本文基于ONOS控制器,設(shè)計(jì)并實(shí)現(xiàn)了IPv6自動(dòng)初始化機(jī)制。在ONOS控制器的現(xiàn)階段版本中,對(duì)于NDP協(xié)議的地址解析功能與IPv4協(xié)議的ARP機(jī)制進(jìn)行了統(tǒng)一實(shí)現(xiàn)。故本文將提出的針對(duì)地址與參數(shù)自動(dòng)配置的功能作為獨(dú)立的組件進(jìn)行實(shí)現(xiàn)。系統(tǒng)架構(gòu)圖如圖8所示。
在ONOS控制器的核心層,擴(kuò)展了地址分配管理組件(AddressAssignmentManager)和IPv6自動(dòng)初始化管理組件(IPv6AutoConfigManager)。AddressAssignmentManager 組件主要作用是儲(chǔ)存網(wǎng)絡(luò)管理員對(duì)于地址分配方式的設(shè)置信息以及用于地址分配的前綴信息,并在執(zhí)行自動(dòng)初始化的過(guò)程中將相應(yīng)的配置提供給自動(dòng)初始化管理組件。IPv6AutoConfigManager組件主要實(shí)現(xiàn)對(duì)主機(jī)初始化過(guò)程中的各類(lèi)數(shù)據(jù)包的處理方法。根據(jù)IPv6AutoConfigManager組件中的設(shè)置,對(duì)接收到的相關(guān)報(bào)文依據(jù)前文提出的自動(dòng)初始化機(jī)制進(jìn)行處理。如對(duì)于路由器請(qǐng)求報(bào)文的處理、路由器公告報(bào)文的構(gòu)造及轉(zhuǎn)發(fā)、用于重復(fù)地址檢測(cè)的鄰節(jié)點(diǎn)請(qǐng)求報(bào)文的處理、DHCPv6協(xié)議相關(guān)報(bào)文的處理與轉(zhuǎn)發(fā)。同時(shí),該組件還向上層應(yīng)用提供接口,以供上層應(yīng)用對(duì)數(shù)據(jù)包的處理方法進(jìn)行調(diào)用。
在ONOS控制器的應(yīng)用層,擴(kuò)展了IPv6自動(dòng)初始化(IPv6AutoConfig)以及地址分配設(shè)置(AddressAssignmentConfig)應(yīng)用程序。IPv6AutoConfig應(yīng)用的主要功能在于當(dāng)應(yīng)用程序啟動(dòng)時(shí),向控制器中的processor容器中加入IPv6AutoCofigprocessor以便后續(xù)對(duì)接收的數(shù)據(jù)包進(jìn)行處理。同時(shí),該應(yīng)用發(fā)起對(duì)數(shù)據(jù)包的請(qǐng)求,并對(duì)數(shù)據(jù)包進(jìn)行一系列判斷,從而啟動(dòng)自動(dòng)初始化過(guò)程。該應(yīng)用通過(guò)核心層組件IPv6AutoConfigManager提供的接口對(duì)其進(jìn)行調(diào)用,從而處理請(qǐng)求到的數(shù)據(jù)包。AddressAssignmentConfig應(yīng)用主要為網(wǎng)絡(luò)管理員提供相關(guān)配置的入口,管理員通過(guò)輸入命令達(dá)到對(duì)網(wǎng)絡(luò)中各個(gè)接入端口的地址配置方式及前綴分配設(shè)置,并將相應(yīng)參數(shù)傳到核心層組件進(jìn)行存儲(chǔ)。當(dāng)主機(jī)從某一個(gè)端口接入到網(wǎng)絡(luò)中時(shí),它的自動(dòng)初始化過(guò)程將依據(jù)管理員對(duì)于該端口的設(shè)置進(jìn)行。
4 結(jié)論
本文將傳統(tǒng)IPv6網(wǎng)絡(luò)中的地址與參數(shù)自動(dòng)配置機(jī)制結(jié)合SDN網(wǎng)絡(luò)的特點(diǎn)進(jìn)行重新整合,提出適用于SDN網(wǎng)絡(luò)的IPv6自動(dòng)初始化機(jī)制。在該機(jī)制中,主要利用SDN控制器對(duì)全局網(wǎng)絡(luò)信息的掌握,來(lái)精簡(jiǎn)傳統(tǒng)IPv6自動(dòng)配置過(guò)程中的報(bào)文交互,從而達(dá)到對(duì)網(wǎng)絡(luò)擁塞問(wèn)題的預(yù)防。同時(shí)利用SDN控制器可編程性強(qiáng)的特點(diǎn),通過(guò)對(duì)應(yīng)用層的設(shè)計(jì),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中主機(jī)入網(wǎng)過(guò)程的個(gè)性化配置,由此提升了組網(wǎng)的靈活性,進(jìn)行細(xì)粒度的集中管理。論文的思想在以O(shè)NOS為控制器的IPv6網(wǎng)絡(luò)中進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn),取得了預(yù)期的效果,后續(xù)還需要對(duì)自動(dòng)初始化機(jī)制進(jìn)行進(jìn)一步優(yōu)化以提高效率。
參考文獻(xiàn)
[1]左青云,陳鳴,趙廣松等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報(bào),2013(05):1078-1097.
[2]Tseng C W,Chen S J,Yang Y T,et al.IPv6 operations and deployment scenarios over SDN[C]// Network Operations and Management Symposium. IEEE,2014:1-6.
[3]Sezer S,Scott-Hayward S,Chouhan P K,et al.Are we ready for SDN? Implementation challenges for software-defined networks[J].Communications Magazine IEEE,2013,51(07):36-43.
[4]林闖,賈子驍,孟坤.自適應(yīng)的未來(lái)網(wǎng)絡(luò)體系架構(gòu)[J].計(jì)算機(jī)學(xué)報(bào),2012,35(06):1077-1093.
[5]Tseng C W,Yang Y T,Chou L D. An IPv6-enabled Software-Defined Networking architecture[C]// Network Operations and Management Symposium.IEEE,2013:1-3.
[6]Jiang P C,Chen M,Xing C Y,et al. VDHCP:A versatile DHCP service based on OpenFlow[J].Journal of System Simulation,2013,25(07):1617-1621.
[7]陳志賓.單DHCP服務(wù)器跨子網(wǎng)的應(yīng)用研究[J].河北省科學(xué)院學(xué)報(bào),2006,23(03):64-67.
[8]深入解析IPV 6(第3版)[M].人民郵電出版社,2014.