利用OpenVPN连接IPV6孤岛

来源:互联网 发布:淘宝刷手违法要主意了 编辑:程序博客网 时间:2024/04/29 05:26

在较早前的文章 为OpenWrt上的pptp VPN增加IPV6支持 已经实现了通过pptp vpn来连接各个IPV6孤岛,但是在实际的应用中,PPTP VPN的表现实在不尽人意。运营商的各种限制,nat穿透性不好,连接不稳定。做好之后几乎没有正式用过,实属折腾。

沿用这个思路,我又搞了一个基于OPENVPN的,openvpn基本上解决了pptp的各种问题,就是客户端需要另外配置这一点比较蛋疼。至今已用了1年,算是比较稳定。特此记录下来,以便日后参考。

关于OpenVPN的介绍在此省略了,这绝对是一个神奇的软件。把网络层的数据重新封装成应用层包,用应用层(TCP/UDP)协议进行传送数据,使其具有很强的适应能力。无论经过nat还是代理都没有问题,由于协议没有特别的特征运营商也无法针对其进行封杀。

服务端用的是OpenWrt Attitude Adjustment 12.09官方版X86,使用TunnelBroker链接到ipv6的Internet。

客户端用HG255d,刷自行编译的OpenWrt Attitude Adjustment 12.09(实际什么版本关系不大,只要能安装openvpn就可以了)

这里用的是tun模式,主要考虑客户端使用性能较低嵌入式路由器,需要尽可能降低客户端的负担,提高其性能。

基本的工作原理就是当客户端与服务端建立了tunnel以后,利用tunnel的近端地址建立6in4隧道。通过openvpn里面的up/down脚本选项来实现建立隧道的动作。

ipv6地址分配策略:

互联地址使用 x:1y::z/64

路由ip段使用 x:2y::0/64

其中x是48位ipv6前缀,y是客户端互联地址尾数,z是主机地址1是服务端,2是客户端。

例子

48位ipv6前缀 2001:470:8152::0/48vpn隧道建立成功后,ipv4互联地址是服务端198.18.18.97,客户端是198.18.18.98。那么其分配的ipv6互联地址就是服务端 2001:470:8152:198::1/64客户端 2001:470:8152:198::2/64该客户端的路由ip段 2001:470:8152:298::0/64


======邪恶分割线=========

本文烂尾中....