我们东南大学上校外网用的是所谓的BRAS服务,其实是一个L2TP协议的VPN连接,学校网站上明显鄙视LInux用户,配置方法半个字都没提到,昏。 以前在浦口用Ubuntu的时候参考了hellwolf学长的文章配置成功过,后来换用了Arch,又有了一点小问题,昨天搞了一下午,外带一晚上,终于 搞定。这个方法应该适合于所有版本的Linux,呵呵。
Arch的软件库里没有l2tpd的二进制包,因此需要下载源代码进行编译,由于老早就知道l2tpd的代码是赫赫有名的垃圾代码,因此没有直接去 sourceforge下原版 0.69的代码,而是去vmmatrix的debian镜像下载了打过补丁的0.70pre1,原来我在ubuntu下用的是0.70pre1的二进制 包,想来这个源代码应该是没问题的吧,下载了代码和一个补丁文件,patch之后编译,结果大堆的error,据说是因为gcc4比gcc3的语法更严格 了……我昏死……
于是想到换一个daemon试试,先下载了rp-l2tp,编译倒是没问题,可是完全不知道怎么配置……试了半天未果,于是只能删掉。( BTW:rp-l2tp没有提供make uninstall功能,我是又打了make install后根据提示信息手动删除的……累……)
又换成了openl2tp,编译的时候说需要pppol2tp的内核模块,google半天都没找到,最后还是在sourceforge的openl2tp页下面发现了……我真是粗心啊。
装好pppol2tp,再编译openl2tp……失败……
郁闷得快挂掉的时候,我又看了一遍openl2tp的README,在Related Work下发现了一个好东西:
http://www.xelerance.com/software/xl2tpd/
This is a fork of the original l2tpd.org l2tp project.
于是下载过来编译,成功了!
下面具体说一下安装配置过程:
首先当然是要具有root的权限(或用sudo)
1. 下载xl2tpd源码包:
下载 http://www.xelerance.com/software/xl2tpd/xl2tpd-1.04.tar.gz,并存放于/usr/local/src/下
2. 编译安装
在命令行下
#cd /usr/local/src
#tar zxvf xl2tpd-1.04.tar.gz
#cd xl2tp-1.04 注意是“xl2tp”没有d!
#make 也不用./configure
#make install
#cp doc/l2tpd.8 /usr/local/man/man8/
#cp doc/l2tp-secrets.5 /usr/local/man/man5/
#cp doc/l2tpd.conf.5 /usr/local/man/man5/
3. 配置文件
新建/etc/l2tpd/l2tpd.conf,内容为:
[global]
port = 1701
auth file = /etc/l2tpd/l2tp-secrets
access control = no
rand source = dev
[lac seubras]
lns = 202.119.24.55
redial = yes
redial timeout = 15
max redials = 5
require chap = yes
refuse pap = yes
require authentication = yes
name = ddwn_zrc@a // 这一行改成自己的用户名@a
ppp debug = no
pppoptfile = /etc/ppp/options.l2tpd
新建/etc/ppp/options.l2tpd,内容为:
noauth
proxyarp
defaultroute
修改/etc/ppp/chap-secrets,添加一行:
用户名@a * 你的密码 *
将下列脚本保存为/usr/local/sbin/bras-ctrl
#!/bin/sh
case $1 in
route)
GATEWAY=10.3.0.1
{
route add -net 172.16.0.0 netmask 255.240.0.0 gw $GATEWAY
route add -net 202.119.0.0 netmask 255.255.224.0 gw $GATEWAY
route add -net 202.119.144.0 netmask 255.255.240.0 gw $GATEWAY
route add -net 211.65.32.0 netmask 255.255.224.0 gw $GATEWAY
route add -net 202.119.24.55 netmask 255.255.255.255 gw $GATEWAY
route del default
} &> /dev/null
modprobe ip_nat_ftp
;;
start)
echo 'c seubras' > /var/run/l2tp-control
;;
stop)
echo 'd seubras' > /var/run/l2tp-control
;;
*)
echo "Please specify your action: route / start / stop"
;;
esac
这个设置适用于软件学院楼,在其他地方可能需要修改网关地址,并添加对10.3.x.x网段的路由
4.启动与结束
启动守护进程
#l2tpd
再输入
#bras-ctrl route
#bras-ctrl start
就可以连接bras,这时可以ping一下外网试试看。
要断开时,输入
#bras-ctrl stop
注意,如果启动失败的话,可以在l2tpd启动时使用 -D参数输出调试信息以便检查,但这时会占用控制台。
在Arch Linux下,我遇到的情况是,在/dev下没有ppp结点,使l2tpd启动失败(而在Ubuntu 6.06 Dapper下没有这个问题)
解决方法是在运行l2tpd之前输入以下指令:
#mknod /dev/ppp c 108 0
Happy Surfing The Internet!
Arch的软件库里没有l2tpd的二进制包,因此需要下载源代码进行编译,由于老早就知道l2tpd的代码是赫赫有名的垃圾代码,因此没有直接去 sourceforge下原版 0.69的代码,而是去vmmatrix的debian镜像下载了打过补丁的0.70pre1,原来我在ubuntu下用的是0.70pre1的二进制 包,想来这个源代码应该是没问题的吧,下载了代码和一个补丁文件,patch之后编译,结果大堆的error,据说是因为gcc4比gcc3的语法更严格 了……我昏死……
于是想到换一个daemon试试,先下载了rp-l2tp,编译倒是没问题,可是完全不知道怎么配置……试了半天未果,于是只能删掉。( BTW:rp-l2tp没有提供make uninstall功能,我是又打了make install后根据提示信息手动删除的……累……)
又换成了openl2tp,编译的时候说需要pppol2tp的内核模块,google半天都没找到,最后还是在sourceforge的openl2tp页下面发现了……我真是粗心啊。
装好pppol2tp,再编译openl2tp……失败……
郁闷得快挂掉的时候,我又看了一遍openl2tp的README,在Related Work下发现了一个好东西:
http://www.xelerance.com/software/xl2tpd/
This is a fork of the original l2tpd.org l2tp project.
于是下载过来编译,成功了!
下面具体说一下安装配置过程:
首先当然是要具有root的权限(或用sudo)
1. 下载xl2tpd源码包:
下载 http://www.xelerance.com/software/xl2tpd/xl2tpd-1.04.tar.gz,并存放于/usr/local/src/下
2. 编译安装
在命令行下
#cd /usr/local/src
#tar zxvf xl2tpd-1.04.tar.gz
#cd xl2tp-1.04 注意是“xl2tp”没有d!
#make 也不用./configure
#make install
#cp doc/l2tpd.8 /usr/local/man/man8/
#cp doc/l2tp-secrets.5 /usr/local/man/man5/
#cp doc/l2tpd.conf.5 /usr/local/man/man5/
3. 配置文件
新建/etc/l2tpd/l2tpd.conf,内容为:
[global]
port = 1701
auth file = /etc/l2tpd/l2tp-secrets
access control = no
rand source = dev
[lac seubras]
lns = 202.119.24.55
redial = yes
redial timeout = 15
max redials = 5
require chap = yes
refuse pap = yes
require authentication = yes
name = ddwn_zrc@a // 这一行改成自己的用户名@a
ppp debug = no
pppoptfile = /etc/ppp/options.l2tpd
新建/etc/ppp/options.l2tpd,内容为:
noauth
proxyarp
defaultroute
修改/etc/ppp/chap-secrets,添加一行:
用户名@a * 你的密码 *
将下列脚本保存为/usr/local/sbin/bras-ctrl
#!/bin/sh
case $1 in
route)
GATEWAY=10.3.0.1
{
route add -net 172.16.0.0 netmask 255.240.0.0 gw $GATEWAY
route add -net 202.119.0.0 netmask 255.255.224.0 gw $GATEWAY
route add -net 202.119.144.0 netmask 255.255.240.0 gw $GATEWAY
route add -net 211.65.32.0 netmask 255.255.224.0 gw $GATEWAY
route add -net 202.119.24.55 netmask 255.255.255.255 gw $GATEWAY
route del default
} &> /dev/null
modprobe ip_nat_ftp
;;
start)
echo 'c seubras' > /var/run/l2tp-control
;;
stop)
echo 'd seubras' > /var/run/l2tp-control
;;
*)
echo "Please specify your action: route / start / stop"
;;
esac
这个设置适用于软件学院楼,在其他地方可能需要修改网关地址,并添加对10.3.x.x网段的路由
4.启动与结束
启动守护进程
#l2tpd
再输入
#bras-ctrl route
#bras-ctrl start
就可以连接bras,这时可以ping一下外网试试看。
要断开时,输入
#bras-ctrl stop
注意,如果启动失败的话,可以在l2tpd启动时使用 -D参数输出调试信息以便检查,但这时会占用控制台。
在Arch Linux下,我遇到的情况是,在/dev下没有ppp结点,使l2tpd启动失败(而在Ubuntu 6.06 Dapper下没有这个问题)
解决方法是在运行l2tpd之前输入以下指令:
#mknod /dev/ppp c 108 0
Happy Surfing The Internet!