IP路由器的主要功能(上)(唐健、鄔江興)
摘要:IP路由器是互聯(lián)網(wǎng)的關(guān)鍵設(shè)備,其功能隨著實踐的發(fā)展而被不斷完善。本文把IP路由
器
的主要功能分為IP數(shù)據(jù)包的轉(zhuǎn)發(fā)、路由的計算和更新、ICMP消息的處理、網(wǎng)絡(luò)管理以及安全服務(wù)
五
個方面,分別介紹相應(yīng)的協(xié)議、工作方式、實現(xiàn)要求以及存在的問題。
關(guān)鍵詞:互聯(lián)網(wǎng) IP路由器 路由協(xié)議 網(wǎng)絡(luò)管理 安全性
一、引言
互聯(lián)網(wǎng)作為最大、最有影響力的信息交換平臺,正在迅猛發(fā)展。作為發(fā)展中國家的中國也不
甘
落后,今天,中國互聯(lián)網(wǎng)用戶已突破800萬,專家預(yù)測,“中國有望成為互聯(lián)網(wǎng)經(jīng)濟(jì)的主要國
家”。
互聯(lián)網(wǎng)即網(wǎng)間網(wǎng),它把許多自治域通過IP(InternetProtocol)協(xié)議互聯(lián)在一起,這些自治
域
由具有不同網(wǎng)絡(luò)地址的網(wǎng)絡(luò)經(jīng)IP協(xié)議互聯(lián)在一起,而這些網(wǎng)絡(luò)又可能由具有不同子網(wǎng)掩碼的子網(wǎng)組
成。出入一個自治域/網(wǎng)絡(luò)/子網(wǎng)的數(shù)據(jù)都要經(jīng)路由器轉(zhuǎn)發(fā),路由器決定數(shù)據(jù)是否需要轉(zhuǎn)發(fā)、能否
轉(zhuǎn)發(fā)、如何轉(zhuǎn)發(fā)、轉(zhuǎn)發(fā)得怎樣,是自治域/網(wǎng)絡(luò)/子網(wǎng)相交匯的節(jié)點。根據(jù)公開發(fā)表的研究報告,
從源IP地址出發(fā)到宿IP地址的用戶數(shù)據(jù)中,80%以上沿途必須經(jīng)過路由器,20%以下局限在子網(wǎng)
內(nèi)
流動?梢哉f,沒有路由器就沒有互聯(lián)網(wǎng)。沒有高性能的路由器就沒有高性能的互聯(lián)網(wǎng),因此,路
由器在互聯(lián)網(wǎng)中具有極其重要的地位和作用,是互聯(lián)網(wǎng)中的關(guān)鍵設(shè)備。按照在互聯(lián)網(wǎng)中的地位和作
用,路由器可分為分支路由器、邊緣路由器、核心路由器。
路由器究竟必須具備哪些功能呢?是不是象人們通常認(rèn)為的那樣僅僅工作在OSI模型的第三
層,
即網(wǎng)絡(luò)層呢?轉(zhuǎn)發(fā)用戶數(shù)據(jù),只是路由器的一個最基本的功能,事實上,IP路由器的功能隨著實踐
的發(fā)展而不斷被完善。比如,路由器最初主要采用靜態(tài)路由配置,計算和更新路由的功能沒有被明
確要求,但現(xiàn)在,這個功能成為必備。又比如,路由器曾對用戶數(shù)據(jù)和協(xié)議數(shù)據(jù)的安全性考慮甚
少,
現(xiàn)在安全服務(wù)卻顯得很緊迫。下文把IP路由器的主要功能分為五個方面,分別予以介紹。
二、IP數(shù)據(jù)包的轉(zhuǎn)發(fā)
這是路由器最基本的功能。當(dāng)一個IP數(shù)據(jù)包到達(dá)路由器時,路由器根據(jù)IP協(xié)議對其報頭進(jìn)行
處
理,然后根據(jù)處理結(jié)果對該數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)、本地處理、或者丟棄。目前常用的是IP協(xié)議第4版
IPv4。
IPv4數(shù)據(jù)包的報頭包含如下內(nèi)容:版本、頭標(biāo)長、服務(wù)類型、總長、標(biāo)識、標(biāo)志、片偏移、生存
時
間、協(xié)議、頭標(biāo)校驗和、源IP地址、宿IP地址、選項。
為便于按照相應(yīng)規(guī)定對報頭進(jìn)行分析,首先路由器要確定報頭的格式,查看IP協(xié)議的“版
本”
(IPv4的“版本”是4);次之,路由器必須知道報頭的長度和正確性,按照“頭標(biāo)長”截獲報
頭,
用“頭校驗和”加以校驗。為避免數(shù)據(jù)包因?qū)藉e誤而在互聯(lián)網(wǎng)中無休止地流動、占用寶貴的網(wǎng)絡(luò)
資源,有必要限制數(shù)據(jù)包的轉(zhuǎn)發(fā)次數(shù)。路由器檢查“生存時間”,目的在于此。路由器還需要根據(jù)
“宿IP地址”或“選項”中的源路徑直找路由轉(zhuǎn)發(fā)表。如果“宿IP地址”正好與自己吻合,需參
考
“源IP地址”和“協(xié)議”,決定該數(shù)據(jù)包是否有權(quán)限訪問路由器。如果有,就要根據(jù)“協(xié)議”在本
地作進(jìn)一步的高層處理,不過在此之前有必要根據(jù)“標(biāo)識”、“標(biāo)志”和“片偏移”來重組數(shù)據(jù)
包。
“協(xié)議”標(biāo)明了數(shù)據(jù)區(qū)的協(xié)議類型,如89代表OSPF等,路由器根據(jù)“協(xié)議”規(guī)定的數(shù)據(jù)區(qū)格式分
析
數(shù)據(jù),從而可以進(jìn)一步處理其中相應(yīng)的協(xié)議消息。
如果“宿IP地址”尚未到達(dá),須參考“源IP地址”和“協(xié)議”,決定該數(shù)據(jù)包是否被允許轉(zhuǎn)
發(fā),
如果允許,路由器根據(jù)“宿IP地址”或“選項”中的源路徑、“服務(wù)類型”在路由轉(zhuǎn)發(fā)表中查找相
應(yīng)的輸出端口,并把數(shù)據(jù)包交換到該輸出瑞口的某隊列中,解析下一跳IP地址對應(yīng)的物理地址(比
如以太網(wǎng)的MAC地址),把數(shù)據(jù)包封裝在物理幀中傳輸。不過,如果一個物理幀裝不下完整的數(shù)據(jù)
包,還須把數(shù)據(jù)包分片,在“標(biāo)識”、“標(biāo)志”和“片偏移”中加以指示!胺⻊(wù)類型”包含優(yōu)先
級、時延、吞吐率和可靠性,目的是要映射到相應(yīng)的路由選擇、排隊優(yōu)先級、帶寬分配上。不過,
映射不是強(qiáng)制性的,即使映射也并非所有的要求都能被滿足。在不久的將來,“服務(wù)類型”有可能
被“區(qū)分服務(wù)”替代。
上述任何一個環(huán)節(jié)沒通過,IP數(shù)據(jù)包就要被丟棄,與此同時,路由器可能產(chǎn)生ICMP數(shù)據(jù)包,
報
告相應(yīng)的差錯。
具有高速接口、線速要求的大容量核心路由器將面臨兩個最大的挑戰(zhàn):一個是路由查表技
術(shù)。
比如,交換式千兆以太網(wǎng)接口最短的物理幀長度是64字節(jié),線速要求的路由查表時間不能超過
512ns;
2.5GbPs的STM-16/OC-48接口最短的HDLC幀僅包含HDLC幀開銷和IP數(shù)據(jù)包頭,偵長度為28字
節(jié),
線速要求.的路由查表時間不能超過92ns,與此同時,路由表轉(zhuǎn)發(fā)表項越來越多,在世界上成功
商
用化的核心路由器中已超過1M,因此,傳統(tǒng)的軟件查表技術(shù)花費時間較長,已不再適用,必須發(fā)展
硬件查表技術(shù)。目前,基于硬件技術(shù)的查表算法委么要求硬件性能非常高、價格昂貴;要么局限在
某種條件下使用、適用范圍小,都不是萬全之策。將來,隨著接口速度、路由轉(zhuǎn)發(fā)表項繼續(xù)成倍增
長,硬件查表技術(shù)終究也會難以應(yīng)付,會需要把輸出端口查找與IP數(shù)據(jù)包轉(zhuǎn)發(fā)分離,輸出瑞口的查
找依然采用IP協(xié)議,而數(shù)據(jù)包轉(zhuǎn)發(fā)則采用新的協(xié)議,如MPLS,這正是MPLS成為世界上一個研究熱
點
的原因。另一個挑戰(zhàn)是數(shù)據(jù)包交換技術(shù),傳統(tǒng)的電總線共享技術(shù)再也不適用了,一是因為硬件技術(shù)
原因,電總統(tǒng)無法達(dá)到很高的帶寬,目前最高水平是20Gbps;二是因為共享方式固有的發(fā)送沖
突,
導(dǎo)致數(shù)據(jù)包較大的等待時延和較高的丟失率,影響業(yè)務(wù)質(zhì)量。月前,世界上知名的核心路由器采用
的是電交換網(wǎng)絡(luò)、共享存儲器乃至光交換技術(shù)。
三、路由的計算和更新
最初的路由器主要采用靜態(tài)路由配置。隨著網(wǎng)絡(luò)規(guī)模迅速擴(kuò)大和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)頻繁變動,靜
態(tài)
路由暴露出配置麻煩、滯后等問題。因此,依據(jù)路由協(xié)議自動實時地計算和更新路由,逐漸成為路
由器主要功能之一。當(dāng)然,靜態(tài)路由還可以與動態(tài)路由配合使用。
路由協(xié)議是路由計算和更新的依據(jù),根據(jù)路由器尋徑的范圍不同而不同。如果在自治域/網(wǎng)
絡(luò)
內(nèi)部尋徑,路由器使用內(nèi)部網(wǎng)關(guān)協(xié)議;如果是在自治域之間尋徑,路由器使用外部網(wǎng)關(guān)協(xié)議。當(dāng)
然,
自治域邊緣的路由器可能同時使用內(nèi)部網(wǎng)關(guān)協(xié)議和外部網(wǎng)關(guān)協(xié)議。
路由協(xié)議不是唯一的,而且一直在發(fā)展變化著。內(nèi)部網(wǎng)關(guān)協(xié)議目前用得較多的有RIP
(Routing
Information Protocol)、OSPF(Open Shortest PathFirst)。外部網(wǎng)關(guān)協(xié)議現(xiàn)在主要用BGP
(Bo
rderGateway Protocol)。
RIP適用于小型、路徑不多的同構(gòu)網(wǎng)絡(luò)。它使用路由跳數(shù)來決定最佳路徑,算法很簡單,但網(wǎng)
絡(luò)
直徑受限(跳數(shù)<16),并且路徑選擇忽略了連接速度問題,在路徑較多時收斂速度慢,用來判斷
路徑不可到達(dá)的時間長(≥3分鐘),廣播路由信息占用的帶寬資源較多。 RIP在1988年被標(biāo)準(zhǔn)化
在
RFC1058中,現(xiàn)在第2版最新的內(nèi)容是1998年的RFC2453。RIP消息由瑞口號為520的UDP進(jìn)行傳
輸。
OSPF能適應(yīng)大規(guī)模異構(gòu)網(wǎng)絡(luò)的互連。它根據(jù)網(wǎng)絡(luò)中路由器物理連接的狀態(tài)與速度來進(jìn)行路由
選
擇,克服了RIP的缺點,但計算SPF樹比較復(fù)雜,需要占用路由器中更多CPU資源。OSPF在1989年
被正
式發(fā)布在RFC1131中,現(xiàn)在最新的第2版是1997年的 RFC2328。 OSPF消息直接封裝在協(xié)議域為89
的IP
數(shù)據(jù)包中。
外部網(wǎng)關(guān)協(xié)議BGP在1989年被正式發(fā)布在RFC1105中,現(xiàn)在最新的第4版是1997年的
RFC2328。BGP
消息由端口號為179的TCP進(jìn)行連接和傳輸。
有的路由器還具有組播(multicast)尋徑能力。生機(jī)欲加入一個組播組,就用IGMP
(Internet
Group Manasement Protocol)與網(wǎng)絡(luò)上具有組播能力的路由器交換信息,并可以利用組播路由
協(xié)議
DVMRP或MOSPF建立自治域內(nèi)的組播傳輸路徑、利用MOSPF建立自治域之間的組播傳輸路徑。IGMP
消息
直接封裝在協(xié)議域為2的IP數(shù)據(jù)包中。
對核心路由器來說,路由協(xié)議的軟硬件實現(xiàn)是最繁重的工作,也是最重要的工作。路由協(xié)議
的
配置和協(xié)調(diào)、路由協(xié)議消息的緩沖和處理、路由的計算、數(shù)據(jù)庫的維護(hù)和管理、路由轉(zhuǎn)發(fā)表的更新
和分發(fā),每一個環(huán)節(jié)都很重要,影響著網(wǎng)絡(luò)的穩(wěn)定性。根據(jù)數(shù)據(jù)統(tǒng)計,目前互聯(lián)網(wǎng)的不穩(wěn)定性大部
分來自核心路由器中路由協(xié)議的軟硬件實現(xiàn)。例如,路由協(xié)議的配置不當(dāng)可致使路由器之間不能互
操作,緩沖區(qū)較小可致使路由協(xié)議消息丟失,處理器速度較低可增加路由協(xié)議消息時延,缺乏有效
的鑒別和過濾機(jī)制可造成路由“黑洞”,數(shù)據(jù)庫的維護(hù)和管理不及時會計算出過時的路由,路由轉(zhuǎn)
發(fā)表的更新和分發(fā)太慢會使IP數(shù)據(jù)包尋徑出錯。
(待續(xù))
摘自《數(shù)據(jù)通信》