基本概念
为什么需要智能选路
为了提高出口链路的带宽和可靠性,一般会在出口部署多条链路,连接多个ISP。智能选路技术可以根据链路带宽、权重、优先级或自动探测到目的地的链路质量,动态地选择最优链路,提高了链路的利用率和用户体验。
智能选路分类
智能选路分为出站智能选路和入站智能选路两种
出站智能选路:全局智能选路、策略路由智能选路、ISP选路(就近选路)。DNS透明代理(修改DNS请求报文,指导内网如何出站)
入站智能选路:智能DNS(修改回应DNS请求的报文,指导外网用户如何入站)
智能选路概述
智能选路功能包括策略路由智能选路、ISP选路和全局智能选路,三种智能选路功能可以同时使用,不会产生冲突,因为选路过程存在先后顺序:
- 流量进转发时,查询路由的先后顺序是策略路由、明细路由、缺省路由。
- 策略路由智能选路发生在流量命中策略路由时,如果有多个出接口则需要进行选路。
- 全局智能选路发生在流量命中缺省路由时,如果有多条缺省路由则需要进行选路。
- ISP智能选路发生在流量命中明细路由时,如果有多条明细路由则需要进行选路。
ISP选路
ISP选路也称为运营商地址库选路,当防火墙作为出口网关设备连接多个ISP时,可以通过批量生成到运营商网络的静态明细路由实现访问特定运营商网络的流量从相应的出接口转发,保证流量转发使用最短路径,提高转发效率。
那么实际上ISP选路(就近选路)运用到了最长匹配原则,一般在多出口情况下出口设备上会有多条缺省路由分别指向多个ISP,虽说它是存在默认的负载分担的但是没有办法科学的指导我们的流量引入正确的ISP并且保证是最短路径。那么当出口设备上有去往目的地的明细路由时它就会指导流量去往正确的ISP,但是这样同样存在问题,一个ISP它存在成千上万条路由明细(范围)我们是无法手工在出口设备上添加这些明细路由的(工作量巨大,人力无法完成)。我们可以先从sec.Huawei.com
这个域名下载运营商地址库并在防火墙的web界面进行导入,随后在对应的出接口上勾选多出口选项并在所属运营商选项中选择我们刚刚添加的运营商地址库。
在此基础上还可以通过链路健康检查功能探测本端出接口到指定目的地址的链路健康状态,保证流量不会被转发到故障链路上。该功能会通过探测结果调整业务流量的分配,为网络服务质量提供必要保障。链路健康检查不单单是通过icmp、ARP进行探测,它还支持http、dns、tcp等
此技术的优势在于可以批量创建大量静态路由且能够监控链路状态。本质上此方式就是利用了最长匹配原则:明细路由优于缺省路由
操作演示
1.在sec.Huawei.com
手工下载运营商地址库到本地
2.防火墙web界面点击:网络–>路由–>智能选项–>运营商地址库–>导入
3.配置链路健康检查功能
4.防火墙web界面修改出接口配置
通过命令行配置ISP选路
isp name isp1
isp name isp1 set filename ISP1.csv
isp name isp2
isp name isp2 set filename ISP2.csv
healthcheck link-group 1 isp1_health
destination 202.100.1.254 protocol ICMP
healthcheck link-group 1 isp2_health
destination 202.100.2.254 protocol ICMP
interface Eth-Trunk1.40
gateway 202.100.1.254
healthcheck link-group isp1_health
#
interface Eth-Trunk1.50
gateway 202.100.2.254
healthcheck link-group isp2_health
查看链路健康检查状态
防火墙查看路由表
策略路由智能选路
策略路由智能选路有四种智能选路的方式:
- 根据链路带宽负载分担
- 根据链路权重负载分担
- 根据链路优先级主备备份
- 根据链路质量负载分担
根据链路带宽负载分担
根据链路带宽负载分担是默认的智能选路方式。当企业从不同ISP处获得多条带宽不等的链路时,为了充分利用各链路的带宽,提高链路的利用率,可以选择此种选路方式。
以上图为例,为了保证链路不会过载,管理员设置了过载保护阈值,各链路均为90%。当某条链路的带宽使用率达到90%时,此链路将不再被分配流量,NGFW会在未过载的链路中智能选路,后续流量按照未过载链路之间的带宽比例进行负载分担。如果所有链路都已过载,那么NGFW将继续按照各链路的带宽比例分配流量。
配置示例:
根据链路权重负载分担
当企业从不同ISP处获得多条性能不等的链路时,为了优先使用转发性能最优的链路,保证大多数用户的访问体验,且不浪费其他性能稍差的链路,可以选择此种选路方式。
如果都达到保护值继续按照权重分配流量
配置示例:
根据链路优先级主备备份
当企业从不通ISP处获得多条链路时,如果各链路的带宽、转发时延、链路租借费用等因素存在较大差异,那么可以优先使用某些链路传输流量,并利用其他链路作为备份链路或负载分担链路,提高业务的可靠性,此时可以选择此种选路方式。
- 在不配置过载保护阈值的情况下,流量只走优先级最高的链路,直到主链路down了才会走其他的链路。
- 在配置过载保护阈值的情况下,ISP1的过载保护阈值达到之后才会走ISP2的链路,当ISP2的链路也达到过载保护阈值那么才走ISP3的链路。
- 都超过过载保护阈值的情况下按照带宽比例转发
配置示例:
根据链路质量负载分担
当企业从不同ISP处获得多条链路时,为了使用户获得最佳的访问体验,需要NGFW能够根据各链路的实时传输质量动态调整流量的分配,此时可以选择此种选路方式。
在这种场景下,需要进行链路质量探测得知链路的好坏情况进行选路。
配置示例:
DNS透明代理
用户在访问网站时,用户先将域名发送到电脑指定的DNS服务器上进行解析,然后再去访问解析完成的IP地址。那么当网络是多出口环境,出口有多个ISP它们各自有各自的DNS服务器,这时用户访问哪个DNS服务器好呢?我们希望的是访问电信的DNS服务器的流量走向电信,访问联通的DNS服务器的流量走向联通,那么就是通过DNS服务器来进行多出口智能选路,我们使用DNS透明代理来解决此问题。
DNS透明代理的实现过程
1.当用户的DNS请求报文到达防火墙时,防火墙首先进行DNS透明代理策略的匹配。
2.报文命中DNS透明代理策略后,防火墙根据路由查询结果选择一个出接口。
3.防火墙使用出接口上绑定的DNS服务器地址替换DNS请求报文的目的地址。
4.DNS服务器将解析后的IP地址发送给用户。
5.用户根据防火墙返回的IP地址进行访问,此时还可以按照防火墙上配置的其他智能选路规则进行访问。
DNS透明代理自身的选路方式高于上文介绍的所有智能选路方式。一般DNS透明代理都会配合其他智能选路方式。