ipv6到ipv4代理搭建方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ipv6到ipv4代理搭建方法相关的知识,希望对你有一定的参考价值。

参考技术A NAT64/DNS64安装手册

NAT64采用tayga实现,DNS64采用bind9.8实现。

1 平台搭建

平台为ubuntu12.04 Desktop版本。正常安装即可。

2 NAT64 (tayga)

2.1 安装

在终端模式下输入

sudoapt-get install tayga

2.2 配置

2.2.1 相关设置

Sudo gedit /etc/tayga.conf

按照说明配置,目前实现方案不需要修改。

2.2.2 创建、启动设备

tayga–mktun

iplink set nat64 up

2.2.3 地址、路由配置

ip addr add192.168.0.1dev nat64(修改为本机IPv4地址)

ip addr add2001:db8:1::1dev nat64 (修改为本机IPv6地址)

ip route add 192.168.255.0/24 dev nat64(不需要修改)

ip route add 2001:db8:1:ffff::/96 dev nat64(不需要修改)

2.2.4 启动IPv4、IPv6转发

sysctl -w net.ipv4.conf.all.forwarding=1

sysctl -w net.ipv6.conf.all.forwarding=1

2.2.5 启动tayga

tayga

可使用tayga –d进入debug模式。

ping6 2001:db8:1:ffff::192.168.0.1((修改为本机IPv4地址))

2.2.6 NAT44 设置

iptables -t nat -A POSTROUTING -s192.168.255.0/24 -j SNAT --to-source192.168.0.1(修改为本机IPv4地址)

iptables-A FORWARD -s 192.168.255.0/24 -i nat64 -j ACCEPT

3 DNS64 bind9

3.1 安装

sudo apt-get install bind9

3.2 配置

sudo gedit /etc/bind/named.conf.options

修改为如下:

options

directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want

// to talk to, you may need to fix the firewall to allow multiple

// ports to talk.Seehttp://www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable

// nameservers, you probably want to use them as forwarders.

// Uncomment the following block, and insert the addressesreplacing

// the all-0's placeholder.

listen-on-v6 any; ;

allow-query any; ;

dns64 2001:db8:1:ffff::/96

clients any; ;

;

forwarders

159.226.8.7;

;

//=================================================================

// If BIND logs error messages about the root key being expired,

// you will need to update your keys.See https://www.isc.org/bind-keys

//================================================================

dnssec-validation auto;

auth-nxdomain no;#conform to RFC1035

listen-on-v6 any; ;

;

修改完成后,输入named.conf查看修改是否成功。

3.3 启动bind9

Bind9默认安装后开机启动。设置完成后,输入

/etc/init.d/bindrestart

4 使用

4.1 Windows

用管理员权限进入cmd,输入

netsh

>interfaceipv6

>add route 2001:db8:1:ffff::/96 "本地连接"2001:db8:1::1(修改为机器的ipv6地址)(为服务器的ipv6地址)

然后设置DNS服务器为NAT64地址即可

4.2 Linux

添加路由

ip route add 2001:db8:1:ffff::/96 via2001:db8:1::1(修改为机器的ipv6地址)

然后设置DNS服务器为NAT64地址即可(为服务器的ipv6地址)

服务器地址:192.168.130.42

2400:dd01:1001:130:250:c2ff:fe23:f051/64

>�0:H�+

阿里云下,在不动生成环境的情况下搭建IPv6站点

目前阿里云所有产品都不支持IPv6 网络,最近苹果审核的更新导致大部分app都无法通过审核。通过收集各位大神的解决方案以及结合公司自身的情况做了一个IPv6的nginx 并反向代理到IPv4的网站,最终成功,简单纪录下操作步骤

 

1、生成环境不做任何改动;

  我们的生成环境使用nginx 作为反向代理,后端挂了大量的应用,如果要动这个牵扯有点大,所以不做任何改动。

2、新增一台服务器(阿里云申请一台1h1g低配主机,并加上公网IP),将这台主机按网上的方案配置成IPv6 ,并安装好nginx ,也要打上IPv6支持 安装配置过程我就不详细描述了。网上教程一大堆,以下是摘自其他大神的操作,在此感谢

  开启IPV6:

  vim /etc/sysctl.conf

  

  vim /etc/modprobe.d/disable_ipv6.conf

   

  vim /etc/sysconfig/network

  

  至此ipv6的服务器端支持已经完成,重启服务器测试是否支持ipv6,重启后, ifconfig查看ipv6的信息,有看到有关IPV6的输出就可以

  

  nginx编译安装 参考 http://www.cnblogs.com/markzm/articles/6780776.html

3、添加ipv6隧道:

  a. 注册Tunnel broker

  https://www.tunnelbroker.net/
  注册很容易,就不讲了,注册需要邮箱验证,,gmail、163能收得到认证邮件,qq还是一样收不到

  b.创建通道“Create Regular Tunnel”

  填写云服务器ip以及选择默认的隧道节点,点击Create Tunnel创建。填写ip都,如果出现“IP is a potential tunnel endpoint.”则证明可以添加ipv6隧道,一般隧道节点系统已经默认分配,可以手动选择,大家可以在自己的云服务器上分别ping一下这些ip,选时延低的。

  

  

  c.创建ipv6隧道及路由

    到下一页面切换到Example configurations选项卡,如果你的VPS是centOS/Debian这些常见Linux的话,下拉菜单选择Linux-net-tools,出现了设置的命令,复制到自己的云服务器上运行。

ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::88.88.88.88
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:47:8:45::2/64
route -A inet6 add ::/0 dev sit1

服务端通过ifconfig看到sit0 和sit1 都起来,说明配置成功

sit0      Link encap:IPv6-in-IPv4
          inet6 addr: ::8.8.8.8/96 Scope:Compat
          inet6 addr: ::10.28.196.233/96 Scope:Compat
          inet6 addr: ::127.0.0.1/96 Scope:Unknown
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

sit1      Link encap:IPv6-in-IPv4
          inet6 addr: fe80::2f5a:4ed5/64 Scope:Link
          inet6 addr: 2001:47:8:45::2/64 Scope:Global
          inet6 addr: fe80::a1c:c4e9/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP  MTU:1480  Metric:1
          RX packets:893582 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1052872 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:228511120 (217.9 MiB)  TX bytes:455369624 (434.2 MiB)

测试IPv6

ping6 -c 5 ipv6.google.com
PING ipv6.google.com(hkg12s13-in-x0e.1e100.net) 56 data bytes
64 bytes from hkg12s13-in-x0e.1e100.net: icmp_seq=1 ttl=58 time=3.16 ms
64 bytes from hkg12s13-in-x0e.1e100.net: icmp_seq=2 ttl=58 time=3.35 ms
64 bytes from hkg12s13-in-x0e.1e100.net: icmp_seq=3 ttl=58 time=3.12 ms
64 bytes from hkg12s13-in-x0e.1e100.net: icmp_seq=4 ttl=58 time=3.29 ms
64 bytes from hkg12s13-in-x0e.1e100.net: icmp_seq=5 ttl=58 time=3.32 ms

--- ipv6.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 3.124/3.252/3.356/0.097 ms

curl -v -6 ipv6.google.com
* About to connect() to ipv6.google.com port 80 (#0)
* Trying 2404:6800:4005:808::200e... connected
* Connected to ipv6.google.com (2404:6800:4005:808::200e) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: ipv6.google.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 28 Apr 2017 03:33:58 GMT
< Expires: -1
< Cache-Control: private, max-age=0

4、设置域名AAAA

  通过域名服务商添加一条AAAA纪录,指向  2001:47:8:45::2 这个IP就是隧道生成的,sit1网卡的IP

5、Nginx服务配置

server {
        listen       [::]:443 ssl;
        server_name  _;
        ssl                  on;
        ssl_certificate      conf.d/*****.com.cn/1.pem;
        ssl_certificate_key  conf.d/*****.com.cn/server.key;
        ssl_session_timeout  5m;
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
        ssl_prefer_server_ciphers   on;
        location / {
                proxy_pass https://www.*****.com.cn;
                proxy_set_header  Host     $host;
                #proxy_set_header Host $http_host;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}

 

至此,所有配置完成。测试  

以上是关于ipv6到ipv4代理搭建方法的主要内容,如果未能解决你的问题,请参考以下文章

iOS搭建IPV6wifi测试网络

本地如何搭建IPv6环境测试你的APP(转)

本地如何搭建IPv6环境测试你的APP

iOS之在本地搭建IPv6环境测试你的app

mac本地如何搭建IPv6环境测试你的APP

无需公网IP,在家使用IPV6和电信光猫进行内网穿透以搭建远程主机