IPv4+OpenVPN实现IPv6访问

2011年8月3日 分类: 网来往事

IPv4资源已经从好久前就已经枯竭,天朝电信等ISP丝毫没有加入IPv6支持的打算,怎样才能在IPv4环境下访问IPv6资源呢?本文将着重介绍。

说下配置环境:Centos+OVPN服务端,Win7作为客户端

参考配置的文章有这篇这篇这篇这篇这篇

其他要求:服务器要支持IPv6,要有大量的时间调试。

实现效果如下:

image

 

首先,先在VPS面板启用IPv6支持,记录下本机的IP

image

然后到HE创建一个tunnel,创建过程不表,界面留着别关。

image

上图为很重要的配置页面,切记留住

下面回到shell

vi /etc/sysconfig/network

加入以下内容:

NETWORKING_IPV6=yes

IPV6_DEFAULTDEV=sit1

保存,创建/etc/sysconfig/network-scripts/ifcfg-sit1

输入以下内容:

DEVICE=sit1
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=HESupplied-ServerIPv4address
IPV6ADDR=HESupplied-ClientIPv6address

第一段高亮是HE的服务器IPv4地址,第二段是客户端IPv6地址,分别填写,注意别把/64也写进去了

解释一下,上面是添加一个sit1的接口和HE的tunnel通信。

启用这个接口执行:

ifup sit1

无回显则正常。

重启网络服务:

/etc/init.d/network restart

要确保无错误才正常

然后启用IPv6转发支持:

在 /etc/sysconfig/network中,加入:

IPV6FORWARDING=yes

在/etc/sysconfig/network-scripts/ifcfg-eth0中,加入:

IPV6_ROUTER=yes

编辑转发选项(千万别和IPv4的转发混了,然后忘了添加):

vi /etc/sysctl.conf

加入以下内容:

net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding=1

执行:

sysctl -p

/etc/init.d/network restart

当重启网络服务时,这时候不应该再看见有如下错误:

Bringing up interface eth0:  Global IPv6 forwarding is disabled in configuration, but not currently disabled in kernel
Please restart network with ‘/sbin/service network restart’

然后构建OVPN,具体不在这篇文章讨论范围内。在服务器配置文件中,加入如下几行:

script-security 2
client-connect /etc/openvpn/client-connect.sh
client-disconnect /etc/openvpn/client-disconnect.sh

保存,编辑/etc/openvpn/client-connect.sh
输入:

#!/bin/bash

# This is a script that is run each time a remote client connects
# to this openvpn server.
# it will setup the ipv6 tunnel depending on the ip address that was
# given to the client

BASERANGE="2001:470:baa2" ##你的48位的ipv6地址块前缀,见图
# v6net is the last section of the ipv4 address that openvpn allocated
V6NET=$(echo ${ifconfig_pool_remote_ip} | awk -F. ‘{print $NF}’)

SITID="sit${V6NET}"

# setup the sit between the local and remote openvpn addresses
/sbin/ip tunnel add ${SITID} mode sit ttl 64 remote ${ifconfig_pool_remote_ip} local ${ifconfig_local}
/sbin/ip link set dev ${SITID} up

# config routing for the new network
/sbin/ip -6 addr add ${BASERANGE}:${V6NET}::1/64 dev ${SITID}
/sbin/ip -6 route add ${BASERANGE}:${V6NET}::/64 via ${BASERANGE}:${V6NET}::2 dev ${SITID} metric 1

# log to syslog
echo "${script_type} client_ip:${trusted_ip} common_name:${common_name} local_ip:${ifconfig_local} \
remote_ip:${ifconfig_pool_remote_ip} sit:${SITID} ipv6net:${V6NET}" | /usr/bin/logger -t ovpn

切记修改。

编辑/etc/openvpn/client-disconnect.sh
输入:

#!/bin/bash

# This is a script that is run each time a remote client disconnects
# to this openvpn server.

BASERANGE="2001:470:baa2"
# v6net is the last section of the ipv4 address that openvpn allocated
V6NET=$(echo ${ifconfig_pool_remote_ip} | awk -F. ‘{print $NF}’)

SITID="sit${V6NET}"

/sbin/ip -6 addr del ${BASERANGE}:${V6NET}::1/64 dev ${SITID}

# remove the sit between the local and:q

#remote openvpn addresses

/sbin/ip link set dev ${SITID} down
/sbin/ip tunnel del ${SITID} mode sit ttl 64 remote ${ifconfig_pool_remote_ip} local ${ifconfig_local}

# log to syslog
echo "${script_type} client_ip:${trusted_ip} common_name:${common_name} local_ip:${ifconfig_local} \
remote_ip:${ifconfig_pool_remote_ip} sit:${SITID} ipv6net:${V6NET} duration:${time_duration} \
received:${bytes_received} sent:${bytes_sent}" | /usr/bin/logger -t ovpn

黄字部分切记修改,见HE配置修改。

然后配置权限:

cd /etc/openvpn/

chmod 777 ./*

killall openvpn杀死OVPN进程后,重载配置文件,连接一遍VPN,看是否连得上。

连上OVPN后,在shell执行ifconfig -a 应该能看见除了sit1外的sit接口,例如sit6等等。

回到客户机,打开cmd,逐条输入以下指令:

netsh interface ipv6 add v6v4tunnel interface=IP6Tunnel 10.168.1.6 10.168.1.1
netsh interface ipv6 add address IP6Tunnel 2001:470:baa2:6::2/64
netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:baa2:6::1

黄字部分是需要修改的,网段是OVPN分配的网段,2001:470:baa2:6::1是由ifconfig -a命令查得sit接口的IPv6地址得到的,两个地址保持前缀一致,后面的::2和::1不需要一致。

连上OVPN,正常来说,ping一下ipv6.google.com 就会通了,如果不通,但是能解析出IPv6的IP,则说明是上述CMD命令有问题,应该删除后重新建立,否则会因为不会到达下一跳,出现ping不通,可以解析的问题。但是同时要区别于IPv6 forward配置有误,IPv6 forward配置错误但是本地客户端无误,则应该出现可以ping通服务器本机的IPv6地址,ping不通其他地址的问题。

 

配置过程中还出现过“OpenVPN: script failed: could not execute external program”之类的问题,均是由于教程不全面导致的奇奇怪怪的问题,均已经在本文修正,如果在配置过程中发现有其他问题,应该理清思路,逐点排查,将错误定位在最小的范围内,才有希望能解决。

标签: ,

40 条评论 于 “IPv4+OpenVPN实现IPv6访问”

  1. 2011年8月3日19:00
    1
    ChromePlus 1.6.2.0 ChromePlus 1.6.2.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24 ChromePlus/1.6.2.0

    至于你用不用,反正我是不用。。

  2. 2011年8月3日19:43
    2
    Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows 7 Windows 7
    Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

    这么长的教程我还是懒得了… /cute
    电信转到ipv6还是任重道远呀,我还是等电信吧,毕竟现在影响不大~

  3. 2011年8月3日20:34
    3
    Safari 5.1 Safari 5.1 Mac OS X  10.7 Mac OS X 10.7
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3

    自己搭建IPV6服务器呢,不错的说…
    偶原来用Teredo隧道走IPV6.后来放弃了…

  4. 2011年8月3日23:05
    4
    Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

    翻墙搞这么麻烦啊

  5. 2011年8月3日23:11
    5
    Safari 5.1 Safari 5.1 Mac OS X  10.7 Mac OS X 10.7
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3

    说起来网络强大的霓虹好像在IPv6这个问题上比兲朝还龟速www(虽然偶不否认一方面是因为IPv4在霓虹目前暂时还没有太显著的缺陷

    • 灵曦
      2011年8月9日23:22
      6
      Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

      教育网IPv6建设是很不错的,很多网内资源都能让网卡满负载的跑。。

  6. 2011年8月4日16:16
    7
    Firefox 5.0.1 Firefox 5.0.1 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1

    比IP4 快吗?快了 就折腾下

  7. 2011年8月4日19:55
    8
    Maxthon 3.0 Maxthon 3.0 Windows 7 Windows 7
    Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12

    高校普遍存在IPv4地址浪费现象= =BS

  8. 2011年8月4日22:54
    9
    Firefox 5.0.1 Firefox 5.0.1 Windows 7 Windows 7
    Mozilla/5.0 (Windows NT 6.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1

    看不出来有什么好处,不过闲的蛋疼可以研究研究~

  9. 2011年8月5日22:52
    10
    Sogou Explorer Sogou Explorer Windows 7 Windows 7
    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; QQDownload 691; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; SE 2.X MetaSr 1.0)

    我们的校园网好像只有我所在的 /nnmm 这栋楼不能用ipv6的

  10. 2011年8月6日14:09
    11
    Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

    /qiuda 天朝为何不支持IPV6

    • 灵曦
      2011年8月9日23:23
      12
      Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

      GFW不支持IPv6

  11. 2011年8月6日17:54
    13
    Google Chrome 12.0.742.91 Google Chrome 12.0.742.91 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30

    …. 记得he.net .有免费 的。。 但是悲剧。。。 每次换ip 都要。。。 呜呜我家无线路由不支持 呜呜。。。

    • 灵曦
      2011年8月6日18:32
      14
      Wordpress App 2.8.3 Wordpress App 2.8.3 iPhone iPhone
      wp-iphone/2.8.3

      似乎我这篇文章也可以作为你这个问题的解决方案吧…某人你认真看了么…

      • 2011年8月6日18:58
        15
        Google Chrome 12.0.742.91 Google Chrome 12.0.742.91 Windows XP Windows XP
        Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30

        /haixiu /haixiu 怎么说。。。。 反正能ping 得到v6 的IP 可是就是不通。。。。。。呜呜 无限路由不支持吧。。。 /nnmm

  12. 2011年8月6日19:24
    16
    Google Chrome 12.0.742.91 Google Chrome 12.0.742.91 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30

    /qiuda /qiuda /qiuda /qiuda /qiuda /qiuda /qiuda

  13. 2011年8月6日20:13
    17
    Google Chrome 13.0.782.109 Google Chrome 13.0.782.109 Windows 7 Windows 7
    Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.109 Safari/535.1

    试用过,感觉某东西真的完全不存在了~~

    不过这样设置起来好麻烦~而且网速方面。。。。

    • 灵曦
      2011年8月9日23:23
      18
      Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

      网速完全没有V6的快感啊= =

  14. 2011年8月7日15:04
    19
    Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

    嘿嘿,你上次提供给我的VPN账号现在还能用吗?我最近都没有机会上网额。。。。

  15. 2011年8月8日22:04
    20
    Firefox 5.0 Firefox 5.0 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0

    萝莉是祖国的未来啊

  16. 2011年8月9日13:48
    21
    Google Chrome 13.0.782.109 Google Chrome 13.0.782.109 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.109 Safari/535.1

    /sleep /sleep 感觉很复杂啊。看不懂哦!!!

  17. 2011年8月9日16:41
    22
    TheWorld Browser TheWorld Browser Windows XP Windows XP
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; TheWorld)

    这个不错,学习了。

  18. 2011年8月9日17:07
    23
    Firefox 5.0 Firefox 5.0 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0

    折腾过IPV6,不过还是V4,你固定链接好个性啊!

  19. 2011年8月9日19:24
    24
    Internet Explorer 9.0 Internet Explorer 9.0 Windows 7 Windows 7
    Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

    暑工结束了吧。天天看你在网上。

    • 灵曦
      2011年8月9日23:24
      25
      Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

      工厂老是做几天放几天的,干脆不去了。

  20. 2011年8月9日19:40
    26
    Google Chrome 14.0.835.15 Google Chrome 14.0.835.15 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.15 Safari/535.1

    感觉IPv6有点难习惯 ╮(╯▽╰)╭,不过的确是非常强大的,恩,找个时间折腾一下。

    • 灵曦
      2011年8月9日23:24
      27
      Google Chrome 13.0.782.107 Google Chrome 13.0.782.107 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

      我表示看不懂IPv6地址啊= =

  21. yuehchai
    2011年9月17日17:04
    28
    Safari 5.1 Safari 5.1 Mac OS X  10.6.8 Mac OS X 10.6.8
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50

    windows可以通过GOGO6入IPv6(这几天貌似有问题),mac就悲剧了⋯⋯

  22. 2011年10月21日10:51
    29
    Internet Explorer 8.0 Internet Explorer 8.0 Windows 7 Windows 7
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

    很难相信这是高中生写出来的博文
    你确信不是转摘的?是自己学习整理出来的?
    IPV6早已经在高校启用,单单只是校园网是IPV6出局还是IPV4,现在很多高校也架设了较多的IPV6服务器供学生资源查询
    如果这是高中生写的,真的需要多聊聊了

    • 灵曦
      2011年10月21日23:51
      30
      Google Chrome 14.0.835.202 Google Chrome 14.0.835.202 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1

      嘻嘻,千真万确是自己写的哈,折腾了一个下午呢~其实现在IPv6的应用真的不广泛,v6的资源也不是特别稀有的那种,主要是国内除了221工程外都不给普及。。因为IPv6的话GFW防不住,哈哈。想交流的话当然欢迎啦~~

  23. 2012年8月5日17:06
    31
    Google Chrome 21.0.1180.60 Google Chrome 21.0.1180.60 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.60 Safari/537.1

    我本地连上了openvpn,但是显示无internet访问,试了各种方法都不行,你有遇到过么?

    • 灵曦
      2012年8月5日19:32
      32
      Google Chrome 19.0.1049.3 Google Chrome 19.0.1049.3 Windows 7 Windows 7
      Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/19.0.1049.3 Safari/535.22

      先ping下服务器IP看通不通,不通就在本地找原因,因为连得上不能访问internet最起码还能和服务器通信的,通的话要检查服务器的IPv4转发部分,多打几次命令确认一下,或者重启下服务器什么的,都是可以的~

      • 2012年8月7日16:24
        33
        Google Chrome 21.0.1180.60 Google Chrome 21.0.1180.60 Windows 7 x64 Edition Windows 7 x64 Edition
        Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.60 Safari/537.1

        嗯嗯,已经找到问题的解决办法了。 /yang

        • 灵曦
          2012年8月7日19:11
          34
          Google Chrome 19.0.1049.3 Google Chrome 19.0.1049.3 Windows 7 Windows 7
          Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/19.0.1049.3 Safari/535.22

          怎么解决的哇?

          • 2012年8月7日20:00
            35
            Google Chrome 21.0.1180.60 Google Chrome 21.0.1180.60 Windows 7 x64 Edition Windows 7 x64 Edition
            Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.60 Safari/537.1

            重装,我的是因为OPENVPN不支持IPV6地址导致的,现在唯有重装OPENVPN 2.3 内测版才能解决问题。

            • 迷失De信仰
              2013年3月9日13:18
              36
              Firefox 19.0 Firefox 19.0 Windows 7 x64 Edition Windows 7 x64 Edition
              Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0

              这个2.3的openvpn ipv6的配置文件怎么设置?
              话说服务器弄好了jjo的ipv6 openvpn就一直没动。

  24. 迷失De信仰
    2013年3月9日13:16
    37
    Firefox 19.0 Firefox 19.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0

    话说,如果服务器端是jjo补丁编译的ipv6 openvpn
    是不是开启ipv6的端口转发就行了?

    • 灵曦
      2013年3月9日13:20
      38
      Google Chrome 25.0.1364.152 Google Chrome 25.0.1364.152 Windows 8 Windows 8
      Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22

      抱歉,我没有接触过jjo补丁编译的ipv6 openvpn,我用的环境是openvpn原生的安装包,不知道jjo补丁的和原生有什么区别所以给不了你其他答复。

灵曦

/qy /sy /hx /hp /cj /hz /yang more »