CCNP6:重发布技术+路由策略(Route-map)2019.6.18修改

CCNP6:重发布技术+路由策略(Route-map)

说明:本次讲解的环境为VMwarePro14.0上运行的webiou,使用CRT作为远程登陆工具。

一、认识重发布:

1、什么是重发布?

重发布(redistribute别名:重发布、重分发、重新分配):
一台设备同时运行于两个协议或者两个进程,默认从两端学习到的路由条目不共享。重发布技术是 人为 进行的共享,通过这种技术可以实现不同协议(或同一协议不同进程,例如OSPF)之间的路由条目共享。

2、使用重发布技术时的注意事项:

(1)必须存在 ASBR——自治系统边界路由器(协议边界路由器)
(2)必须考虑 种子度量
协议间共享路由时,度量是不携带到新的路由协议中的,因此需要在ASBR中导入路由时需要添加起始度量(种子度量)

3、重发布使用规则:

(1)将A协议发布到B协议时,在 ASBR上的B协议中配置。
(2)将A协议发布到B协议时,将 ASBR上所有通过A协议学习,及ASBR直连到A协议中的所有路由全部共享到B协议中。

名词注释
单点单向重发布一台ASBR运行A、B两种协议, A协议发给B协议,B协议不发往A协议
单点双向重发布一台ASBR运行A、B两种协议, A协议发给B协议、B协议也发给A协议
多点单向重发布一台ASBR运行多种协议,协议之间发送是单向的
多点双向重发布一台ASBR运行多种协议,多个协议两两之间共享路由条目

4、重发布的几种发布方式:

方式注解
A→B将一种动态路由协议发布到另一种动态路由协议中。
静态→B将ASBR上的 静态路由 发布到动态路由协议中。
直连→B将ASBR上非B协议内工作的 直连路由 发布到B(动态路由协议)中

接下来我就以下图为例,将几种协议的重发布进行讲解。
在这里插入图片描述

二、配置重发布

1、搭建实验环境:

底层如上图搭建,我们以R2为中心,让几个路由器之间互相重发布,选取RIP、OSPF、EIGRP来作为讲解本实验的主要协议。
(1)R1与R2之间直连网段为12.1.1.0网段,R2与R3之间直连网段为23.1.1.0网段,R2与R4之间直连网段为24.1.1.0网段。
(2)R1、R2、R3、R4的环回分别是1.1.1.1/24、2.2.2.2/24、3.3.3.3/24、4.4.4.4/24
(3)R1运行的是RIPv2协议、R3运行OSPF协议、R4运行EIGRP协议。R2每种协议都运行,并分别将s0/0、s0/1、s0/2宣告到RIP、OSPF、EIGRP中,R2的环回不宣告。
①在R1上运行RIP协议:

R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 12.0.0.0
R1(config-router)#network 1.0.0.0

②在R2上配置rip、ospf、eigrp协议

R2(config)#router rip 
R2(config-router)#version 2
R2(config-router)#no auto-summary 
R2(config-router)#network 12.0.0.0 

R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 23.1.1.2 0.0.0.0 a 0

R2(config)#router eigrp 90
R2(config-router)#no auto-summary 
R2(config-router)#network 24.0.0.0

③在R3上配置ospf协议

R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 23.1.1.1 0.0.0.0 a 0
R3(config-router)#network 3.3.3.3 0.0.0.0 a 0

④在R4上配置eigrp协议

R4(config)#router eigrp 90
R4(config-router)#no auto-summary 
R4(config-router)#network 24.0.0.0
R4(config-router)#network 4.0.0.0

2、RIP的重发布:

注意:导入动态路由协议时,如果没有加种子度量,默认为无穷大。因此在没有加种子度量的时候,就无法收到其他路由器的路由表。

(1)A→B:
①将OSPF导入RIP:

在R2中的rip协议中配置:

R2(config)#router rip
R2(config-router)#redistribute ospf 1 metric 2

在R1上查看路由表发现R3的路由表已经进入R1注意度量值跳数为2
在这里插入图片描述

②将EIGRP导入RIP:

在R2中的协议中配置:

R2(config)#router rip
R2(config-router)#redistribute eigrp 90 metric 2
(2)将静态(缺省)→B

我们先给R2上随便添一条缺省,这样R2的路由表中就有一条静态的缺省路由。然后进RIP,将静态重发布到RIP中。

R2(config)#ip route 0.0.0.0 0.0.0.0 loopback 0
R2(config)#router rip
R2(config-router)#redistribute static

在R1上查看路由表:
在这里插入图片描述
由此我们发现在重发布静态路由时:即使我们没有添加种子度量,R1也可以学习到R2上静态的路由。是因为静态的默认种子度量为1,但是我们也可以加种子度量。

(3)直连→B

对于重发布R2上的直连网段( R2环回、23.1.1.0、24.1.1.0 网段),其默认的种子度量也为1。配置如下:

R2(config)#router rip
R2(config-router)#redistribute connected 

此时我们再查看R1的路由表
图5-9
注意 : 运行 OSPF 协议的R3有23.1.1.0网段的直连,在我们第一次把 OSPF 倒入到 RIP 中的时候(第(1)中的第①步),我们可以看到它的度量值为2,但是当我们将直连重发布到rip中的时候,我们通过上图发现原本的度量由2跳转变为了1跳。为什么会转变呢?这是因为 R1对两次重发布进来的同一网段的度量进行了对比,选取其中度量小的路由并加载到路由表中

3、OSPF的重发布

(1)A→B

RIP、EIGRP 导入 OSPF

R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets(子网)
R2(config-router)#redistribute eigrp 90 subnets

注意事项:
①:subnets在导入无类别路由(携带掩码)时必须携带,否则无法导入无类别路由。 如果不携带就会出现这样的提示:
% Only classful networks will be redistributed
②:默认导入的RIP路由为类型2
  类型O*E2:种子度量为20,在内部传递时,不叠加内部的度量值。
  在这里插入图片描述
③:如果存在多台ASBR设备,但需要导入相同的路由时,可以将 修改类型 为1;
  类型O*E1:种子度量为20,在内部传递时叠加内部的度量值。
  指令如下:

修改种子度量:R2(config-router)#redistribute rip(eigrp) subnets metric ?
修改种子类型:R2(config-router)#redistribute rip(eigrp) subnets metric-type 1

在这里插入图片描述

(2)静态→B

我们再给R2随便写一条普通的静态路由,在将静态路由导入到OSPF中。
注意:OSPF的缺省路由比较特殊,只能通过专用的命令导入缺省路由 。配置如下

R2(config)#ip route 99.1.1.0 255.255.255.0 loopback 0

R2(config)#router ospf 1
R2(config-router)#redistribute static subnets     重发布普通静态路由
R2(config-router)#default-information originate 	 重发布缺省静态路由

普通静态:默认进入路由类型为2、种子度量为20
缺省路由:默认进入路由为类型2,种子度量为1
如果需要修改种子度量或类型的配置如下

R2(config-router)#default-information originate  metric ?
R2(config-router)#default-information originate  metric-type ?

在这里插入图片描述

(3)直连→B
R2(config)#router ospf 1
R2(config-router)#redistribute connected subnets 

在这里插入图片描述
注:默认进入路由为 类型2种子度量为20

4、EIGRP的重发布

(1)A→B

配置如下:

R2(config)#router eigrp 90
R2(config-router)#redistribute rip metric 1544 100 255 1 1500
R2(config-router)#redistribute ospf 1 metric 1544 100 255 1 1500

注意:必须添加种子度量,默认为无穷大
1544 100 255 1 1500 分别代表带宽、延时、可靠性、负载、MTU
其中带宽建议根据网络的实际带宽来修改,其他参数已经为最优参数。
倒入后,我们查看R4的路由表:

在这里插入图片描述
注意:重发布到EIGRP的路由,使用字母 D EX 标记,且管理距离变为170,而OSPF110、RIP120都不会发生改变。

(2)静态→B

配置如下:

R2(config)#router eigrp 90
R2(config-router)#redistribute static 

默认为主机最佳度量

(3)直连→B

配置如下:

R2(config)#router eigrp 90
R2(config-router)#redistribute connected

默认为主机最佳度量

5、总结

在一台运行多种协议的ASBR上要做到全网可达,就需要将该ASBR上运行的协议两两之间进行重发布,如下图示意:
在这里插入图片描述
配置命令总结如下:

协议RIPOSPFEIGRP
重发布
RIP
redistribute rip subnets(metric、metric-type)redistribute rip metric 1544(可改) 100 255 1 1500
重发布
OSPF
redistribute ospf 1 metric 2redistribute ospf 1 metric 1544 100 255 1 1500
重发布
EIGRP
redistribute eigrp 90 metric 2redistribute eigrp 90 subnets(metric、metric-type)
重发布
静态
redistribute static(metric)静态:redistribute static subnets(metric、metric-type)
缺省:default-information originate(metric、metric-type)
redistribute static(metric)
重发布
直连
redistribute connected(metric)redistribute connected subnets(metric、metric-type)redistribute connected(metric)

三、单点双向重发布

在这里插入图片描述
由于篇幅有限,单点双向重发布与第二节配置一样,只是图略微有所变化,这里不在演示。只是需要注意的是,R2、R4双向重发布后,R1是可以学到OSPF的路由的,R5也可以学到RIP的路由。特别地,如果在OSPF中加入一条缺省,R1是可以学到的。但如果给RIP中加入一条缺省,OSPF是学不到的,需要敲专用的指令。
注意事项:
DV协议默认接收所有重发布进入的路由,包括缺省条目,

LS协议(例如OSPF)在正常重发布时不接收缺省路由,需要专用指令。

四、多点双向重发布

说明:为了更深入的理解多点双向重发布,我会以该图作为讲解双向重发布的示例:

在这里插入图片描述
多点双向重发布:原本一台ASBR设备运行着多种协议,现在使用两台甚至多台ASBR来顶替原本只有一台的ASBR设备。这样做的目的是为了更稳定,可以做备份。但是必然也会带来很多的问题:选路不佳、路由回馈。

1、搭建实验环境:

配置底层、宣告路由网段即可,R1的环回是1.1.1.1/24,其余的以此类推。由于之前已经演示,这里不在做演示。

2、在R2、R4上进行双向重发布

R2配置如下:R4配置如下
R2(config)#router rip
R2(config-router)#redistribute ospf 1 metric 1
R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets
R4(config)#router ospf 1
R4(config-router)#redistribute rip subnets
R4(config)#router rip
R4(config-router)#redistribute ospf 1 metric 1

3、多点双向重发布所带来的问题:

(1)选路不佳:
①R1的路由表:

此时进行这样配置由于种子度量都是1,理论上来说R1到OSPF域内应该有4个等开销负载均衡。但是出现了5个,我们会发现原本在RIP中的R4的环回也出现了负载均衡,这是不应该的,原因是因为出现了路由回馈。
在这里插入图片描述
在这里插入图片描述
出此之外我们可以看到去往R2的环回的两条路由,一个掩码是24位,一个掩码是32位,这是因为R2上显示直连环回的网段为掩码为24位,而32位掩码的路由是R4通过把OSPF精确学习到的路由重发布到RIP中去的。为了防止它影响我们的观察,我们可以把OSPF中的R2和R3环回的工作类型方式改了,改成点到点模式。这样我们看到的就都是24位了,配置和结果如下:

R2(config)#int lo0
R2(config-if)#ip ospf network point-to-point 
R3(config)#int lo0
R3(config-if)#ip ospf network point-to-point 

在这里插入图片描述

②R3路由表:

我们在查看R3的路由表,理论上来说R3到RIP域中应该都等开销负载均衡。但是却一条等开销都没有。
在这里插入图片描述

③R2的路由表:

我们可以看到R2的路由表除了去往R1、R3环回的路由和34.1.1.0网段的路由是正确学习到的方式,其他的都有问题。
在这里插入图片描述

④R4的路由表:

我们可以看到R4中一条RIP的路由都没有学到,问题也很大。
在这里插入图片描述
总结:出现了等开销负载均衡,必然会出现选路不佳,这是由于导入的路由原有度量值被去掉,故只要进行多点双向重发布,必然选路不佳。 比如说R1去往R2的环回,按理所有流量下一跳是12.1.1.2最好,但是一部分流量的下一跳为14.1.1.2,绕了一大圈。

(2)路由回馈:

当RIP和OSPF(ISIS)之间进行多点双向重发布时, 由于RIP(120)的管理距离大于OSPF(110) ,导致ASBR优选OSPF路径,最终将RIP的路由重新发回RIP。因此当RIP和EIGRP进行多点双向重发布的时候,由于EIGRP的外部重发布距离是170大于RIP(120)正常是不会出现路由回馈的。但是依然会选路不佳。
在这里插入图片描述

4、部分解决路由回馈:

(1)实现等开销负载均衡:

那么我们第一步就是修改管理距离:

因此要想解决以上问题:我们需要把图掰正,让R1到OSPF域内等开销负载均衡, R4到RIP域内等开销负载均衡,解决路由回馈。

我们之前说到在R1上多了一条去往R4环回的等开销负载均衡,是因为OSPF的管理距离小于RIP导致R4的环回发生了路由回馈,因此我们可以把去往R4的管理距离加大。

R2(config)#router ospf 1
//从该RID学习到的所有路由条目管理距离修改为121
R2(config-router)#distance 121 4.4.4.4 0.0.0.0
(数值分别代表:管理距离、另一台ASBR的RID、反掩码)

同理我们也需要在R4上修改去往R2的管理距离。

R4(config)#router ospf 1
R4(config-router)#distance 121 2.2.2.2 0.0.0.0

关于这个命令补充一下:它还可以基于ACL来仅针对部分路由,进行管理距离的修改,在命令结尾可以加 ACL编号。

(2)检查路由表:
①R2路由表:

我们发现大部分R2的路由都已经恢复正常,但是还有一条去往R4环回的路由有问题。R2在去往R4的环回时,竟然优选管理距离大的OSPF。这是为什么呢?
原因:
在这里插入图片描述
OSPF收敛速度比RIP快,R2优先学习到R4的环回,标记为OE2。紧接着将这条路由重发布到了RIP中,度量为1跳,由于R1到R4的度量也为1跳,且R1收到的都是去往R4环回的路由,那么此时R1就会负载均衡。

因此,根据水平分割原理,R1是不会把R4给R1管理距离为120的度量给R2。最后导致R2只有OSPF域内学习到的管理距离为121的去往R4环回的路由。

解决方法:
不让R2将该路由给R1,或者加大R1到R2之间的度量比R1到R4的度量大。当不存在等开销负载均衡后,R1就会把管理距离小的路由给R2,R2比对之后机会选择正确的路由了。
在这里插入图片描述
在这里插入图片描述

②R4路由表:

我们发现R4的路由表已经恢复正常,一切路由均正确。
在这里插入图片描述
总结:即便通过修改管理距离,解决路由回馈之后,也可能因为协议收敛速度的稳定,导致部分路由依然回馈中,无法完美解决,因此我们还需要使用路由策略进行解决。

5、路由策略解决路由回馈:

(1)使用前缀列表:

首先制作前缀列表让R2拒绝将去往R4环回的路由从s0/0口发出去,然后在RIP协议中调用。

R2(config)#ip prefix-list xxx deny 4.4.4.0/24
R2(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32
R2(config)#router rip
R2(config-router)#distribute-list prefix xxx out s0/0

我们查看R1、R2的路由表
在这里插入图片描述
在这里插入图片描述
到这里R2、R4的路由表已经恢复正常。
我们再查看R3的路由表:
在这里插入图片描述
由于前缀列表可准确的抓取网络网段,但是由于拒绝某个网段在实际工程中很不好,一个网段断开就会导致相应的路由失去,因此还是建议用偏移列表调整路由的度量值,实现路径备份。这两种选一种即可。

(2)使用偏移列表:
R2(config)#access-list 1 permit 4.4.4.0
R2(config)#router rip
R2(config-router)#offset-list 1 out 1 s0/0

在这里插入图片描述
在这里插入图片描述
我们发现这两种方式都可以实现等开销负载均衡,此时这张图的路由回馈已经全部解决。实现了R1到OSPF域等开销,R3到RIP域等开销。R2和R4路由表全齐,接下来我们还需要解决选路不佳的问题,让R1到R2环回和23.1.1.0网段的下一跳12.1.1.2,去往34.1.1.0网段的下一跳为14.1.1.2;同理R3也一样。

6、路由策略解决选路不佳:

R2策略、配置R4策略、配置
R2使用偏移列表,增大一条路径,是指走另一条路R4使用Route-map减小路径的度量值
R2(config)#access-list 2 permit 34.1.1.0
R2(config)#router rip
R2(config-router)#offset-list 2 out 1 s0/0

R2(config)#ip prefix-list q permit 12.1.1.0/24
R2(config)#route-map q permit 10
R2(config-route-map)#match ip address prefix-list q
R2(config-route-map)#set metric 10

R2(config)#route-map q permit 20
R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets route-map q
R4(config)#ip prefix-list q permit 14.1.1.0/24
R4(config)#ip prefix-list q permit 4.4.4.0/24

R4(config)#route-map q permit 10
R4(config-route-map)#match ip address prefix-list q
R4(config-route-map)#set metric 10

R4(config)#route-map q permit 20
R4(config)#router ospf 1
R4(config-router)#redistribute rip subnets route-map q

在这里插入图片描述

在这里插入图片描述
到这里该图的选路不佳已经全部解决,我们可以从路由表中看到它们的下一跳均为正确的选路方式。
最终总结:要想要解决多点双向重发布的选路不佳的问题,第一要解决的路由回馈,使一个域到另一个域实现等开销负载均衡;第二解决的是选路不佳,使用路由策略让它们进行正确的选路。

而解决路由回馈,需要先将管理距离掰正,然后修改度量解决路由回馈。

五、路由策略

路由策略:在控制层面抓取流量后,对流量进行修改,之后影响路由器路由表的生成,最终达到干涉选路的目的。

1、抓取控制层面流量:

(1)ACL:

访问控制列表,设计用于干涉数据层面流量,也可以用来抓取控制层面流量(不能精确匹配) 可以为 所有 的路由策略服务。

(2)前缀列表:

专用于抓取控制层面的网络号,为 分发列 表和 Route-map 服务。

配置注解
r2(config)#ip prefix-list xxx permit 2.2.2.0/25掩码为25
r2(config)#ip prefix-list xxx permit 3.3.3.0/24 le 30掩码范围24-30
r2(config)#ip prefix-list xxx permit 4.4.4.0/24 ge 30掩码范围30-32
r2(config)#ip prefix-list xxx permit 5.5.5.0/24 ge 25 le 30掩码范围25-30
r2(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32允许所有
r2(config)#ip prefix-list xxx permit 0.0.0.0/0匹配缺省
r2(config)#ip prefix-list xxx seq 11 deny 1.1.1.0/24插入序列号为11,默认序列号+5递增

le、ge使用规则:len < ge-value <= le-value
匹配规则:至上而下逐一匹配,上条匹配按上条执行,不再查看下条,末尾隐含拒绝所有。

2、策略:

(1)偏移列表:

仅适用于DV(RIP/EIGRP)协议,在控制层面流量的入或出口上抓取路由条目,增大度量值,可以叠加。只能使用ACL为其服务。

(2)分发列表:

在控制层面流量的入口或出口上,限制路由条目的传递

①抓流量:

使用ACL或者前缀列表均可

R2(config)#ip prefix-list xxx deny 4.4.4.0/24
R2(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32
②定制策略
R2(config)#router rip
R2(config-router)#distribute-list prefix xxx out s0/0    再R2的出接口s0/0上调用名为xxx的偏移列表

注意:若在OSPF协议中使用分发列表,只能入向调用,不能出向调用。因为OSPF要保证整个拓扑要完整,接收方收到拓扑后,可以不把拓扑的结果放到路由表里。但是一定要发送放进行发送。
还可以在重发布进行时,直接限制条目的发布规则。不在接口上操作,而是在流量从A协议缓存区进入B协议缓存区时就限制。有助于节约设备性能。

r3(config)#router rip 
r3(config-router)#distribute-list prefix qq out ospf 1

将OSPF发布到RIP时生效。
由于偏移列表只可以增加度量值,如果是RIP一旦度量值加大,必然会导致工作范围的减小。分发列表只能限制路由可不可以传递,功能性也很弱。因此最常用的路由策略Route-map就出来了。

(3)Route-map:

可以对控制层免流量进行大量的行为,在重发布、BGP选路、ziPBR(策略路由)三方面可以大量应用。
搭建实验环境:
在这里插入图片描述
该实验是说将R7上的4个环回通过重发布让R9学到以后,1.0为正常通过,2.0拒绝通过,3.0种子度量类型改为E1,4.0保持原有E2类型将度量值降低至10,12.1.1.0网段种子度量类型改为E1并将度量值加到50

R8(config)#router ospf 1
R8(config-router)#redistribute rip subnets

我们查看R9的路由表:在这里插入图片描述

①抓流量:使用ACL或访问控制列表
ACL控制列表
R8(config)#access-list 1 permit 1.1.2.0R8(config)#ip prefix-list a permit 1.1.4.0/24
R8(config)#access-list 2 permit 1.1.3.0R8(config)#ip prefix-list b permit 12.1.1.0/24
②定制Route-map:
定制Route-map注释
R8(config)#route-map x deny 10
R8(config-route-map)#match ip address 1
创建x列表,大动作拒绝,序号10
匹配ACL列表1
R8(config)#route-map x permit 20
R8(config-route-map)#match ip address 2
R8(config-route-map)#set metric-type type-1
WW列表的序号20,大动作允许
匹配ACL列表2
小动作为类型修改为1
R8(config)#route-map x permit 30
R8(config-route-map)#match ip address prefix-list a
R8(config-route-map)#set metric 10

匹配前缀列表a
修改种子度量值为10
R8(config)#route-map x permit 40
R8(config-route-map)#match ip address prefix-list b
R8(config-route-map)#set metric-type type-1
R8(config-route-map)#set metric 50
R8(config)#route-map x 50空列表允许所有

策略写好后,还需要在重发布时调用:

R8(config)#router ospf 1
R8(config-router)#redistribute rip subnets route-map x

在这里插入图片描述
我们发现一切都跟我们计划的一样。这里要说明的是由于12.1.1.0网段的度量类型为E2,因此在计算度量时还需要进行叠加内部度量,出现了114,如果时E2那么50就是50。

Rout-map配置规则
1、在创建route-map时,若不配置大动作,动作为允许;不配置序号,那么序号永远为10,故从第二条开始必须配置序号
r2(config)#route-map x
r2(config-route-map)#
2、在抓取流量时,使用允许,在route-map中来拒绝流量
3、匹配规则—从上往下逐一匹配,上条匹配按上条执行,不再查看下条,末尾隐含拒绝所有
4、不匹配及匹配所有,不执行及不做任何小动作,仅按大动作执行。故大动作为允许的空表,标示允许所有
5、存在或or与and 关系:可以用或关系同时匹配3条流量,对它们做同一种策略。
route-map ccsp permit 10
match ip address 1 2 3 或关系
set metric 10
set metric-type type-1 与关系
set origin egp 2
6、在一个序号中,匹配流量只能匹配一种抓取流量的协议,ACL或者前缀列表。
  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值