在較早前的文章 爲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
======邪惡分割線=========
本文爛尾中....