l 路由重分布是指连接不同路由域(自治系统)的边界路由器,它在路由协议之间交换和通告路由信息
Ø从一种协议(含静态/直连路由)到另一种协议
Ø同一种协议的多个实例
Ø 网络出口位置、安全等级较高的区域常使用静态路由;
Ø 中小型网络常用OSPF协议,一些小型网络或者早期的网络仍在使用RIP协议;
Ø 大型网络常见BGP协议,一些运营商的骨干网络使用IS-IS协议;
l 这样就会导致在一个网络中经常会出现使用不同的路由协议,而彼此之间的路由又不可以共享。
l 我们一般会在以下场景使用路由重分布:
Ø 在动态路由协议中引入静态路由/直连路由;
Ø 运行不同路由协议的组织合并;
Ø 运行中的网络计划更换路由协议时的过渡阶段;
Ø 大型网络的骨干运行BGP协议,边缘组织运行OSPF协议;
l 路由重分布需要配置在边界路由器上(同时运行多种路由),在被引入路由的路由协议中配置关键命令,
不同路由协议的重分布的命令有一定差别:
OSPF协议进程中
- router ospf 1
-
- redistribute [bgp | rip | static | connected | isis] subnets [metric | metric-type | route-map | tag]
RIP协议进程中
- router rip
-
- redistribute [bgp | ospf id | static | connected | isis area-tag] [metric | route-map]
静态/直连/默认路由中(以重分布到OSPF为例)
- router ospf 1
-
- default-information originate
-
- redistribute static subnets //重分布静态路由
-
- redistribute connected subnets //重分布直连路由
l 重分布的注意事项
Ø 重分布是有方向的
Ø 执行重分布的路由器不会修改其路由表
Ø 路由必须存在于路由表中才能被重分布
l 在路由重分布时,可以结合一定路由策略,例如路由的筛选、修改路由的属性
Ø 路由匹配工具:ACL、Prefix-list
Ø 修改路由策略工具:Route-map
l Route-map的应用场景:
Ø 在路由重分布时进行路由过滤或执行策略
Ø PBR(策略路由)
Ø NAT(网络地址转换)
Ø BGP中的策略部署
Ø 其他用途
l 使用route-map配置路由策略的步骤:
① 使用ACL/Prefix-list匹配目标路由;
② 在route-map中引用ACL/Prefix-list,并修改路由属性;
③ 在路由协议中redistribute命令后引用route-map;
l R1将RIP路由重发布进OSPF,缺省情况下所有RIP路由都会被注入到OSPF中,如果我们不希望某条路由
(例如192.168.8.0/24、192.168.9.0/24)被注入到OSPF中,就需要有一个工具把路由“抓取”出来
标准ACL:access-list 1 permit 192.168.1.0(标准ACL只能匹配路由的网络号)
缺陷:每条路由都需要一行标准ACL匹配,无法针对某个范围进行匹配
扩展ACL:access-list 100 permit 192.168.1.0 0.0.0.0 255.255.255.0 0.0.0.0(扩展ACL用“源”匹配路由的网络号,用“目的”匹配路由的掩码长度)
缺陷:一行扩展ACL虽然可以匹配某个连续网络号的路由,但掩码必须相同,如果是不同掩码的,还是需要写多行来匹配
l Prefix-list(前缀列表)可匹配路由条目的网络号及掩码长度,增强了匹配的精确度
l Prefix-list包含一个或多个条目,每个条目按序号进行排列,与ACL非常类似
l 如果路由不与Prefix-list中的任何条目匹配,将不被匹配
ip prefix-list prefix-list-name [ seq seq-number] { deny | permit } ip-prefix [ge minimum-prefix-length][ le maximum-prefix- length]
l 匹配所有的路由
ip prefix-list ABC seq 5 permit 0.0.0.0/0 le 32
l 匹配缺省路由 0.0.0.0 0.0.0.0
ip prefix-list ABC seq 5 permit 0.0.0.0/0
l 匹配所有/32的主机路由
ip prefix-list ABC seq 5 permit 0.0.0.0/0 ge 32
l Route-map的配置逻辑如下:
Ø 多个route-map,按照序号逐条执行;
Ø 多个match条件,横向书写是“or”关系,任意匹配其中1个,该match语句算匹配;
Ø 多个match条件,纵向书写是“and”关系,多个条件同时满足,该match语句算匹配;
Ø 多个set语句,纵向写是“and”关系,会同时执行多个set动作