摘要:在網(wǎng)絡(luò)維護(hù)中,有一種常常被技術(shù)人員忽視的網(wǎng)絡(luò)故障叫“路由環(huán)路”,路由環(huán)路也會跟其它網(wǎng)絡(luò)故障一樣占用網(wǎng)絡(luò)帶寬,消耗設(shè)備資源。黑洞路由能很好地解決路由環(huán)路問題,而且比用ACL系統(tǒng)負(fù)載更小。
關(guān)鍵詞:路由環(huán)路;黑洞路由
1???? 前言
中原通信網(wǎng)絡(luò)結(jié)構(gòu)分二層和三層,二層就是簡單的VLAN透傳,三層有OSPF動態(tài)路由協(xié)議和RIP協(xié)議。OSPF在寬帶數(shù)據(jù)核心網(wǎng)和傳輸環(huán)網(wǎng)中使用,而大部分專網(wǎng)更多使用的是RIP協(xié)議中的靜態(tài)路由,畢竟網(wǎng)絡(luò)結(jié)構(gòu)簡單,源地址到達(dá)目標(biāo)地址路由躍點(diǎn)數(shù)不超過5跳。
在網(wǎng)絡(luò)維護(hù)中,有一種常常被技術(shù)人員忽視的網(wǎng)絡(luò)故障叫“路由環(huán)路”,因?yàn)閷拵?shù)據(jù)核心網(wǎng)采用動態(tài)路由協(xié)議居多,OSPF的鏈路狀態(tài)算法不會產(chǎn)生路由環(huán)路,只有RIP采用距離向量協(xié)議的靜態(tài)路由才會發(fā)生,所以很少有人留意這個(gè)問題,但路由環(huán)路也會跟其它網(wǎng)絡(luò)故障一樣占用網(wǎng)絡(luò)帶寬,消耗設(shè)備資源。
那么路由環(huán)路是如何產(chǎn)生的呢?這是一種在網(wǎng)絡(luò)邊界做匯總回程路由的時(shí)候出現(xiàn)的現(xiàn)象,有一些網(wǎng)段并不在內(nèi)網(wǎng)中存在,但是又包含在匯總后的網(wǎng)段中,如果在這個(gè)匯總的邊界設(shè)備上同時(shí)還配置了缺省路由,就可能出現(xiàn)這個(gè)問題。這時(shí),如果有數(shù)據(jù)包發(fā)向那些不在內(nèi)網(wǎng)的網(wǎng)段(但是又包含在匯總網(wǎng)段)所在的路由器,根據(jù)最長匹配原則,并沒有找到對應(yīng)的路由,只能根據(jù)默認(rèn)路由又回到原來的路由器,這就形成了環(huán)路,直到TTL值超時(shí)才丟棄,然后如此反復(fù)。這樣用戶的數(shù)據(jù)包就不停在網(wǎng)絡(luò)上循環(huán)發(fā)送,最終造成網(wǎng)絡(luò)資源的嚴(yán)重浪費(fèi)。
2???? 何為黑洞路由?
黑洞路由主要是指指向null接口的路由,null接口是一個(gè)虛擬的接口無法被配置IP地址,它是將所有無關(guān)路由吸入其中,使它們有來無回的路由,是需要主動建立的路由條目。轉(zhuǎn)發(fā)到該接口上的數(shù)據(jù)包都會被丟掉,所以對于所有可能產(chǎn)生路由回路的路由都加上一條黑洞路由。
如果同樣的功能用ACL(地址訪問控制列表)實(shí)現(xiàn),則流量增大時(shí)CPU利用率會明顯增加。所以,設(shè)置黑洞路由一直是解決固定DOS攻擊的最好辦法。相當(dāng)于洪水來臨時(shí),在洪水途經(jīng)的路上附近挖一個(gè)不見底的巨大深坑,然后將洪水引入其中。黑洞路由最大的好處是充分利用了路由器的包轉(zhuǎn)發(fā)能力,對系統(tǒng)負(fù)載影響非常小。
3???? 黑洞路由在星形網(wǎng)絡(luò)中的應(yīng)用
3.1? 配置R1,R2,R3,R4及l(fā)oopback口
R1:
interface Ethernet0/0/0
ip address13.1.1.1255.255.255.0
#
interface LoopBack0
ip address10.1.1.1255.255.255.0
#
ip route-static10.1.0.0255.255.0.013.1.1.3
ip route-static34.1.1.0255.255.255.013.1.1.3
此外、還有R2、R3、R4
3.2? 斷開R2和R3之間的鏈路,用R4路由跟蹤R2
在R3的接口斷開之后,當(dāng)R4上ping10.1.2.1,R4上會根據(jù)第四條路由去R3,到R3后查詢第二條路由表之后是到R4的,如此循環(huán)往復(fù)就出現(xiàn)了環(huán)路。wireshark抓包結(jié)果:ping5個(gè)包,但是wireshark抓包抓取了1280個(gè)包。
3.3? 構(gòu)建靜態(tài)黑洞路由后的結(jié)果
[r3]ip route-static10.1.0.016NULL0
traceroute to10.1.2.1(10.1.2.1),max hops:30,packet length:40,pressCTRL_C
to break
正常黑洞路由的掩碼要比R3上的這條[R3]ip route-static10.1.2.0255.255.255.023.1.1.2的路由的掩碼要長,因?yàn)楦鶕?jù)路由器查看路由表的最長匹配原則,掩碼越長越優(yōu)先匹配。即使R2和R3的斷了的接口恢復(fù)了,發(fā)往10.1.0.0/16的報(bào)文也不會再匹配黑洞路由,因?yàn)楹诙绰酚傻难诖a比R2上的網(wǎng)段的路由掩碼要短。
4???? 黑洞路由在防火墻NAT中的應(yīng)用
NAT地址池地址是202.1.1.10,防火墻與路由器互聯(lián)接口地址的掩碼是30位,與NAT地址池地址不在同一網(wǎng)段。防火墻上配置了一條缺省路由,下一跳是202.1.1.2,這樣就能把私網(wǎng)PC訪問公網(wǎng)Server的報(bào)文送到路由器。為了保證公網(wǎng)Server的回程報(bào)文能夠順利到達(dá)防火墻,路由器上還要配置了一條到NAT地址池地址的路由。
正常情況下,私網(wǎng)PC訪問公網(wǎng)上的服務(wù)器Server,生成會話表,源地址也進(jìn)行了轉(zhuǎn)換,業(yè)務(wù)很正常。因?yàn)镹AT地址池只有在轉(zhuǎn)換私網(wǎng)地址的時(shí)候才會用到,也就是說,私網(wǎng)PC必須先發(fā)起訪問請求,防火墻收到該請求后才會為其轉(zhuǎn)換地址,NAT地址池地址并不對外提供任何單獨(dú)的服務(wù)。所以當(dāng)公網(wǎng)PC主動訪問NAT地址池地址時(shí),報(bào)文到達(dá)防火墻后,無法匹配會話表,防火墻肯定就會把報(bào)文丟棄了。如果在防火墻的GE0/0/1接口抓包,然后再次在公網(wǎng)PC上執(zhí)行ping202.1.1.10命令發(fā)送一個(gè)ping報(bào)文。
抓到了大量的ICMP報(bào)文,而且報(bào)文的TTL值逐一遞減,直到變?yōu)?。TTL是報(bào)文的生存時(shí)間,每經(jīng)過一臺設(shè)備的轉(zhuǎn)發(fā),TTL的值減1,當(dāng)TTL的值為0時(shí),就會被設(shè)備丟棄。這說明公網(wǎng)PC主動訪問NAT地址池地址的報(bào)文,在防火墻和路由器之間相互轉(zhuǎn)發(fā),直到TTL變成0之后,被最后收到該報(bào)文的那臺設(shè)備丟棄。
(1)???? 路由器收到公網(wǎng)PC訪問NAT地址池地址的報(bào)文后,發(fā)現(xiàn)目的地址不是自己的直連網(wǎng)段,因此查找路由,發(fā)送到防火墻。
(2)???? 防火墻收到報(bào)文后,該報(bào)文不屬于私網(wǎng)訪問公網(wǎng)的回程報(bào)文,無法匹配到會話表,同時(shí)目的地址也不是自己的直連網(wǎng)段(防火墻沒有意識到該報(bào)文的目的地址是自己的NAT地址池地址),只能根據(jù)缺省路由來轉(zhuǎn)發(fā)。因?yàn)閳?bào)文從同一接口入和出,相當(dāng)于在同一個(gè)安全區(qū)域流動,缺省情況下也不受安全策略的控制,就這樣報(bào)文又從GE0/0/1接口送出去了。
(3)???? 路由器收到報(bào)文后,查找路由,還是發(fā)送至防火墻,如此反復(fù)。
5???? 總結(jié)
如果不處理這種路由環(huán)路,無數(shù)的報(bào)文就會在防火墻和路由器之間循環(huán)轉(zhuǎn)發(fā),占用鏈路帶寬資源,同時(shí)防火墻和路由器將會消耗大量的系統(tǒng)資源來處理這些報(bào)文,就可能導(dǎo)致無法處理正常的業(yè)務(wù)。當(dāng)防火墻上NAT地址池地址和公網(wǎng)接口地址不在同一網(wǎng)段時(shí),必須配置黑洞路由,避免在防火墻和路由器之間產(chǎn)生路由環(huán)路。
6???? 結(jié)論
路由環(huán)路在實(shí)際的網(wǎng)絡(luò)組網(wǎng)和維護(hù)中時(shí)有出現(xiàn),通過設(shè)備日志通??床怀鰜?,表面上似乎對業(yè)務(wù)沒啥影響,但環(huán)路對網(wǎng)絡(luò)和設(shè)備的資源消耗是實(shí)實(shí)在在存在的。從網(wǎng)絡(luò)精細(xì)化管理的角度,路由環(huán)路必須消除,如果遇到大數(shù)據(jù)量請求或者有人惡意DDOS攻擊,勢必會造成網(wǎng)絡(luò)鏈路擁塞,從而導(dǎo)致業(yè)務(wù)崩潰。黑洞路由的配置并不復(fù)雜,但關(guān)鍵是要搞清網(wǎng)絡(luò)結(jié)構(gòu),適時(shí)使用,徹底消除網(wǎng)絡(luò)隱患。
作者簡介:
尹衛(wèi)峰(1972年12月出生),男,工程師,從事油田通信網(wǎng)絡(luò)技術(shù)工作.