IPV4服务器如何支持ipv6访问

原创 2016年09月08日 15:51:13

参考:

https://bbs.aliyun.com/read/285557.html

https://www.aliyun.com/ss/ZWNzIGlwdjY

http://www.ttlsa.com/nginx/nginx-ipv6-configuration/

http://my.oschina.net/blackfish/blog/49946

http://ipv6-test.com/validate.php

http://test-ipv6.com/


1 linux支持ipv6

2 nginx支持ipv6

3 ipv6隧道

4 AAAA域名解析

5 检测服务器IPV6是否失效

6  检测用户是否在IPV6网络环境


IPV4服务器如何支持ipv6访问,需要有几个前提:

1 IPV4公网IP

2 由于IPV4和IPV6两个网络不同不通,所以IPV4与IPV6之间要建立隧道,以便访问

3 服务器要开启IPV6支持,Linux通过修改系统参数实现

4 服务器上的Web服务器,如Nginx要开启IPV6支持

5 服务器要获取IPV6的IP,并做AAAA域名解析


1 linux支持ipv6

https://bbs.aliyun.com/read/285557.html

1编辑 /etc/sysctl.conf 文件,将其中三条禁用IPv6的设置更改为: 

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

2再运行 sysctl -p 的命令,启用IPv6

3. 转到 tunnelbroker.net 网站,在 Example Configurateions 里选择 Linux-route2 的配置方法,示例命令如下:

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 216.218.221.6 local 121.43.110.72 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:18:401::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr


2 nginx支持ipv6

http://www.ttlsa.com/nginx/nginx-ipv6-configuration/

http://my.oschina.net/blackfish/blog/49946

执行脚本:
cd /usr/local/openresty-1.9.7.4

./configure --prefix=/usr/local/openresty--with-ipv6--with-pcre=/usr/local/pcre-8.38 --with-openssl=/usr/local/openssl-1.0.2g --with-zlib=/usr/local/zlib-1.2.8 --with-luajit --with-http_iconv_module --with-ld-opt="-Wl,-rpath,/usr/local/lib"  --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --add-module=./bundle/nginx-http-concat/

gmake

gmake install

编辑nginx.conf

vi /usr/local/openresty/nginx/conf/nginx.conf 

每个server节下:

listen 80;
listen [::]:80 ipv6only=on;


验证:

netstat -lan|grep LISTEN

curl -I -6 localhost6

此时,可通过netstat -tulpn | grep :80命令查看,例如:
tcp 0 0 116.255.153.163:80 0.0.0.0:* LISTEN
tcp 0 0 2001:470:1f04:15c5::2:80 :::* LISTEN

3 ipv6隧道

参考https://bbs.aliyun.com/read/285557.html

转到 tunnelbroker.net 网站,在 Example Configurateions 里选择 Linux-route2 的配置方法,示例命令如下:

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 216.218.221.6 local 121.43.110.72 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:18:401::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr

登录后-》Create Regular Tunnel -》创建时输入服务器的公网IP,例如:182.61.42.67,选择就近的接入点,如新加坡的


然后切换到Tab【Example Configurations】选择Linux Route2,

netsh interface teredo set state disabled
netsh interface ipv6 add v6v4tunnel interface=IP6Tunnel localaddress=182.61.42.67 remoteaddress=216.218.221.42
netsh interface ipv6 add address interface=IP6Tunnel address=2001:470:35:884::2
netsh interface ipv6 add route prefix=::/0 interface=IP6Tunnel nexthop=2001:470:35:884::1


4 AAAA域名解析

增加域名解析,对于同一个域名,可以有同名的A类和AAAA类域名解析。

如我已经有一个域名:A 类 demo.baidu.com 解析到 182.20.30.215 这个IPV4的IP的域名解析

我可以再加一条:AAAA类的demo.baidu.com解析到2001:470:35:884::2这个IPV4的IP的域名解析

知道这样的特性后,我的做法是,用两台服务器A和B,分别作为这个域名的IPV4解析和IPV6解析。

这样,用户在IPV4环境请求demo.baidu.com时,就是请求A服务器;

用户在IPV6环境请求demo.baidu.com时,就是请求B服务器;


5 检测服务器IPV6是否失效

http://ipv6-test.com/validate.php 


测试下来,只要前两项通过即可。


6  检测用户是否在IPV6网络环境

http://test-ipv6.com/


遇到的问题,中间过程磕磕碰碰的,遇到的问题很多:

1 ping不通,打不开网站

  总结下来,这几种情况会导致Ping不通得到的IPV6IP2001:470:35:884::2

a) 我本机没有IPV6网络,即本机没有IPV6IP,通过这个网站测试http://test-ipv6.com/

b)服务器的IPV4防火墙开了(IPV6的防火墙开了没关系),所以暂时我将服务器的IPV4防火墙先关了


2 单点登录passport不能混在一起,混在一起会导致CAS校验失败

所以两个环境分别搭建cas和web服务,如:

A服务器:一个CAS+2个Tomcat服务器

B服务器:一个CAS+2个Tomcat服务器






ipv4-only网络环境下访问ipv6站点的三种方式

苹果2016年5月4日向开发者发出提醒,App Store将于今年6月1日实施全新策略,届时所有提交至苹果App Store的iOS应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6...
  • lvshaorong
  • lvshaorong
  • 2016年08月16日 20:09
  • 23710

【折腾】ipv6 go ipv4折腾记 (1)

校园网ipv4限制流量和带宽,下载东西还要去什么狗论坛,赚金币,真的槽点满满。还好ipv6是没有限制的。本科的时候实验室是随意上网的,可以内网也可以外网,出口IP直接是公网IP,新老校区内外网皆可访问...
  • u013562700
  • u013562700
  • 2017年08月12日 16:36
  • 660

Ipv6上Ipv4的方法

在纯IPv6网络的用户如果需要访问IPv4的网络资源时,一般需要通过第三方软件来实现(Veno\六飞\IPV6VPN等),而现在大家可直接通过支持NAT64/DNS64的服务器,来实现IPv6与IPv...
  • youoran
  • youoran
  • 2012年08月11日 21:44
  • 10303

ipv6和ipv4(1)

20174年7月5日 参考资料: 《Linux高性能服务器编程》        linux-2.6.32源代码 《TCP/IP详解》(卷一)          网络编程最重要的一个环节就是...
  • zy627836411
  • zy627836411
  • 2017年07月05日 15:53
  • 279

阿里云服务器以及CDN支持IPV6的方法

自从AppStore要求必须支持IPv6后,国民感到震惊的同时,也加速了国内的ipv6的普及。 但是国内的服务器托管商(比如阿里云)几乎都不支持IPv6。 本文是博主金亚大王呕心沥血的填坑之旅,亲...
  • EI__Nino
  • EI__Nino
  • 2017年05月07日 15:54
  • 10970

适配IPv6遇到的坑,终极解决方案

6.1AppStore发布之后的应用要兼容ipv6。 然而我上个星期发布的版本并没有因为没兼容而被拒,这次提交却遇到ipv6兼容问题。。。  话不多说,上代码: +(NSString *) get...
  • u010069091
  • u010069091
  • 2016年07月15日 11:36
  • 23964

解决苹果APP审核需要的IPv6地址的问题

起因: 苹果APP上线被驳回,原因是使用WIFI网络+IPv6地址无法登录。   解决问题概述: 网上有很多中办法解决这个问题,部分是通过IPv4转IPv6的办法,并不是真正的IPv6地址...
  • li_201207001
  • li_201207001
  • 2018年01月17日 15:04
  • 74

iOS IPv6测试环境搭建及服务器ipv6测试

可以参考链接:http://blog.csdn.net/qq_30513483/article/details/51496171,了解是个什么情况 自从5月初Apple明文规定所有开发者在6月1号以后...
  • ws1836300
  • ws1836300
  • 2016年08月22日 21:06
  • 14676

在家上用宽带IPv6网站,下载六维,IPv4 to IPv6

家里的电信还没有通IPv6,突然想去六维上面下几部电影(其实想看一下最近的新片出了没有)。 有一些现成的软件就可以使用,但是我总觉的这样不够好,至少要略略知道一点点原理的好。 现成的软件包...
  • atskyline
  • atskyline
  • 2012年01月10日 21:50
  • 39864

socket兼容IPV4、IPV6网络底层connect写法

由于IOS苹果审核需要支持ipv6,我公司手游用的socket底层调用的是C标准库,故在此记录下需要调整修改的地方 这里贴出主要的Connect方法,Connect能连接上了,后面send,recv都...
  • XunMengdQingMao
  • XunMengdQingMao
  • 2016年06月07日 15:02
  • 5728
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IPV4服务器如何支持ipv6访问
举报原因:
原因补充:

(最多只允许输入30个字)