Linode添加IPV6支持

@lianst  October 22, 2015

题外话: 昨天经过大约两三个小时的时间,Linode的XEN母鸡终于维护完成了!

相信了解过Linode的朋友都应该知道Linode提供一个/64的IPV6地址(池),我呢也不能让IPV6白白的躺在那里睡大觉,所以今天就动手把IPV6配置到服务器上面,咱也玩一把高大上。

登陆Linode的后台之后依次进入Linodes » LinodeJP » Remote Access

在这里我们可以看到Linode给我们分配的V6地址,需要说明的是2400:8900::f03c:91ff:fe67:0ebf / 64 这个地址经过跟Linode 的沟通其实可用的只有一个(不知道我理解的对不对,毕竟咱英文不好,有错误的话大家纠正一下。)如果你需要的话他会分配给你一个IPV6块(池),这个IPV6块里面包含4096个可用地址。下图是我给Linode发TK的对话,英文好的可以看一下我的理解对不对。

so,我们正式开始配置。

1、修改/etc/hosts文件

[root@li1069-233 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
2400:8900::f03c:91ff:fe67:0ebf/64 www.lianst.com  //添加这一行                                                                                                                                                  

2、修改 /etc/resolv.conf 增加IPV6 DNS服务器地址(在这里不知道什么情况,重启network后增加的IPV6 DNS地址就没了,但是IPV6依然可以解析,难道Linode的V4 DNS能解析V6地址?有待考究)

[root@li1069-233 ~]# vi /etc/resolv.conf 
options rotate
; generated by /sbin/dhclient-script
search members.linode.com
nameserver 106.187.34.20
nameserver 106.187.35.20
nameserver 106.187.36.20
nameserver 2400:8900::5
nameserver 2400:8900::6
nameserver 2400:8900::7                                                              

3、修改/etc/sysconfig/network 增加IPV6支持

                                 
[root@li1069-233 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
NETWORKING_IPV6=yes

4、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 增加静态IPV6地址

[root@li1069-233 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
IPV6ADDR=2400:8900::f03c:91ff:fe67:0ebf/64     //将你在后台看到的IPV6地址添加到这里面  .
#IPV6_DEFAULTGW=fe80::1  //默认的IPv6网关地址这一行需要注释掉才能正确启用IPv6                     

5、重启网络使配置生效

/etc/init.d/network restart                             

测试IPV6是否可用

6.1 Ping测试

[root@li1069-233 ~]# ping6 ipv6.google.com
PING ipv6.google.com(nrt13s38-in-x0e.1e100.net) 56 data bytes
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=1 ttl=57 time=2.22 ms
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=2 ttl=57 time=2.05 ms
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=3 ttl=57 time=2.05 ms
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=4 ttl=57 time=2.49 ms
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=5 ttl=57 time=1.98 ms
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=6 ttl=57 time=2.54 ms
64 bytes from nrt13s38-in-x0e.1e100.net: icmp_seq=7 ttl=57 time=4.62 ms
^C
--- ipv6.google.com ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6592ms
rtt min/avg/max/mdev = 1.983/2.569/4.622/0.862 ms                                  



6.2 Tracert测试

[root@li1069-233 ~]# traceroute6 ipv6.google.com
traceroute to ipv6.google.com (2404:6800:4004:815::200e), 30 hops max, 80 byte packets
 1  2400:8900:ffff:0:8678:acff:fe0d:95c1 (2400:8900:ffff:0:8678:acff:fe0d:95c1)  0.902 ms  0.897 ms  0.990 ms
 2  2001:268:f702:6d::1 (2001:268:f702:6d::1)  3.844 ms  3.863 ms  3.933 ms
 3  6otejbb206.int-gw.kddi.ne.jp (2001:268:fb13:2::1)  18.416 ms 6otejbb205.int-gw.kddi.ne.jp (2001:268:fb13:2::2)  1.266 ms 6otejbb205.int-gw.kddi.ne.jp (2001:268:fb13:1::1)  1.696 ms
 4  6ix-ote206.int-gw.kddi.ne.jp (2001:268:fb02:124::2)  2.826 ms 6ix-ote206.int-gw.kddi.ne.jp (2001:268:fb02:100::2)  2.461 ms 6ix-ote206.int-gw.kddi.ne.jp (2001:268:fb02:9c::2)  2.276 ms
 5  2001:4860:1:1:0:9d4:: (2001:4860:1:1:0:9d4::)  2.130 ms  2.418 ms  2.089 ms
 6  2001:4860::1:0:8f9a (2001:4860::1:0:8f9a)  2.310 ms  6.273 ms  6.480 ms
 7  2001:4860:0:1::1293 (2001:4860:0:1::1293)  1.824 ms  2.124 ms  1.892 ms
 8  nrt13s38-in-x0e.1e100.net (2404:6800:4004:815::200e)  2.558 ms  2.372 ms  1.903 ms                                    



6.3 查看IPV6路由表

 [root@li1069-233 ~]# route -n -A inet6
Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
2001:418:3ff::53/128                        fe80::1                                 UGDAC 0      184       0 eth0    
2400:8900::/64                              ::                                      UA    256    0        0 eth0    
2400:8900:e000:118::/64                     ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 eth0    
::/0                                        fe80::1                                 UGDA  1024   0        1 eth0    
::1/128                                     ::                                      U     0      72       1 lo      
2400:8900::f03c:91ff:fe67:ebf/128           ::                                      U     0      446       1 lo      
2400:8900:e000:118::/128                    ::                                      U     0      758       1 lo      
fe80::f03c:91ff:fe67:ebf/128                ::                                      U     0      29       1 lo      
ff02::1/128                                 ::                                      UC    0      165       0 eth0    
ff00::/8                                    ::                                      U     256    0        1 eth0                                       


7、配置域名解析
进入你域名DNS解析管理面板添加AAAA解析

8、配置Nginx支持IPV6
由于我是用的是军哥的LNMP一键安装包,所以我只需要小小的修改就行了,至于别的就要靠你自己了。
修改你网站对应的虚拟主机配置文件,并添加IPV6地址。

[root@li1069-233 ~]# vi /usr/local/nginx/conf/vhost/www.lianst.com.conf 
server
    {
        listen 80;
        listen [::]:80;
        listen [2400:8900:E000:0118:0000:0000:0000:0000]:80;
        listen [2400:8900:E000:0118:0000:0000:0000:0001]:80;
        listen [2400:8900:E000:0118:0000:0000:0000:0002]:80;
        server_name www.lianst.com lianst.com;                               

8、测试网站IPV6可访问性
百度、谷歌了一圈才找到一个测试的工具,老费劲了!
在 http://ipv6-test.com/validate.php 页面输入要测试网站域名,单击 validate 按钮,稍等片刻即可知道结果了。

9、参考文献
Linode官方:https://www.linode.com/docs/networking/native-ipv6-networking
水晶一页:https://cnzhx.net/blog/enable-ipv6-on-linode-vps/


添加新评论