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代理搭建方法的主要内容,如果未能解决你的问题,请参考以下文章