Linux下L2TP网络服务器设计
2011-05-08伸桂林张新有
伸桂林,张新有,李 波
(西南交通大学 信息科学与技术学院,成都 6 10031)
虚拟专用网(VPN)是在公用网络上建立专用网络的技术。它通过依靠ISP和NSP,在公用网络中建立专用的隧道,隧道将原有的数据包封装到新的数据包内部进行传输[1]。VPN的隧道主要可为第2层和第3层隧道,第2层隧道建立在数据链路层上,第3层隧道建立在网络层上。L2TP协议[2]是建立在数据链路层的第2层隧道协议。
1 L2TP隧道协议
L2TP是由点到点隧道协议(PPTP)和第2层转发协议(L2F)综合发展而来,具有二者的优点。即把传统的远程拨号网络结构中的第二层连接的端点和PPP会话端点分开,分别驻留在不同的设备上,通过包交换进行分组网络连接。这种分离使得第2层连接可以在一个电路集中器上终止,通过共享网络扩展逻辑PPP会话,不用在网络访问服务器(NAS)上终止,从而节省昂贵的长途话费。
L2TP能支持IP、IPX、AppleTalk等多种网络层协议,并提供流量控制机制,能够完成输入、输出呼叫功能,提供MD5的加密算法和CHAP[3]竞争握手验证机制来保证关键数据的安全性。
1.1 L2TP原理
L2TP一般采用客户/服务器体系结构,由2个基本构件组成:(1)L2TP访问集中器LAC,用于发起呼叫和建立隧道,将拨号用户的PPP帧封装以后传送到LNS当中;(2)服务器端的L2TP网络服务器LNS,是PPP端系统上用于处理L2TP协议服务器端部分的软件,同时也是所有隧道的终点。LAC将拨号用户的PPP帧封装后,传送到LNS,后者去掉封装包头,取出PPP帧,再去掉PPP帧头,最后获得网络层数据包。
LNS和LAC之间存在着2种类型的连接:(1)隧道(tunnel)连接,在同一对LAC和LNS之间可以建立多个L2TP隧道,隧道由一个控制连接和一个或多个会话连接组成;……
