论坛的小伙伴们好,强叔又与大家见面了。本期强叔给大家带来一个防火墙新功能——智能DNS的介绍。

在学习新功能智能DNS前,强叔先带小伙伴们看一个防火墙作网关的典型组网。

如下图所示,防火墙USG作为安全网关部署在企业网络出口处。企业内部部署了服务器172.16.22.130。企业从ISP1为服务器申请了IP地址20.1.1.100,希望ISP1的用户通过此地址访问企业内部服务器;企业从ISP2为服务器申请了IP地址30.1.1.100,希望ISP2的用户通过此地址访问企业内部服务器。

如果各位小伙伴看过强叔侃墙NAT,就会发现这个需求是很容易实现的。只需要配置基于zoneNAT Server功能即可(其中安全区域isp1isp2需要新建)。

[USG] nat server zone isp1 global 20.1.1.100 inside 172.16.22.130

[USG] nat server zone isp2 global 30.1.1.100 inside 172.16.22.130

另外大家不要忘记配置黑洞路由啊。

[USG] ip route-static 20.1.1.100 32 NULL 0

[USG] ip route-static 30.1.1.100 32 NULL 0

但是一般情况下,大型企业或者校园都会在内部网络部署自己的DNS服务器,使外网用户能够通过域名访问内部的服务器。

例如本案例中企业内部部署了DNS服务器172.16.17.96。在DNS服务器上存在内部服务器的公网IP地址(20.1.1.10030.1.1.100)与域名(www.test.com)的映射关系。

这时,当一个ISP1的用户访问www.test.com时,报文的交互过程如下:

(1)ISP1的用户首先会向企业的DNS服务器发起DNS查询请求。

(2)DNS服务器会根据本地的映射关系返回两个IP地址(20.1.1.10030.1.1.100)给用户。

(3)用户会随机选择其中一个IP地址作为目的地址对服务器进行访问。如果ISP1的用户不幸的选择到了ISP2的地址(30.1.1.100),那么他只有先绕道到ISP2的网络,然后通过ISP2链路访问企业的内部服务器。这不仅增加了业务访问延迟,还增加了ISP间流量的结算成本。

那么我们该如何避免此悲剧的发生,确保ISP1的用户就是通过ISP1网络访问企业的内部服务器呢?

这就需要用到强叔在本期给大家重点推荐的防火墙新功能——智能DNS了。智能DNS功能在防火墙USG9000V300R100C20USG5500V300R100C20版本开始支持。下面我们就来看智能DNS如何解决上面的问题。

其实智能DNS的实现原理很简单,就是USG能够截取并修改DNS服务器返回给外网用户的应答报文(也就是修改DNS应答报文中的IP地址)。这样做的好处是小伙伴们可以自由控制DNS服务器返回给外网用户的IP地址,具体如下图所示。

这时,当一个ISP1的用户访问www.test.com时,报文的交互过程如下:

(1)ISP1的用户首先会向企业的DNS服务器发起DNS查询请求。

(2)DNS服务器会根据本地的映射关系返回两个IP地址(20.1.1.10030.1.1.100)。

(3)USG会截取DNS应答报文,将其中的两个IP地址(20.1.1.10030.1.1.100)修改成ISP1的地址(20.1.1.100)后,再返回给ISP1的用户。这样ISP1的用户就能够直接通过ISP1网络访问内部服务器了。

为了验证智能DNS功能,强叔给出对比抓包过程:配置智能DNS前在接口GE1/1/11抓包发现DNS应答报文中有两个IP地址(20.1.1.10030.1.1.100)。

配置智能DNS后在接口GE1/1/11抓包发现DNS应答报文中只有ISP1的地址(20.1.1.100)。

同理USG可以修改DNS服务器返回给ISP2用户的DNS应答报文,将其中的两个IP地址(20.1.1.10030.1.1.100)修改成ISP2的地址(30.1.1.100)。

看完实现原理后,强叔再带大家学习下智能DNS的配置。智能DNS的配置也是十分简单的,具体过程如下:

1、  启用智能DNS功能。

[USGdns-smart enable

2、  创建智能DNS组。

[USG] dns-smart group 1 type multi

【强叔点评】智能DNS组分为单服务器(single)和多服务器(multi两种方式。单服务器方式是指内部服务器只映射成了一个ISP的公网地址。多服务器是指内部服务器映射成了多个ISP的公网地址,例如本案例中,内部服务器分别映射成了ISP1的地址和ISP2的地址。

3、  配置智能DNS映射。

将回应给ISP1用户的地址设置为ISP1的地址20.1.1.100

[USG-dns-smart-group-1] out-interface GigabitEthernet 1/1/11 map 20.1.1.100

将回应给ISP2用户的地址设置为ISP2的地址30.1.1.100

[USG-dns-smart-group-1] out-interface GigabitEthernet 1/1/9 map 30.1.1.100

【强叔点评】智能DNS映射是智能DNS的核心配置,实际上就是IPS链路(即接口)与返回给用户的IP地址的绑定。例如GigabitEthernet 1/1/11是连接ISP1网络的链路,因此此接口就需要与ISP1的地址20.1.1.100绑定。

【拍案惊奇】

此案例的惊奇之处在于对比讲解了未配置智能DNS和配置智能DNS的情况,可以使读者加深对智能DNS原理和作用的理解。

此案例的另一惊奇之处在于点出了NAT Server与智能DNS的关系:NAT Server是智能DNS的前提和基础。