龔珊珊
摘要:基于NetFPGA硬件平臺設(shè)計的可編程虛擬化路由器,為提高其可編程性和靈活性將控制平面與數(shù)據(jù)平面進行分離,導(dǎo)致二個平面難以正常進行數(shù)據(jù)傳輸。通過對控制平面的接口進行設(shè)置,對OpenVZ虛擬路由實例中Zebra路由協(xié)議軟件計算出來的路由表進行提取,并下發(fā)給底層NetFPGA來完成交互。本文就如何將路由表提取出來進行了研究,提出了對Zebra路由協(xié)議軟件進行二次開發(fā),增加路由表定時更新輸出的功能解決方案。該方案基于Zebra面向?qū)ο笤O(shè)計思想,復(fù)用其通用接口,設(shè)計相應(yīng)數(shù)據(jù)結(jié)構(gòu)和函數(shù),增加線程來處理通過Rip、Ospf或Bgp計算得到的路由表。
關(guān)鍵詞:NetFPGA 控制平面 數(shù)據(jù)平面 Zebra
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1007-9416(2014)08-0043-02
1 前言
隨著互聯(lián)網(wǎng)規(guī)模日益的擴大,用戶的增長,應(yīng)用和業(yè)務(wù)的多樣化,使得TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)在可擴展性、移動性、安全可控性方面存在巨大的挑戰(zhàn)[1],為應(yīng)對這些挑戰(zhàn),科研人員提出了未來網(wǎng)絡(luò)這一概念。未來網(wǎng)絡(luò)[2]旨在設(shè)計全新的網(wǎng)絡(luò)體系結(jié)構(gòu)和新的網(wǎng)絡(luò)協(xié)議滿足當(dāng)前復(fù)雜網(wǎng)絡(luò)。然而未來網(wǎng)絡(luò)新的體系結(jié)構(gòu)、協(xié)議、算法等在實際應(yīng)用之前需要進行大量的理論分析與仿真實驗,更需要在試驗網(wǎng)絡(luò)中進行評估與驗證。
作為連接網(wǎng)絡(luò)的核心設(shè)備,路由器必須要滿足未來網(wǎng)絡(luò)需求。然而考慮到傳統(tǒng)路由器封閉性以及網(wǎng)絡(luò)試驗對正常業(yè)務(wù)產(chǎn)生一定影響,導(dǎo)致在部署、實現(xiàn)和驗證的體系結(jié)構(gòu)、算法和協(xié)議會非常困難,嚴(yán)重制約了互聯(lián)網(wǎng)體系結(jié)構(gòu)的研究發(fā)展和創(chuàng)新。
為了解決這些問題,研究人員提出了一種新型的路由器—可編程虛擬化路由器[3]。它將可編程性和虛擬化都融合于路由器中,既解決了由于封閉性對新型業(yè)務(wù)的影響,也滿足了在多種業(yè)務(wù)的并行運行。可編程虛擬化路由器采用分層思想[4](如圖1):控制平面和數(shù)據(jù)平面??刂破矫尕?fù)責(zé)路由器的虛擬化以及路由協(xié)議的運行和維護,得到路由表、ARP表和端口表;數(shù)據(jù)平面負(fù)責(zé)路由信息的查找與轉(zhuǎn)發(fā)。將控制引擎與數(shù)據(jù)平面分離導(dǎo)致二者不能正常交互,需要對控制平面與數(shù)據(jù)平面進行接口設(shè)置,并將VR(虛擬路由器)中路由表下發(fā)給轉(zhuǎn)發(fā)模塊。本文基于NetFPGA硬件平臺對路由表提取技術(shù)進行了研究。
2 控制平面的虛擬化研究與實現(xiàn)
科研人員把虛擬化技術(shù)主要分為:全虛擬化、半虛擬化、系統(tǒng)級虛擬化。全虛擬化技術(shù)最大的特點是無需任何修改客戶操作系統(tǒng)就可以直接在虛擬化平臺上運行;半虛擬化技術(shù)最大優(yōu)點是需要改變客戶操作系統(tǒng)內(nèi)核;系統(tǒng)級虛擬化采用共享操作系統(tǒng)內(nèi)核手段,是基于操作系統(tǒng)本身之上實現(xiàn)的服務(wù)器的虛擬化。綜合比較,采用系統(tǒng)級虛擬化具有其他虛擬技術(shù)所沒有的高性能、高效率和高密度特性。其代表技術(shù)有:SWsoft公司的開源OpenVZ項目。
在Centos6.0操作系統(tǒng)中安裝OpenVZ內(nèi)核、OpenVZ用戶管理工具(vzctl和vzquato)并重新啟動OpenVZ。下載需要安裝的模板(centos)到vz/template/cache目錄下,并用vzctl指令創(chuàng)建4個VE分別表示為:VR1、VR2 … VRn(VR表示為虛擬路由器),每個VR中創(chuàng)建4個虛擬網(wǎng)絡(luò)接口(對應(yīng)NetFPGA的4個物理端口),然后下載Zebra軟件包,安裝源碼包,修改配置文件并配置接口IP。
3 虛擬路由器路由表的下發(fā)與更新研究與實現(xiàn)
Zebra系統(tǒng)體系結(jié)構(gòu)圖如2所示。
整個系統(tǒng)主要分為三大部分:Zebra交互模塊、路由協(xié)議模塊和VTY顯示配置模塊。Zebra模塊負(fù)責(zé)與路由協(xié)議進行交互,將路由協(xié)議計算得到的路由表存儲在Rib結(jié)構(gòu)體中;Zebra模塊與Linux內(nèi)核交互,將進入到Linux中的數(shù)據(jù)包傳送到路由協(xié)議模塊。路由協(xié)議模塊負(fù)責(zé)路由協(xié)議計算,主要有三種路由協(xié)議RIP、OSPF和BGP并包含IPv6版本。VTY模塊主要方便用戶進行路由協(xié)議配置,起人機交互的作用。
通過對Zebra模塊的分析,可以將模塊分為兩個部分:模塊交互部分、路由表管理部分。
模塊交互部分負(fù)責(zé)與協(xié)議模塊進行交互,獲取通過路由協(xié)議計算的到得路由表,并交由路由表管理模塊進行管理。
(1)路由表的提取。首先,在../zebra目錄下創(chuàng)建Gtroutertable.h、Gtroutertable.c兩個文件,負(fù)責(zé)路由提取的功能,在Gtroutertable.c中編寫獲取路由表函數(shù)void *Get(…)。在zebra模塊主線程中創(chuàng)建一個新的子線程,當(dāng)獲取到了路由表的時候,執(zhí)行該子線程,調(diào)用獲取路由表函數(shù),從而提取出所需的路由表。
其次,重新修改Makefile文件,執(zhí)行make指令進行重新編譯。
(2)路由表的更新。當(dāng)鏈路發(fā)生變化后,通過RIP或OSPF計算出來的路由表也發(fā)生了變化,但由于直接從zebra模塊中提取的路由表變化時間較長,不能滿足實時性更新。Zebra中主要包含3種定時器,分別為:update_time、timeout_time、garbage_time。通過在zebra主線程上設(shè)置定時器update_time,當(dāng)路由表發(fā)生變化后,立即調(diào)用Get(…)獲取路由表函數(shù)。從而達(dá)到定時更新提取出的路由表的目的。
4 實驗驗證與分析
該實驗基于NetFPGA硬件設(shè)計的可編程路由器如下:在每個VR中安裝zebra路由協(xié)議軟件,開啟zebra守護進程,運行Rip路由協(xié)議。得到的路由表信息分別是圖3、圖4所示。
其中C代表是connect,R代表是運行RIP路由協(xié)議。
二者對比,明顯發(fā)現(xiàn)隨著鏈路發(fā)生變化,所提取的路由表也隨著發(fā)生了變化,并且和鏈路變化一致,說明路由表提取是有效的,并是實時更新的。
5 結(jié)語
本文針對基于NetFPGA硬件的可編程虛擬化路由器由于采用控制與轉(zhuǎn)發(fā)分離,而導(dǎo)致無法正常交互問題,做了一些分析研究,通過對路由協(xié)議軟件的研究與分析,通過對zebra路由協(xié)議軟件進行二次開發(fā),添加了路由提取功能和定時更新功能,通過實驗驗證分析,提取的路由表隨著路由信息的改變而更新,并恢復(fù)了控制平面與數(shù)據(jù)平面的正常交互。
參考文獻
[1]Xie Gao-Gang, Zhang Yu-Jun,Li Zhen-Yu,et al.A survey on future Internet architecture[J].Chinese Journal of Computers, 2012,35(6):1109-1119(in Chinese).
[2]Paul S,Pan Jianli,Jain R.Architectures for the future networks and the next generation Internet:a survey[C].Computer Communications.2011.34(1):2-42.
[3]Feldmann Anja.Internet clean-slate design:what and why?[C]ACM SIGCOMM Computer Communication Review.2007.37(3):59-64.
[4]楊懋,劉中金,李勇,曾烈光,金德鵬,蘇厲.基于可編程硬件的虛擬路由器控制平面.清華大學(xué)學(xué)報(自然科學(xué)版)[J].2012,52(5):586-591.
摘要:基于NetFPGA硬件平臺設(shè)計的可編程虛擬化路由器,為提高其可編程性和靈活性將控制平面與數(shù)據(jù)平面進行分離,導(dǎo)致二個平面難以正常進行數(shù)據(jù)傳輸。通過對控制平面的接口進行設(shè)置,對OpenVZ虛擬路由實例中Zebra路由協(xié)議軟件計算出來的路由表進行提取,并下發(fā)給底層NetFPGA來完成交互。本文就如何將路由表提取出來進行了研究,提出了對Zebra路由協(xié)議軟件進行二次開發(fā),增加路由表定時更新輸出的功能解決方案。該方案基于Zebra面向?qū)ο笤O(shè)計思想,復(fù)用其通用接口,設(shè)計相應(yīng)數(shù)據(jù)結(jié)構(gòu)和函數(shù),增加線程來處理通過Rip、Ospf或Bgp計算得到的路由表。
關(guān)鍵詞:NetFPGA 控制平面 數(shù)據(jù)平面 Zebra
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1007-9416(2014)08-0043-02
1 前言
隨著互聯(lián)網(wǎng)規(guī)模日益的擴大,用戶的增長,應(yīng)用和業(yè)務(wù)的多樣化,使得TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)在可擴展性、移動性、安全可控性方面存在巨大的挑戰(zhàn)[1],為應(yīng)對這些挑戰(zhàn),科研人員提出了未來網(wǎng)絡(luò)這一概念。未來網(wǎng)絡(luò)[2]旨在設(shè)計全新的網(wǎng)絡(luò)體系結(jié)構(gòu)和新的網(wǎng)絡(luò)協(xié)議滿足當(dāng)前復(fù)雜網(wǎng)絡(luò)。然而未來網(wǎng)絡(luò)新的體系結(jié)構(gòu)、協(xié)議、算法等在實際應(yīng)用之前需要進行大量的理論分析與仿真實驗,更需要在試驗網(wǎng)絡(luò)中進行評估與驗證。
作為連接網(wǎng)絡(luò)的核心設(shè)備,路由器必須要滿足未來網(wǎng)絡(luò)需求。然而考慮到傳統(tǒng)路由器封閉性以及網(wǎng)絡(luò)試驗對正常業(yè)務(wù)產(chǎn)生一定影響,導(dǎo)致在部署、實現(xiàn)和驗證的體系結(jié)構(gòu)、算法和協(xié)議會非常困難,嚴(yán)重制約了互聯(lián)網(wǎng)體系結(jié)構(gòu)的研究發(fā)展和創(chuàng)新。
為了解決這些問題,研究人員提出了一種新型的路由器—可編程虛擬化路由器[3]。它將可編程性和虛擬化都融合于路由器中,既解決了由于封閉性對新型業(yè)務(wù)的影響,也滿足了在多種業(yè)務(wù)的并行運行。可編程虛擬化路由器采用分層思想[4](如圖1):控制平面和數(shù)據(jù)平面。控制平面負(fù)責(zé)路由器的虛擬化以及路由協(xié)議的運行和維護,得到路由表、ARP表和端口表;數(shù)據(jù)平面負(fù)責(zé)路由信息的查找與轉(zhuǎn)發(fā)。將控制引擎與數(shù)據(jù)平面分離導(dǎo)致二者不能正常交互,需要對控制平面與數(shù)據(jù)平面進行接口設(shè)置,并將VR(虛擬路由器)中路由表下發(fā)給轉(zhuǎn)發(fā)模塊。本文基于NetFPGA硬件平臺對路由表提取技術(shù)進行了研究。
2 控制平面的虛擬化研究與實現(xiàn)
科研人員把虛擬化技術(shù)主要分為:全虛擬化、半虛擬化、系統(tǒng)級虛擬化。全虛擬化技術(shù)最大的特點是無需任何修改客戶操作系統(tǒng)就可以直接在虛擬化平臺上運行;半虛擬化技術(shù)最大優(yōu)點是需要改變客戶操作系統(tǒng)內(nèi)核;系統(tǒng)級虛擬化采用共享操作系統(tǒng)內(nèi)核手段,是基于操作系統(tǒng)本身之上實現(xiàn)的服務(wù)器的虛擬化。綜合比較,采用系統(tǒng)級虛擬化具有其他虛擬技術(shù)所沒有的高性能、高效率和高密度特性。其代表技術(shù)有:SWsoft公司的開源OpenVZ項目。
在Centos6.0操作系統(tǒng)中安裝OpenVZ內(nèi)核、OpenVZ用戶管理工具(vzctl和vzquato)并重新啟動OpenVZ。下載需要安裝的模板(centos)到vz/template/cache目錄下,并用vzctl指令創(chuàng)建4個VE分別表示為:VR1、VR2 … VRn(VR表示為虛擬路由器),每個VR中創(chuàng)建4個虛擬網(wǎng)絡(luò)接口(對應(yīng)NetFPGA的4個物理端口),然后下載Zebra軟件包,安裝源碼包,修改配置文件并配置接口IP。
3 虛擬路由器路由表的下發(fā)與更新研究與實現(xiàn)
Zebra系統(tǒng)體系結(jié)構(gòu)圖如2所示。
整個系統(tǒng)主要分為三大部分:Zebra交互模塊、路由協(xié)議模塊和VTY顯示配置模塊。Zebra模塊負(fù)責(zé)與路由協(xié)議進行交互,將路由協(xié)議計算得到的路由表存儲在Rib結(jié)構(gòu)體中;Zebra模塊與Linux內(nèi)核交互,將進入到Linux中的數(shù)據(jù)包傳送到路由協(xié)議模塊。路由協(xié)議模塊負(fù)責(zé)路由協(xié)議計算,主要有三種路由協(xié)議RIP、OSPF和BGP并包含IPv6版本。VTY模塊主要方便用戶進行路由協(xié)議配置,起人機交互的作用。
通過對Zebra模塊的分析,可以將模塊分為兩個部分:模塊交互部分、路由表管理部分。
模塊交互部分負(fù)責(zé)與協(xié)議模塊進行交互,獲取通過路由協(xié)議計算的到得路由表,并交由路由表管理模塊進行管理。
(1)路由表的提取。首先,在../zebra目錄下創(chuàng)建Gtroutertable.h、Gtroutertable.c兩個文件,負(fù)責(zé)路由提取的功能,在Gtroutertable.c中編寫獲取路由表函數(shù)void *Get(…)。在zebra模塊主線程中創(chuàng)建一個新的子線程,當(dāng)獲取到了路由表的時候,執(zhí)行該子線程,調(diào)用獲取路由表函數(shù),從而提取出所需的路由表。
其次,重新修改Makefile文件,執(zhí)行make指令進行重新編譯。
(2)路由表的更新。當(dāng)鏈路發(fā)生變化后,通過RIP或OSPF計算出來的路由表也發(fā)生了變化,但由于直接從zebra模塊中提取的路由表變化時間較長,不能滿足實時性更新。Zebra中主要包含3種定時器,分別為:update_time、timeout_time、garbage_time。通過在zebra主線程上設(shè)置定時器update_time,當(dāng)路由表發(fā)生變化后,立即調(diào)用Get(…)獲取路由表函數(shù)。從而達(dá)到定時更新提取出的路由表的目的。
4 實驗驗證與分析
該實驗基于NetFPGA硬件設(shè)計的可編程路由器如下:在每個VR中安裝zebra路由協(xié)議軟件,開啟zebra守護進程,運行Rip路由協(xié)議。得到的路由表信息分別是圖3、圖4所示。
其中C代表是connect,R代表是運行RIP路由協(xié)議。
二者對比,明顯發(fā)現(xiàn)隨著鏈路發(fā)生變化,所提取的路由表也隨著發(fā)生了變化,并且和鏈路變化一致,說明路由表提取是有效的,并是實時更新的。
5 結(jié)語
本文針對基于NetFPGA硬件的可編程虛擬化路由器由于采用控制與轉(zhuǎn)發(fā)分離,而導(dǎo)致無法正常交互問題,做了一些分析研究,通過對路由協(xié)議軟件的研究與分析,通過對zebra路由協(xié)議軟件進行二次開發(fā),添加了路由提取功能和定時更新功能,通過實驗驗證分析,提取的路由表隨著路由信息的改變而更新,并恢復(fù)了控制平面與數(shù)據(jù)平面的正常交互。
參考文獻
[1]Xie Gao-Gang, Zhang Yu-Jun,Li Zhen-Yu,et al.A survey on future Internet architecture[J].Chinese Journal of Computers, 2012,35(6):1109-1119(in Chinese).
[2]Paul S,Pan Jianli,Jain R.Architectures for the future networks and the next generation Internet:a survey[C].Computer Communications.2011.34(1):2-42.
[3]Feldmann Anja.Internet clean-slate design:what and why?[C]ACM SIGCOMM Computer Communication Review.2007.37(3):59-64.
[4]楊懋,劉中金,李勇,曾烈光,金德鵬,蘇厲.基于可編程硬件的虛擬路由器控制平面.清華大學(xué)學(xué)報(自然科學(xué)版)[J].2012,52(5):586-591.
摘要:基于NetFPGA硬件平臺設(shè)計的可編程虛擬化路由器,為提高其可編程性和靈活性將控制平面與數(shù)據(jù)平面進行分離,導(dǎo)致二個平面難以正常進行數(shù)據(jù)傳輸。通過對控制平面的接口進行設(shè)置,對OpenVZ虛擬路由實例中Zebra路由協(xié)議軟件計算出來的路由表進行提取,并下發(fā)給底層NetFPGA來完成交互。本文就如何將路由表提取出來進行了研究,提出了對Zebra路由協(xié)議軟件進行二次開發(fā),增加路由表定時更新輸出的功能解決方案。該方案基于Zebra面向?qū)ο笤O(shè)計思想,復(fù)用其通用接口,設(shè)計相應(yīng)數(shù)據(jù)結(jié)構(gòu)和函數(shù),增加線程來處理通過Rip、Ospf或Bgp計算得到的路由表。
關(guān)鍵詞:NetFPGA 控制平面 數(shù)據(jù)平面 Zebra
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1007-9416(2014)08-0043-02
1 前言
隨著互聯(lián)網(wǎng)規(guī)模日益的擴大,用戶的增長,應(yīng)用和業(yè)務(wù)的多樣化,使得TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)在可擴展性、移動性、安全可控性方面存在巨大的挑戰(zhàn)[1],為應(yīng)對這些挑戰(zhàn),科研人員提出了未來網(wǎng)絡(luò)這一概念。未來網(wǎng)絡(luò)[2]旨在設(shè)計全新的網(wǎng)絡(luò)體系結(jié)構(gòu)和新的網(wǎng)絡(luò)協(xié)議滿足當(dāng)前復(fù)雜網(wǎng)絡(luò)。然而未來網(wǎng)絡(luò)新的體系結(jié)構(gòu)、協(xié)議、算法等在實際應(yīng)用之前需要進行大量的理論分析與仿真實驗,更需要在試驗網(wǎng)絡(luò)中進行評估與驗證。
作為連接網(wǎng)絡(luò)的核心設(shè)備,路由器必須要滿足未來網(wǎng)絡(luò)需求。然而考慮到傳統(tǒng)路由器封閉性以及網(wǎng)絡(luò)試驗對正常業(yè)務(wù)產(chǎn)生一定影響,導(dǎo)致在部署、實現(xiàn)和驗證的體系結(jié)構(gòu)、算法和協(xié)議會非常困難,嚴(yán)重制約了互聯(lián)網(wǎng)體系結(jié)構(gòu)的研究發(fā)展和創(chuàng)新。
為了解決這些問題,研究人員提出了一種新型的路由器—可編程虛擬化路由器[3]。它將可編程性和虛擬化都融合于路由器中,既解決了由于封閉性對新型業(yè)務(wù)的影響,也滿足了在多種業(yè)務(wù)的并行運行??删幊烫摂M化路由器采用分層思想[4](如圖1):控制平面和數(shù)據(jù)平面??刂破矫尕?fù)責(zé)路由器的虛擬化以及路由協(xié)議的運行和維護,得到路由表、ARP表和端口表;數(shù)據(jù)平面負(fù)責(zé)路由信息的查找與轉(zhuǎn)發(fā)。將控制引擎與數(shù)據(jù)平面分離導(dǎo)致二者不能正常交互,需要對控制平面與數(shù)據(jù)平面進行接口設(shè)置,并將VR(虛擬路由器)中路由表下發(fā)給轉(zhuǎn)發(fā)模塊。本文基于NetFPGA硬件平臺對路由表提取技術(shù)進行了研究。
2 控制平面的虛擬化研究與實現(xiàn)
科研人員把虛擬化技術(shù)主要分為:全虛擬化、半虛擬化、系統(tǒng)級虛擬化。全虛擬化技術(shù)最大的特點是無需任何修改客戶操作系統(tǒng)就可以直接在虛擬化平臺上運行;半虛擬化技術(shù)最大優(yōu)點是需要改變客戶操作系統(tǒng)內(nèi)核;系統(tǒng)級虛擬化采用共享操作系統(tǒng)內(nèi)核手段,是基于操作系統(tǒng)本身之上實現(xiàn)的服務(wù)器的虛擬化。綜合比較,采用系統(tǒng)級虛擬化具有其他虛擬技術(shù)所沒有的高性能、高效率和高密度特性。其代表技術(shù)有:SWsoft公司的開源OpenVZ項目。
在Centos6.0操作系統(tǒng)中安裝OpenVZ內(nèi)核、OpenVZ用戶管理工具(vzctl和vzquato)并重新啟動OpenVZ。下載需要安裝的模板(centos)到vz/template/cache目錄下,并用vzctl指令創(chuàng)建4個VE分別表示為:VR1、VR2 … VRn(VR表示為虛擬路由器),每個VR中創(chuàng)建4個虛擬網(wǎng)絡(luò)接口(對應(yīng)NetFPGA的4個物理端口),然后下載Zebra軟件包,安裝源碼包,修改配置文件并配置接口IP。
3 虛擬路由器路由表的下發(fā)與更新研究與實現(xiàn)
Zebra系統(tǒng)體系結(jié)構(gòu)圖如2所示。
整個系統(tǒng)主要分為三大部分:Zebra交互模塊、路由協(xié)議模塊和VTY顯示配置模塊。Zebra模塊負(fù)責(zé)與路由協(xié)議進行交互,將路由協(xié)議計算得到的路由表存儲在Rib結(jié)構(gòu)體中;Zebra模塊與Linux內(nèi)核交互,將進入到Linux中的數(shù)據(jù)包傳送到路由協(xié)議模塊。路由協(xié)議模塊負(fù)責(zé)路由協(xié)議計算,主要有三種路由協(xié)議RIP、OSPF和BGP并包含IPv6版本。VTY模塊主要方便用戶進行路由協(xié)議配置,起人機交互的作用。
通過對Zebra模塊的分析,可以將模塊分為兩個部分:模塊交互部分、路由表管理部分。
模塊交互部分負(fù)責(zé)與協(xié)議模塊進行交互,獲取通過路由協(xié)議計算的到得路由表,并交由路由表管理模塊進行管理。
(1)路由表的提取。首先,在../zebra目錄下創(chuàng)建Gtroutertable.h、Gtroutertable.c兩個文件,負(fù)責(zé)路由提取的功能,在Gtroutertable.c中編寫獲取路由表函數(shù)void *Get(…)。在zebra模塊主線程中創(chuàng)建一個新的子線程,當(dāng)獲取到了路由表的時候,執(zhí)行該子線程,調(diào)用獲取路由表函數(shù),從而提取出所需的路由表。
其次,重新修改Makefile文件,執(zhí)行make指令進行重新編譯。
(2)路由表的更新。當(dāng)鏈路發(fā)生變化后,通過RIP或OSPF計算出來的路由表也發(fā)生了變化,但由于直接從zebra模塊中提取的路由表變化時間較長,不能滿足實時性更新。Zebra中主要包含3種定時器,分別為:update_time、timeout_time、garbage_time。通過在zebra主線程上設(shè)置定時器update_time,當(dāng)路由表發(fā)生變化后,立即調(diào)用Get(…)獲取路由表函數(shù)。從而達(dá)到定時更新提取出的路由表的目的。
4 實驗驗證與分析
該實驗基于NetFPGA硬件設(shè)計的可編程路由器如下:在每個VR中安裝zebra路由協(xié)議軟件,開啟zebra守護進程,運行Rip路由協(xié)議。得到的路由表信息分別是圖3、圖4所示。
其中C代表是connect,R代表是運行RIP路由協(xié)議。
二者對比,明顯發(fā)現(xiàn)隨著鏈路發(fā)生變化,所提取的路由表也隨著發(fā)生了變化,并且和鏈路變化一致,說明路由表提取是有效的,并是實時更新的。
5 結(jié)語
本文針對基于NetFPGA硬件的可編程虛擬化路由器由于采用控制與轉(zhuǎn)發(fā)分離,而導(dǎo)致無法正常交互問題,做了一些分析研究,通過對路由協(xié)議軟件的研究與分析,通過對zebra路由協(xié)議軟件進行二次開發(fā),添加了路由提取功能和定時更新功能,通過實驗驗證分析,提取的路由表隨著路由信息的改變而更新,并恢復(fù)了控制平面與數(shù)據(jù)平面的正常交互。
參考文獻
[1]Xie Gao-Gang, Zhang Yu-Jun,Li Zhen-Yu,et al.A survey on future Internet architecture[J].Chinese Journal of Computers, 2012,35(6):1109-1119(in Chinese).
[2]Paul S,Pan Jianli,Jain R.Architectures for the future networks and the next generation Internet:a survey[C].Computer Communications.2011.34(1):2-42.
[3]Feldmann Anja.Internet clean-slate design:what and why?[C]ACM SIGCOMM Computer Communication Review.2007.37(3):59-64.
[4]楊懋,劉中金,李勇,曾烈光,金德鵬,蘇厲.基于可編程硬件的虛擬路由器控制平面.清華大學(xué)學(xué)報(自然科學(xué)版)[J].2012,52(5):586-591.