DNS Mapping

前言:       

        在某些应用中,私网用户希望通过域名访问时位于同一私网的内部服务器,而此时用于解析内部服务器的DNS 服务器却位于公网。这样,当用户访问时首先会通过NAT处位于公网的DNS 服务器发出域名解析请求,公网中的DNS 服务器发出响应报文时在数据部分携带的是内部服务器对应的公网IP 地址(也就是在NAT Server 上配置的公网映射IP 地址)。这时如果在NAT Server 上没将DNS 服务器解析的公网IP 替换成内部服务器对应的私网IP 地址,私网用户将无法通过域名访问到内部服务器,因为此时私网用户访问的是公网IP 地址,而实际上服务器是在私网中,IP 地址为私网IP 地址,自然就访问不了。

 

       这个问题可以使用DNS Mapping 方式来解决。其实DNS Mapping 技术是DNS ALG 技术的一种补充技术。在DNS ALG 中,报文中的IP 地址信息直接通过NAT 映射表进行替换,而DNS Mapping 在替换报文数据部分的地址信息时先要通过查找专门配置的“域名-公网IP 地址-公网端口-协议类型”映射表,找到对应域名所映射的公网IP 地址后使用NAT 地址映射表对数据部分的地址信息(还可能包括端口、协议)用内部服务器的私网地址信息(同样还可能包括端口、协议)进行替换。建立“域名-公网IP 地址-公网端口-协议类型”映射表的目录是建立内部服务器的公网域名与其公网地址信息间的对应关系。


       下图所示为DNS Mapping 的基本原理。私网用户Host 希望通过域名方式访问Web服务器,Router 作为NAT Server。当Router 设备收到DNS 服务器发出的响应报文后,先根据其中携带的域名(www.test.com)查找“域名-公网IP 地址-公网端口-协议类型”映射表,找到对应域名所用的公网IP 地址,然后根据NAT 上配置公网IP 地址与私网IP地址的静态映射关系,将报文中的目的IP 地址和数据部分的服务器公网IP 地址(或同时将端口)替换成为Web 服务器的私网IP 地址10.1.1.200(或同时替换端口)。这样,Host 收到的DNS 响应报文中就携带了Web 服务器的私网IP 地址,从而可以通过域名来访问Web 服务器了。

                

上图是以深信服下一代防火墙为例。






猜你喜欢

转载自blog.csdn.net/gk3214/article/details/79405934
DNS