利用NAT64和DNS64技术为网站添加IPv6支持 | Malash’s Blog

利用NAT64和DNS64技术为网站添加IPv6支持 | Malash’s Blog

在IPv4资源越来越紧张,GFW越来越高的情况下,IPv6是大势所趋。

NAT64DNS64流量图

目前对于VPS,可以利用HE IPv6 Tunnel Broker实现网站对IPv6的支持,类似的教程也有很多。但这种实现方法有一定的局限性,第一要求必须是VPS,无法运行shell的虚拟主机等无法实现;第二对虚拟化有一定的要求,对操作系统也有要求,不一定完全支持;第三因为需要root权限,对于合租之类也有其不便之处。
在这里我要介绍一种办法,仅需要在DNS中添加一个AAAA记录即可实现对IPv6的支持,方便快捷。

首先讲一下NAT64和DNS64,这是一种利用DNS欺骗和IP层代理实现IPv6环境下对IPv4网站访问的技术,简单说就是用户指定为特定的DNS时(如2001:778::37),DNS服务器返回一个NAT地址,这样访问这个NAT地址的数据会被转发到IPv4服务器,接受的数据也通过NAT地址返回。目前有一个可用的NAT64DNS64服务器是由立陶宛网络中心维护的(http://ipv6.lt/nat64_en.php),本文开头的图片就是其流量图。

对于纯IPv4服务器,对此稍作改动,即可利用它实现IPv6支持。方法非常简单,只有两步:

第一步,获得原始IPv4地址,可以采用ping也可以使用各种工具。

通过ping得到IPv4地址

通过ping得到IPv4地址(如:54.248.240.2)

第二步,打开DNS记录修改页面,添加一条新纪录,类型是AAAA,主机可以与原IPv4相同也可以填写其他主机,记录值为2001:778:0:ffff:64::后接IPv4地址。保存即可。
添加AAAA记录

添加AAAA记录(如2001:778:0:ffff:64::54.248.240.2)

这样就为网站添加了IPv6支持,尽管目前NAT64DNS64服务器远在立陶宛,但在教育网等环境下访问IPv6的速度还是比较令人满意的。

更新补充几个NAT64/DNS64服务器地址和NAT64前缀:

ipv6.lt

DNS64服务器地址:2001:778::37

NAT64前缀: 2001:778:0:ffff:64::

go6lab.si

DNS64服务器地址:2001:67c:27e4:1002::64

NAT64前缀: 2001:67c:27e4:642::

www.trex.fi

DNS64服务器地址:2001:67c:2b0::4 2001:67c:2b0::6

NAT64前缀: 2001:67c:2b0:db32::