作者:华东区技术工程师崔鲁沛
注:此命令只适用于windows电脑,Mac OS和windows server不适用
AG 为管理员提供了DNS 过滤规则,可以为分配了指定 Netpool 的最终用户定制DNS 解析流程。当 代理 连接建立时, DNS 过滤规则将与 Netpool 一起被分配给最终用户。当最终用户访问由域名指代的资源时, SSL 代理 客户端将根据 DNS过滤规则执行 DNS 解析流程。
AG 支持两种类型的 DNS 过滤规则:
01
虚拟 DNS 过滤规则
配置虚拟 DNS 过滤规则后,如果待解析的域名匹配该过滤规则, SSL 代理 客户端将只使用虚拟 DNS 服务器进行 DNS 解析。如果不匹配, SSL 代理 客户端将执行常规 DNS 解析流程(flag=0)或者根据虚拟DNS 过滤规则的设置只使用本地 DNS 服务器(flag=1)进行 DNS 解析。
测试命令如下:
当只需要访问几个特定的内网域名时,使用虚拟DNS解析
代理 netpool dns filter virtual "pool" "*.17ce.com" 1 ——(flag=1)
客户端解析*.17ce.com,只用虚拟DNS解析,其他域名只用本地DNS解析。
流程图如下:
代理 netpool dns filter virtual "pool" "*.17ce.com" 0 ——(flag=0)
客户端解析*.17ce.com,只用虚拟DNS解析,其他域名使用常规DNS解析(第五到八步)。
流程图如下:
02
本地 DNS 过滤规则
配置本地 DNS 过滤规则后,如果待解析的域名匹配该过滤规则, SSL 代理 客户端将只使用本地 DNS 服务器进行 DNS 解析。如果不匹配, SSL 代理 客户端将执行常规 DNS 解析流程(flag=0)或者根据本地DNS 过滤规则的设置只使用虚拟 DNS 服务器(flag=1)进行 DNS 解析。如果没有配置虚拟或本地 DNS 过滤规则, SSL 代理 客户端将执行常规 DNS 解析流程。
测试命令如下:当只需要访问几个特定的内网域名使用本地DNS解析时
代理 netpool dns filter local "pool" "*.baidu.com" 1 ——(flag=1)
客户端解析“*.baidu.com”,只使用本地DNS解析,其他域名只使用虚拟DNS解析
流程图如下:
代理 netpool dns filter local "pool" "*.baidu.com" 0 ——(flag=0)
客户端解析“*.baidu.com”,只使用本地DNS解析,其他域名使用常规DNS解析。
流程图如下:
当同时配置了虚拟和本地 DNS 过滤规则时:
▲ 如果域名匹配了虚拟 DNS 过滤规则,该虚拟 DNS 过滤规则将生效。
▲ 如果域名不匹配任何虚拟 DNS 过滤规则但是匹配本地 DNS 过滤规则,本地DNS 过滤规则将生效。
▲ 如果域名不匹配任何虚拟或本地 DNS 过滤规则,但存在 flag=1 的虚拟 DNS过滤规则,该虚拟 DNS 过滤规则将生效。
▲如果域名不匹配任何虚拟或本地 DNS 过滤规则,但存在 flag=0 的虚拟 DNS过滤规则, SSL 代理 客户端将执行常规 DNS 解析流程。
常规DNS解析
常规DNS解析流程图如下:
代理 连接后,由 SSL 代理 客户端执行的常规 DNS 解析流程如下:
1. SSL 代理 客户端首先尝试使用虚拟 DNS 服务器执行 DNS 解析。
2. 如果来自于虚拟 DNS 服务器的响应超时,SSL 代理 客户端将接着尝试使用本地 DNS 服务器执行 DNS 解析。
管理员可以根据网络环境为虚拟或本地 DNS 服务器配置超时时间。对于往返时延(Round-Trip Time, RTT)非常大的 3G/WIFI 网络,应相应增加 DNS 超时时间。此外,用户可以自己在 SSL 代理 客户端上设置超时时间。