冬日温暖 2011-08-26
我目前使用的是网通线路,网通与电信之间的距离堪比天涯海角。正巧有一台H3C 路由器同时接了网通和电信的线路,所以打算在这个设备上配置VPN,使我可以顺畅访问电信网络内部的资源。这台设备型号是H3C MSR 5006,支持L2TP/IPSEC VPN ,不支持PPTP。
我的笔记本跑的是CentOS 6.0, 在Linux上面的L2TP VPN客户端不是很多,GOOGLE了一下觉得xl2tpd + pppd + 密码验证 这个方法实现比较简单,就朝这条路走下去吧,使用xl2tpd + pppd 做客户端连接 H3C MSR 5006 的 L2TP VPN。
路由器上的配置挺容易,与做Windows客户端连接L2TP VPN的方法一样,贴一段配置,如下:
<msr5006>dis cur
#
version 5.20, Release 2104P02
#
sysname msr5006
#
l2tp enable
#
firewall enable
#
domain default enable system
#
dns resolve
dns server 221.6.4.66
dns server 202.102.3.141
#
telnet server enable
#
ip ttl-expires enable
ip unreachables enable
#
dar p2p signature-file flash:/p2p_default.mtd
#
acl number 3001
rule 5 permit ip source 10.58.1.0 0.0.0.255
rule 100 deny ip
#
vlan 1
#
domain system
access-limit disable
state active
idle-cut disable
self-service-url disable
ip pool 1 10.58.1.2 10.58.1.254 #L2TP客户端地址范围
#
user-group system
#
local-user miaotian
password cipher -YSLT1^M6PGQ=^Q`MAF4<1!!
authorization-attribute level 3
service-type ssh telnet
service-type ppp
#
cwmp
undo cwmp enable
#
l2tp-group 1
undo tunnel authentication
mandatory-lcp
allow l2tp virtual-template 0
#
interface Virtual-Template0
ppp authentication-mode pap
remote address pool 1 #L2TP客户端地址使用地址池1
ip address 10.58.1.1 255.255.255.0 #L2TP虚接口地址
#
interface NULL0
#
interface GigabitEthernet0/0
port link-mode route
description link-wan
nat outbound 3001 #从网通网关NAT出
ip address 58.1.1.2 255.255.255.252
ipsec no-nat-process enable
#
interface GigabitEthernet0/1
port link-mode route
ip address 20.1.1.2 255.255.255.252
#
interface GigabitEthernet0/2
port link-mode route
nat outbound 3001 #从电信网关NAT出
ip address 10.218.1.254 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 10.218.1.1 #电信网关
ip route-static 58.0.0.0 255.0.0.0 58.1.1.1 #网通网关
ip route-static 10.0.0.0 255.0.0.0 20.1.1.1 #内部其他网络
#
dhcp enable
#
load xml-configuration
#
load tr069-configuration
#
user-interface con 0
user-interface aux 0
user-interface vty 0 4
authentication-mode scheme
#
return
<msr5006>
使用Windows 自带的客户端,在注册表里禁用IPSEC,重启系统后连接测试成功。正确获得客户端地址10.58.1.x。证明上述配置已经OK。
在笔记本上,用yum安装xl2tpd ,pppd 等做L2TP所必要的包。 CentOS 6上加入EPEL 的YUM源 (可以自己写repo文件,也可以从 http://Fedoraproject.org/wiki/EPEL这里下载RPM包直接安装).
OK,编辑完以后 echo 'c utvpn' > /var/run/xl2tpd/l2tp-control 测试了一下。 VPN 可以正确连接, 虚拟网卡ppp0也出来了, 但是ppp0获得的地址并非
像Windows那样正确获得从VPN 地址池里分配的地址,而是把笔记本的wlan0地址配进了ppp0.
tail /var/log/message 发现,pppd获得的remote ip 正确,为10.58.1.1。 local ip 为 wlan0 的 ip.
在笔记本上telnet 路由器的虚接口地址也可以登录。现在,仅是想实现网通进电信出已经实现了。而我还想访问内网资源。。。也就是10.0.0.0/8里面的内容
这就麻烦了,得每次在不同的地方上网以后根据当前wlan0获得的出口地址在20.1.1.1上加路由,要么就是得让我获得10.58.1.0/24这个子网的地址。