在現實生活中,咱們須要給一我的,好比張三,傳遞信息或者物品的時候咱們須要知道張三的地址或者手機號或者其它能找到張三的標識。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配置