名词
ASBR Boundary Router边界路由器
重分发是在边界路由器上进行的
单点双向重分发(缺陷:若该点down了,两边路由域就断了)
Seed Metric 种子度量值default-metric
协议 缺省值
RIP infinity(不可达)
EIGRP infinity(0)
OSPF 20(除BGP)
1(BGP)
BGP BGP metric is set to IGP metric value
单点双向重分发
重分发进RIP
将路由协议A重分发至RIP,Seed Metric为0,代表不可达,需要手工修改。
将静态路由重分发进RIP,Seed Metric为1,可达,无需修改,并且0.0.0.0/0缺省路由可以进入RIP进程。
将直连路由重分发进RIP,Seed Metric为1,可达,无需修改。
default-metric命令只会影响协议A或静态路由重分发进RIP的路由,不会影响直连路由重分发进RIP。
自动汇总仍然会重分发
重分发进OSPF
(config-router)#redistribute rip subnets
默认情况下,只会将主网路由重分发进来,subnets命令可以将子网重分发进来。
将路由协议A重分发至OSPF,Seed Metric为20,Metric-Type为O E2,可以使用default-metric命令修改Seed Metric
。
将Static路由重分发至OSPF,Seed Metric为20,Metric-Type为O E2,只有明细和非缺省路由可以重分发。
将直连路由重分发至OSPF,类似重分发Static。
default-metric命令只会影响协议A或静态路由重分发进OSPF的路由,不会影响直连路由重分发进OSPF。
重分发进EIGRP
(config-router)#default-metric BW Delay Reliability loading mtu
(config-router)#default-metric 10000 100 255 1 1500
将路由协议A重分发至EIGRP ,Seed Metric为0,代表不可达,需要手工修改。
将静态路由重分发进EIGRP,Seed Metric不为0,可达,并且0.0.0.0/0缺省路由可以进入EIGRP进程。
default-metric不影响直连路由
路由反馈
在单点双向重分发中,会不会产生路由反馈(路由协议A被重分发进B,再重分发回A)?
路由反馈可能引起路由环路,是非常危险的。
在R1上,将RIP重分发进OSPF,再将OSPF重分发进EIGRP。
实验结果:R1的路由表不会改变,R2只收到了R4的环回口路由和14.1.1.0/24网段路由。
原因:RIP重分发进OSPF的路由,不会再被R1收到并重分发进EIGRP。
小结:在路由器R上,运行路由协议A和B,将A->B。
R会将所有本地宣告进A的接口的直连路由、通过A获悉的加入路由表的打上路由协议A标识的路由引入协议B。
协议A不能是IS-IS以及ODR。
因此,在单点双向重分发中,不会出现路由反馈。
Seed-Metric
由于内部路由一般比外部路由准确,因此建议被重分发的路由的metric比路由域中的所有metric的最大值要大,这是一个路由优化。
distribute-list 分发列表
实现控制层面上的路由条目过滤
调用ACL或者前缀列表使用
在DV协议(RIP和EIGRP)中,使用分发列表可以基于入站和出站两个方向做路由过滤。
在LS协议(OSPF)中,只能做入向,不能做出向。
原因在于LS协议发送的不是路由条目,是LSA,分发列表不能基于ACL或任何其他工具抓取LSA,但是可以在入站方向调用分发列表进行本地抑制,但不能限制LSA的传递,因此只对本地路由器有效。
分发列表在重分发中的应用
R1(config)#router eigrp 90
R1(config-router)#distribute-list 15 out ospf 110
将ospf 110进程中的路由重分发至eigrp中时,调用acl 15匹配,匹配成功的才能加入EIGRP中。
这种方式对于重分发是最佳的。
IPv4 Prefix List 前缀列表
标准ACL只能抓取特定前缀,对于2.2.2.0/24,2.2.2.0/25,2.2.2.0/26来说,只能抓到前缀2.2.2.0,抓不到掩码,因此,要么全部放行,要么全部拒绝。
需要注意的是,反码表示的是多个前缀,而不是掩码。
前缀列表更加精确,可以抓前缀和掩码,例如:
ip prefix-list 10 seq 10 permit 2.2.2.0/25 GE 27 LE 30
该命令匹配的是掩码长度在27和30之间的,前25位是2.2.2.0的条目。
再比如:
抓所有主A类路由
ip prefix-list 20 seq 30 permit 0.0.0.0/1 GE 8 LE 8
access-list 10 permit 0.0.0.0 127.0.0.0
抓所有主B类路由
ip prefix-list 20 seq 40 permit 128.0.0.0/2 GE 16 LE 16
抓所有主B类路由和所有/8超网路由
ip prefix-list 20 seq 50 permit 128.0.0.0/2 GE 8 LE 16
抓所有主C类路由
ip prefix-list 20 seq 40 permit 192.0.0.0/3 GE 24 LE 24
抓主B路由中掩码为24的,且第一段为偶数,第二段为奇数,第三段为偶数
access-list 30 permit 128.1.0.0 62.254.254.0
Route Map
功能:
Redistribution route filtering 与分发列表相同控制层面
Policy-based routing 数据层面
BGP policy implementation 控制层面
每一个route map entry中都有多个match set,相当于if then
若某个entry内的所有match都匹配成功,则意味着该entry匹配成功;(纵向逻辑与)
在同一行match中,若使用多条ACL或者prefix-list,则是或的关系,只要有一条匹配,即该match匹配。(横向逻辑或)
查看策略是permit还是deny:若是deny,直接丢弃;若是permit,则查看并执行set。然后,忽略其他entry,离开该route map。
一个route map永远会拥有一个隐藏的空Entry。没有Match,相当于Match Any;没有Set,相当于Set Nothing。并且,该Entry执行的策略是Deny。
Route Map在重分发中的应用
要求:
拓扑图仍然使用上图。
将RIP重分发进OSPF,在R1上进行路由过滤:
放行1.1.1.0/24,并将Metric-Type设置为O E1;
放行3.3.3.0/24,并将Seed Metric设置为10;
过滤掉13.1.1.0/24
部署过程:
1.设置prefix list
R1(config)#ip prefix-list 20 permit 1.1.1.0/24
R1(config)#ip prefix-list 30 permit 3.3.3.0/24
2.设置route map
R1(config)#route-map R2O permit 10
R1(config-route-map)#match ip address prefix-list 20
R1(config-route-map)#set metric-type type-1
R1(config)#route-map R2O permit 20
R1(config-route-map)#match ip address prefix-list 30
R1(config-route-map)#set metric 10
3.重分发时应用route map
R1(config)#router ospf 110
R1(config-router)#redistribute rip subnets route-map R2O
使用Route Map之前:
使用Route Map之后:
由于隐藏的空Entry,13.1.1.0/24被deny了。
也可以显示地deny13.1.1.0/24:
R1(config)#access-list 100 permit ip 13.1.1.0 0.0.0.0 255.255.255.0 0.0.0.0(Router Map可以调用标准ACL或扩展ACL)
R1(config)#route-map R2O deny 30
R1(config-route-map)#match ip address 100
R1(config)#route-map R2O permit 40
R1(config-route-map)#exit
R1(config)#router ospf 110
R1(config-router)#redistribute rip subnets route-map R2O
双点双向重分发
配置过程遵循顺时针+逆时针的顺序,在每做一次重分发时,要检查对端边界路由器的路由表是否正常。若不正常,需修改管理距离。
在双点双向重分发中,可能造成路由反馈。
如图中,OSPF和RIP做双点双向重分发,由于OSPF的管理距离小于RIP,路由反馈将影响边界路由器上的RIP域内路由,原来打R的路由,现在打上了O。
解决方法是:修改边界路由器R1和R4上的管理距离。
解决了路由反馈之后,还需要进行路由优化,防止不合理的负载均衡。
解决方法是:修改seed-metric(Route Map),或者使用offset。
千万不要用distribute list,原因在于使用分发列表过滤路由之后,就使得双点双向重分发优势不在,像单点一样存在单点故障。
http://blog.csdn.net/bingosummer/article/details/23624501(原地址)