使用IPV6转换服务实现网站的双栈访问

使用IPV6转换服务实现网站的双栈访问

前言

转眼间,一下子就到了 18年底了,距离中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》(以下简称《计划》) 中要求的一些大型网站和省级机构要完成 IPV6 访问兼容已经只有两个月的时间了。

enter description here

但是我们其实还是能看到,整个压力还是非常打的,目前公有云计算上除了阿里云之外基本上其他云提供IPV6能力输出。如果而往往很多政企都会考虑私有云、专有云的模式,这样的话也很难直接获得电信运营商直接提供的 IPV6 接入能力。

阿里云的 IPV6 转换服务正是为这样的情况而生的,专为其他尚不提供 IPV6 的公有云和私有云提供 IPV6 能力输出。

介绍

IPv6转换服务(IPv6 Translation Service),是一种有状态的IPv6和IPv4网络地址与协议转换服务。通过IPv6转换服务,具备公网IPv4地址的服务器可快速面向IPv6网络侧用户提供访问服务。

IPv6转换服务有以下优势:

  1. 高可用,IPv6转换服务集群跨可用区部署,故障时秒级切换。
  2. 可配置的网络能力,支持随时调整实例带宽峰值和条目带宽峰值,带宽的修改即时生效。
  3. 极简配置,购买实例,添加映射规则后即可实现IPv6和IPv4地址和协议转换功能。修改规则实时生效。
  4. 适用性强,需要提供IPv6服务的IPv4服务器不论是在本地数据中心还是在公共云上,只要有公网IPv4地址,都可以使用IPv6转换服务。

实测下来只要是提供固定 IPV4 服务输出的,而且是网络单点的产品都可以用 IPV6转换服务来实现 IPV6。就比如说,服务器可以转,Web应用防火墙也可以转,OSS可以转,这都是单点的。然后 CDN 应为是分布式的,如果转换了就变成单点的了,会让CDN丧失作用,所以不可以转换。

所以整个转换路径是这样的: 如果使用 IPV6 转换服务的话,一定要把它放到面向用户的最前面。

enter description here

教程

这里介绍 WAF 和 服务器两种具有代表性的代理模式。

注意:使用阿里云 IPV6 转换服务需要将域名备案接入阿里云,或者在阿里云完成备案

一、 购买 IPV6 转换服务

进入 https://common-buy.aliyun.com/?spm=5176.11642124.0.0.407c9762ecMNx1&commodityCode=ipv6trans_pre#/buy 购买,这没啥可以说的。

注意地域要选择距离用户和被转换服务器折中的地域。

二、进入控制台,我们可以看到就有我们所创建的实例了

实例IPv6地址 是我们获得的 IPV6 地址,需要添加一条域名的 AAAA 记录到 DNS 中。

实例IPv4地址 是会向我们的 IPV4 服务器或者其他产品进行请求的IP,我们需要在各类防火墙软件中将其加白。

enter description here

三、进入实例,点击 IPv6转换映射条目,再添加IPv6转换映射条目

enter description here

四、输入我们后端的IPV4 IP 就行,基本上只要是IPV4服务都行,但是得确保IP是固定的。

一个映射条目一个端口,基本上80和443我们得添加两条。

正常的HTTP、HTTPS都是 TCP 协议。

enter description here

五、添加IPV6记录的云解析,双栈云解析可能需要DNS支持IPV6,目前权限需要申请。

记录类型,选择 AAAA 是IPv6解析用的

记录值,填写IPv6地址

然后咱们静等解析生效即可。

双栈云解析和普通DNS支持IPV6模式的区别:

enter description here

这样我们就可以实现 IPV4 访客继续原封不动的访问我们原本的网络访问资源,IPV6 访客则通过 IPV6 转换服务实现 IPV6 的友好支持。

WAF 实现 IPV6

那么像 Web应用防火墙 这样的访问如何实现 IPV6 转化呢?

WAF 一般会给一个让我们解析的CNAME域名,那我们 Ping 一下整个域名,得到的 IPV4 地址一般也是固定的,我们可以添加到上门第四步的后端IPV4 地址处即可。

enter description here

enter description here

然后将 WAF 前是否有代理勾上。

enter description here

就可以了,理论上 DDOS 高防也支持,但是应用后防御效果是否生效有待考证,后面会有检测WAF转换是否生效的的教程。

检测

检测话必须通过有 IPV6 地址的服务器进行检测。

一、dig

我们可以通过 dig 命令来查看是否域名已经添加 AAAA 记录并能成功解析:

用法:

dig www.mf8.biz AAAA

示例:

dig www.mf8.biz AAAA

[root@MF8-BIZ-PC ~]# dig www.mf8.biz AAAA

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> www.mf8.biz AAAA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6376
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.mf8.biz.           IN  AAAA

;; ANSWER SECTION:
www.mf8.biz.        600 IN  AAAA    2400:3200:1500::93

;; Query time: 428 msec
;; SERVER: 67.207.67.3#53(67.207.67.3)
;; WHEN: Thu Jun 28 07:28:24 UTC 2018
;; MSG SIZE  rcvd: 68

二、Ping

Ping 检测延时,查看是否互通

用法:

ping -6 www.mf8.biz

[root@MF8-BIZ-PC ~]# ping -6 www.mf8.biz
PING www.mf8.biz(2400:3200:1500::93 (2400:3200:1500::93)) 56 data bytes
64 bytes from 2400:3200:1500::93 (2400:3200:1500::93): icmp_seq=1 ttl=232 time=356 ms
64 bytes from 2400:3200:1500::93 (2400:3200:1500::93): icmp_seq=2 ttl=232 time=341 ms
64 bytes from 2400:3200:1500::93 (2400:3200:1500::93): icmp_seq=3 ttl=232 time=373 ms
64 bytes from 2400:3200:1500::93 (2400:3200:1500::93): icmp_seq=4 ttl=232 time=384 ms
64 bytes from 2400:3200:1500::93 (2400:3200:1500::93): icmp_seq=5 ttl=232 time=387 ms

三、curl

即便解析成功,也能成功互联,也要看看网站是否额能够被访问。

curl -6 https://bbs.mf8.biz/

[root@MF8-BIZ-PC ~]# curl https://bbs.mf8.biz
米饭粑  –  稻粢穱麦,挐黄梁些。