链路负载均衡之DNS透明代理

一、DNS透明代理

一般来说,企业的客户端上都只能配置一个运营商的DNS服务器地址,DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址,这将导致内网用户的上网流量都集中在一个ISP的链路上转发,最终可能会造成链路拥塞,影响用户的上网体验。同时,由于其他ISP的链路资源没有被使用,也造成了资源的浪费。

为了解决上述问题,可以使用DNS透明代理功能。防火墙配置DNS透明代理功能后,对于命中DNS透明代理策略的DNS请求报文,防火墙会根据DNS请求报文选择的出接口,修改请求报文的目的地址(DNS服务器地址),即将其修改为其他ISP内的DNS服务器地址,DNS请求被转发到不同的ISP,解析后的Web服务器地址也就属于不同的ISP,所以上网流量将通过不同的ISP链路转发,充分利用了所有链路资源。

二、DNS透明代理策略

管理员通过DNS透明代理策略来定义哪些DNS请求报文是否需要代理。DNS透明代理策略的具体规则如下:

①定义DNS请求报文的源和目的地址,默认为any,并执行配置的动作;

②各个匹配条件之间是"与"的关系,与安全策略类似;

③一个匹配条件中如果可以配置多个值,与安全策略类似;

④防火墙可以有多条DNS透明代理策略,DNS请求报文将按照策略的配置顺序依次进行匹配;

⑤只要匹配到其中一条策略,就按照此策略的动作进行处理,不再继续匹配剩余的其他策略。

注意:防火墙默认提供了一个DNS透明代理策略"default",所有报文不做代理,default位于策略列表的最底部,优先级最低。

三、DNS透明代理处理流程

1、DNS请求报文命中DNS透明代理策略后,对于需要做DNS透明代理的报文,防火墙首先判断待解析的域名是否为排除域名:

(1)若是排除域名,防火墙不会做DNS透明代理;

①对于排除域名,若需要更换DNS服务器来解析该域名,则防火墙会将DNS请求报文的目的地址修改为指定DNS服务器的地址。

(2)不是排除域名,防火墙会为报文做一个DNS透明代理标记,此标记用于后续流程的判断。

2、DNS请求报文根据智能选路或者普通静态/动态路由选路选择出接口。

优先级关系为:DNS透明代理自身配置的智能选路方式> 策略路由> 全局选路策略 > 普通静态/动态路由选路。

当出接口上绑定了DNS服务器,且报文有DNS透明代理标记时,防火墙才会做DNS透明代理。两个条件中有一个不满足时,FW都不会做DNS透明代理

注意:

防火墙在每个出接口上最多绑定2个DNS服务器,一个为首选DNS服务器,一个为备用DNS服务器,它们都属于该出接口直连的ISP网络。只有当首选DNS服务器的状态为DOWN时,才使用备用DNS服务器的地址进行替换。

可配置健康检查,检查主用DNS服务器是否故障,当首选DNS服务器和备用DNS服务器都不可用,则DNS透明代理不生效。

四、DNS透明代理配置

某企业分别从ISP1和ISP2租用了一条链路,ISP1链路的带宽为100M,ISP2链路的带宽为50M。ISP1的DNS服务器地址为8.8.8.8和8.8.8.9,ISP2的DNS服务器地址为9.9.9.8和9.9.9.9。内网用户客户端的DNS服务器地址均设置为10.10.10.10。

企业提出对应的需求如下:

①192.168.1.0/24网段内网用户的上网流量按照2:1的比例分配到ISP1和ISP2链路,保证各条链路得到充分利用且不会发生拥塞,提升内网用户的上网体验。

②内网用户访问域名www.example.com时,不做DNS透明代理,但是要在指定的DNS服务器(8.8.8.10)上解析该域名对应的Web服务器地址。

③当一条ISP链路过载(阈值为90%)时,可以使用另一条ISP链路进行流量转发。

1、配置思路

①内网用户的上网流量按照2:1的比例分配到ISP1和ISP2链路,智能选路的方式设置为根据链路带宽负载分担的全局选路策略;

②健康检测(可选,模拟器无法实现,忽略);

③配置接口的IP地址、安全区域、网关地址、带宽和过载保护阈值,并在接口上应用健康检查;

④配置基本的安全策略,允许企业内网用户访问外网资源。

⑤配置ISP选路功能。制作isp1.csv和isp2.csv两个ISP地址文件,并上传到防火墙上;

⑥配置DNS透明代理功能。在出接口上绑定DNS服务器地址,配置DNS透明代理策略来指定做DNS透明代理的流量,并配置要排除的域名;

⑦配置全局选路策略。配置智能选路方式为根据链路带宽负载分担,并指定FW和ISP1、ISP2网络直连的出接口作为智能选路成员接口;

2、配置步骤

①配置ISP1和ISP2链路的健康检查功能;

进入对象------健康检查------新建

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地址、安全区域、网关地址、带宽和过载保护阈值,并在接口上应用健康检查(存在BUG,忽略)

java 复制代码
interface g1/0/1
ip address 1.1.1.1 24
gateway 1.1.1.254
bandwidth ingress 100000 threshold 90
bandwidth egress 100000 threshold 90
healthcheck ISP1_health

interface g1/0/2
ip address 2.2.2.1 24
gateway 2.2.2.254
bandwidth ingress 50000 threshold 90
bandwidth egress 50000 threshold 90
healthcheck ISP2_health
java 复制代码
interface g1/0/0
ip address 192.168.1.254 24

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 any
action permit

④配置ISP选路功能。制作isp1.csv和isp2.csv两个ISP地址文件,并上传到防火墙上

java 复制代码
ip name isp1 set filename isp1.cv
ip name isp2 set filename isp2.cv

ip route-isp isp1 interface g1/0/1 1.1.1.2
ip route-isp isp2 interface g1/0/2 2.2.2.2

⑤配置DNS透明代理功能。在出接口上绑定DNS服务器地址,配置DNS透明代理策略来指定做DNS透明代理的流量,并配置要排除的域名

java 复制代码
[USG6000V1]dns-transparent-policy
[USG6000V1-policy-dns]dns-transparent-policy enable
[USG6000V1-policy-dns]display this
2024-03-04 09:00:45.470 
#
dns-transparent-policy
 rule name DNS_policy
  source-address 192.168.1.0 mask 255.255.255.0
  action tpdns
#
[USG6000V1-policy-dns]dns server bind interface gigabitethernet 1/0/1 preferred 8.8.8.8 alternate 8.8.8.9 health-check enable
[USG6000V1-policy-dns]dns server bind interface gigabitethernet 1/0/2 preferred 9.9.9.8 alternate 9.9.9.9 health-check enable
[USG6000V1-policy-dns]dns transparent-proxy exclude domain www.example.com serve
r preferred 8.8.8.10

⑥配置全局选路策略。配置智能选路方式为根据链路带宽负载分担,并指定FW和ISP1、ISP2网络直连的出接口作为智能选路成员接口

java 复制代码
multi-interface
mode proportion-of-bandwidth
add interface GigabitEthernet 1/0/1
add interface GigabitEthernet 1/0/2
load-balance flow hash source-ip

参考资料:防火墙和VPN技术与实践------李学昭

相关推荐
敲上瘾1 小时前
动静态库的制作与使用(Linux操作系统)
linux·运维·服务器·c++·系统架构·库文件·动静态库
Themberfue1 小时前
UDP/TCP ⑤-KCP || QUIC || 应用场景
网络·网络协议·tcp/ip·计算机网络·udp
HackKong1 小时前
2025年黑客技术之网络安全简介(入门篇)
安全·web安全·网络安全·黑客技术
周山至水数翠峰1 小时前
.net 如何处理网页的Json请求?
服务器·json·.net
路溪非溪2 小时前
计算机网络三张表(ARP表、MAC表、路由表)总结
网络·计算机网络·macos
IT 青年2 小时前
计算机网络 (60)蜂窝移动通信网
计算机网络
Nydia.J5 小时前
【学习笔记】计算机网络(一)
计算机网络·考研
贾贾20237 小时前
配电自动化系统“三区四层”数字化架构
运维·科技·架构·自动化·能源·制造·智能硬件
远方 hi8 小时前
linux如何修改密码,要在CentOS 7系统中修改密码
linux·运维·服务器
资讯分享周10 小时前
过年远控家里电脑打游戏,哪款远控软件最好用?
运维·服务器·电脑