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两个脚本,不可指定位置
参考: