在现实生活中,咱们须要给一我的,好比张三,传递信息或者物品的时候咱们须要知道张三的地址或者手机号或者其它能找到张三的标识。php
同理,在网络中咱们要给张三通信的时候咱们须要知道张三的网络标识;html
在现代网络通信中这个标识就是IPnginx
上图是一个简单的网络示意图web
用户A须要给webserver通信的时候只须要知道对方的IP就好了express
可是某天用户A以为每次都要记住IP那一串数字太单调了,并且用户A有好多个这样的通信记录,每次都得查找通信记录对应的IP才能通信,人生不该该这样无趣。安全
因而用户A为通信录里面的每个联系的对象起了一个名字,可是这时候的名字也只有用户A本身知道,你们都不知道,怎么办?服务器
因而用户A通知了通信录里面的联系人,并跟这些联系人约定了各自的通信名称,为了保证安全、准确、不被篡改、便于查询,用户A跟你们约定选择一个地方存放这份通信目录,因而DNS服务器诞生了。网络
通信场景:dom
当用户A访问 www.loveyou.com 的时候,用户A的电脑就会先查询 www.loveyou.com 对应的通信地址(IP),而后根据通信地址请求所须要的资源。测试
随着蜘蛛网?一每天的扩张,某天用户A发现通信地址(IPv4)不够用了,就跟你们商量着弄一个新的通信地址,因而IPv6就来了。
那么IPv6怎么通信?
小样,不就是改了给马甲,升级了一下吗?我还能不认识?
网络通信的基本要素是不变的,不要看到IPv6就以为很高大上,好像到了另外一个世界,我什么都不知道了,剥了IPv6那层皮,仍是一个样!
那么IPv6的配置需求理清了吗?
一、IPv6地址,点击register注册一个帐户
二、注册完成后须要校验,到填写的邮箱里面点击对应邮件的连接就行
三、登陆后点击左边的Create Regular Tunnel
,在右边填写服务器的IP,点击底部的create Tunnel
就好了
四、建立完成后的页面
五、点击Example Configurations
,选择与服务器对应的操做系统就会自动生成相应的配置了,把自动生成的内容黏贴到/etc/network/interfaces
文件底部就行,这一步就是配置服务器的IPv6地址
六、服务器的IPv6服务默认是关闭的须要手动开启,修改/etc/sysctl.conf
里面的
net.IPv6.conf.all.disable_IPv6 = 1 net.IPv6.conf.default.disable_IPv6 = 1 net.IPv6.conf.lo.disable_IPv6 = 1 改成 net.IPv6.conf.all.disable_IPv6 = 0 net.IPv6.conf.default.disable_IPv6 = 0 net.IPv6.conf.lo.disable_IPv6 = 0
七、配置nginx、express或者其它的web服务支持IPv6就好了
这里以nginx为例:
server { listen 80 default_server; listen [::]:80 default_server; server_name 你的域名; # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. return 301 https://$server_name$request_uri; } server { #使用HTTP/2,须要Nginx1.9.7以上版本 listen 443 ssl http2; listen [::]:443 ssl http2; }
八、重启服务器(应该不须要重启,可是我懒,记不住怎么热加载了)
九、给域名添加IPv6解析
根据DNS提供的解析规则,咱们须要给域名添加一个AAAA的解析,这个解析通常10分钟左右生效
域名配置IPv6地址解析的
$ dig www.xxx.cn AAAA +noall +answer ; <<>> DiG 9.8.3-P1 <<>> www.xxx.cn AAAA +noall +answer ;; global options: +cmd www.xxx.cn. 600 IN AAAA 20XX:4XX:XX:XXX::2
域名没有配置IPv6地址解析的
$ dig www.xxxa.cn AAAA +noall +answer ; <<>> DiG 9.8.3-P1 <<>> www.xxxa.cn AAAA +noall +answer ;; global options: +cmd
十、咱们来测试一下webserver是否支持IPv6
输入刚刚配置的支持IPv6的nginx web域名便可
能够看到nginx相应的web已经支持IPv6了,可是下面有个IPv6 DNS Server
有个提示
This domain has no IPv6 DNS server, this may prevent some IPv6-only users from reaching it.
大意是:解析该域名的DNS服务器是IPv4的DNS server
,不是IPv6的DNS server
,这会致使只支持IPv6的用户不能访问该域名,全部须要一个支持IPv6的DNS server
十一、修改域名解析的DNS服务器
目前万网的域名默认的NDS服务器是IPv4的DNS server,若是要支持IPv6-only,则须要修改DNS服务器
IPv6 DNS server参考连接1,不保证真实性,需自行承担责任
IPv6 DNS server参考连接2,不保证真实性,需自行承担责任
十二、iOS的小伙伴能够愉快的玩耍了
自从2016年5月初Apple明文规定全部开发者在6月1号之后提交新版本须要支持IPv6-Only的网络
iOS APP须要的配置
一、API的域名须要支持IPv6
二、后台须要支持IPv6
三、APP里面须要支持IPv6
四、DNS
服务器可使用IPv4
的DNS
服务器(由于目前大多数网络还不支持全链路IPv6
,使用IPv6
的DNS
服务器有可能解析失败)
一、公司有本身的硬件服务器和防火墙的,须要在防火墙上设置IPv6的nat地址映射,保证用户使用IPv6地址访问的时候可以进入内网。
具体配置方法请查询对应硬件的配置手册,最好是咨询硬件提供商,看看硬件是否支持IPv6的nat配置