一种使用L2TP协议支持广域网VPN方案的探讨
2013-12-29程昆山黄大君
摘要:L2TP 提供隧道建立或封装,以及第二层验证。L2TP提供了一种远程接入访问控制的手段,其典型的应用场景是:某公司员工通过PPP拨入公司本地的网络访问服务器(NAS),以此接入公司内部网络,获取IP地址并访问相应权限的网络资源。该文通过分析L2TP协议,给出如何利用广域网在总公司与分支机构之间架设VPN应用的方案。
关键词:L2TP;VPN;远程接入
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)12-2774-02
1 L2TP协议简介
L2TP是IETF综合两种已有的隧道协议即Cisco公司的L2F协议与微软公司的PPTP协议而提出的一项具有标准意义的隧道协议。L2TP是对PPP的一种扩展,他依靠利用PPP实现用户身份验证和传输数据。与PPTP不同的是,L2TP使用UDP作为控制消息与数据消息的传输协议。L2TP也是实现VPN的一种重要和有效的方法。VPN使得网络用户访问公司内部网更方便与安全,无论 拨号用户还是其他网络接入方式的用户都可以通过VPN轻松达到这个目的。
2 构建拓扑结构
3 路由器RB中L2TP客户端的配置
路由器RB充当L2TP客户端时,将主动发起协商与远程L2TP服务器建立隧道。
3.1 创建并配置l2tp-class接口
对于L2TP客户端而言,这项配置操作主要用来设置L2TP控制连接的相关参数,是可选的。
其配置内容如下:
1)创建l2tp-class接口
在RB路由器中,l2tp-class接口被主要用于设定L2TP协议的控制连接参数。创建l2tp-class接口,可以在全局模式下执行命令
RB(config)#l2tp-class l2tp-class-name
2)设置L2TP控制连接的时间参数
RB(config-l2tp-class)#receive-windows size
RB(config-l2tp-class)#timeout setup seconds
3)设置L2TP控制连接验证参数
RB(config-l2tp-class)#authentication
RB(config-l2tp-class)#no hostname
RB(config-l2tp-class)#hostname host-name
RB(config-l2tp-class)#password pass-words
3.2 创建并配置pseudowire-class
在RB路由器中,pseudowire-class接口被主要用于设定L2TP数据传输的相关参数。
1)创建pseudowire-class接口
创建pseudowire-class接口,可以在全局模式下执行命令:
RB(config)#pseudowire-class pseudowire-class-name
2)设置L2TP数据传输封装模式
RB(config-pw-class)#encapsulation l2tpv2
3)设置L2TP数据传输IP参数
RB(config-pw-class)#ip dfbit set
RB(config-pw-class)#ip ttl ttl-value
RB(config-pw-class)#ip local interface interface-name
3.3 创建并配置virtual-ppp接口
virtual-ppp接口是L2TP客户端负责与L2TP服务器端建立L2TP会话的接口,对于L2TP客户端而言,这项配置是必须的,它将创建一个指定的L2TP会话。
1)设置virtual-ppp接口
创建virtual-ppp接口,可以在全局模式下执行命令:
RB(config)#interface virtual-ppp number
2)设置pseudowire规则
在virtual-ppp接口上设置建立L2TP会话的pseudowire规则,可以执行命令:
RB(config-if)# pseudowire peer-ip-address vcid {encapsulation l2tpv2}
3)设置IP地址
RB(config-if)#ip address ip-address sub-mask
4)设置身份验证参数
RB(config-if)#ppp pap sent-username username [password encryption-type password]
4 RA路由器中L2TP服务器端的配置
1)设置L2TP控制连接参数
RA(config-vpdn)#l2tp tunnel anthentication \\启用通道验证
RA(config-vpdn)# l2tp tunnel hello internal \\设置hello发送间隔
RA(config-vpdn)# l2tp tunnel password pass-word \\设置通道口令
RA(config-vpdn)# l2tp tunnel receive-windows size \\设置通道控制连接接收窗口尺寸大小
RA(config-vpdn)# l2tp tunnel retransmit {retries number | timeout {min | max} seconds} //设置通道控制消息重传参数
RA(config-vpdn)# l2tp tunne了timeout {no-session | setup} seconds \\设置通道最大的无会话/控制连接建立时间间隔
2)设置L2TP数据传输参数
RA(config-vpdn)# l2tp ip udp checksum \\要求UDP校验和非空
RA(config-vpdn)#ip tos tos-value \\设置IP TOS域
RA(config-vpdn)#ip precedence value \\设置IP Precedence域
参考文献:
[1] 张卫,王能.计算机网络工程[M].北京:清华大学出版社,2004.
[2] Nojeong Heo,Pramod K.Energy-Effieient Deployment of Intelligent Mobile Sensor Networks[J].IEEE Transactions on Systems,MAN,And Cybemetics-PartA:Systems and Humans,2008,35(1):156-162.
[3] 陶利军.构建虚拟专用通道——OpenVPN服务器详解与架设指南:基于Linux[M].北京:清华大学出版社,2012.
[4] 金汉均,汪双顶.VPN虚拟专用网安全实践教程[M].北京:清华大学出版社,2011.