路由器是實現內網與外網互聯的重要設備,根據網絡復雜程度可設置靜態路由和動態路由。對於簡單的網絡設置靜態路由可方便於管理,但路由列表設置不當會引發一些網絡互聯故障。
近日,我部門(下稱部門A)中有人反映不能訪問上級部門(部門B)的網絡。我從該人所用的計算機A1(IP地址為 10.20.12.11/24)上用ping命令向部門B網絡中的計算機B1(IP地址為10.20.30.110/24)和B2(IP地址為 10.20.30.111/24)發送測試數據包,丟包率達100%,ping本部門的其它計算機則顯示連接正常。檢查其計算機IP設置,發現網關設置正確(正確網關為10.20.12.1),於是懷疑路由器不能正常工作。回來我自己辦公室,用本辦公室計算機A2、A3測試,發現以下奇怪現象:
(1) 在計算機A2(IP為10.20.12.12/24)上用ping命令分別ping部門B網絡中計算機B1和B2,發現B1有正常回應,B2的回應率在 20%~50%之間;在計算機A3(IP為10.20.12.13/24)中用ping命令分別ping計算機B1和B2,回應顯示連接正常,丟包率為 0。
(2) 將計算機A3的IP地址改為10.20.12.12/24後測試,ping得的結果同(1)中的計算機A2測試情況。
(3) 將計算機A2的IP地址改為尚未使用過的IP地址:10.20.12.22/24,測試與B1和B2的連接,結果顯示正常,丟包率為0。
(4) 將計算機A1的IP地址改為尚未使用過的IP地址:10.20.12.23/24,測試與B1和B2的連接,結果顯示正常,丟包率為0。
故障分析
考慮到網絡連通情況與本機IP地址有關,參考本單位網絡拓撲結構圖(如圖1),於是懷疑可能是由於部門B網絡的防火牆設置引發該故障。由於部門B與本部門分別位於城市中兩(電腦沒聲音)個不同地方,不方便查看其防火牆設置,於是打電話詢問。但該部門網絡管理員告之其防火牆是針對網絡IP段設置的,也就是說,該防火牆對於部門A的整個網絡IP段都是允許訪問的。
分析以上原因,可能是本部門中某些計算機向部門B網絡發送過非法訪問信息,部門B的防火牆自動將該IP列入侵計算機名單,屏蔽了其發送的IP數據包,從而引發網絡連接不正常的現象。調查本部門中所有計算機,將不能正常訪問外部網絡(部門B網絡)的計算機的IP更換為新的IP地址,問題暫時解決。
但一個星期後,網絡又出現故障,有幾個原來能正常訪問部門B計算機出現丟包現象,而有幾個原來不能正常訪問外部網絡的IP地址卻可以正常訪問外部網絡,看來問題可能不在防火牆上。
在計算機上A2(IP地址為10.20.12.12/24)用Tracert 命令跟蹤測試,現象如下:
c:\>Tracert 10.20.30.110
Tracing route to 10.20.30.110 over a maximum of 30 hops
1 <1 ms <1 ms <1 ms 10.20.12.1
2 1 ms <1 ms 1 ms 192.168.10.2
3 1 ms 1 ms 1 ms 10.20.30.1
4 2 ms 1 ms 2 ms 10.20.30.110
Trace complete
將計算機上A2的IP地址改為10.20.12.22/24,用Tracert 命令跟蹤測試,現象如下:
Tracing route to 10.20.30.110 over a maximum of 30 hops
1 <1 ms <1 ms <1 ms 10.20.12.1
2 1 ms * * 192.168.10.2
3 * 2 ms * 10.20.30.1
4 * * * Request timed out
5 * * * Request timed out
6 * * 2 ms 10.20.30.110
Trace complete
Trace complete
→
圖1
有時用Tracert跟蹤測試得到4、5行及以後顯示的都是Request timed out。
回顧近期網絡結構變動情況,原來本部門中網關的位置用的是一個三層交換機(只使用其路由功能),當時內網能正常訪問外部網絡,在一星期前換為Cisco 3640路由器,將按三層交換機中的配置重新配置3640路由器,換後不久就出現以上網絡故障。檢查Cisco 3640的端口配置和路由配置,發現端口IP地址配置正常,而在路由列表中有兩(電腦沒聲音)條路由:
ip route 0.0.0.0 0.0.0.0 192.168.10.2
ip route 0.0.0.0 0.0.0.0 10.20.12.254
因本部門網絡是單位廣域網中最下層子網,根據業務需要訪問本單位整個廣域網,而本部門網絡只通過一台Cisco 3640路由器Router A接入部門B網絡中,再通過部門B的路由器Router B接入單位廣域網(見前面網絡拓樸圖)。為方便設置,我們只需要在Cisco 3640加入一條缺省路由“ip route 0.0.0.0 0.0.0.0 192.168.10.2”就可以將本部門對外部網絡的的訪問都轉發到部門B的路由器Router B,從而實現網絡的互聯。可能由於設置人員的失誤,在路由表中多加了一條並不存在的下一跳節點“ip route 0.0.0.0 0.0.0.0 10.20.12.254”。以致當內網中的計算機訪問外部網絡時,路由器有時不能將IP數據包正確地發送到192.168.10.2中,由於路由器加電工作後,內存中保存了內網對外網的訪問路由列表,使得一些計算機一直能正常訪問外網,而另一些計算機不能正常訪問,當路由器重新啟動(如第二個星期一早上重啟路由器)後,訪問路由列表重新建立,使得內部計算機訪問外網的現象發現變化。
故障排除
在路由器特權模式下刪除無用的路由列表:
# no ip route 0.0.0.0 0.0.0.0 10.20.12.254
#wr
重啟路由器後,本部門所有計算機都能正常訪問部門B的網絡及單位廣域網,故障得到徹底解決。
指的是路由器或者其他互聯網網絡設備上存儲的表,該表中存有到達特定網絡終端的路徑,在某些情況下,還有一些與這些路徑相關的度量。
路由表的一般形式為:
Destination Gateway Flag Refs Use Inerface
其中,Destination目標網絡或主機的IP地址;Gateway到達指定目地的使用網關;Flag標志字段,描述這一路由的一些特性;Refcnt 表示為了建一次連接,該路由使用的次數;Use表示通過該路由傳輸的分組報文數;Interface 表示該路由使用的網絡接口名。
一個典型的路由表的例子
Destination Gateway Flags Refs Use Interface
default 26.112.191.98 UGS 0 0 net0
default 26.112.191.98 UGS 0 18 net0
26.112.191 26.112.191.2 UC 1 0 net0
26.112.191.2 127.0.0.1 UGHS 3 92 lo0
127.0.0.1 127.0.0.1 UH 3 9786480 lo0
224 26.112.191.2 UCS 0 0 net0