新手學習:CISCO路由器故障排除
一 靜態路由故障
1. 靜態路由和有類別查找
當路由選擇表進程檢查一條使用中間地址(路由選擇表中作為下一跳引用的IP位址)的可解析的靜態路由時,這個檢查總是在有類別方式下完成的,無論是否使用ip classless命令如果在路由選擇表中有類別方式下的中間地址不能解析,則刪除該靜態路由。
使用show ip route查看路由選擇表。
使用debug 可以顯示某個網路宕掉了。
如果使用無類別方式並有一條默認路由存在,那么具有高管理距離的備份表態路由將永遠不會在主靜態路由失效時裝入到路由選擇表中。這是因為任何靜態路由,即便是指向不存在的中間地址的靜態路由,都會使用默認路由進行解析。
CISCO路由選擇表進程每60S調用一個檢查路由選擇表的靜態路由功能來根據動態變化的路由選擇表安裝或刪除靜態路由。
2.靜態路由和中間地址
靜態路由可以使用中間網路地址或出接口來創建。大多數情況下,使用出接口在路由選擇表進程中解析靜態路由更加有效。
只要中間IP位址可以在路由選擇表中解析,它不必是真實的下一跳路由器的接口。靜態網路路由(如中間地址)必須最終被解析為路由選擇表中一條具有出接口的路由。
每當路由選擇表進程需要為x.x.x.0/24網路使用靜態路由表項時,它還需要解析中間地址y.y.y.y,稱為遞歸查找。一次額外的路由查找或許對路由選擇進程的性能沒有多少影響。但是,採取多次遞歸查找來獲得解析的靜態路由可能會影響性能。
3.靜態路由最佳化
為避免遞歸查找: 串列網路:使用出接口
乙太網絡:同時使用中間地址和出接口
4.反覆的靜態路由安裝和刪除
儘可能地使用出接口而不是中間地址來配置靜態路由。
5.使用丟棄路由
有時網路中有環路的產生。通過周期性的查看路由器接口上的計數器可以看到路由選擇環路的結果。
clear counters serial0/0
show interface serial0/0
路由環路的問題在網路中產生了一個黑洞。一旦IP頭中的生存期(TTL)減到0就丟棄分組。
解決1:有類別模式的路由選擇(no ip classless)——在用戶網路路由器上使用no ip classless.路由器在至少一個已知子網存在時不會使用任何超網或默認路由。但不是首選。因為它改變了所有分組的路由選擇表查找行為。
解決2:使用一條丟棄路由——當路由選擇表中沒有特定的匹配,而且使用一條超網或默認路由來轉發那些分組並不合適時,一條丟棄路由把分組送給了null0,即比特桶。
ip route x.x.0.0 255.255.0.0 null0
ip route x.x.0.0 255.255.0.0 null0 200
後一個命令行配置僅在主路由失效時使用的另一條丟棄路由。通過將靜態路由的默認管理距離改為比所使用的動態路由選擇協定的管理距離更高的一個值來實現。
二 排除RIP故障
1.不兼容的版本類型
debug ip rip
show ip protocols 對檢查接口上傳送和接收的RIP分組版本十分有用。
如果R1不支持V2的版本,只能接收RIPv1分組,那么R2配置成RIPv1和RIPv2.
可在接口級指定傳送和接收RIP分組的特定版本
interface e0
ip rip send version 1 2
ip rip receive version 1 2
2.不匹配的認證密鑰
RIPv2的一個選項是可以認證的RIPv2更新,為了增強安全性,當使用認證時,必須在雙方配置口令。這個口令被稱為認證密鑰。如果這一密鑰與另一方的密鑰不匹配,雙方都將忽略RIPv2更新。
在接口上配置ip rip authentication key-chain cisco
用debug ip rip調試。
3.達到RIP的路數限制
RIP度量標準的最大值是15跳。
無法克服這個問題。可以使用非15跳限制的路由選擇協定。IGRP最大跳數是255,EIGRP最大跳數是224,二者默認都是100.
4.不連續網路
當主網路被另一個主網路分隔開時,被稱為不連續網路。
解決1:使用靜態路由
解決2:在路由器之間的鏈路地址改為左右不連續網路中的一部分。
解決3:在兩台路由器上用no auto-summary配置啟用RIPv2的無類別路由選擇版本。
router rip
network x.x.x.0
no auto-summary
解決4:使用無類別路由選擇協定。如OSPF,EIGRP,IS-IS替代RIPv1路由選擇協定。
5.不合法的源地址
當RIP告訴路由選擇表安裝路由時,它執行源合法性檢查。如果源所在子網與本地接口不同,RIP則忽略更新並且不在路由選擇表中安裝從這個源來的路由。
當一方是有編號而另一方是無編號時,必須關閉這個檢查。
router rip
no validate-update-source
6.翻動(flapping)路由
路由翻動是指路由選擇表中一條路由的不斷刪除和再插入。為了檢查路由是否真的翻動,檢查路由選擇表並查看路由的壽命(age)。如果壽命被不斷的重置為00:00:00,這就意味這路由正在翻動。
RIP有180S沒有收到一條路由,那么該路由將保持240S,然後被清除。
使用show interface來檢查接口統計值。
最常見幀中繼環境分組丟失。
使用show ip route rip可以檢查RIP多久沒有更新。
使用show interface serial 0可查看到接口上有大量的廣播分組是否被丟棄。幀中繼情況下,可能需要調整幀中繼廣播佇列。在非幀中繼的環境中,可能需要增加輸入或輸出保留佇列。
7.大型路由選擇表
接口上使用ip summary-address匯總路由。
二 排除RIP故障
1.不兼容的版本類型
debug ip rip
show ip protocols 對檢查接口上傳送和接收的RIP分組版本十分有用。
如果R1不支持V2的版本,只能接收RIPv1分組,那么R2配置成RIPv1和RIPv2.
可在接口級指定傳送和接收RIP分組的特定版本
interface e0
ip rip send version 1 2
ip rip receive version 1 2
2.不匹配的認證密鑰
RIPv2的一個選項是可以認證的RIPv2更新,為了增強安全性,當使用認證時,必須在雙方配置口令。這個口令被稱為認證密鑰。如果這一密鑰與另一方的密鑰不匹配,雙方都將忽略RIPv2更新。
在接口上配置ip rip authentication key-chain cisco
用debug ip rip調試。
3.達到RIP的路數限制
RIP度量標準的最大值是15跳。
無法克服這個問題。可以使用非15跳限制的路由選擇協定。IGRP最大跳數是255,EIGRP最大跳數是224,二者默認都是100.
4.不連續網路
當主網路被另一個主網路分隔開時,被稱為不連續網路。
解決1:使用靜態路由
解決2:在路由器之間的鏈路地址改為左右不連續網路中的一部分。
解決3:在兩台路由器上用no auto-summary配置啟用RIPv2的無類別路由選擇版本。
router rip
version 2
network x.x.x.0
no auto-summary
解決4:使用無類別路由選擇協定。如OSPF,EIGRP,IS-IS替代RIPv1路由選擇協定。
5.不合法的源地址
當RIP告訴路由選擇表安裝路由時,它執行源合法性檢查。如果源所在子網與本地接口不同,RIP則忽略更新並且不在路由選擇表中安裝從這個源來的路由。
當一方是有編號而另一方是無編號時,必須關閉這個檢查。
router rip
no validate-update-source
6.翻動(flapping)路由
路由翻動是指路由選擇表中一條路由的不斷刪除和再插入。為了檢查路由是否真的翻動,檢查路由選擇表並查看路由的壽命(age)。如果壽命被不斷的重置為00:00:00,這就意味這路由正在翻動。
RIP有180S沒有收到一條路由,那么該路由將保持240S,然後被清除。
使用show interface來檢查接口統計值。
最常見幀中繼環境分組丟失。
使用show ip route rip可以檢查RIP多久沒有更新。
使用show interface serial 0可查看到接口上有大量的廣播分組是否被丟棄。幀中繼情況下,可能需要調整幀中繼廣播佇列。在非幀中繼的環境中,可能需要增加輸入或輸出保留佇列。
7.大型路由選擇表
接口上使用ip summary-address匯總路由。
三 排除EIGRP故障
1.不匹配的K值
EIGRP為了建立它的鄰居關係,計算EIGRP度量標準的K常數值必須相同。
K1-頻寬 K2-負載 K3-延遲 K4,K5-可靠性
router eigrp 1
network x.x.x.x
metric weights 0 1 1 1 1 0
2.不匹配的AS編號
EIGRP不會與具有不同自治系統編號的路由器形成任何鄰居關係。
3.活動粘滯
(1)確定問題
可能的原因有:
壞的或擁塞的鏈路;
低的路由器資源,如路由器上的低記憶體和高CPU處理。
長的查詢範圍
過多的冗餘
默認活動粘滯定時器只有180S.
使用show ip eigrp topology active 命令幫助故障排除EIGRP活動粘滯錯誤,僅在問題發生時有用,用戶一次只有180S的時間來確定。鄰居有一個r跟在後面表示它沒有應答查詢。
(2)故障排除方法
追蹤查詢,一跳接一跳,在每一跳找出活動路由的狀態。
(3)最終解決方案
儘可能手工匯總路由並有一個分層次的網路設計。EIGRP匯總的網路越多,主收斂發生時需要做的事情越少。
4.重複的路由ID
EIGRP只是為了外部路由而使用路由器ID的概念來防止環路。EIGRP基於路由器上迴環接口的最大IP位址來選擇路由器ID.如果路由器沒有迴環接口,則選擇所有接口中最大的激活IP位址作為EIGRP的路由器ID.
debug ip eigrp可以看到接口上通告某個網路。
經驗法則:永遠不要在網路的兩個地方配置相同的IP位址。四 排除OSPF故障
1.不匹配的參數
使用debug ip ospf adj命令能夠看到大多數的不匹配問題。
(1)hello/dead間隔不匹配——匹配才可以形成鄰居。
(2)不匹配的認證類型——OSPF下有MD5和純文本認證。
router ospf 1
area 0 authentication message-digest
network x.x.0.0 0.0.255.255 area 0
(3)不匹配的區域ID——區域信息在OSPF的HELLO分組中傳送。不同,不會形成鄰接。
(4)不匹配的短截/傳輸/nssa區域選項——當OSPF與一個鄰居交換HELLO分組時,它所交換的一項內容是由8比特表示的可選能力。選項欄位之一是E比特,即OSPF短截標誌。當E比特置0時,該路由關聯的區域是一個短截區域,外部LSA不允許進入這個區域。
2.OSPF狀態問題
成為鄰居的路由器不保證交換鏈路狀態更新。一旦路由器決定與一個鄰居形成鄰接,它就開始交換其鏈路狀態資料庫的一份完整拷貝。
(1)OSPF陷入ATTEMPT——僅對neighbor語句的NBMA網路有效。陷入ATTEMPT是指一台路由器試圖通過傳送它的HELLO來聯繫鄰居但是它沒有收到回響。
show ip ospf neighbor查看。
原因:錯誤配置neighbor;NBMA上的單播連通性斷了,這可能是由錯誤的DLCI,訪問列表或轉換單播的NAT引起的。
(2)OSPF陷入INIT——INIT狀態表示路由器收到來自鄰居的HELLO分組,但是雙向通信並沒有建立 .
原因:
一方訪問列表阻止了HELLO;
一方的多播能力失效(一個交換機故障);
僅在一方啟用了認證;
一方的frame-relay map/dialer map語句缺少了broadcast關鍵字。
一方的HELLO在第2層丟失了。
(3)OSPF陷入2-WAY——雙向狀態是指路由器在HELLO分組的鄰居欄位中見到了自己的路由器ID.類似於所有路由器的優先權都為0,則不會發生選舉,所有路由器停留在雙向狀態中。
解決:確保至少一台路由器具有一個至少為1的IP OSPF優先權。
(4)OSPF陷入ExStart/EXCHANGE——在EXSTART或EXCHANGE狀態的OSPF鄰居正處於嘗試交換DBD(資料庫描述)分組的過程中。
原因:
不匹配的接口MTU
鄰居上重複的路由器ID
無法用超過特定MTU 長度進行PING
斷掉的單播連通性,它可能是因為錯誤的DLCI,訪問列表或轉換單播的NAT
(5)OSPF陷入LOADING——鄰居沒有應答或鄰居的應答從未到達本地路由器,路由器也會陷入LOADING狀態。常有"%OSPF-4-BADLSA"控制台信息。
原因:
不匹配的MTU
錯誤的鏈路狀態請求分組
3.點到點鏈路的一方是無編號的
interface s0
ip unnumbered loopback0
解決:雙方都需要成為一個有編號點到點鏈路或一個無編號點到點鏈路。
4.ABR沒有產生一個類型4的匯總LSA
類型4的匯總LSA的一個功能是宣告到其他區域的ASBR的可達性。如果同一個區域中存在ASBR則不需要類型4的LSA.
show ip ospf database external 命令的輸出顯示在路由器的外部OSPF資料庫中是否存在路由。
show ip ospf database asbr-summary 命令的輸出顯示路由是否有類型4的LSA.
檢查R是否真是ABR.如果是,則產生類型3或類型4的匯總LSA.show ip ospf
5.轉發地址不能通過區域內或區域間路由獲知
當OSPF獲得一條外部LSA時,它在將該路由裝入路由選擇表之前要確定轉發地址可通過一條OSPF區域內或區域間路由獲知。如果轉發地址不能通過區域內或區域間路由獲知,OSPF不會將路由裝入路由選擇表中。
有可能的解決:
不在ABR上進行匯總
在ASBR上過濾再分布入OSPF中的直接子網
router ospf 1
redistribute rip subnets
6.路由匯總問題
兩種類型匯總:
可執行在ABR上的區域間路由匯總
可執行在ASBR上的外部路由匯總
(1)區域間匯總
router ospf 1
area 3 range x.x.x.0 255.255.255.0
通過show ip ospf可以查看
(2)外部匯總
router ospf 1
summary-address x.0.0.0 255.0.0.0
7.CPUHOG問題
產生在:鄰居形成過程
LSA刷新過程
8.SPF計算和路由翻動
只要拓撲有變化,OSPF就運行spf算法再次計算最短路徑優先樹。,可能引起鏈路的不穩定。
原因:區域內的接口翻動
區域內的鄰居接口翻動
重複的路由器ID
使用show ip ospf命令可查看在一個給定區域中SPF算法運行的次數;
使用debug ip ospf monitor來隔離一個翻動的LSA;
使用show log命令顯示由接口引起的翻動。
解決:
修復正在翻動的鏈路
重新定義區域邊界
五 排除IS-IS故障
1.IS-IS鄰接問題
通常由鏈路故障和配置錯誤引起。
show CLNS neighbors 顯示所有希望與被調查的路由器成為鄰接的鄰居
debug isis adj-packets 命令來調試
2.部分或所有鄰接沒有形成
步驟1——檢查鏈路故障。show ip interface brief
步驟2——檢查配置錯誤。show run
步驟3——檢查不匹配的1級和2級接口。
步驟4——檢查區域的錯誤配置。
步驟5——檢查錯誤配置的子網
步驟6——檢查重複的系統ID
3.鄰接陷入INIT狀態
常見原因:不匹配的接口MTU和認證參數。show clns neighbors可看到
步驟1——檢查認證 debug isis adj-packets
步驟2——檢查不匹配的MTU debug isis adj-packets
步驟3——檢查IS-IS的HELLO填充禁止 (命令同上)
使用show clns interface查看接口上的HELLO填充狀態
4.ES-IS鄰接形成代替了IS-IS鄰接形成
在IP環境中運行IS-IS的CISCO路由器仍然監聽ES-IS協定所產生的ISH.當物理層和數據鏈路層工作時,即使沒有建立IS-IS鄰接的適當條件,仍能形成ES-IS鄰接。
show clns neighbors
5.路由通告問題
大多數路由通告問題都可被限制為源端的配置問題或鏈路狀態分組(LSP)的傳播問題。
Dijkstra算法運行在LS資料庫上來獲得每個被通告路由的最佳路徑。
debug isis update-packets
debug isis snp-packets
以上兩個調試幫助故障排除LSP洪泛問題和鏈路狀態資料庫同步。
路由沒有到達網絡遠端的問題可能有許多潛在原因,包括鄰接問題,第1/2層問題,IS-IS錯誤配置以及其他問題。
6.路由翻動問題
網路中SPF進程的高CPU利用率(SHOW PROCESS CPU命令)也應標記為不穩定。
不穩定鏈路。
翻動還有可能是由LSP的錯誤風暴或一個路由選擇環路引起。
show isis spf-log命令顯示哪個LSP變化最頻繁以及哪個LSP角發了SPF計算。
show isis update-packets
六 排除BGP故障
1.故障排除BGP鄰居關係問題
遵循:首先,應檢查第1/2層,然後是IP連通性(第3層),TCP連線(第4層),最後是BGP配置。
(1)直接的外部BGP鄰居沒有初始化
自治系統(AS)不會向AS傳送或從AS接收任何IP前綴更新,除非鄰居關係達到established狀態,該狀態是BGP鄰居建立的最後階段。當AS有一條單一的EBGP連線時,直到BGP完成了它的收發IP前綴操作後IP連通性
才能發生。
原因:第2層宕掉了,阻止了與直接的EBGP鄰居通信
在BGP配置中有錯誤的鄰居IP位址
命令:show ip bgp summary和 show ip bgp neighbors檢查BGP鄰居關係
active狀態表示鄰居間沒有發生成功的通信,並且鄰居未形成。用PING測試其連通性,失敗則表示要修復第1/2層問題。
debug ip bgp能夠幫助診斷問題
(2)非直接的外部BGP鄰居沒有初始化
有些情況下,EBGP鄰居不是直連的。BGP鄰居關係能夠建立在試圖形成由一台或多台路由器分隔開的EBGP鄰居關係的路由器之間。這種鄰居在IOS中被稱為EBGP多跳。
當路由器之間存在多個接口並且需要在那些接口之間IP流量負載均衡時,通常在迴環接口之間建立EBGP對等實體。
可能的原因:
到非直連對等實體地址的路由從路由選擇表中丟失了
BGP配置中缺少ebgp-multihop命令
缺少update-source interface命令
命令:show ip bgp summary 和show bgp neighbors
router bgp 109
neighbor x.x.x.x remote-as 110
neighbor x.x.x.x ebgp-multihop 2
neighbor x.x.x.x update-source loopback0
(3)內部BGP鄰居沒有初始化
原因:
到非直接IBGP鄰居的路由丟失了
BGP配置中缺少update-source interface命令
(4)BGP鄰居(外部和內部)沒有初始化
接口訪問列表/過濾是BGP鄰居活動問題的一個常見原因。
2.故障排除BGP路由通告
發生在BGP路由通告的產生和接收中。
(1)沒有產生BGP路由
原因:
IP路由選擇表中沒有匹配的路由
發生了配置錯誤
BGP自動匯總到有類別/網路邊界
(2)向IBGP/EBGP鄰居傳播/產生一條BGP路由的問題
配置的分布列表過濾可能是該問題的起因,或者是策略路由選擇有問題。
(3)向EBGP鄰居但沒有向IBGP鄰居傳播一條BGP路由的問題
show run
show ip bgp
show ip bgp summary
解決:
使用IBGP全互聯
設計一個路由反射器模型。
router bgp 109
neighbor x.x.x.x route-reflector-client
設計一個聰明模型
(4)向IBGP/EBGP鄰接傳播一條IBGP路由的問題
一條BGP路由只有首先通過IGP或靜態路由獲得後才是同步的。
show ip bgp命令的輸出顯示了BGP表中的不同步路由。
3.排除路由沒有裝入IP路由選擇表中的故障
原因:
(1)IBGP原因
IBGP路由不同步
BGP下一跳不可達
(2)EBGP原因
在多跳EBGP情況下BGP下一跳不可達
BGP路由被抑制
多出口鑑別器(MED)值為無窮
4.BGP下一跳不可達
解決:
使用靜態路由或再分布經由IGP宣告EBGP下一跳
router ospf 1
network x.x.x.0 0.0.0.255 area 0
使用next-hop-self命令將下一跳改變為一個內部對等實體地址
router bgp 109
router ospf x.x.x.x next-hop-self
4.BGP路由被抑制
抑制(dampening)是減小本地BGP網路中來自EBGP鄰居的不穩定BGP路由所引起的不穩定性的方法。
抑制是一種為一條翻動的BGP路由指派一個罰點的方法。
router bgp 109
bgp dampening
七 排除再分布故障
1.RIP再分布問題
router rip
version 2
redistribute ospf 1 metric 1
network x.x.0.0
因為RIP有跳數限制。為改正到達16跳時會出現路由無法再分布的問題,需要在再分布時指派有效的度量標準。其實現可以使用redistribute命令中的metric或default-metric命令。
使用show ip route查看路由傳播情況。
2.IGRP/EIGRP的再分布問題
複合度量標準:寬頻,延遲,可靠性,負載
CISCO使用100000000/頻寬來得到該代價。
router igrp 1
redistribute ospf 1 metric 1 10000 255 1 1500
network x.x.0.0
或者
router igrp 1
redistribute ospf 1
redistribute static
default-metric 1 10000 255 1 1500
network x.x.0. 0
使用show ip route查看路由傳播情況。
3.OSPF的再分布問題
當OSPF再分布時,它成為ASBR.
(1)OSPF沒有將外部路由裝入路由選擇表中
原因:不能通過區域內或區域間路由獲知轉發地址
ABR滑產生類型4的匯總LSA
(2)ASBR沒有通告被再分布的路由
原因:ASBR的配置中缺少subnets關鍵字
distribute-list out命令阻塞了這些路由
router ospf 1
redistribute rip subnets
network x.x.x.0 0.0.0.255 area 0
使用show ip ospf database external IP來查看
4.IS-IS再分布問題
(1)將靜態路由再分布入IS-IS
router isis
redistribute static ip
使用show run和show isis database查看
(2)將外部靜態路由加入為一個LS的IS-IS LSP
router isis
redistribute static ip metric-type external
5.BGP的再分布問題
在AS邊界路由器上,外出路由通告影響進入的流量,而進入路由通告則影響外出流量。因此,外出和進入的通告應分開考慮。
(1)BGP發布進eigrp中
router eigrp 200
redistribute bgp 200 metric 10000 100 255 1 1500 passive-interface s0
network x.x.x.0
router bgp 200
network x.x.x.0
neighbor x.x.x.x remote-as 100
可以使用 show ip route和PING來檢測
決對不要在一個面向internet的路由器上使用BGP到IGP的再分布。一個完整的internet路由選擇表由 100000個前綴組成,一個IGP進程將會因處理這么多的路由而阻塞再分布一個完整的internet表乃至大部分的表都會不可避免的引起主網路崩潰。
(2)為了更多地控制被通告進入BGP鄰居,可以使用靜態路由。
向BGP鄰居通告一條默認路由不會抑制更具體的路由。
如果只傳送默認路由,路由器必須使用過濾器來抑制所有更具體的路由。
router bgp 100
network 0.0.0.0
neighbor x.x.x.x remote-as 300
neighbor x.x.x.x remote-as 200
neighbor x.x.x.x remote-as 100
neighbor x.x.x.x default-originate
neighbor x.x.x.x redistribute-list 1 out (這一句只是BGP路由的一種方法)
access-list 1 permit 0.0.0.0
access-list 1 deny an