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