按需路由(ODR)是对思科发现协议(CDP)的增强,该协议用于在广播或非广播介质上发现其他思科设备。在CDP的帮助下,可以找到设备类型、IP地址、在邻居Cisco设备上运行的Cisco IOS®版本、邻居设备的功能等。在Cisco IOS软件版本11.2中,ODR被添加到CDP中,以通过CDP通告末节路由器的已连接IP前缀。此功能每个网络或子网需要额外的5个字节,IP地址需要4个字节,而IP地址需要1个字节来通告子网掩码。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接口。在正常情况下,CDP会发送10字节的数据包(如果分支端有两个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默认路由发送到分支和分支,这两者都会安装到路由表中。未来的增强功能将允许辐射点优先使用一个中心,而不是另一个中心。目前,可以通过在分支路由器上定义的静态默认路由和在静态路由命令中使用admin distance来首选一个中心而非另一个中心。这不会影响负载均衡情况。
图 3:具有多个出口点和多个集线器的辐条
ODR over IP路由的最大优势是中心路由器将学习IP前缀,而不在第3层启用路由协议。ODR更新是第2层CDP的一部分。
在真正的中心辐射型环境中,没有必要将所有路由信息传递给所有辐射型。慢速链路分支会浪费带宽来更新路由并维护邻居关系。通过在辐条上启用增强型内部网关路由协议(EIGRP),路由更新将发送到辐条。在大型网络中,这些更新会变得巨大,浪费CPU带宽,并且可能需要在分支路由器上增加内存。
使用EIGRP的更好方法是在集线器上应用过滤器。控制路由信息,使集线器只向辐条动态发送默认路由。这些过滤器有助于减小分支端的路由表大小,但是,如果集线器丢失了邻居,它会向所有其他邻居发送查询。这些查询是不必要的,因为集线器永远不会收到邻居的回复。
最佳方法是使用ODR消除EIGRP查询和邻居维护的开销。通过调整ODR计时器,可以增加收敛时间。
如今,EIGRP中有一项新功能,可在集中星型环境中更好地扩展EIGRP。有关EIGRP末节功能的详细信息,请参阅增强型IGRP末节路由。
开放最短路径优先(OSPF)为中心辐射型环境提供多个选项,而末节无摘要选项的开销最低。
在大型集中星型网络上运行OSPF时,可能会遇到问题。本节中的示例使用帧中继,因为它是最常见的中心辐射型拓扑。
在本例中,在通过点对点配置连接的100个分支上启用OSPF。首先,即使我们使用/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参数 |
每个邻居路由器ID(RID)4个字节 |
。。。 |
。。。 |
。。。 |
。。。 |
。。。 |
ODR中的开销已解决,因为集线器不会向辐条发送额外信息。分支将每个子网5个字节的IP前缀发送到中心路由器。考虑到hello数据包的大小,在30秒的间隔内,将ODR中的5个字节(一个相连子网的分支发送信息)与OSPF的68个字节(最小的hello数据包大小,包括从分支到中心发送的IP报头)加上68个字节(从中心到分支发送的最小的hello数据包)进行比较。此外,OSPF问询发生在第3层,而ODR更新发生在第2层。使用ODR,发送的信息要少得多,因此链路带宽可用于重要数据。
路由信息协议第2版(RIPv2)也是中心辐射型环境的理想选择。要设计RIPv2,请将默认路由从集线器发送到辐条。然后,辐条通过RIP通告其连接的接口。如果辐条上有需要通告的辅助地址,或者使用了多台供应商路由器,或者情况并非真正的中心辐射型,则可以使用RIPv2。
第2版有一些修改,但并未对协议做出显着更改。本节讨论针对需求电路的RIP的一些增强功能。
当今的网际网络正朝着拨号网络或主站点备份的方向发展,以提供与大量远程站点的连接。此类连接在正常运行期间可能传递的数据流量很少或没有。
RIP的周期性行为会导致这些电路出现问题。RIP存在带宽低、点对点接口的问题。使用高带宽的大型路由表每30秒发送一次更新。在这种情况下,最好使用触发RIP。
触发RIP适用于与邻居交换所有路由信息的路由器。如果路由发生更改,则只有更改会传播到邻居。接收路由器会立即应用更改。
触发的RIP更新仅在以下情况下发送:
接收路由更新请求。
收到新信息。
目的地已从电路向下变为电路向上。
路由器首次打开。
以下是触发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层从辐条发送连接的子网信息比在第3层发送RIPv2的CPU消耗要少得多。
ODR在大型网络中比任何其他路由协议都更有效。ODR的最大优势是无需在连接的串行链路上启用路由协议。目前,没有路由协议能够发送路由信息,而无需在连接的接口上启用它们。
运行EIGRP时,请建立与中心辐射型网络的被动接口连接,这样它就不会在链路上发送不必要的EIGRP问询。如果可能,最好不要为集线器和辐条之间的网络放置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台Cisco路由器的中心路由器将通过ODR接收子网更新,并从其余两台不同路由器接收路由协议更新。连接到不同路由器的链路必须位于单独的点对点或点对多点子网上。
如果组织在100个分支上运行ODR,他们最终可能希望更改其从中心分支网络的拓扑。例如,他们可能决定将一个辐条升级到更大的平台,使其成为另外20个新辐条的中心。
图 7:未来的发展
在新集线器上运行路由协议,并保持ODR设计原样。如果新集线器支持20个或更多新辐条,ODR可在新集线器上运行。新中心可以通过ODR了解这些新的分支子网,并通过其他路由协议将此信息重新分发到原始中心。
当ODR以两个集线器开头时,情况类似。更改协议不会产生任何开销。基本上,ODR只要路由器是末节即可运行。
运行ODR时,可以调整多种设置,以加快收敛并提高性能。
在大型ODR环境中,调整ODR计时器以加快收敛,并增加从集线器到辐条的CDP更新计时器,以最大限度地降低集线器的CPU性能。
CDP更新计时器应默认为60秒,以减少从集线器到辐条的流量。保持时间应增加到最大值(255秒)。 由于中心路由器必须维护太多的CDP邻接表,并且在几个邻居发生故障时,请在255秒内不要从内存中删除CDP条目(允许的最大抑制时间)。 此配置将为中心路由器提供灵活性,因为如果邻居在四分钟内恢复,则无需重新创建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网络的流量。另外两条PVC为所有其他流量提供主要和备份功能。根据这些要求,请参阅下面每个远程路由器的配置模板。
调整ODR计时器(如无效、抑制和刷新)以加快收敛,这一点非常重要。即使CDP在配置路由器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重分发到集线器时,该信息不会泄露到核心。
调整Telco计时器以增加辐条的收敛时间非常重要。如果集线器端的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快速检测并收敛。此功能通过Bug CSCdk91586在12.0.5T中添加。
如果中心与辐条之间的链路是IP未编号的,则中心发送的默认路由可能在辐条处看不到。此Bug(CSCdx66917)在IOS 12.2.14、12.2.14T及更高版本中已修复。
为了增加/减少辐条上的ODR距离,使它们能更喜欢一个集线器而不是另一个集线器,建议通过CSCdr35460跟踪。代码已经过测试,很快将可供客户使用。