(浙江工商大學(xué) 信息與電子工程學(xué)院, 浙江 杭州 310035)
摘要:介紹了基于ForCES(Forwarding and Control Element Separation)協(xié)議IP路由器的體系結(jié)構(gòu)。對基于ForCES協(xié)議IP路由器中RIP協(xié)議的實(shí)現(xiàn)進(jìn)行了研究,詳細(xì)闡述了基于ForCES結(jié)構(gòu)IP路由器中RIP協(xié)議實(shí)現(xiàn)的方案。最后給出了測試結(jié)果。
關(guān)鍵詞: 控制器; 轉(zhuǎn)發(fā)器; ForCES; RIP
中圖法分類號: TP391文獻(xiàn)標(biāo)識碼: A
文章編號: 1001 3695(2006)08 0243 02
Research and Test on RIP of ForCES based IP Routers
YUE Ting, WANG Wei ming, DONG Li gang
(Dept. of Information Electronic Engineering, Zhejiang GongShang University, Hangzhou Zhejiang 310035, China)
Abstract: The research and implementation on RIP Protocol of ForCES based IP Routers is introduced.Expatiate the particularity of the implementation on RIP Protocol of
ForCES based IP Router. Finally the experiment result is presented.
Key words: Control Element; Forwarding Element; ForCES; RIP
1 引言
隨著IP網(wǎng)絡(luò)規(guī)模的發(fā)展和新業(yè)務(wù)的出現(xiàn),不但要求IP網(wǎng)絡(luò)具有更快的處理速度,對IP網(wǎng)絡(luò)的靈活性也提出了更高的要求。IP路由器作為IP網(wǎng)絡(luò)的核心更是迫切需要一場“革命”來適應(yīng)這種要求。IP路由器從邏輯上可分為兩部分,即控制器(Control Element,CE)和轉(zhuǎn)發(fā)器(Forwarding Element,F(xiàn)E)。在控制器與轉(zhuǎn)發(fā)器分離的路由器體系結(jié)構(gòu)中,控制器可以根據(jù)需要動態(tài)地加載轉(zhuǎn)發(fā)器,動態(tài)地配置轉(zhuǎn)發(fā)器的屬性,這樣就從本質(zhì)上提高了路由器的靈活性。此外,網(wǎng)絡(luò)廠商可以專著于一方面優(yōu)勢產(chǎn)品的開發(fā),這樣必然大大加快整個(gè)路由器的升級速度,縮短產(chǎn)品的上市時(shí)間。ForCES是IETF(Internet Engineering Task Force)路由領(lǐng)域(Routing Area)的一個(gè)工作組,它專門研究控制器與轉(zhuǎn)發(fā)器分離的IP路由器的體系結(jié)構(gòu)和協(xié)議問題,當(dāng)前ForCES工作組已完成了ForCES需求(ForCES Requirements, RFC3654)[1]和ForCES框架(ForCES Framework,RFC3746)[2]的制定,目前正在制定ForCES協(xié)議[3]和FE模型(FE Model)[4]。浙江工商大學(xué)網(wǎng)絡(luò)與通信工程研究所積極參與了ForCES工作組的研究工作,并提交了GRMP(General Router Management Protocol)。它作為三個(gè)ForCES的候選協(xié)議之一,已經(jīng)與另外兩個(gè)候選協(xié)議(FACT and Netlink2)一起合并成正式的ForCES協(xié)議。
目前研究所的工作重點(diǎn)就是參與ForCES協(xié)議和FE Model的制定,并依據(jù)兩者開發(fā)ForCES路由器的樣機(jī),其中RIP協(xié)議的實(shí)現(xiàn)也是該項(xiàng)目的重要組成部分。
2 ForCES路由器的體系結(jié)構(gòu)
一個(gè)ForCES路由器看作是一個(gè)Network Element(NE),一個(gè)NE可以由一個(gè)Primary CE和多個(gè)起冗余作用的CE(現(xiàn)階段暫時(shí)不考慮冗余CE),以及多達(dá)上百個(gè)的FE組成。也就是說,一臺ForCES路由器由CE,F(xiàn)E以及連接它們的ForCES協(xié)議組成,如圖1所示。
FE是路由器的轉(zhuǎn)發(fā)層或者稱數(shù)據(jù)層,它負(fù)責(zé)具體對每個(gè)數(shù)據(jù)包的處理,如對數(shù)據(jù)包的分類、調(diào)度、路由等操作。CE是路由器的控制層,CE通過向FE發(fā)送ForCES協(xié)議中定義的一系列消息實(shí)現(xiàn)對路由器的管理,如改變FE對數(shù)據(jù)包的分類規(guī)則、改變調(diào)度策略等。FE本身沒有修改路由器屬性的權(quán)力,它完全是由CE控制的。CE可以根據(jù)需求增刪FE、配置FE中各個(gè)功能模塊的屬性等,具有傳統(tǒng)體系結(jié)構(gòu)路由器所不具備的高靈活性,對解決QoS問題提出了新的思路。由此可見,基于ForCES體系結(jié)構(gòu)的路由器是“活”的,是具有高可配置性的路由器,符合下一代路由器的發(fā)展趨勢。
3 RIP介紹
RIP(Routing Information Protocol,路由信息協(xié)議)是路由器上最早運(yùn)行的路由協(xié)議之一,是距離矢量(Distance Vector)算法路由協(xié)議的代表。盡管RIP本身存在一些缺點(diǎn),如慢收斂問題,但是由于其短小和易用性,使其得到廣泛應(yīng)用。
RIP規(guī)定,每臺路由器每隔30s向與其相鄰的路由器發(fā)送距離矢量信息包(D-V Packet)。當(dāng)路由器收到鄰居路由器發(fā)來的距離矢量信息包時(shí),依據(jù)距離矢量算法更新自己的路由表。運(yùn)行RIP的路由器均會維護(hù)一張自己的路由表,該路由表隨著與它直接相連或間接相連的路由器的網(wǎng)絡(luò)拓?fù)溥B接變化而動態(tài)變化。路由器根據(jù)RIP維護(hù)的這張路由表來對數(shù)據(jù)包實(shí)現(xiàn)路由。
4 ForCES結(jié)構(gòu)路由器上實(shí)現(xiàn)RIP的研究
4.1 ForCES結(jié)構(gòu)路由器上實(shí)現(xiàn)RIP的設(shè)計(jì)方案
前面已經(jīng)看到,F(xiàn)orCES路由器的體系結(jié)構(gòu)與傳統(tǒng)路由器的體系結(jié)構(gòu)完全不同,所以路由協(xié)議的實(shí)現(xiàn)也必定存在差異。傳統(tǒng)路由器中維護(hù)了一張路由表,路由器通過對這張路由表的查詢來為數(shù)據(jù)包尋徑;而基于ForCES的路由器卻完全不一樣,一臺基于ForCES的路由器可以由一個(gè)CE和多達(dá)上百個(gè)FE組成,每一個(gè)FE均可以單獨(dú)實(shí)現(xiàn)數(shù)據(jù)包的路由轉(zhuǎn)發(fā),即每個(gè)FE都需要擁有一張路由表。項(xiàng)目中我們的FE是在嵌入式Linux操作系統(tǒng)下開發(fā)的,嵌入式Linux操作系統(tǒng)本身集成了RIP,我們可以不加修改地用FE上的RIP來維護(hù)路由表。但是在設(shè)計(jì)時(shí)考慮到當(dāng)FE數(shù)據(jù)流量很大時(shí),F(xiàn)E的資源是非常寶貴的,應(yīng)該讓這些資源盡可能地用到數(shù)據(jù)轉(zhuǎn)發(fā)上,也就是說各個(gè)FE不需要去運(yùn)行RIP,不需要去維護(hù)路由表,將RIP的實(shí)現(xiàn)和路由表的維護(hù)交給CE來做即可,這種設(shè)計(jì)使資源得到更為合理的配置必然會為FE減負(fù),從而提高路由器的性能,如圖2所示。 ForCES路由器的路由表更新過程如下:
(1)FE接收其他路由器發(fā)來的RIP信息包;
(2)FE依據(jù)ForCES協(xié)議,將RIP信息包封裝成ForCES協(xié)議的格式(重定向包);
(3)FE將重定向包發(fā)給CE;
(4)CE將接收來自FE的重定向包,并由RIP模塊處理,生成新的路由表;
(5)CE將新的路由表封裝成ForCES消息,發(fā)給與其連接的所有FE;
(6)FE接收來自CE的路由表,更新自己的路由表。
4.2 抵御可能的DoS攻擊
如4.1節(jié)中所述,RIP在CE中運(yùn)行,路由表事實(shí)上是在CE中維護(hù)的,一方面FE將收到的RIP消息
重定向包的形式傳給CE;另一方面CE將路由表以重定向包的形式傳遞給FE。但是CE與FE之間傳遞的不僅是重定向消息,還傳遞著更為重要的ForCES控制消息,如CE對FE的屬性配置消息等。這樣就有個(gè)問題,如果外界有惡意攻擊者向ForCES路由器發(fā)送大量的模擬重定向數(shù)據(jù)包,那么CE與FE之間的通路就有可能被重定向包占據(jù),使得ForCES控制信息被阻塞,控制消息的丟失將會使路由器失去控制,無法正常工作。這就是潛在的DoS(Deny of Service)攻擊。
必須制定一種策略來抵御DoS攻擊,保護(hù)ForCES控制消息。我們的策略是在FE端加一個(gè)調(diào)度器,如圖3所示。利用它對ForCES控制消息和重定向消息進(jìn)行調(diào)度,可以采取兩種調(diào)度方法,一種是保證控制消息比重定向消息有更高的優(yōu)先級。偽代碼如下:
while (!IsEmpty(控制消息隊(duì)列) || !IsEmpty(重定向消息隊(duì)列))
{
while (!IsEmpty(控制消息隊(duì)列))
{
從控制消息隊(duì)列中取一消息并發(fā)送;
}
while (!IsEmpty(重定向消息隊(duì)列))
{
從重定向消息隊(duì)列中取一消息并發(fā)送;
}
}
另一種是對重定向包進(jìn)行限速,偽代碼如下:
得到當(dāng)前時(shí)間 time1;
ΔT=1.0;//間隔時(shí)間
msgcount=0;//一個(gè)時(shí)間間隔內(nèi)發(fā)送的重定向消息個(gè)數(shù)
maxrate;//允許重定向包發(fā)送的最大速率
while (!IsEmpty(控制消息隊(duì)列)||!IsEmpty(重定向消息隊(duì)列))
{
if(!IsEmpty(控制消息隊(duì)列))
{
從控制消息隊(duì)列中取一消息并發(fā)送;
}
if(!IsEmpty(重定向消息隊(duì)列))
{
得到當(dāng)前時(shí)間time2;
計(jì)算重定向消息發(fā)送速率:rate=msgcount/(time2 time1);
if((time2 time1)>=ΔT)
{
time1=time2;
count=0;
}
if(rate<=maxrate)
{
從重定向消息隊(duì)列中取一消息并發(fā)送;
更新msgcount;
}
}
}
5 測試結(jié)果
第4節(jié)介紹了RIP在ForCES路由器上實(shí)現(xiàn)的特殊性,主要是路由表維護(hù)的特殊性,以及由此帶來的DoS問題。下面搭建測試平臺來驗(yàn)證我們的RIP實(shí)現(xiàn)方案能否在ForCES路由器上實(shí)現(xiàn)。
用一臺交換機(jī)、一臺Cisco2600路由器和我們的ForCES路由器組建一個(gè)網(wǎng)絡(luò)測試環(huán)境。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖4所示。
在ForCES 路由器上的RIP運(yùn)行前,其路由表如表1所示。當(dāng)在ForCES路由器上開啟RIP后,其路由表如表2所示。
這說明ForCES路由器在啟動RIP后,成功地接收到了由Cisco2600發(fā)來的RIP信息,成功地更新了本機(jī)的路由表。驗(yàn)證了RIP在ForCES路由器中設(shè)計(jì)方案的可行性。
6 總結(jié)
本文提出的RIP在ForCES體系結(jié)構(gòu)路由器中的設(shè)計(jì)方案完全不同于傳統(tǒng)體系結(jié)構(gòu)的路由器,具有一定的創(chuàng)新性。為RIP的實(shí)現(xiàn)提出了新的思路,可為開發(fā)下一代路由器的個(gè)人和機(jī)構(gòu)在路由協(xié)議實(shí)現(xiàn)方面提供一些參考。
參考文獻(xiàn):
[1]H Khosravi, T Anderson. Requirements for Separation of IP Control and orwarding
(RFC 3654)[EB/OL].http://www.ietf.org/rfc/rfc3654.txt,2003.
[2] L Yang, R Dantu, T Anderson, R Gopal. Forwarding and Control Element eparation (ForCES) Framework(RFC3746) [EB/OL]. http://www.ietf.org/rfc/rfc3746.txt,2004.
[3] A Doria.ForCES Protocol Specification[EB/OL].http://www.ietf.org/internet drafts/draft ietf forces protocol 02.txt,2005.
[4] L Yang, J Halpern, R Gopal, et al . ForCES Forwarding Element Model[EB/OL].http://www.ietf.org/internet drafts/draft ietf forces model 03.txt,2004.
[5] C Hedrick.Routing Information Protocol(RFC1058) [EB/OL]. http://www.ietf.org/rfc/rfc1058.txt,1988.
[6] 汪曉平,鐘軍.Visual C+ + 網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實(shí)現(xiàn)[M].北京:人民郵電出版社,2003.
[7] 賈明,嚴(yán)世賢.Linux下的C編程[M].北京:人民郵電出版社,2001.
作者簡介:岳挺(1980-),男,山東淄博人,碩士研究生,主要研究方向?yàn)榫W(wǎng)絡(luò)通信;王偉明(1964-),男,浙江遂昌人,教授,博士,主要研究方向?yàn)榫W(wǎng)絡(luò)通信;董黎剛(1973-),男,浙江上虞人,博士,研究方向?yàn)榫W(wǎng)絡(luò)通信。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。