加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

一份完整的 IPv6 环境下 DNS 相关测试

发布时间:2019-07-23 14:26:26 所属栏目:评测 来源:董涛 张欣接
导读:董涛,网易游戏高级运维工程师,主要工作方向为网易集团 DNS 的运维与开发。 张欣接,网易集团 DNS 团队负责人,负责网易域名系统的架构设计及生态建设。 一、IPv6 支持度报告 IPv6 简介 IPv6(Internet Protocol version 6,互联网通信协议第 6 版)是用

优先解析 A 地址记录

参考资料

  • Windows 8 IPv4 与 IPv6 选择的方法:Connecting with IPv6 in Windows8
    (https://blogs.msdn.microsoft.com/b8/2012/06/05/connecting-with-ipv6-in-windows-8/)

  • Windows 当 IPv6 不可用后的回退机制:Is there any setting for connection timeout when IPv6 fallback to IPv4?
    (https://social.technet.microsoft.com/Forums/en-US/d09e938a-a594-4766-8898-3926a81fc5dc/is-there-any-setting-for-connection-timeout-when-ipv6-fallback-to-ipv4?forum=w7itpronetworking)

  • 目前广泛使用的 IPv4 与 IPv6 优先选择算法为 Happy Eyeballs
    (https://en.wikipedia.org/wiki/Happy_Eyeballs):

    • 目前使用此算法的项目有:Chrome, Opera 12.10, Firefox version 13, OS X, cURL

    • 此算法会优先选择 IPv6 链路使用

    • 此算法的原理可参考 RFC 6555(Happy Eyeballs: Success with Dual-Stack Hosts)
      (https://tools.ietf.org/html/rfc6555)

    • 此算法的简略工作流程如下:

    1. 当客户端是双栈环境时,客户端会向缓存 DNS 服务器发起域名 A 记录与 AAAA 记录的解析请求,并受到解析结果,对应下图中的 1-4

    2. 客户端获取到解析地址后,会同时使用 IPv4 与 IPv6 两种链路尝试建立连接,对应下图中的 6-7。当 IPv6 链路比 IPv4 链路先建立连接,或者 IPv4 已经建立连接,但是在很短的时间间隔内,IPv6 也成功建立连接后,则这两种情况下客户端应该使用 IPv6 链路完成后续的网络请求,对应图中的 8-12

一份完整的 IPv6 环境下 DNS 相关测试

测试方法

解析域名

C/ C ++

  • gethostbyname

Linux

  1. #include <stdio.h> 
  2.     #include <netdb.h> 
  3.     #include <arpa/inet.h> 
  4.  
  5.     int main(void) 
  6.         int i = 0; 
  7.         char str[32] = {0}; 
  8.          struct hostent* phost = NULL; 
  9.  
  10.         phost = gethostbyname("IPv6test.ntes53.netease.com"); 
  11.         printf("%s", inet_ntoa(*((struct in_addr*)phost->h_addr)));  
  12.          
  13.         return 0; 
  14.     } 

Windows

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读