路由协议的重分布一、定义:重分布是指连接到不同路由选择域的边界路由器在不同自主系统之间交换和通告路由选择信息的能力。
二、重分布原则:路由必须位于路由选择表中才能被重分发show ip route 看到的三、在重分发时设定种子metric协议Seed MetricRIP 必须手工指定EIGRP 必须手工指定OSPF 20 如果重分布进来的是BGP的话,Metric是1,这是个特例IS-IS 0BGP 携带原来的Metric值R1(config-router)#default-metric 1 使用此命令来设定种子metric值四、重分布分两种:1、单向重分布2、双向重分布1)OSPF -> RIP:将其它路由协议重分布进RIP,要注意加metric值R1(config)#router ripR1(config-router)#redistribute ospf 110 metric 1 (优于default-metric命令)也可用以下方法指定Metric值R1(config-router)#default-metric 3(默认Seed Metric=infinity无限大,修改Seed Metric=3)R1(config-router)#redistribute connected(可不加Metric,默认=1)重分布直连R1(config-router)#redistribute static (可不加Metric,默认=1)重分布静态,路由前会打上R2)RIP -> OSPF:将其它路由协议重分布进OSPF,要注意加subnets参数R1(config)#router ospf 110R1(config-router)#redistribute rip subnets(如不加Subnets,默认只有主类地址能被重分布)默认的metric值为20,也可用以下命令指定:R1(config-router)#default-metric 8R1(config-router)#redistribute rip subnets metric 10(默认Seed Cost=20,如果将BGP->OSPF,默认=1)R1(config-router)#redistribute rip subnets metric 10 metric-type 1(加上路径Cost,默认为E2)R1(config-router)#redistribute connected subnetsR1(config-router)#redistribute static subnets 还可在后面加router-map来过滤路由3)ISIS -> EIGRP:将其它路由协议重分布进EIGRP时也要指定Metric值R1(config)#router eigrp 90R1(config-router)#default-metric 1500 100 255 1 1500R1(config-router)#redistribute isis level-1-2 metric 1544 100 255 1 1500默认为level- 2 BW DLY R Lo MTU (不加Metric,默认Seed Metric=infinity)带宽延迟可靠性负载MTUR1(config-router)#redistribute connected (不加Metric也可)(根据直连接口的不同计算Metric)R1(config-router)#redistribute static (不加Metric也可)(根据下一跳接口计算Metric)·注意:当把ISIS重分布进其他路由协议时,运行ISIS的直连接口不能重分布进去,这是ISIS本身的BUG。
只能通过重分布直连解决。
4)EIGRP -> ISIS:R1(config)#router isisR1(config-router)#redistribute eigrp 90 (默认Seed Metric=0 ,默认以L2路由进入ISIS)R1(config-router)#redistribute eigrp 90 metric 8R1(config-router)#redistribute eigrp 90 level-1(以L1的路由进入ISIS,不做修改的话,L1路由器就收不到外部重分布进来的路由,因为默认是L2)R1(config-router)#redistribute ei 90 level-1-2R3#show isis database detail/verbose五、经典的单向重分布试验:试验题:在R1上做三次单向重分布,先将OSPF重分布进EIGRP,然后将EIGRP重分布进RIP,再将RIP重分布进OSPF,完成后,看看能否实现全网互通。
也就是说,3.3.3.3和4.4.4.4,以及2.2.2.2能否互相Ping通。
·重分布-在Router上,将A协议重分布到B协议中:Router上所有运行A协议的接口(除ISIS),以及Router路由表中所有从A协议学到的路由,都会被重分布到B协议中。
六、单点双向重分布时的汇总路由回馈问题实验:1、在R1上将OSPF重分布进EIGRP2、在R1的S1/0接口做EIGRP的手动汇总,汇总出一条172.16.0.0/16路由。
这时R2将只收到一条汇总路由。
3、再在R1上将EIGRP重分布进OSPF这时你会发现,R3上除了正常收到12.1.1.0的路由之外,还多了一条汇总路由,因为在R1上做了汇总之后,生成了一条指向NULL0接口的汇总路由,这样,在把EIGRP重分布进OSPF 时,把这条路由也带进去了。
七、双向双出口重分布R1/R2/R4都运行RIP Version 2 ,并关闭自动汇总(no auto-summary)试验:在R1和R4上先将OSPF重分布进RIP,看看网络会不会出问题,每个路由器的路由表正不正常。
再在R1和R4上将RIP重分布进OSPF,看看有没有问题。
通过试验,我们总结出:·做双点双向重分布时,把AD值低的路由协议重分布进AD值高的路由协议,没问题。
·当把AD高的协议重分布到AD低的协议中时,就有可能出现问题。
r1#show ip route24.0.0.0/24 is subnetted, 1 subnetsO E2 24.1.1.0 [110/20] via 13.1.1.3, 00:00:09, S1/1 这条冲掉了原本从RIP学来的路由r4#show ip routeO E2 12.1.1.0 [110/20] via 34.1.1.3, 00:08:55, F0/0 这条冲掉了原本从RIP学来的路由13.0.0.0/24 is subnetted, 1 subnets解决方法:1、不好的方法--改所有路由的ADR1(config)#router ospf 110R1(config-router)#distance 171 (将此协议的路由的AD改为171,对本协议所有路由都有效,改动范围太大,通常不建议这样做,而且是有问题的。
)2、好的方法--缩小范围R1(config-router)#distance 171 44.44.44.44(在OSPF中,这是RID)0.0.0.0(只将路由器44.44.44.44通告的OSPF路由AD改为171)3、最好的方法--进一步缩小范围R1(config)#access-list 2 permit 2.2.2.0R1(config-router)#distance 171 44.44.44.44 0.0.0.0 2(只针对44.44.44.44通告的2.2.2.0路由将AD改为171,对44.44.44.44通告的其它路由AD不变)R1(config-router)#distance 171 0.0.0.0 255.255.255.255 2上面这条命令针对所有路由器通告的指定路由来改AD,在这一定要注意通告路由器的概念,在OSPF中和EIGRP中通告的路由器的区别,要注意你所要更改的路由是由哪一个路由器通告的。
4、还可以通过为OSPF设置外部路由的管理距离来解决,只要将外部路由的管理距离增大到超过重分布进来的协议的AD就可以了R4(config-router)#distance ospf external 99 inter-area 88 intra-area 77域外域内域间在EIGRP中的修改:R4(config)#router eigrp 90R4(config-router)#distance 109 24.1.1.2 0.0.0.0 (只对D路由有效,对D EX路由无效,因为EX路由是边界路由器通告的)(Next-hop)(Wildcard)R4(config)#access-list 2 permit 1.1.1.0R4(config-router)#distance 109 24.1.1.2 0.0.0.0 2(只针对1.1.1.0路由将AD改为109,只对D路由有效)R4(config-router)#distance eigrp 89 169(internal) (external)八、Distribute-List 用来过滤路由分布列表通过调用ACL来对路由进行过滤,可以在一个单独的路由选择区域内过滤,也可在路由协议之间做重分布的时候进行过滤。
注意:分布列表只能用于距离矢量协议,在链路状态协议中是没有意义的。
例一:R1(config)#access-list 2 permit 2.2.2.0R1(config-router)#distribute-list 2 in serial 0 (只允许2.2.2.0路由从S0进)例二:R1(config)#access-list 2 deny 2.2.2.0R1(config)#access-list 2 permit anyR1(config-router)#distribute-list 2 out serial 1 (不允许2.2.2.0路由从S1接口出去)例三:协议间重分布时过滤R1(config)#access-list 1 permit 2.2.2.0R1(config)#router ospf 110R1(config-router)#distribute-list 1 out eigrp 90注意:当在重分布时进行过滤,仅允许使用关键字out,后面可以跟上协议名,但不能跟接口,因为无意义,详见卷一597页(注意:in后面不能跟协议,只有out后能跟)例四:在OSPF中使用分布列表:(只是用来做验证)试验:1、在R1上写一个访问列表access-list 1 permit 172.16.1.12、在R1的OSPF进程下调用distribute-list 1 in s03、查看R1和R3的路由表,比较有啥不同总结:实际上并不能对LSA进行过滤,只能对自已的路由条目进行过滤。