-
控制层流量 --- 路由协议传递路由信息时产生的流量
-
数据层流量 --- 设备访问目标地址时产生的流量
所谓的路由策略----在控制层面转发流量的过程中,截取流量,之后修改流量再转发或不转发的技术,最终达到影响路由器路由表的生成,干涉选路的效果。
-
截取流量
-
针对截取的流量进行修改
抓流量
ACL列表
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。
前缀列表的匹配规则:从上而下,逐一匹配,一旦匹配上则将按照规则执行,不再向下匹配。末尾隐含拒绝所有的规则。
命令演示:
假设:存在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 32
2、做策略
[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 0.0.0.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域外路由信息,则必须使用出方向的调用方式。
路由策略---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语句都执行与关系
-