IP路由器的主要功能(下)(唐健、鄔江興)
四、ICMP消息的處理
IP數(shù)據(jù)包在互聯(lián)網(wǎng)中傳輸時(shí)難免會(huì)遇到各種問題,如:路由器故障、路徑太長、系統(tǒng)擁塞
等,
這就需要互聯(lián)網(wǎng)在IP層具有一定的控制功能,ICMP(Internet Control Message Protocol)協(xié)
議就
是互聯(lián)網(wǎng)中傳遞控制信息的主要手段。
自從1981年ICMP發(fā)布在RFC792中以來,其內(nèi)容并非一成不變,ICMP消息已從最初的十種類型
發(fā)
展為二十多種類型,其中主要包括:信宿不可到達(dá)、源抑制、重走向、回應(yīng)請(qǐng)求/應(yīng)答、路由器通
告/請(qǐng)求、超時(shí)、參數(shù)出錯(cuò)、時(shí)戳請(qǐng)求/應(yīng)答、信息請(qǐng)求/應(yīng)答、子網(wǎng)模請(qǐng)求/應(yīng)答、路徑跟蹤
等。
每個(gè)類型還可以細(xì)分為不同情形,每種情形用一個(gè)代碼來表示。
當(dāng)路由器接收到一個(gè)IP數(shù)據(jù)包(非ICMP消息)時(shí),若發(fā)現(xiàn)信宿不可到達(dá)、超時(shí)或參數(shù)出錯(cuò),
就
要丟棄該數(shù)據(jù)包,同時(shí)向源主機(jī)發(fā)送相應(yīng)類型的ICMP消息;若路由器發(fā)現(xiàn)擁塞,可能丟棄IP數(shù)據(jù)
包,
也可能繼續(xù)轉(zhuǎn)發(fā),但此時(shí)必須向源主機(jī)發(fā)送源抑制消息。
為了使主機(jī)能發(fā)現(xiàn)其所在子網(wǎng)上的路由器,路由器要周期性地廣播路由器通告消息,或者在
接
收到一個(gè)主機(jī)的路由器請(qǐng)求消息時(shí),路由器發(fā)送相應(yīng)的路由器通告消息;當(dāng)路由器接收到一個(gè)回應(yīng)
請(qǐng)求消息時(shí),就返送一個(gè)回應(yīng)應(yīng)答消』急,以表明該路由器的可達(dá)性;一旦路由器接收到一個(gè)路由
器或主機(jī)的子網(wǎng)模請(qǐng)求消息,就要以一個(gè)子網(wǎng)模應(yīng)答消息作為答復(fù);若路由器發(fā)現(xiàn)與目的IP地址、
源主機(jī)都在同一個(gè)網(wǎng)絡(luò)中的另一個(gè)路由器是最佳路由時(shí),就會(huì)生成重走向消息,讓源主機(jī)直接把IP
數(shù)據(jù)包發(fā)送給另一路由器,以減少路由跳數(shù);信息請(qǐng)求/應(yīng)答消息是為了用于諸如無盤工作站等自
配置系統(tǒng)獲取所在網(wǎng)絡(luò)的網(wǎng)絡(luò)號(hào)。
若要估算路由器之間或路由器與主機(jī)之間的時(shí)差,或者要了解到達(dá)一個(gè)目的IP地址的路徑構(gòu)
成,
就要分別生成時(shí)戳請(qǐng)求/應(yīng)答及路徑跟蹤消息。
路由器不必生成所有ICMP消息,比如協(xié)議不可到達(dá)消息和瑞口不可到達(dá)消息,都只由主機(jī)生
成。
有些ICMP消息也用于網(wǎng)絡(luò)管理,比如:回應(yīng)請(qǐng)求/應(yīng)答消息、時(shí)戳請(qǐng)求/應(yīng)答消息、路徑跟
蹤
消息等。利用回應(yīng)請(qǐng)求/應(yīng)答消息,網(wǎng)管站可了解路由器端口是否正常工作、估算IP數(shù)據(jù)包丟失
率;
利用時(shí)戳請(qǐng)求/應(yīng)答消息,網(wǎng)管站可以估算IP數(shù)據(jù)包的時(shí)延;利用路徑跟蹤消息,網(wǎng)管站可以了解
路徑長度。
值得注意的是,ICMP消息并非都有效。源抑制不能有效地進(jìn)行擁塞控制,可能以后將用其它
更
有效的擁塞控制方法;信息請(qǐng)求/應(yīng)答消息現(xiàn)在已經(jīng)被取消了,取而代之的是RARP、BOOTP等更有
效
的機(jī)制。惡意的主機(jī)或路由器使用ICMP消息,可能引起反面作用,給路由器增添處理負(fù)擔(dān),或使
某
些網(wǎng)管功能失效。
ICMP消息是封裝在IP數(shù)據(jù)包的數(shù)據(jù)部分進(jìn)行傳輸?shù),IP數(shù)據(jù)包報(bào)頭的“協(xié)議”域指出數(shù)據(jù)區(qū)
內(nèi)
容為ICMP消息,IPv4中定義為1。
五、網(wǎng)絡(luò)管理
一個(gè)網(wǎng)絡(luò)要井然有序地運(yùn)轉(zhuǎn),必然少不了網(wǎng)絡(luò)管理。網(wǎng)絡(luò)管理的主要任務(wù)是:保證網(wǎng)絡(luò)能按
需
要不斷增長;盡可能早地排除故障;保證網(wǎng)絡(luò)能以最佳性能水平運(yùn)行;確保內(nèi)部支持人員消息靈
通。
十余年來,互聯(lián)網(wǎng)在巨大發(fā)展過程中所暴露出的問題引起人們對(duì)網(wǎng)絡(luò)管理和網(wǎng)絡(luò)擴(kuò)充規(guī)劃的高度重
視。
幾個(gè)網(wǎng)無(如:路由器、主機(jī)、交換機(jī)、傳輸鏈路)、至少一個(gè)網(wǎng)管站和一個(gè)網(wǎng)管協(xié)議、一
個(gè)
管理信息庫(MIB)就構(gòu)成了一個(gè)網(wǎng)管體系。網(wǎng)管站執(zhí)行管理者的功能,可以對(duì)網(wǎng)元進(jìn)行輪詢,以
檢查某個(gè)變量的值;可以在接到網(wǎng)無告警后,執(zhí)行一個(gè)或多個(gè)動(dòng)作,包括操作員通知、事件日志、
系統(tǒng)關(guān)閉、自動(dòng)的系統(tǒng)恢復(fù)等。網(wǎng)元執(zhí)行被管理者功能,其中有一個(gè)代理進(jìn)程負(fù)責(zé)編輯被管設(shè)備的
信息,并將它存儲(chǔ)到管理數(shù)據(jù)庫中,并對(duì)網(wǎng)管站的輪詢作出響應(yīng)和在發(fā)現(xiàn)故障時(shí)告警。網(wǎng)管協(xié)議規(guī)
定了網(wǎng)無與網(wǎng)管站之間交流管理信息的方式;MIB是網(wǎng)元與網(wǎng)管站之間交流的管理信息。
作為一個(gè)網(wǎng)無,路由器必須具有網(wǎng)管代理。目前,網(wǎng)管代理執(zhí)行的網(wǎng)管協(xié)議是SNMP(還有
TELN
ET、ICMP等)。SNMPv1于1990年正式成為標(biāo)準(zhǔn)RFC115.7,現(xiàn)在已經(jīng)發(fā)展到版本3。網(wǎng)管代理與網(wǎng)
管
站之間SNMP協(xié)議實(shí)體的通信通過數(shù)據(jù)包交換來完成。一個(gè)數(shù)據(jù)包由版本標(biāo)識(shí)符、SNMP團(tuán)體名和PDU
組成。SNMP應(yīng)支持五種PDU:GetRequest、GetNextRequest、GetResponse、SetRequest、
Trap。SN
MP數(shù)據(jù)包被封裝在UDP中,協(xié)議實(shí)體在UDP協(xié)議口162接收陷講數(shù)據(jù)包,而在UDP協(xié)議口161接收其
它
數(shù)據(jù)包。
網(wǎng)管代理中的MIB把管理信息分為許多組,每組管理信息由一些對(duì)象類型組成。每個(gè)對(duì)象類型
有一個(gè)名字(對(duì)象標(biāo)識(shí)符)、句法(數(shù)據(jù)結(jié)構(gòu))和編碼(用句法來表示對(duì)象實(shí)例)。每個(gè)對(duì)象類型
的實(shí)現(xiàn)叫做對(duì)象實(shí)例,由變量名標(biāo)識(shí),并具有相應(yīng)變量值。與路由器有關(guān)的MIB已經(jīng)在RFC中定義
了
不少,如:IPMIB-Ⅱ、OSPF MIB、BGP MIB、FDDI MIB、RS-232MIB等,當(dāng)然,廠商或管理者
還可
依據(jù)自己的需要,定義一些專用MIB。
六、安全服務(wù)
路由器的安全服務(wù)有兩個(gè)方面的含義,一是保證路由器本身不被侵害(有意或無意的);二
是
對(duì)穿過路由器的數(shù)據(jù)包過濾,或保證發(fā)送數(shù)據(jù)包的完整、可信性。路由器的安全服務(wù)功能將促進(jìn)對(duì)
安全要求嚴(yán)格的各項(xiàng)應(yīng)用(如:電子商務(wù))的發(fā)展。
如何保障路由器自身的安全,以前考慮甚少。在許多RFC(Reference for Comments)的
“Sec
urityConsideration”中僅有輕描淡寫的一句“Security issues are not discussed in
thismemo”。
現(xiàn)在,黑客不僅攻擊網(wǎng)站,也開始攻擊路由器,極大地威脅著互聯(lián)網(wǎng)。路由器的安全性顯得越來越
緊迫和重要。路由器之間或路由器與主機(jī)之間的信息交互是通過路由、網(wǎng)管等通信協(xié)議來自動(dòng)實(shí)現(xiàn)
的。這些協(xié)議消息在網(wǎng)絡(luò)中流動(dòng),可能受到篡改、偽造等威脅,進(jìn)而導(dǎo)致路由器的選路錯(cuò)誤或內(nèi)部
數(shù)據(jù)泄漏等嚴(yán)重后果。所以,RIPv2、OSPFv2、SNMPv2/v3都增加了安全性考慮,由路由器對(duì)協(xié)
議消
息進(jìn)行相應(yīng)的列表、口令、認(rèn)證或加密等處理,把危險(xiǎn)系數(shù)降到最低。
當(dāng)路由器位于網(wǎng)絡(luò)邊緣時(shí),還應(yīng)采取過濾、加密或認(rèn)證等措施(除非采用代理服務(wù)器)。比
如,
如果路由器位于可信的內(nèi)部網(wǎng)與不可信的外部網(wǎng)之間,這時(shí)路由器就需要具有防火墻或VPN功能。
由
于防火墻技術(shù)由來已久,這里重點(diǎn)探討VPN技術(shù)。最近幾年IETF開放著一個(gè)叫做IPSec
(RFC2401)的
協(xié)議包,可有效地用于構(gòu)建VPN。IPSec包括ESP、AH、ISAKMP三個(gè)主要的協(xié)議。
ESP提供數(shù)據(jù)加密服務(wù),保證IP數(shù)據(jù)包的完整和可信性。ESP報(bào)頭置于IPv4報(bào)頭之后。它的協(xié)
議
號(hào)為50。ESP既可以加密整個(gè)IP數(shù)據(jù)包,也可以僅加密高層數(shù)據(jù)幀,視具體要求而定。支持的加密
算
法包括DES-CBC、Triple-DES、RC5、IDEA、CAST、BLOWFISH和HRC4。
AH提供數(shù)據(jù)認(rèn)證服務(wù),并保證IP數(shù)據(jù)包的完整性。AH報(bào)頭放在IPv4報(bào)頭與高層協(xié)議幀(如:
TCP)
之間。AH的協(xié)議號(hào)為51。AH能夠使用多種認(rèn)證算法,目前已經(jīng)被定義的兩個(gè)認(rèn)真算HMAC-MD5和
JMAC-
SHA1。
ISAKMP提供用于應(yīng)用層服務(wù)的通用格式,支持IPSec協(xié)議的密鑰管理要求。除此之外,IETF
設(shè)計(jì)
了Oakley密鑰確定協(xié)議來實(shí)施ISAKMP功能。
由于ESP不提供數(shù)據(jù)認(rèn)證、AH不保證數(shù)據(jù)可信性,實(shí)際中可將二者聯(lián)合使用,取長補(bǔ)短。
七、結(jié)語
互聯(lián)網(wǎng)技術(shù)在飛速發(fā)展,看看不斷出現(xiàn)的RFC正式文檔和草案,看看各個(gè)路由器制造商推出的
不
同解決方案,就可領(lǐng)略到這一點(diǎn)。也許不久的將來,其它功能,比如信令功能、第二層交換等,會(huì)
成
為路由器新的主要功能。我們?cè)嚹恳源?br />
摘自《數(shù)據(jù)通信》