目录
背景
在企业网络的设备通信中,常面临一些非法流量访问的安全性及流量路径不优等问题,故为保证数据访问的安全性、提高链路带宽利用率,就需要对网络中的流量行为进行控制,如控制网络流量可达性、调整网络流量路径等。
而当面对更加复杂、精细的流量控制需求时,就需要灵活地使用一些工具来实现,本课程将主要介绍一些有关流量控制的常用工具及其使用场景。
对流量行为的控制需求分析
-
控制网络流量可达性
-
调整网络流量路径
路由策略
定义
-
通过一系列工具或方法对路由进行各种控制的“策略"。
-
影响路由的产生、发布、选择等,进而影响报文的转发路径。
目的
作用
|
结果
|
对路由进行过滤
|
要不要这条路由
|
修改路由属性
|
将这条路由的某个属性值修改为一个特定值
|
作用
-
控制路由的接收、发布和引入,提高网络安全性
-
修改路由属性,对网络数据流量进行合理规划,提高网络性能
实现机制
路由策略的核心内容是过滤器,通过使用过滤器,定义一组匹配规则
过滤器
|
应用范围
|
访问控制列表(ACL)
|
各动态路由协议
|
地址前缀列表(IP-Prefix List)
|
各动态路由协议
|
AS路径过滤器(AS-Path-Filter)
|
BGP协议
|
团体属性过滤器(Community-Filter)
|
BGP协议
|
拓展团体属性过滤器(Extcommunity-Filter)
|
VPN
|
RD属性过滤器(Route Distinguisher-Filter)
|
VPN
|
路由策略(Route-Policy)
|
各动态路由协议
|
备注:路由策略(Route-Policy)可以使用前面6种过滤器定义自己的匹配规则,不仅可以匹配路由属性,还可以改变路由属性。
路由策略各工具之间的调用关系
路由类型
|
路由传递原理
|
距离矢量
|
过滤路由的发送和接收
|
链路状态
|
过滤路由表的生成,不影响LSDB的完整性
|
距离矢量路由协议(RIP)进行传递的原理
可在一台设备的出端口或在另一台设备的入端口进行设置
、
链路状态路由协议(OSPF)路由传递原理
LSA信息进入-->组建LSDB(LSDB是一定要保持完整性)
可在LSDB生成路由表的过程中(SPF算法过程中)进行设置:此为入方向
OSPF 只有一个区域进行路由过滤 图解
-
只能在入方向进行过滤
-
不会影响本设备的LSDB生成,是在LSDB生成后,进行SPF算法时候进行过滤的
-
如果均运行OSPF且在同一区域,仅过滤一台设备不影响其他设备对该路由的获取(仅修改一台设备的配置不会影响其他设备的路由信息)
OSPF 区域间进行过滤 图解
-
由于OSPF 区域间的路由是通过三类LSA进行学习转发的,而三类LSA又是通过将上一区域的路由经过打包
-
在ABR进行过滤后,此ABR设备向其他设备发送路由信息就不会再包含该路由信息
配置
命令
|
备注
|
filter-policy 2000 export
|
在协议
出方向调用过滤策略(通过ACL过滤)
|
filter-policy prefix-list wakin import |
在协议
入方向调用过滤策略(通过前缀列表过滤)
|
路由策略控制实验
拓扑图及配置如下:
-
R1、R2同属一个OSPF的Area 0 区域,R1上配置两个LoopBack口且宣告在OSPF进程中。
-
需求:不允许12.12.12.12访问R2路由器
分析:
-
需要对路由进行过滤,那么可以使用 ACL访问控制列表或 前缀列表进行控制。
-
由于同属一个区域,那么只能对R2设备的 入方向做访问控制。
方法一(ACL)配置:
R2:
acl 2000
rule deny source 12.12.12.12 0
rule permit---------------做一条保底路由,允许所有其他路由通过
ospf
filter-policy 2000 import-----进入OSPF进程,在入方向调用ACL 2000进行流量过滤
方法二(前缀列表)配置:
R2:
ip ip-prefix guolv deny 12.12.12.12 32 -------最后的32表示指定该主机
ospf
filter-policy ip-prefix guolv import
验证:
在R2上 ping 12.12.12.12
Route-Policy
一种强大而复杂的过滤器,用于
路由过滤和
修改路由属性
-
Route-Policy由若干个node构成,node之间是“或”的关系
-
每个node下可以有若干个if-mach 和 apply 子句
-
if-match 之间是“与”的关系
-
默认是拒绝(可在下面加一条空语句 "route-policy name permit node 1000",进行修改为允许)
-
Rule
|
Mode
|
匹配结果
|
permit
|
permit
|
|
permit |
deny
|
|
deny
|
permit
|
|
deny
|
deny
|
|
注1 :Rule 表示if-match子句中包含的匹配面膜是是permit 还是 deny
注2 :Mode表示Route-Policy中node节点对应的匹配模式Permit 还是 deny
|
匹配规则
匹配规则(if-match)
|
描述
|
ACL
|
路由信息的目的IP地址范围的匹配条件
|
prefix-list
(前缀列表)
|
路由信息的目的IP地址范围的匹配条件
|
ip next-hop
|
路由信息的
下一跳地址的匹配条件
|
interface
|
路由信息的
出接口的匹配条件
|
route-type
|
路由信息类型的匹配条件
|
tag |
RIP、OSPF、IS-IS路由信息的
标记域的匹配条件
|
cost |
路由信息的
路由开销的匹配条件
|
动作
动作(apply)
|
描述
|
ip-address next -hop
|
设定通过过滤后路由信息的下一跳地址
|
preference
|
设定通过过滤够路由协议的优先级
|
tag
|
设定通过过滤后RIP、OSPF、IS-IS路由信息的标记域
|
cost
|
设定通过过滤后路由信息的路由开销
|
cost-type
|
设定通过过滤后路由信息的路由开销类型
|
配置命令
命令
| 备注 |
route-policy name permit/deny node 10
|
创建route-policy
|
if-match acl 2000
|
配置匹配规则
|
apply cost 10
|
配置应用动作
|
display route-policy |
验证route-policy
|
Route-Policy 案例分析
Table-1:原路由表
右方为设备的配置命令
Table-2:配置后的路由信息
案例图如下:
分析1
route-policy RP deny node 10
if-match ip-prefix perf 1
解释:
首先查看第一个node,即node 10,并且注意:这里是deny 拒绝(即如果命中下列匹配规则,该路由一定不会通过)
它命中的是前缀列表1,查看前缀列表1中的信息: ip ip-prefix Pref 1 index 10 premit 5.5.5.5 32,和 ip ip-prefix Pref1 index 2 permit 1.1.2.0 24即允许5.5.5.5 /32 和 1.1.2.0 /24 此两条路由通过。
所以,总的来说,node 10 不允许5.5.5.5 /32 和 1.1.2.0 /24 这两条路由通过,且不向后继续查询
分析2
route-policy RP permit node 20
if-match ip-prefix Pref2
解释:
-
第一条node查询完成后,接着查询第二条node,即node 20,这里的状态的permit 允许(即先查看下面的过滤信息,再向后继续查询)
-
过滤信息为 if-match ip-prefix Pref2,即匹配到前缀列表2,--->ip ip-prefix Pref2 index 10 deny 6.6.6.6 32,所以:本node不允许 6.6.6.6 /32 路由通过,可继续向下查询(因为node20状态为permit)
分析3
route-policy RP permit node 30
if-match acl 2001
if-match ip next-hop acl 2002
apply cost 21
解释:
-
node30状态为permit,即先查看下面的过滤信息,再向后继续查询
-
过滤规则第一条为acl 2001-->rule 0 permit source 1.1.3.0 0.0.0.255,即允许源地址为1.1.3.0 /24的路由通过 (注意:由于这里是ACL,/25网段也包含在/24网段内,所以此条ACL允许/24 /25两条路由通过)
-
过滤规则第二条为 next-hop acl 2002,即下一跳应用ACL2002-->rule 0 permit source 13.13.13.1 0,即下一跳必须为13.13.13.1 。
-
第三条为命中后的动作:将以上命中的路由,开销值修改为21
总的来看:node30的route-policy过滤信息为允许源地址为1.1.3.0 /24和 1.1.3.0 /25两条路由的 目的地址为13.13.13.1 的路由通过。并且将两条路由信息的开销值修改为21
分析4
route-policy RP permit node 40
if-match ip-prefix Pref3
apply cost 11
-
首先node40的状态为允许,再查看下面的过滤信息
-
过滤信息命中前缀列表3-->ip ip-prefix Pref3 index 10 permit 1.1.3.0 24 greater-equal 25 less-equal 25 ,即允许 1.1.3.0 /25此路由通过
-
再查看信息:apply cost 11,即将上面命中的路由开销值修改为11
总的来看:;允许1.1.3.0 /25路由通过,且将该路由开销值修改为11
分析5
route-policy RP permit node 50
该node50的状态为允许
且没有过滤信息,即其余未命中路由全部允许通过
即:其他未命中路由全部允许通过