技术背景:需要根据实际情况,需部署路由策略,对路由信息进行过滤或者修改路由属性等操作,通过对路由控制可以影响流量转发。
路由控制方式:
控制路由的发布:通过路由策略对发布的路由进行过滤,只发布满足需求的路由
控制路由的接收:通过路由策略对接收的路由进行过滤,只接收满足需求的路由
控制路由的引入:通过路由策略对引入的路由进行过滤,只引入满足需求的路由
路由匹配工具:
ACL:访问控制列表
可以用于匹配路由和流量
组成:
ACL number 2000 访问控制列表的编号
Rule 5 permit source 10.1.1.0 0.0.0.255
Rule 5 为规则编号
Permit 为行为,行为有两种,1、permit:允许 2、deny:拒绝
Source:匹配项,10.1.1.0
0.0.0.255:为通配符
通配符:采用点分十进制表示,当为0时,对应位置的匹配项为严格匹配当为1时,对应位置为任意匹配
底层默认规则:
当ACL用于匹配路由时,底层默认规则为拒绝所有
当ACL用于匹配流量时,底层默认规则为允许所有
ACL的分类:
ACL匹配机制:
1、将路由进行匹配时,查看ACL是否被调用,如果没有,则不匹配,如果有则进行下一步
2、查看ACL是否存在匹配规则,如果不存在,则不匹配,如果存在则进行下一步
3、按照规则编号进行顺序匹配,如果再某一条规则钟匹配成功,则停止匹配,查看规则的行为,如果为permit,则行为为允许,如果为deny,则行为为拒绝
4、如果所有匹配规则都没有匹配成功,则执行默认规则,拒绝所有
ACL匹配顺序:
1、配置顺序:默认采用配置顺序进行匹配,按照配置的rule顺序,从小到大依次进行匹配
2、深度匹配:采用匹配项的精准程度进行匹配,从精准到模糊
配置命令:
顺序匹配:[Huawei]acl 3999 match-order config
深度匹配:[Huawei]acl 3999 match-order auto
ip-prefix:前缀列表
只能用于匹配路由
匹配项有前缀及掩码
组成部分:
ip-prefix name:前缀列表的名称
index:节点名称,一个前缀列表可以存在多个节点,类似于ACL中的rule
默认步长为10,不可以进行修改
动作:
permit:允许匹配
deny:拒绝匹配
IP路由前缀和掩码:
需要进行匹配的路由的地址,并且限定前多少位为严格匹配
掩码范围:
限制需要匹配路由的掩码范围,例如限制匹配掩码为24--32的路由
注释:如果存在掩码范围,则前面配置的掩码为前缀严格匹配
如果不存在掩码范围,则前面配置的掩码为掩码长度
ip-prefix匹配机制:
1、查看第一条索引,看路由是否能够匹配前缀和掩码要求,匹配成功则看行为是允许还是拒绝,如果为permit,则为允许,如果deny,则为拒绝,如果匹配失败,则进行下一步分析
2、查看是否存在其他索引,如果存在,则按照第一步的匹配方法进行匹配
3、如果不存在其他索引,则默认底层为拒绝所有
注:ip-prefix的匹配机制不能进行修改,只按照index的顺序从小到大进行匹配
ACL和ip-prefix的区别:
1、匹配对象:
ACL可以用于匹配路由和流量
ip-prefix只能用于匹配路由
2、路由匹配精确度:
ACL使用路由前缀加通配符的方式进行匹配,匹配的路由更加灵活,可以进行奇偶路由匹配
ip-perfix使用路由前缀和掩码的方式进行匹配,匹配的路由相较于ACL匹配的路由更加的精准
3、步长
ACL步长默认为5,可以通过step进行修改
ip-prefix的步长默认为10,不能进行修改
4、匹配项不同
ACL可以使用路由前缀、通配符、端口号,二层协议等等进行匹配
ip-prefix只能基于路由前缀和掩码进行匹配
5、底层默认规则
ACL底层默认,匹配不同业务时,底层默认规则不同,当用于匹配流量时,底层为允许所有,当匹配路由时,底层为默认拒绝所有
ip-prefix的底层默认为拒绝所有
6、匹配顺序
ACL可以使用顺序匹配,也可以修改为深度匹配
ip-prefix只能使用顺序匹配
7、分类:
ACL有多种分类:基本、高级、二层、自定义,或者直接使用name进行创建
ip-prefix只能使用name进行创建
8、其他:
ACL可以创建空的,而ip-prefix创建成功则一定存在规则
ACL可以配合time-range限制生效时间,而ip-prefix不能
调用工具:
filter-policy:过滤策略
可以运用在距离矢量和链路状态路由协议
作用:用于过滤路由或者选择传递的路由
在距离矢量上的运用:RIP或者BGP协议
1、在接收时将路由过滤:在接收到对端发送过来的路由时,匹配策略工具(filter-policy)对路由选择性过滤,将通过的路由加入到协议路由表中,或许只有在路由表中的路由条目才会发送给其他邻居,会影响后续所有的邻居的路由表项
2、在发送时将路由过滤:在将本地路由表中的路由条目发送给邻居时,匹配策略工具(filter-policy)对路由进行过滤,只有本地路由通过策略才会将其发送给邻居,会影响后续所有的邻居的路由表项
在链路状态协议的运用:OSPF或者ISIS协议
1、在入向时将路由进行过滤(import):在基于LSDB使用SPF算法时,将不符合策略的路由抑制,停止计算,但是,不会影响本地LSDB中的LSA,同时也不会影响后续邻居收到LSA后的路由计算
命令:[Huawei-ospf-1]filter-policy ip-prefix huawei import
2、在出向时将路由进行过滤(export):在将LSDB中的LSA发布给其他邻居时,将不符合策略的路由对应的LSA进行抑制发送,建议在LSA的始发路由器进行过滤操作,也可在接口在进行操作
命令:[Huawei-ospf-1]filter-policy ip-prefix huawei export
route-policy:路由策略
作用:可以用于过滤路由信息,并将过滤后的路由信息修改路由属性
组成/结构:
一个route-policy由多个node节点组成
一个节点中可能包含一个或者多个条件语句和执行语句
同一个节点中的条件语句为与的关系,路由需要满足一个节点中的所有条件才能被该节点匹配成功
当路由被一个节点匹配成功时,会执行节点中的执行语句
配置命令:
route-policy import permit node 10 创建并进入node 10节点
if-match acl 2000 条件语句,当路由满足ACL 2000时,能够被该节点进行匹配
apply cost 1000 执行语句,当路由被该节点进行匹配时,执行修改路由属性的动作
route-policy import permit node 9999
匹配顺序:route-policy与ip-prefix的匹配一致,采用顺序匹配
1、拿到路由后,进入route-policy的第一个节点进行匹配,查看是否满满足所有的匹配条件,
1、如果满足,则查看行为,为允许,执行修改路由属性的动作
2、如果满足,行为为拒绝,则该路由直接不通过该route-policy
3、如果不满足,则执行第二部
2、查看是否剩余其他节点,
1、如果存在其他节点,则返回第一步继续进行匹配
2、如果不存咋其他节点,则执行默认动作,为拒绝所有
双点双向重发布:
场景介绍:
1、AR1、AR2、AR3之间允许OSPF协议,AR2、AR3、AR4之间允许ISIS协议
2、AR1上存在1.1.1.0/24网段,AR4上存在4.4.4.0/24网段,使用环回口模拟
3、将AR1上的1.1.1.1/24网段通过引入的方式进入OSPF中
4、在AR2和AR3上将OSPF和ISIS路由进行互引
问题描述
1、由于1.1.1.0/24是AR1通过引入的方式进入的OSPF中,通过5类LSA进行泛洪
2、在AR2和AR3上进行双点双向重发布时,1.1.1.0/24网段会通过ISIS lsp方式传递在ISIS中
3、此时AR2会收到AR3的LSP,AR3会收到AR2的LSP,通过路由计算,ISIS和OSPF外部同时可以生成1.1.1.0/24网段的路由,由于ISIS的优先级为15,OSPF的外部路由优先级为150,故AR2和AR3选择ISIS生成的1.1.1.0/24的路由
故:isis中的路由访问1.1.1.0/24网段时,会出现次优路径或者环路文问题
解决办法:
1、通过过滤策略的方式进行
1、在AR2和AR3上将始于OSPF路由,在ISIS路由生成时抑制产生
优点:配置简单
缺点:需要将抑制的路由全部通过匹配工具匹配,当需要抑制的路由过多,则配置量过大
2、通过修改优先级的方式
1、在AR2和AR3上将OSPF的外部路由优先级修改为14,
2、使得OSPF外部优先级小于ISIS路由优先,优先通过OSPF外部产生的路由
优点:当需要对单个外部进行修改时,配置简单,不会影响其他路由
缺点:需要修改的外部路由数量过大时,会导致配置量过大
3、通过tag值的方式
1、在AR2和AR3上,将OSPF路由引入ISIS中时,将路由打上tag
2、在AR2和AR3上将ISIS路由引入OSPF时,拒绝引入携带tag值的路由
优点:不管存在多少路由,都可以通过此方式解决
缺点:需要严格对tag值进行规划,防止由于tag值问题导致路由传递失败
策略路由:
背景:大量数据通过路由转发时,对于系统查表转发操作的资源浪费,并且不能将不同的流量进行分流,导致如果存在大带宽流量于公司重要业务流量混合传递时,会导致公司重要业务流量的拥塞
技术原理:在路由器上配置PBR等技术,使用源IP、目的IP、源MAC、目的MAC等待条件作为匹配条件使用,将下一跳直接通过策略路由进行指定,使得流量通过策略路由进行指导转发,存在策略路由时,优先使用策略路由进行指导数据包转发,当策略路由不匹配时,使用路由指导数据包进行指导转发
PBR(策略路由):
结构:与route-policy基本一致
Policy-based-route PBR permit node 10
PBR:为策略路由的名称
permit:为行为,当行为为permit时,执行策略路由转发,当行为为deny时,执行路由转发,也就是当为deny时,行为语句没有意义
10:为节点名称
PBR(策略路由)的分类:
接口策略路由:在接口下进行调用
只会对接口收到的流量,对于匹配的流量执行策略路由中的行为语句,对于没有匹配中的流量执行路由转发动作
配置命令:
policy-based-route PBR permit node 10 //创建策略路由
if-match acl 3000 //条件
apply ip-address next-hop 10.1.12.2 //对于符合条件的流量执行动作
ip policy-based-route PBR //在接口视图下调用接口策略路由
本地策略路由:在系统视图下进行调用
只会对本地产生的流量(本地始发路由的定义就是数据包中的源IP为自身接口的IP地址,无论是哪一个接口),匹配成功的策略路由执行动作语句,对于没有匹配中的流量执行路由转发
配置命令:
policy-based-route huawei permit node 10 //创建策略路由
if-match acl 3001 //条件
apply ip-address next-hop 10.1.12.2 //对于符合条件的流量执行动作
ip local policy-based-route huawei //在系统视图下调用接口策略路由
路由策略和策略路由的区别:
路由策略:
针对路由表中的路由条目执行操作(操作对象为路由),修改路由属性,引导流量按照自己设定的路由进行转发操作,会修改路由表中的路由信息
策略路由:
针对流量进行操作(操作对象为流量),不会修改路由表中的路由属性,但是匹配成功的流量不在按照路由表进行转发操作
MQC:模块化QOS命令行
组成:
流策略:用于进行直接调用
流分类:用于描述或者匹配某一类具有相同特征的数据量,可以根据源目IP,源目MAC,源目端口,协议,VLAN ID等等
traffic classifier VLANID10 //创建并且进入流分类
if-match vlan-id 10 //标识符合特征的数据流
流行为:可以对流量进行处理,例如强行指定下一跳,或者打上DSCP值等等
traffic behavior 100 //创建并且进入流行为
redirect ip-nexthop 10.1.1.1 //针对符合特征的流量进行相应的处理
流策略配置:
traffic policy huawei //创建流策略
classifier VLANID10 behavior 100 //将流分类与流行为进行绑定
traffic-policy huawei inbound //在接口视图下进行调用流策略
一个流策略可以包含多个流分类和流行为,但是里面的流分类和流行为必须一一对应
流策略相对与策略路由,功能更加强大,同样是针对流量进行处理
流量过滤工具:
Traffic-filter:流量过滤器
通过在接口处直接调用ACL的方式将流量进行拦截,只能通过ACL运行通过的流量
可以在出入方向进行调用,建议在出方向进行调用拦截,减少对链路带宽资源的占用
acl number 3000
rule 5 deny ip source 10.1.1.0 0.0.0.255 destination 20.1.1.1 0 //ACL规则拒绝源为10.1.1.0/24网段,目的为20.1.1.1的流量,并且底层默认规则为运行所有流量通过,需要在接口下进行调用
traffic-filter outbound acl 3000 //在接口视图下,使用traffic-filter工具调用ACL
MQC:模块化QOS命令行
1、通过配置流分类,将需要拒绝的流量进行匹配
2、在通过流行为,将行为语句设置为拒绝
3、创建流策略,将流分类和流行为进行绑定
4、在接口视图下调用流策略