一、全局选路策略概念
当到达目的网络有多条等价路由或者缺省路由时 ,FW通过不同的智能选路方式动态选择最优链路。
二、全局选路策略的智能选路方式
为了满足不同的需求,华为FW支持四种智能选路方式,管理员可以根据设备和网络的实际情况进行选择。
|------------|---------------------------------------------------|---------------|
| 智能选路方式 | 定义 | 关键部署 |
| 根据链路带宽负载分担 | FW按照带宽比例将流量分配到各条链路上。带宽大的链路转发较多的流量,带宽小的链路转发较少的流量。 | 链路出方向带宽和入方向带宽 |
| 根据链路权重负载分担 | FW按照权重的比例将流量分配到各条链路上,权重大的链路转发较多的流量,权重小的链路转发较少的流量。 | 链路权重 |
| 根据链路质量主备备份 | FW优先使用链路质量高的链路转发流量。 | 链路质量参数和探测方式 |
| 根据链路优先级选路 | 优先级最高的接口称为主接口,其他优先级的接口统称为备份接口,FW优先使用主接口转发流量。 | 链路优先级 |
1、根据链路带宽负载分担
如图1-1,某企业从运营商租用了三条链路,其中,ISP1的链路带宽为200M,ISP2和ISP3的链路带宽均为100M,即带宽比例为2:1:1。为了保证链路不会过载,管理员可以设置过载保护阈值,如图各链路均为90%。一段时间后,各链路上累计传输的流量将分别占到总流量的50%、25%、25%,即各链路传输流量的比例和带宽的比例成正比。
图1-1
可能出现的情况如下:
①所有链路均未过载时,按照链路之间的带宽比例进行负载分担;
②某条链路的带宽使用率达到过载保护值如90%时,已建立会话的流量仍从该链路转发,但是后续新建立会话的流量不再通过此链路转发,FW会在未过载的链路中智能选路,后续流量按照未过载链路之间的带宽比例进行负载分担;
③所有链路都已过载,防火墙将不再考虑过载保护,继续按照各链路带宽比例分配流量。
注意:防火墙采用逐流方式转发报文,所谓"逐流"就是将属于同一条流的报文都从同一条链路转发,可以理解为防火墙上建立的一条会话或者连接,防火墙根据各接口带宽的比例来分流,因此,长期时间后,各链路上分配的会话数比例将趋近于2:1:1,跟链路带宽比例相同,由于每个会话传输的实际流量各不相同,实际传输流量的比例不会与设置的带宽比例严格一致。
2、根据链路权重负载分担
如图1-2,某企业从运营商租用了三条链路,其中,ISP1的链路权重为5,ISP2和ISP3的链路权重分别为3、2,即5:3:2,为了保证链路不会过载,管理员可以设置过载保护阈值,如图各链路均为90%。一段时间后,各链路上累计传输的流量将分别占到总流量的50%、30%、20%,即各链路传输流量的比例和权重比例成正比。
图1-2
可能出现的情况如下:
①当所有链路均未过载时,链路之间的按权重比例进行负载分担;
②某条链路的带宽使用率达到过载保护值如90%时,后续流量不再通过此链路转发,FW会在未过载的链路中智能选路,后续流量按照未过载链路之间的权重比例进行负载分担;
③如果所有链路都已过载,那么FW将继续按照各链路的权重比例分配流量。
3、根据链路质量主备备份
丢包率、时延和时延抖动是FW衡量链路质量的3个参数。
|--------|------------------------------------------------------------------------------|
| 链路质量指标 | 计算方式 |
| 丢包率 | 丢包率等于丢包个数除以探测报文个数。防火墙发送若干个探测报文后,将统计丢包的个数,并计算丢包率。 |
| 时延 | 回应报文的接收时间减去探测报文的发送时间即为时延。FW发送N个探测报文后,将分别计算每次探测的时延,并取N次探测的平均值作为最终结果。 |
| 时延抖动 | 相邻两次探测的时延之差取绝对值即为时延抖动。FW发送N个探测报文后,将分别计算相邻两次探测的时延之差并取绝对值,然后取所有时延抖动的平均值作为最终结果。 |
[链路质量指标的计算方式]
默认情况下,链路质量探测报文的协议类型为tcp-simple(FW使用TCP报文检查网络的连通性,只要目的设备回应第一个探测报文,即认为链路是可用的,无需完成三次握手)。
针对非TCP业务流量使用ICMP协议进行质量探测。
探测报文的协议类型还可以修改为ICMP,此时FW针对所有业务流量都使用ICMP协议探测进行质量探测。
防火墙默认使用丢包率作为选路的依据, 也可以根据需要增加时延、时延抖动,链路质量得分=初始得分-丢包率得分-时延得分-时延抖动得分;初始得分由探测报文发送时间间隔决定,默认间隔3秒,初始得分默认为6000分。
|--------|-------------------|
| 链路质量指标 | 得分计算方法 |
| 丢包率 | 丢包率得分=丢包率×初始得分 |
| 时延 | 时延得分=总时延/探测次数 |
| 时延抖动 | 时延抖动得分=总时延抖动/探测次数 |
[得分计算方法]
防火墙自动向目的IP发送链路质量探测报文,获取各链路的传输质量信息,并将链路质量探测结果保存在链路质量探测表中。当有流量到达FW时,FW首先根据报文的目的IP去匹配探测表:
①如果匹配,则根据探测表中记录的出接口转发流量;
②如果未匹配,则自动向目的IP发起质量探测选择最优的链路转发流量,并将探测结果记录在链路质量探测表中;
③当质量探测表项老化后,新的流量触发智能选路时需要重新进行链路质量探测。
如图1-3,某企业从运营商租用了三条链路,防火墙向各个ISP内的指定设备发送5个探测报文,其中ISP1链路没有丢包,ISP2链路丢了2个包,ISP3链路没有收到回应报文。FW判定ISP1的质量最高,将优先使用ISP1链路转发流量,只要探测表项没有老化,FW就一直使用ISP1转发流量,不会使用ISP2链路和ISP3链路。为了保证链路不会过载,管理员可以设置过载保护阈值,当某条链路带宽使用率达到阈值,已建立会话的流量仍从该链路转发,但是后续新建立会话的流量不再通过此链路转发,FW会在未过载的链路中重新选择质量最佳的链路。
图1-3
4、根据链路优先级选路
负载分担场景:各接口链路设置过载保护阈值,当主接口链路过载时 ,FW会使用优先级次高的备份接口和主接口一起分担流量。当主接口和优先级次高的备份接口都过载后,余下的备份接口中优先级最高的接口才被启用进行流量分担。
主备备份场景:主接口链路没有指定过载保护阈值,那么即使链路过载,FW也不会使用其他链路传输流量。只有当主接口链路发生故障后,优先级次高的备份接口才被启用以替代主接口,而其他优先级更低的备份接口则仍未启用。
如图1-4,某企业从运营商租用了三条链路,其中,ISP1的优先级为8,ISP2和ISP3的优先级分别为3、1,ISP1的链路优先级最高。为了保证链路不会过载,管理员可以设置过载保护阈值,如图各链路均为90%。FW优先使用ISP1链路转发流量,当ISP1链路的带宽利用率达到90%后,启用ISP2链路和ISP1链路一起分担流量。当ISP1链路和ISP2链路都过载时,启用ISP3链路和ISP1、ISP2链路一起分担流量。当3条链路都过载时,FW将按照各链路带宽的比例分配流量,不再根据链路优先级来分配。
图1-4
三、会话保持
配置过载保护阈值,当链路的带宽利用率达到过载保护阈值时,FW对新流量进行智能选路时将排除该过载链路,在其他未过载的链路中进行选路。这样可能会导致用户上网流量在链路过载前选择了该链路,而新建会话流量(如打开新网页)因为原链路过载而被FW从其他链路转发出去。类似如网络游戏会在链路切换后掉线,甚至某些网上银行业务因检测到IP地址变化而拒绝用户访问等现象。为了解决上述问题,可以开启智能选路会话保持功能。
开启该功能后,上网用户流量进行首次智能选路选择某链路后,FW会生成相应的会话保持表项,后续访问到达防火墙,如果命中了该会话保持表项,FW按照会话保持表项中记录的链路转发流量,这样能保证该用户的流量始终使用同一链路转发,不管该链路是否过载,仅当用户流量不能匹配会话保持表项时,才在未过载链路中选路。
过载保护默认开启,会话保持默认关闭。
overload protection enable //启动过载保护
session persistence enable //启动会话保持
display session persistence table //查看建立表项
四、配置(以链路权重为例)
1、案例
如下图所示,某网络租用了两条链路,一条从ISP1租用的链路,带宽为50M,租用ISP2一条性能优良的链路,带宽为150M。企业希望ISP2链路转发80%的流量,ISP1链路转发20%的流量,提高大多数用户的体验。当其中一条链路过载(阈值为90%)时,后续流量可以通过另一条链路转发,保证传输的可靠性。
2、配置思路
企业希望ISP2链路转发80%的流量,ISP1链路转发20%的流量,即可采用权重比为4:1的链路权重负载分担;指定ISP1链路的权重为1,ISP2链路的权重为4。为了保证链路故障或过载时,FW可以使用其他链路转发流量,还需要配置健康检查功能和链路过载保护功能。
①配置接口的IP地址、安全区域、网关地址、带宽和过载保护阈值;
②配置基本的安全策略,允许企业内网用户访问外网资源;
③配置全局选路策略。配置智能选路方式为根据链路权重负载分担,指定FW和ISP1、ISP2网络直连的出接口作为智能选路成员接口,并为接口设置权重值;
④并在接口上应用健康检查(可选)。
3、操作步骤(web界面配置及对应指令)
①新建健康检查(可选)
java
healthcheck enable
healthcheck name ISP1_health
destination 1.1.1.2 interface GigabitEthernet 1/0/1 protocol tcp
healthcheck name ISP2_health
destination 2.2.2.2 interface GigabitEthernet 1/0/2 protocol tcp
②配置接口IP地址、安全区域、网关地址、带宽和过载保护阈值,并在接口上应用健康检查(可选)
java
interface g1/0/1
ip address 1.1.1.1 24
gateway 1.1.1.254
bandwidth ingress 50000 threshold 90
bandwidth egress 50000 threshold 90
healthcheck ISP1_health
interface g1/0/2
ip address 2.2.2.1 24
gateway 2.2.2.254
bandwidth ingress 150000 threshold 90
bandwidth egress 150000 threshold 90
healthcheck ISP2_health
java
interface g1/0/0
ip address 192.168.1.254 24
java
firewall zone trust
add interface G1/0/0
firewall zone untrust
add interface G1/0/1
add interface G1/0/2
③配置基本的安全策略,允许企业内网用户访问外网资源
java
security-policy
rule name trust_to_untrust
source-zone trust
destination-zone untrust
source-address 192.168.1.0 mask 255.255.255.0
service icmp
action permit
③配置全局选路策略。配置智能选路方式为根据链路权重负载分担,指定FW和ISP1、ISP2网络直连的出接口作为智能选路成员接口,并为接口设置权重值;
java
multi-interface
mode proportion-of-weight
add interface GigabitEthernet 1/0/1 weight 1
add interface GigabitEthernet 1/0/2 weight 4
load-balance flow hash source-ip
参考资料:防火墙和VPN技术与实践------李学昭