重发布
在同一个网络拓扑结构中,如果存在多种不同的路由协议,由于不同路由协议的机理各有不同,对路由的处理也不相同,这就在网络中造成了路由信息的隔离,在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入(Route lmportation)或者路由重分发(Route Redistribution)。---这个技术的叫法比较多,也就是我们说的重发布。
作用
在一个网络中,若运行多种路由协议或相同路由协议的不同进程;协议之间不能直接沟通计算,进程之间也是独立转发和运算的,所以,需要使用重发布来实现路由的共享。
条件
- 必须存在ASBR设备---同时连接两种协议或两个进程,同时学到两边的路由,之后进行路由共享。
重发布的操作就是在ASBR设备上,说明,重发布这个技术主要就应用在两个协议或者两个进程之间。都是两两之间完成的。
- 必须关注种子度量值---起始度量值,A协议和B协议的开销计算逻辑是不一样,无法直接使用。故将A协议发布到B协议是,ASBR将不携带A协议的度量值,而是共享到B协议后,由ASBR设备在路由中添加一个起始度量值
不同动态路由协议设置的默认种子度量值不同,这点需要重点关注。
规则
-
将A协议发布到B协议中,则需要进入到设备的B协议进程中进行配置。
-
将A协议发布到B协议中,ASBR将会把所有通过A协议学习到的路由以及ASBR上宣告在A协议中的所有直连路由,全部共享到B协议中。
名词解释点
点
·单点---两个协议或两个进程之间存在一个ASBR·双点---两个协议或两个进程之间存在两个ASBR
·多点---两个协议或两个进程之间存在多个ASBR
向
·单向---仅将A协议路由共享到B协议中·双向---A/B协议的路由均共享
(因为重发布都是发生在两两之间的,所以,不存在多向)
单点重发布
将A协议--->B协议
[r2-rip-1]import-route ospf 1
将静态---->B协议
[r2-rip-1]import-route static
将直连---->B协议
[r2-rip-1]import-route direct
注: rip协议的种子度量值为0,OSPF种子度量值为1
修改RIP的种子度量值方法
1、全局修改
[r2-rip-1]default-cost 2
2、对重发布进行修改
[r2-rip-1]import-route ospf 1 cost 5
注意:当以上两条命令同时执行时,将按照第2条,匹配更精确的命令来执行。
结论
- 导入静态RIP赋予的种子度量值也是0
- 在引入路由信息时,不会导入缺省路由信息
- 通过直连引入路由时,已经宣告在动态路由协议中的某直连路由不会再一次被发布到该网络当中。
- 将某条路由信息以多种方式引入时,以直连引入为基准。
双点重发布
问题:如果我们再R2和RA上同时做双向的重发布,会遇到哪些问题呢?
- 假设,R2上有一个环回2.0网段,在RIP进程中进行了宣告。因为R4也运行了RIP进程,所以,通过RIP进程R4将学习到2.0网段的路由信息。
- 之后,R2上进行重发布,将R2的RIP的路由重发布到OSPF中,则2.0网段的路由信息也将发布过来。(这个属于宣告在A协议的接口对应的直连网段),因为R4也运行了OSPF,所以,R4将通过QSPE学习到2.0网段的路由信息。
- R4通过两种协议学习到2.0网段的路由信息,按照优先级,则将学习OSPF的(事实并不会是如此,因为重发布的路由在OSPF中是以5类LSA通告的,其生成的路由默认优先级被定义为150,大于RIP的默认值100)。
- 一旦学习了,R4的路由表将发生变化,之后将通过R3访问R2的环回。之后,如果R4也进行了重发布,则R4也会将2.0网段的路由信息重发布到RIP之中。(这属于通过A协议学习到的路由信息)。
- 因为重发布过来会清除原先的度量值,所以在R1上到达2.0网段将形成一个负载均衡,同时走R2和R4,这很明显出现了选路不佳。这种现象就是所谓的路由回馈现象。严重的也会引起路由环路的产生。
路由回馈:指的是从某协议传出的路由信息又被传回该协议中。可以引起选路不佳,严重会引发环路问题。
默认RIP和OSPF协议若进行双点重发布,由于两者的优先级不同,故第一台ASBR设备重发布动作结束后,将会影响到其他ASBR设备的路由表。使得路由可能会被回传至源协议当中,发生路由回馈。
华为为了解决路由回馈问题:将OSPF的域外路由的优先级定义为150(150高于华为体系下所有IGP协议的优先级),从而解决路由回馈问题。
当然,就算解决了路由回馈问题,多点的重发布还是存在其必然产生的问题---选路不佳。主要还是因为他清楚了原先的开销值导致的。------而这个问题,想要解决,是无法仅通过重发布技术来解决,而需要使用到路由策略了
路由策略
-
控制层流量 --- 路由协议传递路由信息时产生的流量
-
数据层流量 --- 设备访问目标地址时产生的流量
所谓的路由策略---- 在控制层面转发流量的过程中,截取流量,之后修改流量再转发或不转发的技术,最终达到影响路由器路由表的生成,干涉选路的效果。
(这个概念就和我们之前讲的ACL列表有点像,只不过ACL是针对数据层流量进行访问控制,路由策略主要针对的是控制层流量。)
路由策略的整体动作分为两部分
-
截取流量
-
针对截取的流量进行修改
抓流量
我们这里介绍抓取流量的方法主要有两种,一种是通过ACL列表来抓取流量;另一种是通过前缀列表(ip-prefix)来抓取流量。
ACL列表--->本身设计是为了抓取数据层流量,因为通配符的存在可以灵活的匹配IP地址的数字特征信息,但是通配符并没有办法匹配上路由信息中的掩码数字特征。所以ACL列表并不擅长于抓取控制层流量信息。
例如,抓取一条携带192.168.1.0/24路由信息的数据包:
[r1]acl 2000
[r1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0
前缀列表---IP-prefix
一个路由条目由目的网络地址及掩码长度共同组成,一般我们将目的网络地址看做为IP前缀信息。但是实际上IP前缀信息指的是IP地址的网络位。
IP前缀列表可以包含一条或多条语句,每条语句都使用一个十进制的序号进行标识。步长为10。
前缀列表的匹配规则:从上而下,逐一匹配,一旦匹配上则将按照规则执行,不再向下匹配。末尾隐含拒绝所有的规则。
IP前缀列表是一个重要的路由策略工具,能够作为路由过滤器被应用于各种场景,例如可以被Route-Policy调用,或者Filter-Policy调用等等,另外,也在BGP路由协议中被直接用于路由过滤
命令演示:
假设:存在172.16.0.0/16、172.16.0.0/24、172.16.0.0/30、172.16.1.1/32四条路由信息。[r3]ip ip-prefix aa index 10 permit 172.16.0.0 24
- 抓取前缀为172.16.0.0,掩码为24的路由信息
[r3]ip ip-prefix bb index 10 permit 172.16.0.0 16 less-equal 24
- 匹配的目的网段的前16bit与172.16.0.0的前16bit相同,掩码长度大于等于16,小于等于24
[r3]ip ip-prefix cc index 10 permit 172.16.0.0 16 greater-equal 24
- 匹配的目的网段的前16bit与172.16.0.0的前16bit相同,掩码长度大于等于24
[r3]ip ip-prefix dd index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 30
[r3]ip ip-prefix gg index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 24
- 抓取前缀为172.16,掩码为24的所有路由信息
[r3]ip ip-prefix ee index 10 deny 172.16.0.0 30
[r3]ip ip-prefix ee index 10 permit 172.16.0.0 16 less-equal 32[r3]ip ip-prefix ff index 10 permit 0.0.0.0 0 less-equal 32 ----匹配所有路由信息
[r3]ip ip-prefix qq index 10 permit 0.0.0.0 0 ----匹配缺省路由
[r3]display ip ip-prefix ----查看前缀列表统计信息
前缀列表读取规则:
-
先看前缀长度,从而定下目的前缀
-
根据掩码大小进行数据匹配
[r3]ip ip-prefix ww permit 172.16.4.0 22 greater-equal 24 less-equal 24
做策略
做策略时,会分有出方向与入方向两种方向,该方向指的是控制层流量传输的方向,不管哪一种均会影响到后续设备对该路由信息的认知,而对本地认知的修改只有入方向可以作为,出方向并不会影响到本地的认知。
偏移列表---cisco
偏移列表方法只能修改开销值,所以华为将其归属到距离矢量型协议专用的修改方式
在上图中,当R2和R4执行了双向重发布后,R1去往23.0.0.0/24会有两条路径可选,但是根据实际情况看,R1去往23.0.0.0/24的下一跳为R2最佳。
使用偏移列表进行干涉。
1、抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
2、通过偏移列表调用前缀列表对路由信息进行修改
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix huawei 5
1、抓流量
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 23.0.0.0 0.0.0.0
2、做策略
[r2-GigabitEthernet0/0/0]rip metricout 2000 3
- metricin指的是入方向,而metricout指的是出方向;
- RIP协议出方向默认开销+1,而入方向默认开销+0;
- 偏移列表实际上修改的是接口的增加开销数值;
过滤策略---filter-policy
在思科中叫做分发列表
过滤策略是只能够针对于路由信息进行筛选(过滤)的工具,而无法针对于LSA进行过滤
在R4的出方向上配置过滤策略,使得R1不能学习到23.0.0.0/24路由信息
1、抓取流量
[r4-acl-basic-2000]rule deny source 23.0.0.0 0.0.0.0
- 过滤列表本身没有过滤信息的能力,所以,需要在抓取流量的时候使用拒绝动作执行。
[r4-acl-basic-2000]rule permit source any
- 在抓取流量时,末尾一定要放通剩余流量,否则将会把所有未匹配的流量全部过滤。
- 因为ACL末尾动作实际上是对未匹配的流量不做处理,而过滤策略会对未匹配信息做默认处理动作。
2、做策略
[r4-rip-1]filter-policy 2000 export GigabitEthernet 0/0/1
- 需要选择对应接口,该接口为正常情况下发送出该路由信息的接口;如果不选择接口,则为全局调用方式,会匹配所有接口。
在R1的入方向上配置过滤策略,使得R1不能学习34.0.0.0/24路由信息
1、抓取流量
[r2]ip ip-prefix aa deny 34.0.0.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 322、做策略
[r1-rip-1]filter-policy ip-prefix aa import GigabitEthernet 0/0/0
场景一:过滤策略对RIP发送的路由进行过滤
要求:禁止R3通过RIP学习到192.168.2.0/24路由。
[r2-acl-basic-2000]rule deny source 192.168.2.0 0
[r2-acl-basic-2000]rule permit[r2-rip-1]filter-policy 2000 export GigabitEthernet 0/0/1
场景二:过滤策略对RIP接收的路由进行过滤
要求:禁止R2从R1学习到192.168.2.0/24
[r2]ip ip-prefix aa deny 192.168.2.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32[r2-rip-1]filter-policy ip-prefix aa import GigabitEthernet 0/0/0
场景三:过滤策略对向OSPF发布的路由进行过滤
要求:不希望R3学习到192.168.2.0/24网段
不能再R2上做策略,因为该LSA并非是R2设备产生,R2设备无法对该LSA信息进行任何操作。必须在通告者上进行配置。
[r1-acl-basic-2000]rule deny source 192.168.2.0 255.255.255.0
[r1-acl-basic-2000]rule permit
[r1-ospf-1]filter-policy 2000 export
过滤策略在链路状态型协议中调用时,是在将路由信息与LSA转换的过程进行中断,且因为需要再始发路由器上进行,则会导致整个网络缺失该路由信息。
场景四:过滤策略对向OSPF接收的路由进行过滤
需求:仅要求R2不能学习192.168.2.0/24网段
[r2]ip ip-prefix aa deny 192.168.2.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32[r2-ospf-1]filter-policy ip-prefix aa import
过滤策略在入方向调用时,是阻止LSA转换为路由信息的过程。但是并不会阻止LSA信息的传递,故只会影响本地设备而不会影响他人。而在出方向调用时,则会影响全局设备。
结论:过滤策略可以在OSPF中使用,但是,因为OSPF区域内部传递的时拓扑信息,所以,无法进行出方向的过滤,只能进行入方向的调用,并且,调用的效果是仅将过滤抓取的路由信息不加表。对于OSPF域外路由信息,则必须使用出方向的调用方式
1/2类LSA | 3类LSA | 5/7类LSA | |
---|---|---|---|
调用方向 | 入方向 | 入方向 | 出方向 |
效果 | 仅影响本地 | 影响该LSA的通告者以及后续的区域 | 影响除了ASBR以外的所有运行OSPF协议的设备 |
过滤原因 | 阻止通过1类LSA从而生成路由信息 | 阻止通过1类LSA从而生成路由信息,没有路由信息即不会产生3类LSA信息 | 阻止路由信息生成LSA信息 |
路由策略---route-policy
路由策略是由一个或多个节点组成的列表,每一个节点都可以是一系列的条件语句以及执行语句的集合,这些节点按照编号从小到大排列。
匹配规则:自上而下,逐一匹配,一旦匹配上则将按照对应规则来执行动作,不再向下匹配。末尾隐含拒绝所有条件。
要求:
192.168.1.0/24----过滤
192.168.2.0/24----修改种子度量值10
192.168.3.0/24----修改默认开销值类型
192.168.4.0/24----修改默认开销值类型以及标签值=666
12.0.0.0/24-------不做任何处理
1、抓取流量
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0
[r2]acl 2001
[r2-acl-basic-2001]rule permit source 192.168.2.0 0.0.0.0
[r2]ip ip-prefix aa permit 192.168.3.0 24
[r2]ip ip-prefix bb permit 192.168.4.0 24
2、通过路由策略实现效果
[r2]route-policy aa deny node 10 ----创建一个路由策略,名称为aa,编号为10,大动作为拒绝
[r2-route-policy]if-match acl 2000 ----匹配ACL 2000列表
[r2]route-policy aa permit node 20
[r2-route-policy]if-match acl 2001
[r2-route-policy]apply cost 10 ---修改该路由信息的开销值为10
[r2]route-policy aa permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost-type type-1 ----修改该路由的开销值类型
[r2]route-policy aa permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 666
[r2]route-policy aa permit node 50 ----允许所有
3、调用
[r2-ospf-1]import-route rip 1 route-policy aa
[r2]display route-policy aa ----查看路由策略内容
配置指南
-
即便要拒绝一个流量,在抓取时也必须使用允许动作,之后在路由策略来拒绝。
-
在一条规则中,若没有进行流量匹配那就是匹配所有;若没有apply语句,则对已经匹配上的流量进行大动作处理。
-
与或关系
-
或关系---->节点之间属于或关系
-
与关系---->在每一个节点内部,不管是if-macth还是apply语句都执行与关系
-