前面提到DS-lite对于双栈用户的DNS request是启用DNS-proxy,即将用户的IPv4 DNS终结在家庭网关B4上,再有B4发起DNS request,之所以采用这种方式是因为DS-lite默认B4和AFTR之间的网络是IPv6单栈的,因此将DNS request采用IPv6方式承载。
在NAT64中,双栈用户的IPv4网络和IPv6网络有可能都能访问服务器,用户采用哪种报文格式进行DNS请求和业务转发呢?
典型的双栈系统DNS访问行为如下图所示。首先,双栈主机会同时发起AAAA和A的请求,在部署了DNS44和DNS64的情况下,可以获得AAAA的响应,也可以获得A的响应;然后,主机优先选择IPv6网络进行业务访问,在IPv6网络失败的情况下,再选择IPv4网络进行访问,网络层设备根据主机发起的数据包类型采用相应的协议进行承载。
上述流程,用户是先发起IPv6访问,再IPv6网络不可用时,再选择采用IPv4网络访问,增加了用户业务等待时间,降低了业务体验。为了解决这个问题,将典型的双栈系统进行了优化,即双栈终端同时发起TCP SYN IPv6和TCP SYN IPv4过程。
当IPv6网络不可用时,优化后的流程如下图所示:当用户在规定时间内仅收到IPv4网络相应,则发起IPv4承载。
<