打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux下搭建一个支持IPv6的PPTP VPN
自从上次成功的搞定Linux下的IPv6隧道以后,我一直在想还能怎么玩这个/48的路由。前几天某人需要一个国内的VPN,于是在搭建VPN的时候研究了一下如何在VPN上分配IPv6地址。现在吧过程记录如下:

1.安装一个普通的PPTP VPN,不会的自己去Google,其实不只是PPTP,L2TP或者其他基于pppd的隧道都可以使用下面的方法支持IPv6
2.编辑相应的pppd options文件,比如pptpd的是 /etc/ppp/pptp-options,添加下面的选项:

ipparam pptpd
ipv6 ,

注意ipv6后面是空格和逗号

3.安装radvd,从 http://silmor.de/69 下载tdhcpd
4.新建文件夹/etc/ppp/ipv6-radvd,新建文件/etc/ppp/ipv6-up.d/radvd:

CODE:

#!/bin/sh
if test $PPP_IPPRARM != pptpd ;then
        exit 0
fi

ADDR=$(echo $PPP_REMOTE | cut -d : -f 3,4,5,6)

if test x$ADDR == x ; then
        echo "Unable to generate IPv6 Address"
        exit 0
fi
ADDR=2001:470:8192:BEEF:$ADDR

#add route
route -6 add $ADDR/128 dev $PPP_IFACE

#generate radvd config
RAP=/etc/ppp/ipv6-radvd/$PPP_IFACE
RA=$RAP.conf

cat <<EOF >$RA
interface $PPP_IFACE{
        AdvManagedFlag off;
        AdvOtherConfigFlag on;
        AdvSendAdvert on;
        MinRtrAdvInterval 5;
        MaxRtrAdvInterval 100;
        UnicastOnly on;
        AdvSourceLLAddress on;
        prefix 2001:470:8192:BEEF::/64 {};
};
EOF

#start radvd
/usr/sbin/radvd -C $RA -p $RAP.pid

#start tchdpd
/usr/sbin/tdhcpd \
--dns-server=2001:470:20::2 \
--dns-name=$PPP_IFACE.tunnel.ipv6.icybear.net \
--pid-file=$RAP.dhcp.pid \
--local-id=tunnel.ipv6.icybear.net -L debug\
$PPP_IFACE

#update dns
ARPA=$(ipv6_rev $ADDR)
nsupdate << EOF
update delete $ARPA
update add $ARPA 10 ptr $PPP_IFACE.tunnel.ipv6.icybear.net
send
update delete $PPP_IFACE.tunnel.ipv6.icybear.net
update add $PPP_IFACE.tunnel.ipv6.icybear.net 10 aaaa $ADDR
send
EOF

exit 0
在注意吧里面的2001:470:8192:BEEF 改成你自己要分配的/64地址,但是注意一定要/64的,我试过更小的地址段都不成功,可能是客户端做自动分配地址时是需要使用EUI-64的原因吧。
另外最后的nsupdate那段如果不需要修改dns记录或者根本就没有DNS服务器就可以去掉,不影响。

5.然后是/etc/ppp/ipv6-down.d/radvd:

CODE:

#!/bin/sh
RAP=/etc/ppp/ipv6-radvd/$PPP_IFACE
kill `cat $RAP.pid` || true
kill `cat $RAP.dhcp.pid` || true
rm -f $RAP.*
ADDR=$(echo $PPP_REMOTE | cut -d : -f 3,4,5,6)
ADDR=2001:470:8192:BEEF:$ADDR
ARPA=$(ipv6_rev $ADDR)
nsupdate << EOF
update delete $ARPA
send
update delete $PPP_IFACE.tunnel.ipv6.icybear.net
send
EOF
exit 0
6.现在就可以使用P支持IPv6的PTP客户端(比如Windows Vista以上)获取IPv6地址了,另外需要注意的是如果有内网的话记着添加相应的路由记录,比如我使用OSPFv3路由重分发
参考资料:http://silmor.de/66

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
arm
http://www.linuxidc.com/Linux/2008
二层和三层隧道协议
NAS穿透长城宽带等NAT式的ISP网络接入internet 的方法
搭建企业级防火墙和路由平台 软路由防火墙系统推荐
PPTP、L2TP、IPSec和SSLVPN的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服