隨選路由(ODR)是對思科探索通訊協定(CDP)的增強功能,該協定用於探索廣播或非廣播媒體上的其他思科裝置。藉助CDP,可以找到裝置型別、IP地址、在相鄰Cisco裝置上運行的Cisco IOS®版本、相鄰裝置的功能等。在Cisco IOS軟體版本11.2中,ODR被新增到CDP中,以通過CDP通告末節路由器的連線IP字首。此功能為每個網路或子網額外需要五個位元組,為IP地址需要四個位元組,以及一個位元組用於通告子網掩碼和IP。ODR能夠攜帶可變長子網掩碼(VLSM)資訊。
ODR專為不想將其網路頻寬用於路由協定更新的企業零售客戶設計。例如,在X.25環境中,通過該鏈路運行路由協定通常成本高昂。靜態路由是很好的選擇,但手動維護靜態路由開銷太大。ODR不佔用大量的CPU,它用於在第2層動態傳播IP路由。
ODR不是路由協定,配置時不應將其視為路由協定。不同IP路由協定的傳統配置在ODR中不起作用,因為ODR在第2層使用CDP。要配置ODR,請在中心路由器上使用router odr命令。ODR與其他IP路由協定的設計、實施和互動可能非常困難。
除LAN模擬(LANE)外,ODR不會在Cisco 700系列路由器上或透過ATM連結執行。
當沒有資訊通過網路時,它就是一個末節網路。集中星型拓撲是末節網路的良好示例。許多站點連線到資料中心的大型組織使用這種拓撲。
分支端使用低端路由器,例如Cisco 2500、1600和1000系列路由器。如果資訊通過分支路由器到達某個其它網路,則該末節路由器成為中轉路由器。當分支連線到除中心路由器之外的另一路由器時,會發生此配置。
一個共同的關注點是輻射點可以傳送多大的ODR更新。通常,輻條只連線到集線器。如果分支連線到其它路由器,則它們不再是末節,成為中轉網路。低端盒子通常有一個或兩個LAN介面。例如,Cisco 2500可以支援兩個LAN介面。正常情況下,會將10位元組的封包作為CDP的一部分傳送(如果輻射端有兩個LAN)。CDP預設為啟用,因此不存在額外額外負荷的問題。永遠不會出現大量ODR更新的情況。在真正的集中星型環境中,ODR更新的大小不是問題。
集中星型網路是集線器(高端路由器)為多個分支(低端路由器)提供服務的典型網路。 在特殊情況下,可以有多個集線器,用於冗餘或通過單獨的集線器支援附加輻條。在這種情況下,請在兩個集線器上啟用ODR。還需要具備路由協定,以便在兩個集線器之間交換ODR路由資訊。
圖1:中心輻射型拓撲
在上面的圖1中,輻條連線到一個集線器,因此它們可以依賴預設網關,而不是接收具有一個出口點的集線器的所有路由資訊。不必將所有資訊傳遞給輻條,因為輻條不必做出智慧路由決策。輻條始終會將流量傳送到中心,因此輻條只需要指向中心的預設路由。
必須將分支的子網資訊傳送到中心。在Cisco IOS 11.2之前,實現此目標的唯一方法是在分支啟用路由協定。但是,使用ODR時,無需在分支端啟用路由協定。使用ODR時,分支上只需要使用Cisco IOS 11.2和指向集線器的靜態預設路由。
分支可以有多個到集線器的連線,以便在主鏈路發生故障時進行冗餘或備份。這種冗餘通常需要一個單獨的集線器。在這種情況下,輻條具有多個出口點。ODR在此網路中也運行良好。
輻條必須是點對點的,否則浮動靜態預設路由將不起作用。在多點配置中,無法像在廣播媒體中那樣檢測下一跳的故障。
要實現負載均衡,請在具有相同距離的分支上定義兩條靜態預設路由,分支將在兩條路徑之間執行負載均衡。如果有兩條路徑通往目的地,ODR會將兩條路由都保留在路由表中,並在集線器上進行負載均衡。
對於備份,定義兩條靜態預設路由,其中一條的距離要好於另一條。分支將使用主鏈路,當主鏈路斷開時,浮動靜態路由將正常工作。在中心路由器中,對每個CDP鄰居地址使用distance命令,使一個距離比另一個距離更好。通過此配置,通過一條鏈路獲知的ODR路由將優先於另一條鏈路。在存在快速主鏈路和慢(低頻寬)備份鏈路,並且不需要負載均衡的環境中,此配置非常有用。
注意:現在,除上述情況外,在單個中心點情況下,分支端沒有其他方法優先使用一條鏈路。如果您使用的是IOS 12.0.5T或更新版本,則中心伺服器會自動通過兩條鏈路傳送預設路由,分支無法區分兩條路徑,並將兩者都安裝在其路由表中。優先使用一條預設路由而不是另一條預設路由的唯一方法是在分支上使用靜態預設路由,該分支的路徑具有您希望首選的較低管理距離。這將自動覆蓋通過ODR到達分支的預設路由。目前,正在考慮提供輻條旋鈕,以便優先選擇一條鏈路,而不是另一條鏈路。
圖2:具有多個出口點和單個集線器的輻條
當存在多個集線器時,這些配置也可用於負載平衡或備份。所有集線器必須全網連線,這樣,如果輻條的一條鏈路出現故障,仍然可以通過第二個集線器到達目的地。如需更詳細的說明,請參閱本檔案的ODR與其他路由通訊協定一節。同樣,對於多個集線器,如果使用IOS 12.0.5T或更高版本,集線器會將ODR預設路由傳送到輻條,而輻條則同時安裝在路由表中。未來的增強功能將允許輻條優先使用其中一個中心。目前,這可以通過在分支的路由器上定義的靜態預設路由以及使用static route命令中的管理距離優先使用其中一個中心而不是另一個中心來完成。這不會影響負載均衡情況。
圖3:具有多個出口點和多個集線器的輻條
ODR與IP路由相比的最大優勢在於中心路由器將學習IP字首,而不在第3層啟用路由協定。ODR更新是第2層CDP的一部分。
在真正的星型環境中,不必將所有路由資訊傳遞給所有星型。慢速鏈路分支會在路由更新和維護鄰居關係時浪費頻寬。通過在分支上啟用增強型內部網關路由協定(EIGRP),路由更新會傳送到分支。在大型網路中,這些更新會變得非常龐大,會浪費CPU頻寬,並且可能需要分支路由器上更多的記憶體。
使用EIGRP的更好方法是將過濾器應用於集線器。路由資訊受到控制,因此集線器只將預設路由動態傳送到分支。這些過濾器有助於減小分支端路由表的大小,但如果集線器失去鄰居,它將向所有其他鄰居發出查詢。不需要這些查詢,因為集線器永遠不會收到鄰居的回覆。
最好的方法是使用ODR消除EIGRP查詢和鄰居維護的開銷。通過調整ODR計時器,可以增加收斂時間。
現在,EIGRP中有一個新功能,可在集中星型環境中更好地擴展EIGRP。有關EIGRP末節功能的詳細資訊,請參閱增強型IGRP末節路由。
開放最短路徑優先(OSPF)為集中星型環境提供了多個選項,stub no-summary選項的開銷最少。
在大型星型網路中運行OSPF時可能會遇到問題。本節中的示例使用幀中繼,因為它是最常見的星型拓撲。
在本示例中,OSPF在通過點對點配置連線的100個分支上啟用。首先,即使我們使用/30網路掩碼劃分子網,IP地址也會大量浪費。其次,如果將100個輻條包含在一個區域中,並交換一個輻條,則最短路徑優先(SPF)演算法將運行並會成為CPU密集型。如果鏈路不斷擺動,分支路由器尤其會出現這種情況。就分支路由器而言,更多的鄰居擺動可能導致問題。
在OSPF中,區域是末節而不是介面。如果末節網路中有100台路由器,則分支需要更多記憶體來容納大型資料庫。通過將大末節區域劃分為小區域可以解決此問題。但是,一個末節區域中的翻動仍會觸發SPF在輻條上運行,因此這種開銷無法通過建立一個沒有彙總且沒有外部性的小末節區域來修復。
另一個選項是將每個鏈路包含在一個區域中。使用此選項,中心路由器必須為每個區域運行單獨的SPF演算法,並為區域中的路由建立總結鏈路狀態通告(LSA)。此選項可能會影響中心路由器的效能。
升級至更好的平台不是永久的解決方案;但是,ODR提供了一個解決方案。通過ODR獲知的路由可以重分佈到OSPF中,以通知其他中心路由器這些路由。
在點對多點網路中,通過將每個分支放在同一子網中來節省IP地址空間。此外,生成的路由器LSA集線器的大小將減半,因為它將只為所有點對點鏈路生成一個末節鏈路。點對多點網路將強制將整個子網包含在一個區域中。在出現鏈路擺動的情況下,輻條將運行SPF,這可能是CPU密集型。
OSPF hello資料包較小,但如果鄰居太多,則其大小可能會變大。由於hello是多點傳送,因此路由器會處理封包。OSPF集線器傳送和接收hello資料包,其中包括20位元組的IP報頭、24位元組的OSPF報頭、20位元組的hello引數,以及每個鄰居的4位元組。來自具有100個鄰居的點對多點網路中的集線器的OSPF hello資料包可以達到464位元組的長度,並且每30秒會泛洪到所有分支。
表 1:適用於100個鄰居的OSPF hello資料包20位元組IP標頭 |
24位元組OSPF標頭 |
20位元組hello引數 |
4位元組每個neighbor router-ID(RID) |
... |
... |
... |
... |
... |
在ODR中會解決開銷問題,因為沒有額外資訊從集線器傳送到分支。分支將每個子網5個位元組的IP字首傳送到中心路由器。考慮Hello資料包的大小,在30秒的間隔內,將ODR中的5個位元組(一個連線的子網的輻射點傳送資訊)與OSPF的68個位元組(最小的Hello資料包大小,包括從輻射點傳送到中心點的IP報頭)加上68個位元組(從輻射點傳送到輻射點的最小的Hello資料包)進行比較。此外,OSPF hello發生在第3層,而ODR更新發生在第2層。使用ODR,傳送的資訊要少得多,因此鏈路頻寬可用於重要資料。
路由資訊協定第2版(RIPv2)也是星型環境的理想選擇。要設計RIPv2,請將預設路由從集線器傳送到分支。輻條隨後通過RIP通告其連線的介面。如果分支上存在需要通告的輔助地址,或者使用了多家供應商路由器,或者這種情況並非真正意義上的中心分支路由器,則可以使用RIPv2。
第2版進行了一些修改,但並未大幅改變協定。本節討論對需求電路的RIP的一些增強功能。
當今的網際網路正在向撥號網路或主站點備份的方向發展,以便為大量遠端站點提供連線。在正常運行期間,此類連線可能傳遞的資料流量非常少或者為零。
RIP的週期性行為會導致這些電路出現問題。RIP存在低頻寬、點對點介面的問題。對於使用高頻寬的大型路由表,每30秒傳送一次更新。在這種情況下,最好使用觸發的RIP。
觸發的RIP專為與其鄰居交換所有路由資訊的路由器而設計。如果路由發生更改,則只有更改會傳播到鄰居。接收路由器立即應用更改。
觸發的RIP更新僅在以下情況下傳送:
接收路由更新的請求。
收到新資訊。
目的地已從circuit down更改為circuit up。
路由器首先開啟。
以下是觸發的RIP的配置示例:
Spoke# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Spoke(config)# int s0.1 Spoke(config-if)# ip rip triggered Spoke(config)# int s0.2 Spoke(config-if)# ip rip triggered interface serial 0 encapsulation frame-relay interface serial 0.1 point /* Primary PVC */ ip address 10.x.x.x 255.255.255.0 ip rip triggered frame-relay interface-dlci XX interface serial 0.2 point /* Secondary PVC */ ip address 10.y.y.y 255.255.255.0 ip rip triggered frame-relay interface-dlci XX router rip network 10.0.0.0 Spoke# show ip protocol Routing Protocol is "rip" Sending updates every 30 seconds, next due in 23 seconds Invalid after 180 seconds, hold down 180, flushed after 240 Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Redistributing: rip Default version control: send version 1, receive any version Interface Send Recv Triggered RIP Key-chain Ethernet0 1 1 2 Serial0.1 1 1 2 Yes Serial0.2 1 1 2 Yes Routing for Networks: 10.0.0.0 Routing Information Sources: Gateway Distance Last Update Distance: (default is 120)
必須在連線到輻條的集線器路由器的介面上配置ip rip triggered命令。
將RIPv2與ODR進行比較時,ODR是更好的選擇,因為RIPv2在第3層工作,而ODR在第2層工作。當集線器將RIPv2更新傳送到超過1000個分支時,它必須在第3層為每個分支複製資料包。ODR不會從集線器傳送任何內容,除非第2層每分鐘傳送一次常規的CDP更新,這完全不是CPU密集型。從輻條傳送第2層連線的子網資訊的CPU佔用率遠遠低於第3層傳送RIPv2的CPU佔用率。
ODR在大規模網路中比任何其它路由協定都運行得更好。ODR的最大優點是無需在連線的串列鏈路上啟用路由協定。目前,在連線的介面上未啟用路由資訊的情況下,沒有路由協定能夠傳送路由資訊。
運行EIGRP時,請建立到星型網路的被動介面連線,以便它不會在鏈路上傳送不必要的EIGRP hello。如果可能,最好不要在集線器和分支之間放置網路的network語句,因為如果鏈路斷開,EIGRP不會向核心鄰居傳送不必要的查詢。請始終在集線器和分支之間選擇一個假網路,這樣這些鏈路就不會包含在EIGRP域中,因為您不會在配置中放置network語句。
在單個集線器的情況下,不需要額外的設定。彙總輻條的特定已連線子網並將其洩漏到核心中。然而,詢問的間接費用總是存在的。如果某個分支中的特定路由丟失,請向核心路由器中的所有鄰居傳送查詢。
對於多個集線器,兩個集線器都連線且在各集線器之間運行EIGRP非常重要。如果可能,此連結應該是唯一的主網,這樣它不會干擾到分支的其他連結。此配置是必需的,因為無法在特定介面上啟用EIGRP,因此即使我們將介面設定為被動介面,它仍會通過EIGRP進行通告。如果對介面進行彙總,則即使一個分支丟失,仍會傳送查詢。只要兩個集線器之間的鏈路與輻條不在同一個主網中,配置就應該能正常工作。
圖4:冗餘和彙總:核心層接收總結路由
EIGRP的優點在於它可以在介面級別進行彙總,因此分支子網的彙總路由將傳送到核心層,並將更具體的路由傳送到另一個中心。如果集線器和輻條之間的鏈路斷開,則可以通過第二個集線器到達目的地。
在此場景中,不必在連線分支的鏈路上啟用OSPF。在正常情況下,如果在鏈路上啟用OSPF,並且一條特定鏈路不斷擺動,則可能會引起多個問題,包括SPF執行、路由器LSA再生、彙總LSA再生等。運行ODR時,不要在OSPF域中包括連線的串列鏈路。主要問題是接收輻條的LAN段資訊。這些資訊可通過ODR獲得。如果一條鏈路不斷擺動,它將不會干擾集線器路由器中的路由協定。
所有特定鏈路都可以在洩漏到核心之前進行總結,以避免當輻條連線的介面之一發生故障時進行路由計算。如果對核心路由器資訊進行了彙總,則無法檢測到它。
圖5:冗餘和彙總:核心路由器正在接收總結路由
在此範例中,為了備援目的,集線器彼此連線非常重要。此連線還會在洩漏到OSPF核心之前彙總輻條連線的子網。
最終會有一個OSPF非純末梢區域(NSSA)功能,該功能不僅允許向核心部分進行總結,而且允許通過NSSA鏈路在集線器上收集更詳細的資訊。運行NSSA的優點是可以將總結的路由傳送到核心。然後,核心層可以將流量傳送到任一集線器以到達分支的目標。如果集線器和輻條之間的鏈路斷開,則兩個集線器中都會有一個更具體的第7類LSA通過其他集線器到達目的地。
以下是使用NSSA的配置示例:
N2507: Hub 1 router odr timers basic 8 24 0 1 ! router ospf 1 redistribute odr subnets network 1.0.0.0 0.255.255.255 area 1 area 1 nssa N2504: Hub 2 router odr timers basic 8 24 0 1 ! router ospf 1 redistribute odr subnets network 1.0.0.0 0.255.255.255 area 1 area 1 nssa N2507# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default U - per-user static route, o - ODR Gateway of last resort is not set C 1.0.0.0/8 is directly connected, Serial0 C 2.0.0.0/8 is directly connected, Serial1 3.0.0.0/24 is subnetted, 1 subnets C 3.3.3.0 is directly connected, Ethernet0 o 150.0.0.0/16 [160/1] via 3.3.3.2, 00:00:23, Ethernet0 o 200.1.1.0/24 [160/1] via 3.3.3.2, 00:00:23, Ethernet0 o 200.1.2.0/24 [160/1] via 3.3.3.2, 00:00:23, Ethernet0 N2504# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default U - per-user static route, o - ODR Gateway of last resort is not set C 1.0.0.0/8 is directly connected, Serial0 C 2.0.0.0/8 is directly connected, Serial1 3.0.0.0/24 is subnetted, 1 subnets C 3.3.4.0 is directly connected, TokenRing0 C 5.0.0.0/8 is directly connected, Loopback0 C 6.0.0.0/8 is directly connected, Loopback1 O N2 150.0.0.0/16 [110/20] via 1.0.0.1, 00:12:06, Serial0 O N2 200.1.1.0/24 [110/20] via 1.0.0.1, 00:12:06, Serial0 O N2 200.1.2.0/24 [110/20] via 1.0.0.1, 00:12:06, Serial0
為分支分配連續的子網塊,以便將這些子網正確總結到OSPF核心中,如下例所示。如果子網未彙總,且一個連線的子網中斷,則整個核心層會檢測到該子網並重新計算路由。通過傳送連續塊的彙總路由,如果分支子網翻轉,核心層將不會檢測到它。
N2504# configure terminal Enter configuration commands, one per line. End with CNTL/Z. N2504(config)# router ospf 1 N2504(config-router)# summary-address 200.1.0.0 255.255.0.0 N2504# show ip ospf database external OSPF Router with ID (6.0.0.1) (Process ID 1) Type-5 AS External Link States LS age: 1111 Options: (No TOS-capability, DC) LS Type: AS External Link Link State ID: 200.1.0.0 (External Network Number ) Advertising Router: 6.0.0.1 LS Seq Number: 80000001 Checksum: 0x2143 Length: 36 Network Mask: /16 Metric Type: 2 (Larger than any link state path) TOS: 127 Metric: 16777215 Forward Address: 0.0.0.0 External Route Tag: 0
在此範例中,會收到來自兩個集線器的更具體資訊。由於OSPF距離是110,而ODR距離是160,因此從同一子網的其他集線器接收資訊時,該資訊會干擾ODR。另一個中心始終優先到達分支目標,這將導致次優路由。要解決此問題,請使用distance命令將ODR距離降低到小於110,以便始終優先使用ODR路由而非OSPF路由。如果ODR路由失敗,則會將OSPF外部路由安裝到資料庫中的路由表中。
N2504(config)# router odr N2504(config-router)# distance 100 N2504(config-router)# end N2504# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default U - per-user static route, o - ODR Gateway of last resort is not set C 1.0.0.0/8 is directly connected, Serial0 C 2.0.0.0/8 is directly connected, Serial1 3.0.0.0/24 is subnetted, 1 subnets C 3.3.4.0 is directly connected, TokenRing0 C 5.0.0.0/8 is directly connected, Loopback0 C 6.0.0.0/8 is directly connected, Loopback1 o 150.0.0.0/16 [100/1] via 3.3.4.1, 00:00:39, TokenRing0 o 200.1.1.0/24 [100/1] via 3.3.4.1, 00:00:39, TokenRing0 o 200.1.2.0/24 [100/1] via 3.3.4.1, 00:00:39, TokenRing0 O 200.1.0.0/16 is a summary, 00:04:38, Null0
N2路由仍在資料庫中,如果指向分支的主中心鏈路斷開,該路由將變為活動狀態。
N2504# show ip ospf database nssa OSPF Router with ID (6.0.0.1) (Process ID 1) Type-7 AS External Link States (Area 1) LS age: 7 Options: (No TOS-capability, Type 7/5 translation, DC) LS Type: AS External Link Link State ID: 150.0.0.0 (External Network Number ) Advertising Router: 6.0.0.1 LS Seq Number: 80000002 Checksum: 0x965E Length: 36 Network Mask: /16 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 20 Forward Address: 1.0.0.2 External Route Tag: 0
對NSSA進行增強後,NSSA資料庫中將包含第7類更具體的LSA。NSSA資料庫的輸出不是總結路由,而是如下所示:
LS age: 868 Options: (No TOS-capability, Type 7/5 translation, DC) LS Type: AS External Link Link State ID: 200.1.1.0 (External Network Number) Advertising Router: 3.3.3.1 LS Seq Number: 80000001 Checksum: 0xDFE0 Length: 36 Network Mask: /24 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 20 Forward Address: 1.0.0.1 External Route Tag: 0 LS age: 9 Options: (No TOS-capability, Type 7/5 translation, DC) LS Type: AS External Link Link State ID: 200.1.2.0 (External Network Number) Advertising Router: 3.3.3.1 LS Seq Number: 80000002 Checksum: 0xFDC3 Length: 36 Network Mask: /24 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 20 Forward Address: 1.0.0.2 External Route Tag: 0
需求電路是Cisco IOS 11.2功能,也可用於集中星型網路。此功能通常在撥號備份場景和X.25或幀中繼交換虛擬電路(SVC)環境中非常有用。以下是需求電路的配置示例:
router ospf 1 network 1.1.1.0 0.0.0.255 area 1 area 1 stub no-summary interface Serial0 /* Link to the hub router */ ip address 1.1.1.1 255.255.255.0 ip ospf demand-circuit clockrate 56000 Spoke#show ip o int s0 Serial0 is up, line protocol is up Internet Address 1.1.1.1/24, Area 1 Process ID 1, Router ID 141.108.4.2, Network Type POINT_TO_POINT, Cost: 64 Configured as demand circuit. Run as demand circuit. DoNotAge LSA not allowed (Number of DCbitless LSA is 1). Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:06 Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 130.2.4.2 Suppress hello for 0 neighbor(s)
如果拓撲有任何變化,在星型網路中使用需求電路功能將啟動電路並形成新的鄰接關係。例如,如果輻條中存在翻動的子網,則需求電路將啟動鄰接並泛洪此資訊。在末節區域環境中,此資訊將泛洪到整個末節區域。ODR通過不將此資訊洩漏給其他輻條解決了此問題。有關詳細資訊,請參閱OSPF需求電路功能。
介面描述符塊(IDB)限制的當前Cisco IOS 12.0狀態如下:
路由器 | 限制 |
---|---|
1000 | 300 |
2600 | 300 |
3600 | 800 |
4x00 | 300 |
5200 | 300 |
5300 | 700 |
5800 | 3000 |
7200 | 3000 |
RSP | 1000 |
在IOS 12.0之前,由於IDB限制,集線器可以支援的最大輻條數為300。如果網路需要超過300個分支,則點對點配置不是很好的選擇。此外,還會為每個鏈路生成單獨的CDP資料包。在點對點鏈路上傳送CDP更新的時間複雜度為n2。上表給出了不同平台的IDB限制。每個平台支援的最大輻條數各不相同,但為每個鏈路建立單獨的CDP資料包的開銷仍然是一個問題。因此,在大型集中星型環境中,配置點對多點介面比配置點對點介面是更好的解決方案。
在集線器支援多個分支的點對多點網路中,有三個主要問題:
集線器可以輕鬆支援300多個輻條。例如,一個10.10.0.0/22網路將能夠支援具有多點介面的1024-2分支。
在多點環境中,將為所有鄰居生成一個CDP資料包,並在第2層進行複製。CDP更新的時間複雜性降低到n。
在點對多點配置中,只能為所有輻條分配一個子網。
一個常見的誤解是,如果使用多個供應商,ODR將無法正常工作。只要網路是真正的中心輻射型網路,ODR即可工作。例如,如果有100個分支,並且其中兩個分支是來自不同供應商的路由器,則可以在連線到不同路由器的那些鏈路上啟用路由協定,並在剩餘的98個思科分支上仍然運行ODR。
圖6:具有多個供應商的ODR
連線到98台思科路由器的中心路由器將通過ODR接收子網更新,並從其餘兩台不同的路由器接收路由協定更新。連線到不同路由器的鏈路必須位於單獨的點對點或點對多點子網上。
如果組織在100個輻條上運行ODR,則他們最終可能希望從星型網路更改其拓撲。例如,他們可能會決定將1分支升級到更大的平台,從而使該分支成為另外20個新分支的中心。
圖7:未來增長
可以在新集線器上運行路由協定,同時仍保持ODR設計。如果新集線器支援20個或更多新分支,ODR可以在新集線器上運行。新中心可以通過ODR瞭解這些新分支子網,並通過其他路由協定將此資訊重新分發到原始中心。
當ODR從兩個集線器開始時,情況類似。無需更改協定。基本上,只要路由器是末節,ODR就可以運行。
運行ODR時,可以調整多種設定以實現更快的收斂和更好的效能。
在大型ODR環境中,調整ODR計時器以實現更快的收斂,並增加CDP更新從集線器到分支的計時器,以最大程度地降低集線器的CPU效能。
CDP更新計時器應預設為60秒,以減少從集線器到分支的流量。保持時間應增加到最大值(255秒)。 由於集線器路由器必須維護過多的CDP鄰接表,並且如果幾個鄰居發生故障,請勿從記憶體中刪除CDP條目255秒(這是允許的最大抑制時間)。 此組態會為集線器路由器提供靈活性,因為如果鄰居在四分鐘內重新啟動,則無需重新建立CDP鄰接關係。可以使用舊錶條目,並且可以更新抑制計時器。
以下是中央路由器的IP配置模板示例:
cdp holdtime 255 router odr timers basic 8 24 0 1 /* odr timer's are update, invalid, hold down, flush router eigrp 1 network 10.0.0.0 redistribute odr default-metric 1 1 1 1 1
每個遠端站點(倉庫、區域和倉庫)有三個永久虛擬電路(PVC)。 其中兩條PVC通往兩台獨立的中央路由器。第三條 PVC通往PayPoint路由器。必須將PVC到PayPoint路由用於發往PayPoint網路的流量。另外兩個PVC為所有其它流量提供主要和備份功能。根據這些要求,請參見下面每個遠端路由器的配置模板。
調整ODR計時器(例如invalid、holddown和flush)對於加快收斂是非常重要的。即使CDP在配置了router odr後不傳送IP字首,但是ODR更新計時器應與鄰居CDP更新計時器匹配,因為只有存在更新計時器時才能設定收斂計時器。此計時器與CDP計時器不同,只能用於更快的收斂。
由於分支在CDP資料包中傳送ODR更新,因此CDP更新的計時器應保持非常小,以便更快收斂。在真實的分支環境中,CDP鄰居沒有限制時間,因為只有少數幾個條目需要在CDP表中儲存。建議使用最長255秒的抑制時間,這樣,如果集線器PVC在四分鐘內關閉並返回,就不需要新的CDP鄰接關係,因為可以使用舊錶條目。
以下是遠端站點的IP配置模板示例:
cdp timer 8 cdp holdtime 255 interface serial 0 encapsulation frame-relay cdp enable interface serial 0.1 point /* Primary PVC */ ip address 10.x.x.x 255.255.255.0 frame-relay interface-dlci XX interface serial 0.2 point /* Secondary PVC */ ip address 10.y.y.y 255.255.255.0 frame-relay interface-dlci XX interface bri 0 interface BRI0 description Backup ISDN for frame-relay ip address 10.c.d.e 255.255.255.0 encapsulation PPP dialer idle-timeout 240 dialer wait-for-carrier-time 60 dialer map IP 10.x.x.x name ROUTER2 broadcast xxxxxxxxx ppp authentication chap dialer-group 1 isdn spid1 xxxxxxx isdn spid2 xxxxxxx access-list 101 permit ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 dialer-list 1 LIST 101 /* following are the static routes that need to be configured on the remote routers ip route 0.0.0.0 0.0.0.0 10.x.x.x ip route 0.0.0.0 0.0.0.0 10.y.y.y ip route 0.0.0.0 0.0.0.0 bri 0 100 ip classless
如果您使用的是IOS 12.0.5T或更高版本,則不需要靜態預設路由,因為中心路由器會自動向所有分支傳送預設路由。
ODR路由可以在洩漏到核心之前被過濾。使用distribute-list in命令。在洩漏到核心時,應該彙總分支的所有連線的子網。如果無法進行總結,則可以在中心路由器上過濾不必要的路由。在多個集線器網路中,分支可以通告連線的介面,該介面是到另一個集線器的鏈路。
在這種情況下,必須應用distribute-list命令,以便集線器不會將這些路由放入路由表。當ODR重新分發到集線器時,該資訊不會洩漏到核心。
調整電信計時器以增加輻條的收斂時間非常重要。如果PVC從集線器端關閉,輻條應該能夠快速檢測到它以切換到第二個集線器。
ODR進程不佔用大量CPU利用率。ODR已經過大約1000個鄰居的測試,CPU使用率為3%到4%。集線器上ODR的激進計時器設定有助於加快收斂速度。如果使用預設設定,則CPU利用率將保持為0到1%。
即使使用主動的ODR和CDP計時器,以下輸出也顯示CPU使用率不高。此測試在Cisco 7206上使用150 MHz處理器執行。
Hub# show proc cpu CPU utilization for five seconds: 4%/0%; one minute: 3%; five minutes: 3% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process . . 18 11588036 15783316 734 0.73% 1.74% 1.95% 0 CDP Protocol . . 48 3864 5736 673 0.00% 0.00% 0.00% 0 ODR Router Hub# show proc cpu CPU utilization for five seconds: 3%/0%; one minute: 3%; five minutes: 3% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process . . 18 11588484 15783850 734 2.21% 1.83% 1.96% 0 CDP Protocol . . 48 3864 5736 673 0.00% 0.00% 0.00% 0 ODR Router Hub# show proc cpu CPU utilization for five seconds: 2%/0%; one minute: 3%; five minutes: 3% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process . . 18 11588676 15784090 734 1.31% 1.79% 1.95% 0 CDP Protocol . . 48 3864 5736 673 0.00% 0.00% 0.00% 0 ODR Router Hub# show proc cpu CPU utilization for five seconds: 1%/0%; one minute: 3%; five minutes: 3% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process . . 18 11588824 15784283 734 0.65% 1.76% 1.94% 0 CDP Protocol . . 48 3864 5737 673 0.00% 0.00% 0.00% 0 ODR Router Hub# show proc cpu CPU utilization for five seconds: 3%/0%; one minute: 3%; five minutes: 3% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process . . 18 11589004 15784473 734 1.96% 1.85% 1.95% 0 CDP Protocol . . 48 3864 5737 673 0.00% 0.00% 0.00% 0 ODR Router Hub# show proc cpu CPU utilization for five seconds: 3%/0%; one minute: 3%; five minutes: 3% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process . . 18 11589188 15784661 734 1.63% 1.83% 1.94% 0 CDP Protocol . . 48 3864 5737 673 0.00% 0.00% 0.00% 0 ODR Router
Cisco IOS 12.0.5T之前的ODR版本有一些限制。以下是Cisco IOS 12.0.5T及更高版本中的增強功能清單:
在CSCdy48736之前,輔助子網在CDP更新中通告為/32。已在12.2.13T及更高版本中修復此問題。
CDP集線器現在將預設路由傳播到分支,因此不需要在分支中新增靜態預設路由。收斂時間明顯增加。當下一跳關閉時,輻條會通過ODR快速檢測到它並收斂。此功能已透過錯誤CSCdk91586新增到12.0.5T中。
如果集線器和分支之間的鏈路為IP未編號,則可能無法在分支中看到集線器傳送的預設路由。此錯誤CSCdx66917已在IOS 12.2.14、12.2.14T及更新版本中修正。
為了增加/減少輻條上的ODR距離,以便它們可以優先使用其中一個集線器,已提出一項建議,正在通過CSCdr35460進行跟蹤。該代碼已經過測試,不久將可供客戶使用。