李 璐 莫正鵬
1(西安電子科技大學通信工程學院 陜西 西安 710071) 2(杭州華三通信技術(shù)有限公司 北京 100000)
基于IPv4隧道的校園網(wǎng)專網(wǎng)互通的研究
李 璐1莫正鵬2
1(西安電子科技大學通信工程學院 陜西 西安 710071)2(杭州華三通信技術(shù)有限公司 北京 100000)
在分析IPv6 over IPv4手動隧道和自動隧道優(yōu)缺點的基礎(chǔ)上,針對校園網(wǎng)的組網(wǎng)現(xiàn)狀和改造成本等因素,提出在相互隔離的IPv6 校園網(wǎng)之間創(chuàng)建IPv6 over IPv4 手動隧道的方案從而實現(xiàn)校際信息交流和資源共享。綜述了VPN實例的技術(shù)內(nèi)容,結(jié)合校園網(wǎng)絡(luò)需要安全穩(wěn)定、簡潔實用的安全體系的要求,充分發(fā)揮VPN技術(shù)的組網(wǎng)優(yōu)勢,重點研究基于手動隧道創(chuàng)建VPN 實例和實例與隧道綁定的實現(xiàn)方式。最后對系統(tǒng)進行了連通性測試,確保了可行性,為VPN在IPv6校園網(wǎng)建設(shè)中提供一種新的運用思路,具有一定的實踐應(yīng)用價值。
IPv6 over IPv4 隧道 VPN實例 隧道綁定VPN
近年來,隨著中國教育和科研計算機網(wǎng)的開通,我國高等院校的校園網(wǎng)開始邁進協(xié)議的時代,目前全國百余所高校校園網(wǎng)已實現(xiàn)IPv6 全覆蓋。這些IPv6 校園網(wǎng)猶如一個個“孤島”,互訪時受到IPv4公共網(wǎng)絡(luò)的限制?,F(xiàn)在已經(jīng)出現(xiàn)了多種過渡機制[1-3]和互通方案,但是校園網(wǎng)的網(wǎng)絡(luò)需求及管理方式與其他網(wǎng)絡(luò)有較大差異,因此關(guān)于安全和管理就必須具備更高的能力。VPN 技術(shù)[4-5]具有將校園網(wǎng)公用信道改造成私有網(wǎng)絡(luò)的獨特優(yōu)勢,使其在校園網(wǎng)互連通信建設(shè)中受到高度關(guān)注,而MPLS L3VPN則以其穩(wěn)定可靠、安全保密等諸多優(yōu)點,在校園網(wǎng)實際部署及運行過程中得到充分的研究和應(yīng)用。本文提出利用隧道過渡機制實現(xiàn)跨校區(qū)互通,并根據(jù)MPLS L3VPN 的特點提出隧道和VPN實例相關(guān)聯(lián),從而提高數(shù)據(jù)傳輸過程中的安全性,打造校外網(wǎng)專屬通道。
1.1 IPv6 over IPv4 隧道技術(shù)
隧道技術(shù)由封裝、數(shù)據(jù)傳輸和解封裝過程組成。IPv6 over IPv4 隧道是在IPv6報文穿越IPv4 公共網(wǎng)絡(luò)時,在外層IPv6 數(shù)據(jù)報文前封裝上IPv4的報文頭,從而使得隔離的IPv6 網(wǎng)絡(luò)可以通信。接口配置的源和目的IP地址組成了隧道封裝報文的內(nèi)容。如果IPv6 over IPv4 隧道的IPv4 源和目的地址均需手動配置,此隧道稱為手動隧道;而如果源地址需要手工配置,目的地址從IPv6 嵌入報文中獲取,此隧道就被認定為自動隧道。幾種隧道的實現(xiàn)方式和功能支持情況如表1所示。以往的互通方案大多采用自動隧道[6-8],然而受限于交換機芯片的支持度和更換設(shè)備成本和通信穩(wěn)定性等因素,自動隧道的方案現(xiàn)在并沒有廣泛應(yīng)用于校園網(wǎng)建設(shè)。手工隧道方案對通信使用的IPv6 目的地址沒有嚴格要求,便于基于隧道對端地址實現(xiàn)站點與主機間的連接。此外,高、低端交換機產(chǎn)品普遍支持創(chuàng)建手工隧道,這些優(yōu)勢使其成為校園網(wǎng)互連通信最適合的方案。
表1 IPv6 over IPv4隧道技術(shù)對照表
1.2 VPN實例
MPLS L3VPN解決了傳統(tǒng)VPN技術(shù)的地址重疊問題。主要是以下內(nèi)容:
1) 本地路由沖突
如圖1,在PE設(shè)備上本地接口上送來的不同VPN 用戶路由通過建立不同的VPN(VRF)實例來區(qū)分。不同VPN 用戶之間的路由是相互隔離獨立的,彼此之間不能互訪,這正是VPN數(shù)據(jù)安全性的體現(xiàn)。每個PE設(shè)備維護一個或多個私網(wǎng)域路由的同時,還可以兼顧管理一個公共路由表。使用過程中,VRF=0用來定義公共網(wǎng)絡(luò),而非0 VRF用來定義用戶VPN。
圖1 VRF路由隔離
2) 網(wǎng)絡(luò)傳輸沖突
在網(wǎng)絡(luò)傳遞過程中,解決一臺PE設(shè)備分辨收到的路由是屬于VPN的私網(wǎng)路由還是公共網(wǎng)絡(luò)上的全局路由的方法是:給VPN路由加上了一個特定的標記,由不同的標記來標示不同的路由,由PE設(shè)備根據(jù)這個標記來控制VPN路由信息的發(fā)布。該標記是BGP 擴展團體屬性-VPN Target,也稱為RT(Router Target)。RT由兩部分組成:Export Target 與 Import Target。本地PE將從與VRF直接相連的Site學習到的IPv4路由轉(zhuǎn)換成VPN-IPv4路由,并給其設(shè)置Export Target屬性然后將此路由發(fā)布給其他PE。其他PE接收到發(fā)布來的路由時,需要先檢查其攜帶的Export Target屬性能否和PE上某個VPN實例的Import Target屬性相匹配,只有兩者匹配時才把該路由加入到該私網(wǎng)路由表中。
由于不同的VPN地址空間在某個網(wǎng)段可能是重合的,VPN路由僅具有RT屬性是遠遠不夠的。例如VPN 1和VPN 2均使用20.100.20.0/24 網(wǎng)段的地址,兩者具有相同的IPv4地址前綴,接收端沒有能力辨別出到底是哪個VPN路由。因此引入路由標識符RD(Router Distinguisher)標記。PE發(fā)布路由時,RD和IPv4地址綁定在一起,使IPv4地址前綴成為全局唯一的VPN-IPv4 前綴。RD、RT屬性屬于VPN實例管理信息的重要信息,在創(chuàng)建VPN實例的時候需要同時設(shè)置上這兩個標記。
校際交流的網(wǎng)絡(luò)體系必須能夠承載大量的信息交互以及高強度的數(shù)據(jù)涉密保護,VPN虛擬和專用的特點恰恰滿足建設(shè)的需求[9-11]。然而大多數(shù)情況下都是采用VPN網(wǎng)絡(luò)接入或者是專用的VPN監(jiān)管平臺等方式,對于交換機上接口和VPN綁定的實現(xiàn)研究少之又少。
2.1 整體方案
利用VPN實例可以和接口關(guān)聯(lián)的特性打造校園網(wǎng)專用網(wǎng)絡(luò)。如圖2,隧道報文分為封裝報文和解封裝報文,因此隧道接口綁定VPN有兩種綁定方式。
圖2 隧道報文通信過程
一種方式是使隧道的封裝報文路由存在于私網(wǎng)域里,具體做法是配置隧道接口Tunnel Binding VPN。但是配置后只能保證隧道的目的地址在VRF路由表里。隧道接口鏈路狀態(tài)UP,三層轉(zhuǎn)發(fā)才可以進行,所以構(gòu)成報文的隧道的源地址和目的地址就需要綁定同一VPN實例。要使源地址也加入到VRF路由表里,使用隧道的源三層接口VLAN和VPN實例關(guān)聯(lián)即可。
另一種方式是隧道接口IP Binding VPN,實現(xiàn)的功能是指定隧道的解封裝報文走私網(wǎng)轉(zhuǎn)發(fā)。入隧道之前的初始報文和出隧道之后的解封裝報文幾乎是一樣的,因此配置解封裝報文在私網(wǎng)域里,需要保證原始報文也在私網(wǎng)域里。實現(xiàn)方式是IPv6節(jié)點也即報文入接口和出接口的三層接口VLAN和 VPN實例關(guān)聯(lián)。需要注意,由于不同VPN實例之間相互隔離,不能互訪,IP Binding 的VPN實例必須和IPv6 節(jié)點關(guān)聯(lián)的VPN實例保持一致,否則無法進行通信。然而,由于隧道封裝和解封裝報文在轉(zhuǎn)發(fā)過程中是不同的階段,各個虛擬路由器也是獨立工作的,所以Tunnel Binding 和 IP Binding 這兩種方式可以同時使用,所綁定的VPN 也可以是不同的。
為了便于操作和控制,交換機使用軟件平臺化的思想,分為三層,上層是平臺,主要將信息提交給下層;底層是SDK,用于封裝不同的ASIC 硬件功能;中間是驅(qū)動,用來完成平臺和SDK的中間適配工作。本文設(shè)計部分主要基于驅(qū)動層面。如圖3所示,驅(qū)動層實現(xiàn)隧道功能分為以下幾個模塊。
圖3 驅(qū)動層隧道實現(xiàn)整體模塊劃分
(1) 規(guī)格定制模塊:平臺與驅(qū)動的接口函數(shù)掛接,用于在配置隧道、隧道接口狀態(tài)等變化時通知驅(qū)動。
(2) 命令行響應(yīng)模塊:根據(jù)實際需求,設(shè)計平臺下發(fā)的命令字。驅(qū)動響應(yīng)命令字進行相關(guān)的處理。
(3) 資源管理模塊:隧道的資源管理分為軟件表資源管理和全局資源的管理。軟件表存儲隧道的所有信息,具有實時性,一旦對隧道進行操作,軟件表信息必須同步更新。
(4) 同步模塊:本設(shè)計是基于分布式交換機實現(xiàn),具有主控板和接口板,因此隧道全局資源需要在各板間同步。
(5) 通信模塊:隧道通信需要根據(jù)平臺下發(fā)的參數(shù)構(gòu)造封裝和解封裝的結(jié)構(gòu)體,此外也需要在設(shè)備剛啟動完成后初始化隧道的狀態(tài)信息。
2.2 接口綁定VPN實現(xiàn)
本文主要介紹驅(qū)動響應(yīng)隧道綁定VPN命令字的實現(xiàn)。設(shè)計如下結(jié)構(gòu)體保存隧道軟件表信息:
typedef struct stXXX
{
UINT uiTunnelState; /*隧道狀態(tài)*/
UINT uiIntfId;/*分配給隧道的三層虛接口表索引*/
UINT uiEgressIntf;/*分配給隧道的下一跳索引*/
TUNNEL_CFGDATA_S stTunnel;/*保存平臺隧道參數(shù)*/
UINT uiTransState;/*隧道封裝狀態(tài)*/
UINT uiIntfTrans;/*隧道封裝intf*/
UINT uiInRifTrans;/*隧道封裝inRif*/
UINT uiEncapIdTrans;/*隧道封裝的下一跳索引*/
……
}XXX;
typedef struct tagTUNNEL_CfgData
{
VRF_INDEX vrfIndex;/*隧道解封裝報文所屬VPN*/
VRF_INDEX vrfIndexTransLayer;/*隧道封裝報文所屬VPN*/
INADDR_S stIPv4SrcAddr;/*隧道源地址*/
INADDR_S stIPv4DstAddr;/*隧道目的地址*/
……
}TUNNEL_CFGDATA_S;
2.1節(jié)提到隧道綁定VPN有兩種方式,驅(qū)動層實現(xiàn)過程如下:
1) 隧道解封裝報文綁定VPN
實現(xiàn)較簡單,取出三層接口出口InRIF(三層邏輯端口概念,值為配置隧道所需的保留VLAN的值),調(diào)用SDK函數(shù)下發(fā)VRF即可。VRF的值是從隧道軟件表TUNNEL_CFGDATA_S 結(jié)構(gòu)體里取得。此結(jié)構(gòu)包含了隧道封裝和解封裝報文所屬的VPN。
2) 隧道封裝報文綁定VPN
封裝報文綁定VPN的流程圖如圖4所示。從隧道軟件表的TUNNEL_CFGDATA_S 結(jié)構(gòu)體里取得隧道封裝報文所屬的VPN。判斷當前VPN是否為0。
圖4 封裝報文綁定VPN流程圖
(1) 當前VPN不為0,即是綁定狀態(tài)
從隧道軟件表結(jié)構(gòu)里取出當前隧道封裝狀態(tài)。如果當前狀態(tài)是無效值,也即VPN是第一次下發(fā)硬件,則獲取封裝的InRIF和下一跳索引,并檢查索引的有效性。索引值有效的情況下,創(chuàng)建三層接口,獲取三層接口MAC。接著創(chuàng)建下一跳,并將封裝的InRIF 和 下一跳索引下發(fā)硬件。將當前隧道封裝的三層接口端口值、InRIF和下一跳索引更新到隧道軟件表中,同時將當前隧道封裝狀態(tài)改為有效值。如果第一步時判斷的隧道封裝狀態(tài)為有效值,直接從隧道軟件表結(jié)構(gòu)里取出封裝的InRIF 索引即可。得到InRIF 后,調(diào)用SDK函數(shù)設(shè)置VRF 。此時的VRF值是由平臺傳下來的。
(2) 當前VPN 為0,即解綁定狀態(tài)
從隧道軟件表里取出當前隧道封裝狀態(tài)。如果當前隧道狀態(tài)是無效值,也即已經(jīng)解綁定了,則直接返回成功不再進行操作。否則從當前隧道軟件表里取出封裝的三層接口,InRIF和下一跳索引,調(diào)用SDK函數(shù),設(shè)置VRF為0。解綁定VPN后,相應(yīng)的配置(源地址和目的地址)都會被刪除,因此刪除下一跳和三層接口并釋放三層接口表項。最后更新軟件表,將分配給該隧道的三層接口表的索引置0,隧道封裝的InRIF 和下一跳索引也置0,并將隧道封裝狀態(tài)設(shè)置為無效值。
2.1節(jié)提到,為了隧道能正常UP進行三層轉(zhuǎn)發(fā),必須實現(xiàn)報文三層接口VLAN綁定VPN。使用以下結(jié)構(gòu)體來存儲平臺下發(fā)的信息:
typedef struct tagXXX
{
IF_INDEX ifIndex;/*接口索引*/
VRF_INDEX vrfIndex;/*VRF 索引*/
}XXX;
接口綁定VPN時,將接口索引轉(zhuǎn)化成VLANID,通過VLANID查找三層接口信息,如果當前三層接口未創(chuàng)建,則不進行綁定,否則把VLANID和VRF下發(fā)SDK。由于在去綁定操作時,接口管理已經(jīng)刪除對應(yīng)三層接口的相關(guān)信息,因此底層三層接口信息由接口軟件表項里獲取。然后將獲取到的VLANID和VRF(0)下發(fā)SDK。
如圖5所示,將兩臺支持Ipv4/Ipv6雙協(xié)議棧的交換機設(shè)備模擬為兩個孤立的IPv6校園網(wǎng),兩校之間建立IPv6 over IPv4 手動隧道,并建立私網(wǎng)域:創(chuàng)建VPN 實例并制定RT和RD屬性。配置隧道Tunnel Binding VPN 和 IP Binding VPN,配置報文入口VLAN、出口VLAN和隧道的源端口關(guān)聯(lián)VPN。為方便起見,VPN只創(chuàng)建一個,使隧道封裝和解封裝報文屬于同一個私網(wǎng)域。利用串口服務(wù)器將待測試版本加載至交換機設(shè)備,向各設(shè)備輸入相關(guān)配置命令,Switch-A 的詳細配置如圖6所示,Switch-B的配置類似,不再贅述。
圖5 系統(tǒng)測試組網(wǎng)圖
圖6 Switch-A詳細配置命令
如圖7,在Swich B 上ping 對端Switch A,可以ping 通。說明兩個孤立的IPv6校園網(wǎng)是私網(wǎng)域互通的,符合設(shè)計的功能要求。
圖7 系統(tǒng)連通性測試結(jié)果
隨著IPv6技術(shù)的深入發(fā)展,IPv4和IPv6互通的需求不斷增長。VPN滿足遠程互連的大中型業(yè)務(wù)專網(wǎng)對于“隔離”的需求,其特有的標簽協(xié)議限制了其他非VPN用戶的入侵。在校園網(wǎng)實際部署過程中可以根據(jù)業(yè)務(wù)網(wǎng)絡(luò)的需求,建立不同的VPN實例,實現(xiàn)不同業(yè)務(wù)的隔離,同時將隧道技術(shù)和VPN實例結(jié)合打造安全隔離的專網(wǎng)專用的通道,保障校園內(nèi)、外網(wǎng)資源的安全訪問。
[1] 王魏.IPv4/IPv6過渡階段應(yīng)用代理系統(tǒng)研究與實現(xiàn)[D].黑龍江:哈爾濱工程大學,2013.
[2] 李小菲.校園網(wǎng)IPv6過渡策略與技術(shù)實現(xiàn)[D].河北:河北大學,2015.
[3] 李曉杰.基于雙棧網(wǎng)絡(luò)的IPv4/IPv6校園過渡方案研究[J].計算機技術(shù)與發(fā)展,2016,26(8):171-173.
[4] 李智宏.VPN技術(shù)在局域網(wǎng)中的應(yīng)用[J].電子測試,2016(11):68-69.
[5] 敖令攀.基于MPLS VPN技術(shù)的多園區(qū)校園網(wǎng)構(gòu)建實驗性研究[D].云南:云南大學,2015.
[6] 林瓏.IPv6快速部署的研究與實現(xiàn)[D].湖北:武漢理工大學,2014.
[7] 楊尚楠.IPv4/IPv6隧道安全應(yīng)急處理的研究與實現(xiàn)[D].廣東:華南理工大學,2010.
[8] 周偉.IPv6隧道技術(shù)在校園網(wǎng)中的應(yīng)用[J].西昌學院學報(自然科學版),2013(1):62-64,67.
[9] 謝芳.基于VPN技術(shù)的安防遠程監(jiān)管平臺的研究與實現(xiàn)[D].陜西:西安電子科技大學,2015.
[10] 符冰.MPLS VPN技術(shù)在校園網(wǎng)的研究和實現(xiàn)[D].上海:上海交通大學,2012.
[11] 劉冬鄰.安全、高效的智慧校園網(wǎng)絡(luò)架構(gòu)設(shè)計[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2016(3):86-87.
RESEARCHONINTERCONNECTIONOFPRIVATENETWORKOFCAMPUSNETWORKBASEDONIPV4TUNNEL
Li Lu1Mo Zhengpeng2
1(SchoolofTelecommunicationsEngineering,XidianUniversity,Xi’an710071,Shaanxi,China)2(H3CCommunicationTechnologyCorporation,Beijing100000,China)
Considering the campus network for the status, transformation costs and other factors, this paper proposed an IPv6 over IPv4 manual tunnel to establish a virtual link to isolate the IPv6 campus network based on the analysis of the advantages and disadvantages of IPv6 over IPv4 tunnels. Combing the advantages of secure, stable and practical security system in campus network, it summarized the technical contents of VPN, and gave full play to the networking advantages of VPN technology and focused on creating a VPN instance and completing binding between instance and the tunnel. Finally, the connectivity test of the system is carried out to ensure the feasibility. It provides a new application idea for VPN in the construction of IPv6 campus network, and has certain practical application value.
IPv6 over IPv4 tunnel VPN instance Tunnel binding VPN
2017-01-07。李璐,碩士生,主研領(lǐng)域:網(wǎng)絡(luò)驅(qū)動,信道編碼。莫正鵬,高工。
TP393.18
A
10.3969/j.issn.1000-386x.2017.11.032