重发布
在同一个网络拓扑结构中,如果存在多种不同的路由协议,由于不同的路由协议对于路由项的处理机制不同,这就会导致在网络中造成路由信息的隔离。而在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入(Route Importation)或者路由重分发。–执行该操作的技术被称为重发布。
作用:在一个网络中,若运行多种路由协议或相同路由协议的不同进程;协议之间不能直接沟通计算,进程之间也是相互独立,所以需要使用重发布技术来实现路由的共享。
执行条件
- 必须存在一个边界设备 — 同时连接两种路由协议或两种进程,同时学习到两种来源的路由信息,之后进行路由共享。
- 关注种子度量值 – 起始度量值。
- A协议和B协议的开销计算算法不同,无法直接使用。故将A协议发布到B协议时,边界设备将不携带A协议的度量值,而是共享到B协议后,由边界设备在路由中添加一个起始度量值。
规则
- 将A协议引入到B协议中,在边界设备中的B协议上配置。—表明重发布技术的配置位置。
- 将A协议引入到B协议中,边界设备会将所有通过A协议学习到的路由以及边界设备上宣告在A协议中的所有直连路由,全部共享到B协议中。 – 表明重发布时发布的信息内容。
名词解释
点
- 单点:两个协议或两个进程之间存在一个边界设备
- 双点:两个协议或两个进程之间存在两个边界设备
- 多点:两个协议或两个进程之间存在多个边界设备
需要多点的原因:
1、可以通过一些路由策略,将流量分别从不同的边界设备引入,从而不造成某单一路由器负载过大。
2、备份
向
- 单向:仅将A协议路由共享到B协议中
- 双向:A和B协议的路由均共享到对方
路由引入
OSPF->rip
引入OSPF,RIP赋予的种子度量值为0
修改种子度量值:
[r2-rip-1]default-cost 5 //修改全局种子度量值
[r2-rip-1]import-route ospf 1 cost 5 //修改特定路由的种子度量值
两条命令同时执行时,将按照第二条执行。
静态->rip
[r2-rip-1]import-route static
引入静态,RIP赋予的种子度量值为0
重发布不允许将缺省路由引入
直连->rip
[r2-rip-1]import-route direct
- 除了R1的直连网段外,所有直连均会引入。
- 若边界路由器进行A->B的重发布以及直连->B的重发布,并且两次包含相同的路由信息,则将会优先学习直连导入的路由信息。
默认RIP和OSPF协议进行双点重发布,由于两者的优先级不同,故第一台ASBR设备重发布动作结束后,将影响其他ASBR设备的路由表。使得路由可能被回传到源协议中,发生路由回馈 — A协议的路由重发布到B协议当中后,又被重发布回A协议。路由回馈可能会导致选路不佳,甚至是路由环路的出现。
华为为了解决路由回馈问题,将OSPF的域外路由的优先级定义为150(150高于华为体系下所有IGP协议的优先级),从而解决路由回馈问题。
在双点双向重发布中,虽然解决了路由回馈问题,但是多点重发布还是存在一个必然产生的问题 — 选路不佳。 --原因在于重发布时清除了原先的开销值导致的。
路由策略
- 控制层流量 — 路由协议传递路由信息产生的流量
- 数据层流量 — 设备访问目的地址时产生的流量
路由策略 — 在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由器路由表的生成,干涉选路的效果。
抓流量
ACL列表
因为ACL列表本身设计是为了抓取数据层流量的,所以,因为通配符的存在他可以灵活的匹配IP的数字特征,但是,没有办法匹配路由信息中的掩码特征。所以,ACL并不擅长控制层流量的抓取。
如果需要在192.168.1.0/24、192.168.1.0/25、192.168.1.0/30中抓取192.168.1.0/24,ACL是无能为力的,只能按照数字特征抓取,则意味着使用以上命令将同时抓取携带着三种路由信息的数据包。
前缀列表(IP-Prefix)
一个路由条目由目的网络地址(前缀)+掩码长度(前缀长度)共同标识。
![image-20230330205754334](https://s2.loli.net/2023/03/30/ZwVsoY6KXC53uig.png)
IP前缀列表可以包含一条或多条语句,每条语句都使用一个序号(十进制)进行标识。
额外编写:指定掩码长度范围
![image-20230330210259967](https://s2.loli.net/2023/03/30/zPxc5aVuWNv13Li.png)
前缀列表的匹配规则:从上而下,逐条匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有规则。
实例:
ip ip-prefix aa permit 172.16.0.0 24
该语句要求路由的目的网络地址的前24位比特位需要与172.16.0.0的前24位相同,并且路由的目的网络掩码长度必须为24。
ip ip-prefix aa permit 172.16.0.0 16 less-equal 24
该语句要求路由的目的网络地址的前16比特位与172.16.0.0的前16位相同,并且路由的目的网络掩码长度必须小于等于24。
ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
这条路由相当于允许所有。
ip ip-prefix aa permit 0.0.0.0 0
该语句允许的是默认路由0.0.0.0
ip ip-prefix aa permit 172.16.4.0 22 greater-equal 24 less-equal 24
该语句匹配四条24网段 172.16.4.0/24 - 172.16.7.0/24
做策略
偏移列表—cisco
偏移列表属于RIP这种距离矢量型协议专用的。
抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
调用
[r1-接口]rip metricin ip-prefix huawei 5
进入流量入方向接口,给其度量值增加5,metricin入;metricout出;出接口默认每次加1,如接口默认不加。
该策略为逐跳行为,效果可以叠加操作;整段路径中流量经过的多个接口均配置了度量值增加,最终开销值为增加的总度量值。
过滤策略
Filter-Policy – 路由过滤工具
分发列表 – cisco
只能够对路由信息进行过滤,而无法对LSA进行过滤。
[r2-acl-basic-2000]rule deny source 34.0.0.0 0.0.0.0
过滤列表本身没有过滤能力,所以在抓取流量的时候需要使用拒绝动作。
[acl-2000]rule permit source any — 注意,抓取流量的时候,在末尾一定要放通所有流量,否则将会把所有的流量均过滤掉,原因在于过滤策略是完全依照ACL表项进行工作的。
在过滤策略中调用
[r2-rip-1]filter-policy 2000 export GigabitEthernet 0/0/0
在进程中调用,选定入方向或出方向的接口,若不选择接口,则为全局调用,会匹配所有接口。
[r2]ip ip-prefix aa deny 34.0.0.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
[r2-rip-1]filter-policy ip-prefix aa export GigabitEthernet 0/0/0
切记,若使用ACL定义流量,正常华为ACL末尾隐含允许所有,但是在过滤策略中一定要手工配置允许所有。
注意,若此时没有在R1上进行过滤,而是等R1将域外的五类LSA发布进OSPF后,再在R2的出方向或入方向,有着或是R1的出方向调用过滤策略,则不会成功。必须要在R1将路由信息转换为LSA信息之前 进行调用,也就是在ASBR的入方向调用。
若在R2的入方向使用过滤策略限制192.168.2.0/24路由,则R2将不会具备该路由信息,因为是在R2根据本地LSDB中的LSA信息计算出192.168.2.0/24路由后,拒绝将这条路由信息加入本地路由表中。而R3此时还具备该路由信息,原因在于R3可以正常收到所有的LSA信息,并成功计算路由信息。
若将过滤策略使用在链路状态型协议中,必须使用入方向。
路由策略
Route-policy
路由策略的匹配原则:自上而下,逐一匹配,一旦匹配上则将按照对应的动作来执行,就不再向下匹配。在末尾隐含一条拒绝所有的规则。
要求:
192.168.1.0/24 -----过滤
192.168.2.0/24 -----修改种子度量值10
192.168.3.0/24 -----开销值类型修改为Type-1
192.168.4.0/24 -----开销值类型修改为Type-1,tag=200
12.0.0.0/24 -----不处理
抓取流量:
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0
[r2]acl 2001
[r2-acl-basic-2001]rule permit source 192.168.2.0 0
[r2]ip ip-prefix aa permit 192.168.3.0 24
[r2]ip ip-prefix bb permit 192.168.4.0 24
做策略:
[r2]route-policy hcip deny node 10 ----创建一个叫做hcip的route-policy列表,且序号为10
[r2-route-policy]if-match acl 2000 ----匹配ACL 2000
[r2]route-policy hcip permit node 20
[r2-route-policy]if-match acl 2001
[r2-route-policy]apply cost 10
[r2]route-policy hcip permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost-type type-1
[r2]route-policy hcip permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 200
[r2]route-policy hcip permit node 50
在重发布中调用:
[r2-ospf-1]import-route rip 1 route-policy hcip
查看路由策略内容:
display route-policy [名称]
permit:
-
指定该节点的匹配模式为允许
-
如果路由匹配的结果是满足该阶段的所有if-match语句,则该路由被视为允许通过,该节点的apply语言将被执行,且不再进入一下个节点。若该节点中有fi-match语句不满足,则进入下一个节点继续匹配。
deny:
-
指定节点的匹配模式为拒绝。
-
如果节点的匹配模式为拒绝,则该节点的apply语句将不被执行。
-
如果路由匹配的结果是满足该阶段的所有if-match语句,该路由策略的匹配过程直接结束。不会进入下一个阶段。而满足该节点条件的路由会被视为拒绝通过。
-
若该节点中有fi-match语句不满足,则进入下一个节点继续匹配。
配置指南总结
- 即便要拒绝一个流量,在抓取的时候也必须使用允许操作,之后在路由策略来拒绝。
- 在一条规则中,若没有进行流量匹配,那么就是匹配所有流量。若没有apply那么仅对匹配的流量 进行当前大动作修改。
- 配置时,注意路由策略的“与”和“或”关系。
-
如果节点的匹配模式为拒绝,则该节点的apply语句将不被执行。
-
如果路由匹配的结果是满足该阶段的所有if-match语句,该路由策略的匹配过程直接结束。不会进入下一个阶段。而满足该节点条件的路由会被视为拒绝通过。
-
若该节点中有fi-match语句不满足,则进入下一个节点继续匹配。
配置指南总结
- 即便要拒绝一个流量,在抓取的时候也必须使用允许操作,之后在路由策略来拒绝。
- 在一条规则中,若没有进行流量匹配,那么就是匹配所有流量。若没有apply那么仅对匹配的流量 进行当前大动作修改。
- 配置时,注意路由策略的“与”和“或”关系。