pptp支持ipv6,谷歌資料不多,這里整理下
主要用來給ipv4訪問ipv6資源的場景使用,客戶端連接上pptp后會分配得到一個ipv6地址,通過此地址訪問ipv6的資源
客戶端網段在pptp.conf中只能是一個ipv4地址,源碼中寫死了,不支持ipv6,實際測試中,手動給ppp0配置上ipv6地址
你會發現也能通,所以唯一缺少的就是一個動態分配ipv6的機制,這里使用radvd實現。
pptp客戶端不支持連接一個IPv6的服務器,可能是逐漸淘汰了,實際在ipv6的世界里vpn的用處也確實不大,地址很多,完全可以直連
這里有幾點需要注意:
- ipv4和ipv6地址會在ppp0設備上共存,所以pptp.conf中的local_ip和remote_ip還是需要配置的
- 客戶端連接服務器時,options.pptpd 中需要添加+ipv6,否則ppp0上不會有local link address的,會造成radvd報錯
服務器端(安裝和配置pptp的流程忽略)
安裝
yum install ppp pptpd
yum install radvd
修改配置
vim /etc/ppp/options.pptpd
ipv6 ,
開啟ip_forwarding
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
自動分配ipv6地址
vim /etc/radvd.conf-ppp0
interface ppp0
{
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
UnicastOnly on;
prefix 2001:1008::/64 # 這個網段就是客戶端分配到的ipv6網段
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
};
客戶端
安裝服務
yum install NetworkManager
yum install pptp pptp-setup ppp
配置ppp
vim /etc/ppp/options.pptpd
+ipv6
啟動服務
service NetworkManager start
連接pptp
pptpsetup --create xxx --server 172.16.28.43 --username xxx --password xxx --start --encrypt
這里由於pptpsetup不支持ipv6,但是可以使用它來生成配置文件,然后關閉pptpsetup相關進程,
最后使用: pppd call /etc/ppp/peers/xxx nodetach &
遺留問題:
pptp在做身份驗證時會使用/etc/ppp/chap-secrets文件,此文件位置不可指定
使用ipv6時,在連接建立完成后會調用/etc/ppp/ipv6-up和ipv6-down兩個腳本,不可指定位置
參考: