科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道DNS支持IPv6的障碍--512Byte问题

DNS支持IPv6的障碍--512Byte问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

IPv6的普及离不开DNS对IPv6的支持。目前, 通过DNS发出路由服务器地址请求时,就会接收到在全球运行的13台路由服务器的域名和IPv4地址。

作者:中国IT实验室 2007年9月5日

关键字: TCP/IP TCP/IP协议 TCP/IP设置 网络协议 IPv6 IPSEC IP网络

  • 评论
  • 分享微博
  • 分享邮件

IPv6的普及离不开DNS(域名系统)对IPv6的支持。管理日本域名的DNS服务器已经开始支持IPv6。不过,位于其上游、管理路由域名的服务器(路由服务器)在这一方面却相对滞后。其原因就是存在“512Byte问题”。此次我们就来探讨一下DNS支持IPv6方面的障碍——“512Byte问题”。

DNS是负责根据域名分配IP地址的系统。在DNS标准中,数据量均控制在512Byte以下,通过一个UDP数据包进行传输。

目前, 通过DNS发出路由服务器地址请求时,就会接收到在全球运行的13台路由服务器的域名和IPv4地址。服务器之所以为13台,是因为其数量受到DNS可交换数据量--512Byte的限制。也就是说,仅有13份域名和IPv4地址的话,还勉强可以控制在512Byte以内的容量内。

DNS不能通过UDP传输超过512Byte的数据。这就是所谓的“512Byte问题”。

如果DNS支持IPv6的话,在请求的应答当中,IPv6地址就会与IPv4地址一起发送过来。在请求路由服务器地址时,除13份的域名和IPv4地址外,还需要发送13份的IPv6地址。这样一来,返回的信息量自然就超过了512Byte。

DNS服务器在交换超过512Byte的数据时采用TCP代替UDP。但是,采用TCP会增大DNS服务器的负荷。这是因为需要进行TCP连接的确立和切断等处理。假如位于域名上游的所有路由服务器均由于高负荷的TCP处理而导致性能下降,那么整个DNS就会停止工作。这一点是采用TCP无论如何也无法避免的。

那么,管理日本域名的DNS服务器为什么可以支持IPv6呢?这是因为通过在登录到上游路由服务器的信息上采取措施,将应答数据包的容量控制在了512Byte以内。在将日本域名登录至路由服务器时,需要登录的服务器只有6台,减少了需要登录的路由服务器数量,此外,还将这些域名统一缩短为a.dns.jp和b.dns.jp等。

不过,从根本上解决512Byte问题的方案也已经亮相。人们已开始利用旨在通过UDP帮助DNS交换超过512B的数据的“EDNS0(Extension Mechanisms For DNS Version 0)”。使用EDNS0,在向DNS发出请求时,可以通知对方自己可接收的UDP数据包的最大数据容量。使用这一功能,就可以通过一个UDP数据包来交换超过512Byte的数据。应用最广泛的DNS服务器软件“BIND”的最新版本Version 9即可支持EDNS0。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章