利用OpenVPN连接IPV6孤岛

在较早前的文章 为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/48
vpn隧道建立成功后,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


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

本文烂尾中....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章