CISCOL2TP配置手册.docx
《CISCOL2TP配置手册.docx》由会员分享,可在线阅读,更多相关《CISCOL2TP配置手册.docx(24页珍藏版)》请在冰点文库上搜索。
CISCOL2TP配置手册
L2TP原理及应用[目录] 1
1 关于VPN(VirtualPrivateNetworks) 3
1.1 VPN简介 3
1.2 VPN网络的结构 4
1.3 VPN协议的分类 5
2 关于L2TP 6
2.1 L2TP简介 6
2.2 L2TP网络构成 6
3.2 L2TP协商交互过程 8
3.2.1 L2TP建立流程 8
3.2.2 L2TP隧道的维护 9
3.2.3 L2TP隧道拆除 9
3.2.4 其他 9
4 L2TP/VPN的应用(配置与调试信息) 10
4.1 IntranetVPN应用,这也是最常见的L2TP应用环境:
10
4.1.1 实验环境:
10
4.1.2 Config配置!
10
4.1.3 L2TP隧道和端口的状态信息(静态):
11
4.1.4 L2TP隧道的建立、维护和拆链过程(动态):
12
4.2 AccessVPN应用:
13
4.2.1 实验环境:
13
4.2.2 Config配置:
14
4.3 ExtranetVPN应用:
21
4.3.1 实验环境:
21
4.3.2 Config配置:
22
4.3.3 L2TP建立的交互过程:
22
4.3.4 分析和说明:
27
5 L2TP与其他功能模块的结合 27
5.1 L2TP与NAT 27
5.2.1 Router-Router[Ipsec对L2TPtunnel加密] 27
5.2.2 Router-Router[Ipsec对上层数据加密] 30
5.2.3 PC-Router 32
6 其他:
37
6.1 L2TP实际案例列举:
37
1 关于VPN(VirtualPrivateNetworks)
1.1 VPN简介
随着Internet的爆炸性发展,每个企业都在思考:
“利用Internet能为我们的企业作哪些事呢?
”。
最初,企业做自己的网站,允许人们在Internet上访问,从而进行企业形象的宣传、促销、培训、技术支持等等。
现在,Internet的潜力似乎是无穷无尽的,大家的目光开始转向电子商务,利用全球可以方便上网访问的Internet,使得授权用户可以容易的访问到企业内部传统的IT系统中的关键商务程序及数据。
为了得到安全保障,VPN提供了非常节省费用的解决方案。
如下图所示,出差员工可以利用便携机在内的任何一台可以访问Internet的计算机,通过VPN隧道访问企业内部网络,企业内部可以对该用户进行授权、验证和审计;合作伙伴和分支机构也可以通过VPN组建私有网络,代替传统的昂贵的专线方式,而且具有同样的甚至更高的安全性。
虚拟私有网实际上就是将Internet看作一种公有数据网(PublicDataNetwork),这种公有网和PSTN网在数据传输上没有本质的区别。
因为从用户观点来看,数据都被正确传送到了目的地。
相对地,企业在这种公共数据网上建立的用以传输企业内部信息的网络被称为为私有网。
至于“虚拟”,则主要是相对现存企业Intranet的组建方式而言的。
通常企业Intranet相距较远的各局域网都是用专用物理线路相连的,而虚拟私有网通过隧道技术提供Internet上的虚拟链路。
在现代社会,信息已经是一个企业能否生存的关键,计算机网络为企业的办公自动化和信息的获取提供强大的构架。
随着企业的发展以及移动用户的增多,企业为分支机构提供互连,也为移动用户提供接入功能。
预测在2002年将有90%的企业采用VPN技术来组建私有网。
1.2 VPN网络的结构
根据网络结构和应用的不同,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.3 VPN协议的分类
前面讲的几种VPN应用结构中,核心内容就是在合适的位置建立隧道;所以VPN协议是指用于实现隧道的协议,这些协议都是在隧道起点对原始报文进行封装然后在隧道终点进行解封装再得到原始报文,从而达到隧道传输的目的。
常见的VPN协议根据层次来划分有:
二层隧道协议L2TP、PPTP;
三层隧道协议IPSEC、GRE等。
目前,MPLS/VPN也开始发展和成熟起来,尤其是在电信骨干网上面应用的非常广泛!
不过本文的重点是介绍L2TP/VPN,所以所以其他的就只简单介绍一下!
2关于L2TP
2.1 L2TP简介
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服务器。
3 L2TP协议
3.1 L2TP协议在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.2 L2TP协商交互过程
为了在VPN用户和服务器之间传递数据报文,必须在LAC和LNS之间建立传递数据报文的隧道和会话连接,隧道是保证具有相同会话连接特性的一组用户可以共享的连接属性所定义的通道,而会话是针对每个用户与企业VPN服务器建立连接的PPP数据通道,多个会话复用在一个隧道连接上隧道和会话是动态建立与删除的。
会话的建立是由PPP模块触发,如果该会话在建立时没有可用的隧道结构,那么先建立隧道连接,会话建立完毕后开始进行数据传输!
3.2.1 L2TP建立流程
L2TP隧道的建立是一个三次握手的过程,首先由LAC发起隧道建立请求SCCRQ,LNS收到请求后进行应答SCCRP,最后LAC在收到应答后再给LNS返回确认SCCCN;隧道建立。
会话建立的过程与隧道类似,首先由LAC发起会话建立请求ICRQ,LNS收到请求后返回应答ICRP,LAC收到应答后返回确认ICCN,会话建立!
L2TP的会话建立由PPP触发,隧道建立由会话触发。
由于多个会话可以复用在一条隧道上,如果会话建立前隧道已经建立,则隧道不用重新建立。
3.2.2 L2TP隧道的维护
隧道建立后,一直要等到该隧道所属会话全部下线后,再进行拆除,为了确认对端的隧道结构依然存在,需要定时发送与对端的维护报文,其流程为:
LAC或LNS发出Hello报文,对应的LNS或LAC发出确认信息!
3.2.3 L2TP隧道拆除
隧道拆除流程比其建立过程要简单,隧道的任何一端发出拆链通知StopCCN,对端返回确认;会话的拆除流程为:
会话一端发出拆链通知CDN,对端返回确认即可!
3.2.4 其他
L2TP连接的维护以及PPP数据的传送都是通过L2TP消息的交换来完成的,这些消息
再通过UDP的1701端口承载于TCP/IP之上。
L2TP报文分为控制报文和数据报文两类。
控制报文包括L2TP通道的建立、维护、拆除,基于通道连接的会话连接的建立、维护、拆除,控制消息中的参数用AVP值对(AttributeValuePair)来表示,使得协议具有很好的扩展性;在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证了L2TP层传输的可靠性;
数据报文则用户传输PPP报文。
4 L2TP/VPN的应用(配置与调试信息)
这里我们就L2TP的几种常见应用模式给出配置举例!
4.1 IntranetVPN应用,这也是最常见的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.2 Config配置//配置中删除了无关的内容,且重要部分使用彩色字体标出!
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.3 L2TP隧道和端口的状态信息(静态):
前面的配置完成之后,隧道不会自动建立,此时隧道tunnel和链路session的状态都是空的!
必须要有数据包配合路由来触发L2TP“拨号”后,才能建立tunnel和session,如下所示:
LAC#showl2tptunnel
L2TPTunnelInformation:
Totaltunnels1sessions1 //显示目前隧道和链路的统计信息
Local_IDRemote_ID State Remote_Name Remote_Address UDP_PortSessions
4 1 Est LNS 10.0.0.1 1701 1
红色字体就是显示的当前建立的隧道的详细信息:
本地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_ID State Tunnel_ID Interface Username
1 1 Est 4 vn0 (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)
LCP Opened
CHAPOpened, Message:
'WelcometoBDCOMRouter'
IPCPOpened
localIPaddress:
172.16.0.10 remoteIPaddress:
172.16.0.1
LNS#showintervirtual-access0 //LNS侧虚接口状态
Virtual-access0isup,lineprotocolisup
HardwareisVirtualaccessinterface
Interfaceaddressis172.16.0.1/16
MTU1500bytes,BW100000kbit,DLY10000usec
EncapsulationPPP,loopbacknotset
Keepaliveset(10sec)
LCP Opened
CHAPOpened, Message:
'none'
IPCPOpened
localIPaddress:
172.16.0.1 remoteIPaddress:
172.16.0.10
4.1.4 L2TP隧道的建立、维护和拆链过程(动态):
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->SCCRQto T0 //Tunnel建立的过程
2002-1-100:
54:
04[L2TP]T5:
statechangedintoWAITREPLY
2002-1-100:
54:
04[L2TP]T5:
RX<-SCCRPfromLNST2
2002-1-100:
54:
04[L