用户在进行业务访问时,通常是先发起DNS请求来获得域名的地址解析,然后进行IP报文封装,通过网络进行传送到服务器上。因此DNS服务器的地址解析功能是非常重要的。用户在获得运营商分配的IP地址的同时,会配置一个DNS服务器的地址。对于IPv4用户而言,DNS服务器地址是IPv4地址,用户发起A的DNS请求时报文被送到这个IPv4地址。对于IPv6用户而言,DNS服务器地址是IPv6地址,用户发起AAAA的请求时报文被送到这个IPv6地址。
DNS64是配合NAT64实现IPv4-IPv6互访的关键部件,主要功能是合成AAAA记录和维护AAAA记录。
在NAT64+DNS64场景中,主要分析IPv6用户发起的DNS解析流程。对于IPv6用户而言,用户有可能访问IPv4-only服务器,也有可能访问IPv6服务器,对于访问IPv6服务器的DNS AAAA请求,DNS6服务器会直接返回IPv6地址;对于访问IPv4-only服务器的DNS AAAA请求,DNS6服务器没有记录,需要首先将AAAA的请求转换为A的请求发送到DNS4上进行解析,然后在通过DNS64模块进行地址合成。
对于DNS6、DNS4和DNS64三个功能模块的部署,可以由多台服务器分别实现,也可以由一台服务器整体实现。
如果现网的DNS4服务器不能够直接升级支持DNS6,则需要单独部署一台DNS6服务器并同时配置DNS64软件模块,用于进行IPv6服务器的域名解析以及AAAA的记录合成和维护。
如果现网的DNS64服务器能够直接升级支持DNS6,则仅需要通过软件升级方式,实现DNS4、DNS6和DNS64三个功能模块。
通常DNS64不是以一个单独的设备形式存在,而是一个可以部署在DNS6上的软件模块。
上面提到的A到AAAA的合成是通过DNS64来实现的,是动态的地址合成过程。除此之外,还通过手动配置或者批量添加IPv4服务器的AAAA记录到DNS6服务器上,用户发起访问IPv4-only服务器的AAAA请求直接从DNS6中获得响应。这种方式不需要DNS64进行地址合成,但是需要添加很多的AAAA记录,同时需要考虑在IPv4服务器域名地址变化时,能够自动更新和同步到DNS6中。