一、策略路由的概念
一般来说,防火墙是根据目的地址查看路由,这种情况下只能根据报文的目的地址为用户提供服务,没办法更加灵活对内网用户进行区分,让不同用户流量走不同的链路转发,如根据源地址、应用协议等区分流量,走各自期望的链路,因此出现了策略路由。
策略路由是在路由表已经产生的情况下,不按照现有的路由表进行转发,从更多的维度来决定报文如何转发,根据用户制定的策略进行路由选择的机制。
策略路由优先于路由表生效,更多维度包括了入接口、源安全区域、源/目的IP地址、用户、服务、应用。
1、策略路由的组成
匹配条件:源地址/目的地址、源安全区域/入接口、用户、服务、应用、时间段、DSCP优先级,默认为any, 一条策略路由可以包含多个匹配条件,每个匹配条件可以有多个值,其中源安全区域和入接口是互斥的,二者必选其一。
动作:如果策略路由配置的所有匹配条件都匹配,则此流量成功匹配该策略路由规则,并执行策略路由的动作,可以指定转发报文的出接口(单出口/多出口),也可以不做策略路由,按照现有的路由表进行转发。
2、策略路由的匹配规则
每条策略路由中包含多个匹配条件,各个匹配条件之间是"与"的关系,报文的属性与各个条件必须全部匹配,才认为该报文匹配这条规则。
一个匹配条件中如果可以配置多个值,多个值之间是"或"的关系,报文的属性只要匹配任意一个值,就认为报文的属性匹配了这个条件。
策略路由列表默认是按照配置顺序排列的,越先配置的策略路由规则位置越靠前,优先级越高。策略路由从策略列表顶端开始逐条向下匹配,如果流量匹配了某个策略路由,将不再进行下一个策略的匹配。
默认存在一条默认策略路由"default",匹配条件均为any,动作为不做策略路由,位于最底部,当前面策略路由均为命中,报文会命中默认策略路由,并按照现有路由表转发,可见,策略路由优先级高于路由表。
3、策略路由的应用场景
某企业的防火墙两个出口分别连接到电信、联通两个运营商,考虑运营商带宽、费用等因素,企业希望采用策略路由来控制特定报文转发路径。
基于源IP地址的策略路由:让192.168.1.0/24网段报文通过电信访问互联网,192.168.2.0/24网段报文通过联通访问互联网。
基于目的IP地址的策略路由:让访问电信的报文通过电信访问互联网,访问联通的报文通过联通访问互联网。类似于ISP选路的效果。
基于用户的策略路由:根据用户所属用户组,分配不同质量的链路,如用户组A等级高,可以享受更稳定的链路,用户组B使用其他链路。
基于应用的策略路由:例如,配置语音与视频等应用走带宽高线路,数据应用走带宽小的线路。
二、策略路由的配置
以应用场景为例,进行策略路由的配置,分为命令配置以及web界面配置。
①配置防火墙接口IP地址以及安全区域
java
[USG6000V1]interface g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip add 192.168.1.254 24
[USG6000V1-GigabitEthernet1/0/0]q
[USG6000V1]interface g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip add 192.168.2.254 24
[USG6000V1-GigabitEthernet1/0/1]q
[USG6000V1]interface g1/0/2
[USG6000V1-GigabitEthernet1/0/2]ip add 10.1.1.1 24
[USG6000V1-GigabitEthernet1/0/2]q
[USG6000V1]interface g1/0/3
[USG6000V1-GigabitEthernet1/0/3]ip add 10.1.2.1 24
[USG6000V1-GigabitEthernet1/0/3]q
[USG6000V1]firewall zone trust
[USG6000V1-zone-trust]add interface g1/0/0
[USG6000V1-zone-trust]add interface g1/0/1
[USG6000V1-zone-trust]q
[USG6000V1]firewall zone untrust
[USG6000V1-zone-untrust]add interface g1/0/2
[USG6000V1-zone-untrust]add interface g1/0/3
[USG6000V1-zone-untrust]q
②配置安全策略和EASY-IP
java
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name policy_nat1
[USG6000V1-policy-nat-rule-policy_nat1]source-zone trust
[USG6000V1-policy-nat-rule-policy_nat1]destination-zone untrust
[USG6000V1-policy-nat-rule-policy_nat1]egress-interface g1/0/2
[USG6000V1-policy-nat-rule-policy_nat1]source-address 192.168.1.0 24
[USG6000V1-policy-nat-rule-policy_nat1]action source-nat easy-ip
[USG6000V1-policy-nat-rule-policy_nat1]quit
[USG6000V1-policy-nat]rule name policy_nat2
[USG6000V1-policy-nat-rule-policy_nat2]source-zone trust
[USG6000V1-policy-nat-rule-policy_nat2]destination-zone untrust
[USG6000V1-policy-nat-rule-policy_nat2]egress-interface g1/0/3
[USG6000V1-policy-nat-rule-policy_nat2]source-address 192.168.2.0 24
[USG6000V1-policy-nat-rule-policy_nat2]action source-nat easy-ip
[USG6000V1-policy-nat-rule-policy_nat2]q
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name policy1
[USG6000V1-policy-security-rule-policy1]source-zone trust
[USG6000V1-policy-security-rule-policy1]destination-zone untrust
[USG6000V1-policy-security-rule-policy1]source-address 192.168.1.0 24
[USG6000V1-policy-security-rule-policy1]source-address 192.168.2.0 24
[USG6000V1-policy-security-rule-policy1]action permit
[USG6000V1-policy-security-rule-policy1]q
[USG6000V1-policy-security]q
③配置IP-Link,探测两条链路状态,chinacheck为电信,chinacheck1为联通
java
[USG6000V1]ip-link check enable
[USG6000V1]ip-link name chinacheck
[USG6000V1-iplink-chinacheck]destination 10.1.1.2 interface g1/0/2
[USG6000V1-iplink-chinacheck]q
[USG6000V1]ip-link name chinacheck1
[USG6000V1-iplink-chinacheck1]destination 10.1.2.2 interface g1/0/3
[USG6000V1-iplink-chinacheck1]q
④配置策略路由,使192.168.1.0/24网段报文通过电信访问互联网,192.168.2.0/24网段报文通过联通访问互联网,同时引用前面创建的IP-Link,防火墙是先检测策略路由再进行源NAT,因此策略路由源地址还是NAT前的地址。
java
[USG6000V1-policy-pbr]rule name chinaroute1
[USG6000V1-policy-pbr-rule-chinaroute1]source-zone trust
[USG6000V1-policy-pbr-rule-chinaroute1]source-address 192.168.1.0 24
[USG6000V1-policy-pbr-rule-chinaroute1]track ip-link chinacheck
[USG6000V1-policy-pbr-rule-chinaroute1]action pbr egress-interface GigabitEthern
et 1/0/2 next-hop 10.1.1.2
[USG6000V1-policy-pbr-rule-chinaroute1]q
[USG6000V1-policy-pbr]rule name chinaroute2
[USG6000V1-policy-pbr-rule-chinaroute2]source-zone trust
[USG6000V1-policy-pbr-rule-chinaroute2]source-address 192.168.2.0 24
[USG6000V1-policy-pbr-rule-chinaroute2]track ip-link chinacheck1
[USG6000V1-policy-pbr-rule-chinaroute2]action pbr egress-interface GigabitEthern
et 1/0/3 next-hop 10.1.2.2
⑤测试,分别用192.168.1.0/24、192.168.2.0/24 ping 10.1.1.2、10.1.2.2
192.168.1.1通过NAT转换成出接口10.1.1.1地址下一跳为10.1.1.2、192.168.2.1通过NAT转换成出接口10.1.2.1地址下一跳为10.1.2.2。
参考资料:防火墙和VPN技术与实践------李学昭