L2TP原理及应用 v10.docx

上传人:b****7 文档编号:25327682 上传时间:2023-06-07 格式:DOCX 页数:52 大小:475.42KB
下载 相关 举报
L2TP原理及应用 v10.docx_第1页
第1页 / 共52页
L2TP原理及应用 v10.docx_第2页
第2页 / 共52页
L2TP原理及应用 v10.docx_第3页
第3页 / 共52页
L2TP原理及应用 v10.docx_第4页
第4页 / 共52页
L2TP原理及应用 v10.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

L2TP原理及应用 v10.docx

《L2TP原理及应用 v10.docx》由会员分享,可在线阅读,更多相关《L2TP原理及应用 v10.docx(52页珍藏版)》请在冰豆网上搜索。

L2TP原理及应用 v10.docx

L2TP原理及应用v10

 

L2TP原理及应用

L2TP原理及应用[目录]1

1关于VPN(VirtualPrivateNetworks)3

1.1VPN简介3

1.2VPN网络的结构4

1.3VPN协议的分类5

2关于L2TP6

2.1L2TP简介6

2.2L2TP网络构成6

3.2L2TP协商交互过程8

3.2.1L2TP建立流程8

3.2.2L2TP隧道的维护9

3.2.3L2TP隧道拆除9

3.2.4其他9

4L2TP/VPN的应用(配置与调试信息)10

4.1IntranetVPN应用,这也是最常见的L2TP应用环境:

10

4.1.1实验环境:

10

4.1.2Config配置!

10

4.1.3L2TP隧道和端口的状态信息(静态):

11

4.1.4L2TP隧道的建立、维护和拆链过程(动态):

12

4.2AccessVPN应用:

13

4.2.1实验环境:

13

4.2.2Config配置:

14

4.3ExtranetVPN应用:

21

4.3.1实验环境:

21

4.3.2Config配置:

22

4.3.3L2TP建立的交互过程:

22

4.3.4分析和说明:

27

5L2TP与其他功能模块的结合27

5.1L2TP与NAT27

5.2.1Router-Router[Ipsec对L2TPtunnel加密]27

5.2.2Router-Router[Ipsec对上层数据加密]30

5.2.3PC-Router32

6其他:

37

6.1L2TP实际案例列举:

37

 

1关于VPN(VirtualPrivateNetworks)

1.1VPN简介

随着Internet的爆炸性发展,每个企业都在思考:

“利用Internet能为我们的企业作哪些事呢?

”。

最初,企业做自己的网站,允许人们在Internet上访问,从而进行企业形象的宣传、促销、培训、技术支持等等。

现在,Internet的潜力似乎是无穷无尽的,大家的目光开始转向电子商务,利用全球可以方便上网访问的Internet,使得授权用户可以容易的访问到企业内部传统的IT系统中的关键商务程序及数据。

为了得到安全保障,VPN提供了非常节省费用的解决方案。

如下图所示,出差员工可以利用便携机在内的任何一台可以访问Internet的计算机,通过VPN隧道访问企业内部网络,企业内部可以对该用户进行授权、验证和审计;合作伙伴和分支机构也可以通过VPN组建私有网络,代替传统的昂贵的专线方式,而且具有同样的甚至更高的安全性。

虚拟私有网实际上就是将Internet看作一种公有数据网(PublicDataNetwork),这种公有网和PSTN网在数据传输上没有本质的区别。

因为从用户观点来看,数据都被正确传送到了目的地。

相对地,企业在这种公共数据网上建立的用以传输企业内部信息的网络被称为为私有网。

至于“虚拟”,则主要是相对现存企业Intranet的组建方式而言的。

通常企业Intranet相距较远的各局域网都是用专用物理线路相连的,而虚拟私有网通过隧道技术提供Internet上的虚拟链路。

在现代社会,信息已经是一个企业能否生存的关键,计算机网络为企业的办公自动化和

信息的获取提供强大的构架。

随着企业的发展以及移动用户的增多,企业为分支机构提

供互连,也为移动用户提供接入功能。

预测在2002年将有90%的企业采用VPN技术来组建私有网。

1.2VPN网络的结构

根据网络结构和应用的不同,VPN可以分为三类,分别为:

远程访问虚拟专网(AccessVPN/也叫VPDN)、企业内部虚拟专网(IntranetVPN)和扩展型企业内部虚拟专网(ExtranetVPN),下面以他们的拓朴接口来说明。

A、远程访问虚拟专网

远程访问VPN又称VPDN(VirtualPrivateDialupNetwork),这种方式的VPN解决了出差员工在异地访问企业内部私有网的问题,提供了身份验证授权和计费的功能,出差员工和外地客户甚至不必拥有本地ISP的上网权限就可以访问企业内部资源,原因是客户端直接与企业内部建立了VPN隧道,这对于流动性很大的出差员工和分布广泛的客户来说是很有意义的。

企业开设VPN服务所需的设备很少,只需在资源共享处放置一台支持VPN的路由器就可以了,资源享用者通过PSTN连入所在地NAS服务器后直接呼叫企业的VPN路由器,呼叫的方式和拥有PSTN连接的呼叫方式完全是一样的只需按当地的电话收费标准交付费用。

当然也可能是ADSL的接入方式,情况是一样的!

B、企业内部虚拟专网

IntranetVPN是适应大中型企业和其在地域上分布不同的机构设置的网络,通过Intranet隧道,企业内部各个机构可以很好的交流信息,通过Internet在公司企业总部和国内国外的企业分支机构建立了虚拟私有网络,这种应用实质上是通过公用网在各个路由器之间建立VPN连接来传输用户的私有网络数据。

目前大多数的企业VPN都是这种情况!

C、扩展型企业内部虚拟专网

这种情况和AccessVPN在硬件结构上非常相象!

不过客户端PC上不必配置任何关于VPN的设置或者软件,它需要做的就是拨号上网连接到NAS,而VPN隧道是由NAS来负责与企业内部的Router建立完成的!

1.3VPN协议的分类

前面讲的几种VPN应用结构中,核心内容就是在合适的位置建立隧道;所以VPN协议是指用于实现隧道的协议,这些协议都是在隧道起点对原始报文进行封装然后在隧道终点进行解封装再得到原始报文,从而达到隧道传输的目的。

常见的VPN协议根据层次来划分有:

二层隧道协议L2TP、PPTP;

三层隧道协议IPSEC、GRE等。

目前,MPLS/VPN也开始发展和成熟起来,尤其是在电信骨干网上面应用的非常广泛!

不过本文的重点是介绍L2TP/VPN,所以所以其他的就只简单介绍一下!

2关于L2TP

2.1L2TP简介

L2TP协议是由IETF起草,微软、Ascend、Cisco、3COM等公司参予制定的二层隧道协议,它结合了PPTP和L2F两种二层隧道协议的优点,为众多公司所接受,已经成为IETF有关2层通道协议的工业标准。

L2TP的主要特性有:

●L2TP适合单个或少数用户接入企业的情况,其点到网连接的特性是其承载协议PPP所约定的;

●由于L2TP对私有网的数据包进行了封装因此在Internet上传输数据时对数据包的网络地址是透明的,并支持接入用户的内部动态地址分配;

●与PPP模块配合,支持本地和远端的AAA功能(认证、授权和记费)对用户的接入也可根据需要采用全用户名,用户域名和用户拨入的特殊服务号码来识别是否为VPN用户。

●对数据报文的安全性可采用IPSEC协议采用该协议即可以在用户发往Internet之前对数据报文加密即用户控制方式也可采用在VPN端系统LAC侧加密即服务提供商控制方式。

●对于拨号用户可以配置相应的VPN拨号软件,发起由用户直接对企业私有网的连接,这样用户在上网时可以灵活选择是否需要VPN服务。

2.2L2TP网络构成

前面已经讲到,VPN的应用和组网结构分为三类,当然L2TP也是分为三种接入方式的,请参阅下图:

这个图不仅描述了L2TP三种常见的构建模式,而且也指出了组建L2TP网络需要的三要素:

LNS、LAC和Client!

●LNS――L2TPNetworkServer,为L2TP企业侧的VPN服务器,该服务器完成对用户的最终授权和验证,接收来自LAC的隧道和连接请求,并建立连接LNS和用户的PPP通道。

●LAC――L2TPAccessConcentrator,为L2TP的接入设备,它提供各种用户接入的AAA服务,发起隧道和会话连接的功能,以及对VPN用户的代理认证功能,它是ISP侧提供VPN服务的接入设备,在物理实现上,它即可以是配置L2TP的路由器,或接入服务器也可以是专用的VPN服务器。

3L2TP协议

3.1L2TP协议在TCP/IP协议栈中的位置

此图说明了L2TP协议在整个TCP/IP层次结构中位置,也指明了ip数据包在传输过程中所经过的协议栈结构和封装过程;

我们以一个用户侧的IP报文的传递过程来描述VPN工作原理,黄色标示的IP为需要传递的用户数据!

在LAC侧,的链路层将用户数据报文作为加上ppp封装,然后传递给L2TP协议,L2TP再封装成UDP报文,UDP再次封装成可以在Internet上传输的IP报文,此时的结果就是IP报文中又有IP报文,但两个IP地址不同,一般用户报文的IP地址是私有地址,而LAC上的IP地址为公有地址,至此完成了VPN的私有数据的封装;

在LNS侧,收到L2TP/VPN的IP报文后将IP、UDP、L2TP报文头去掉后就恢复了用户的PPP报文,将PPP报文头去掉就可以得到IP报文,至此用户IP数据报文得到,从而实现用户ip数据的透明隧道传输,而且整个PPP报头/报文在传递的过程中也保持未变,这也验证了L2TP是一个二层VPN隧道协议!

3.2L2TP协商交互过程

为了在VPN用户和服务器之间传递数据报文,必须在LAC和LNS之间建立传递数据报文的隧道和会话连接,隧道是保证具有相同会话连接特性的一组用户可以共享的连接属性所定义的通道,而会话是针对每个用户与企业VPN服务器建立连接的PPP数据通道,多个会话复用在一个隧道连接上隧道和会话是动态建立与删除的。

会话的建立是由PPP模块触发,如果该会话在建立时没有可用的隧道结构,那么先建立隧道连接,会话建立完毕后开始进行数据传输!

3.2.1L2TP建立流程

L2TP隧道的建立是一个三次握手的过程,首先由LAC发起隧道建立请求SCCRQ,LNS收到请求后进行应答SCCRP,最后LAC在收到应答后再给LNS返回确认SCCCN;隧道建立。

会话建立的过程与隧道类似,首先由LAC发起会话建立请求ICRQ,LNS收到请求后返回应答ICRP,LAC收到应答后返回确认ICCN,会话建立!

L2TP的会话建立由PPP触发,隧道建立由会话触发。

由于多个会话可以复用在一条隧道上,如果会话建立前隧道已经建立,则隧道不用重新建立。

3.2.2L2TP隧道的维护

隧道建立后,一直要等到该隧道所属会话全部下线后,再进行拆除,为了确认对端的隧道结构依然存在,需要定时发送与对端的维护报文,其流程为:

LAC或LNS发出Hello报文,对应的LNS或LAC发出确认信息!

 

3.2.3L2TP隧道拆除

隧道拆除流程比其建立过程要简单,隧道的任何一端发出拆链通知StopCCN,对端返回确认;会话的拆除流程为:

会话一端发出拆链通知CDN,对端返回确认即可!

3.2.4其他

L2TP连接的维护以及PPP数据的传送都是通过L2TP消息的交换来完成的,这些消息

再通过UDP的1701端口承载于TCP/IP之上。

L2TP报文分为控制报文和数据报文两类。

控制报文包括L2TP通道的建立、维护、拆除,基于通道连接的会话连接的建立、维护、拆除,控制消息中的参数用AVP值对(AttributeValuePair)来表示,使得协议具有很好的扩展性;在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证了L2TP层传输的可靠性;

数据报文则用户传输PPP报文。

4L2TP/VPN的应用(配置与调试信息)

这里我们就L2TP的几种常见应用模式给出配置举例!

4.1IntranetVPN应用,这也是最常见的L2TP应用环境:

4.1.1实验环境:

LNS局域网网关为192.168.100.254/24;LNS外网口地址为10.0.0.1/8

LAC局域网网关为192.168.200.254/24;LAC外网口地址为10.0.0.2/8

建立的L2TP隧道在172.16.0.0/16网段!

4.1.2Config配置//配置中删除了无关的内容,且重要部分使用彩色字体标出!

LNS_Config:

iplocalpoolL2POOL172.16.0.1050//动态地址池

usernamel2tp@password0bdcom//建立CHAP认证数据库

interfaceVirtual-template0//建立虚拟拨号模板

ipaddress172.16.0.1255.255.0.0//指定隧道本端地址,也可以UnnumberLoopback端口

pppauthenticationchap//要求发起CHAP认证

pppchaphostnamel2tp@

peerdefaultipaddresspoolL2POOL//调用地址池,给LAC分配ip地址

interfaceFastEthernet0/0//LNS连接的中心局域网接口

ipaddress192.168.100.254255.255.255.0

noipdirected-broadcast

interfaceEthernet2/0//LNS的外外网口地址

ipaddress10.0.0.1255.0.0.0//LNS外网口地址,一般为公网ip

noipdirected-broadcast

iproutedefault*.*.*.*//路由器默认网关,实验中没有增加,但实际应用中一般要加上

iproute192.168.200.0255.255.255.0Virtual-template//经过L2TP隧道指向对方局域网

vpdnenable//启动L2TP/VPDN

vpdn-group1//建立VPDN组

accept-dialin//配置为LNS端,接受远端呼叫

protocoll2tp//指定使用的二层隧道协议,如果使用PPTP,在这里修改即可!

local-nameLNS

virtual-template0//调用前面建立的虚拟拨号模板

LAC_config:

usernamel2tp@password0bdcom//建立CHAP认证数据库

interfaceVirtual-tunnel0//建立虚拟隧道端口

ipaddressnegotiated

noipdirected-broadcast

pppchaphostnamel2tp@

interfaceFastEthernet0/0//LAC外网口地址,一般为公网ip

ipaddress10.0.0.2255.0.0.0

noipdirected-broadcast

interfaceFastEthernet0/1//LAC连接的网点局域网接口

ipaddress192.168.200.254255.255.255.0

noipdirected-broadcast

iproutedefault*.*.*.*//路由器默认网关,实验中没有增加,但实际应用中一般要加上

iproute192.168.100.0255.255.255.0Virtual-tunnel0//经过L2TP隧道指向对方局域网

vpdnenable//启动L2TP/VPDN

vpdn-group1//建立VPDN组

request-dialin//配置为LAC端,发起L2TP隧道建立请求

domain//指定VPDN域名,用于触发L2TP隧道建立

initiate-toip10.0.0.1priority1//指定LNS的具体ip地址

protocoll2tp//指定使用的二层隧道协议,如果使用PPTP,在这里修改即可!

local-nameLAC

注意:

在BDCOM路由器上,CHAP认证所使用的用户名必须是***@**.**格式的,另外,在LNS的VPDN-group里面,如果配置了terminate-from***的话,对方LAC的hostname必须和它匹配,否则无法互通,这也一定程度上提供了安全性!

4.1.3L2TP隧道和端口的状态信息(静态):

前面的配置完成之后,隧道不会自动建立,此时隧道tunnel和链路session的状态都是空的!

必须要有数据包配合路由来触发L2TP“拨号”后,才能建立tunnel和session,如下所示:

LAC#showl2tptunnel

L2TPTunnelInformation:

Totaltunnels1sessions1//显示目前隧道和链路的统计信息

Local_IDRemote_IDStateRemote_NameRemote_AddressUDP_PortSessions

41EstLNS10.0.0.117011

红色字体就是显示的当前建立的隧道的详细信息:

本地id和远端id分别为4和1,状态为Est(建立),隧道的远端名字为LNS,远端LNS的外网口ip地址为10.0.0.1,L2TP隧道使用额UDP端口为1701(协议默认值),另外这个隧道上面承载的session数量为1个!

其中本地id和远端id一般情况下都不会变,从1开始,如果隧道重新建立,id数量就依次递增1!

LAC#showl2tpsession

L2TPSessionInformation:

Totaltunnels1sessions1//显示目前隧道和链路的统计信息

Local_IDRemote_IDStateTunnel_IDInterfaceUsername

11Est4vn0(null)

这里的信息和showl2tptunnel的信息基本类似,不再赘述,如果一条tunnel上面承载的session有多条,那么此处的输出信息就会有多条!

看了L2TP隧道的状态,再来看一下虚拟虚拟接口,比较简单:

LAC#showintervirtual-tunnel0//LAC侧虚接口状态

Virtual-tunnel0isup,lineprotocolisup

HardwareisUnknowndevice

Internetaddressis172.16.0.10/32

MTU1500bytes,BW100000kbit,DLY10000usec

EncapsulationPPP,loopbacknotset//封装的二层协议为PPP

Keepaliveset(10sec)

LCPOpened

CHAPOpened,Message:

'WelcometoBDCOMRouter'

IPCPOpened

localIPaddress:

172.16.0.10remoteIPaddress:

172.16.0.1

LNS#showintervirtual-access0//LNS侧虚接口状态

Virtual-access0isup,lineprotocolisup

HardwareisVirtualaccessinterface

Interfaceaddressis172.16.0.1/16

MTU1500bytes,BW100000kbit,DLY10000usec

EncapsulationPPP,loopbacknotset

Keepaliveset(10sec)

LCPOpened

CHAPOpened,Message:

'none'

IPCPOpened

localIPaddress:

172.16.0.1remoteIPaddress:

172.16.0.10

4.1.4L2TP隧道的建立、维护和拆链过程(动态):

A、先看一下隧道建立的过程:

(关键字使用粗体标明,阅读时结合前面的内容!

LAC#ping192.168.100.254//在LAC上ping远端LNS的局域网地址,触发隧道

PING192.168.100.254(192.168.100.254):

56databytes

2002-1-100:

54:

04[L2TP]:

tunnelT5tobecreated.//这里开始的四行为LAC初始化

2002-1-100:

54:

04[L2TP]T5:

statechangedintoIDLE

2002-1-100:

54:

04[L2TP]T5:

sessionS1tobecreated.

2002-1-100:

54:

04[L2TP]T5|S1:

statechangedintoIDLE

2002-1-100:

54:

04[L2TP]T5:

TX->SCCRQtoT0//Tunnel建立的过程

2002-1-100:

54:

04[L2TP]T5:

statechangedintoWAITREPLY

2002-1-100:

54:

04[L2TP]T5:

RX<-SCCRPfromLNST2

2002-1-100:

54:

04[L2TP]T5:

TX->SCCCNtoLNST2

2002-1-100:

54:

04[L2TP]T5:

statechangedintoESTABLISHED

2002-1-100:

54:

04[L2TP]T5|S1:

TX->ICRQtoLNST2|S0//Session建立过程

2002-1-100:

54:

04[L2TP]T5|S1:

statechangedintoWAITREPLY

2002-1-100:

54:

04[L2TP]T5:

RX<-ZLBfromLNST2

2002-1-100:

54:

04[L2TP]T5|S1:

RX<-ICRPfromLNST2|S1

2002-1-100:

54:

04[L2TP]T5|S1:

TX->ICCNtoLNST2|S1

2002-1-100:

54:

04[L2TP]T5|S1:

statechangedintoESTABLISHED

2002-1-100:

54:

04LineonInterfaceVirtual-tunnel0,changedstatetoup

2002-1-100:

54:

04[L2TP]T5:

RX<-ZLBfromLNST2//LNS发出的的隧道维护信息

2002-1-100:

54:

05LineprotocolonInterfaceVirtual-tunnel0,changedstatetoup

.!

!

!

!

//ping的第一个报文是触发隧道的,由于隧道建立需要时间,这个echorequest肯定是timeout,而隧道建立之后后续的四个icmp报文就能够在隧道里正常传递!

B、下面是隧道的维护报文交互:

LAC#2002-1-100:

55:

04[L2T

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1