大家好,今天蓝胖子花了100多块搞懂了 ipv6的用户如何访问ipv4 服务器,将收获与大家分享下。
ipv4和ipv6的协议栈不同,这意味着,其对应的ip包的封装和解析不同,那么只支持ipv4的机器就无法直接与ipv6的服务器进行通信。但目前已经有越来越多人使用ipv6进行通信,如果仅仅让服务器支持ipv4,这无疑会损失一大部分用户,特别是针对于海外业务。
如何让服务器便捷支持ipv4和ipv6都能同时进行访问,就成了我们需要思考的问题。这里我给出几个靠谱方案来解决此类问题。
首先要知道一个http网络请求的流程,我们获取到网站域名后通过DNS协议向DNS服务商请求网站的ip地址,接着才开始向这个ip发送真正的http请求。
在向DNS服务商发出请求过程中,如果用户客户端只支持ipv6,那么它会去DNS服务器查询域名的AAAA记录,如果用户只支持ipv4,那么会去DNS服务器查询A记录。
AAAA类型的DNS记录里配置的是域名对应的ipv6地址,A类型记录里则是配置域名的ipv4地址。
linux服务器配置ipv6地址
目前,云服务厂商创建的服务器实例,默认是不分配ipv6的,我们可以通过配置,让其拥有一个ipv6公网ip,接着配置一条AAAA类型的DNS记录,指向这个ip,那么ipv6的用户就可以通过域名访问到服务器了。
我们可以将AAAA记录的域名 和 A记录类型的域名配置成一样。如下,
假设,我有个lanpangzi.org
的域名,配置其子域名为www.lanpangzi.org
,并且这个子域名需要同时有ipv4和ipv6的地址,我们就可以对其分别配置A类型和AAAA类型的DNS记录,其中content是对应的公网ip。
这样无论用户是用那种ip协议,都能找到www.lanpangzi.org
的对应ip协议的ip地址。
只要得到了域名背后正确的ip地址,那么用户就能正常访问到服务器了。
标签:ip,域名,ipv4,DNS,ipv6,服务器,搞懂 From: https://www.cnblogs.com/hobbybear/p/18102193