技术点详解---L2TP ×××
L2TP ×××的原生使用环境
×××的起源,这一期讲讲×××中的VPDN(Virtual Private Dial Network虚拟拨号专线网络)的主力技术L2TP(Layer 2 Tunnel Protocol二层隧道协议l),上图说明了VPDN的一些特点,出差员工或者外出员工通过拨特定号码的方式接入到企业内部网络:
- 运营商对外提供L2TP ×××服务
- 有远程拨入需要的企业想运营商提出申请,交费,开通
- 企业要对运营商提供一个L2TP LNS(L2TP Network Server网络服务器)作为企业内部网络入口
- 运营商提供一个L2TP LAC(L2TP Access Concentrator接入汇聚点),LAC要和企业LNS之间跨越运营商IP网络建立L2TP隧道,同时运营商将一个电话号码15400分配给LAC,以供出差员工拨入
- 当出差员工或者外出员工使用Modem或者特制手机拨打号码15400,此时Modem就连接到LAC
- L2TP是收费服务,而且企业不可能让任何人拨入这个网络,所以安全性肯定要考虑,结合上期网络身份保护的内容,LAC对拨入用户要进行身份确认,典型的身份确认方式就是用户名、密码验证,这个身份信息列表由企业提供,运营商执行
- LAC确认身份无误后就把这次呼叫封装到L2TP隧道里送给LNS
- LNS再对用户进行一次身份验证,验证通过后对远端用户分配IP地址
- 远端用户获得IP地址后,就可以访问企业内部网络了
具体处理流程如下:
从上图可以发现,出差员工和LAC之间只有PPP会话,没有任何L2TP的内容,L2TP隧道、会话只存在于LAC和LNS之间:
- L2TP使用的是UDP封装,端口号1701
- L2TP隧道在LAC和LNS之间只有1个,协商隧道时可以使用身份确认
- L2TP会话在隧道内部可以有多个,一个会话对应一个PPP会话,即有多少个出差员工拨号,就会有多少个L2TP会话
所以,如果一个出差员工拨号到LAC时,LAC检查到LNS的L2TP隧道已经建立,那么LAC直接和LNS协商一个新会话;当一个隧道内没有任何会话时,隧道才会被拆除。L2TP原生应用场景的数据封装流程如下图所示:
可以发现出差员工发送的是纯PPP数据,到了LAC之后则增加了L2TP隧道封装,得以穿越运营商内部的IP网络,这样企业私有数据不会暴露到运营商IP网络之中。L2TP隧道封装数据到了LNS之后,LNS进行×××数据剥离,反向流量封装顺序将流程逆转、源目的调换即可。
运营商使用1个LAC同时为多个企业服务
从LAC命名来说,我们可以知道这个东西必定价格不菲,运营商肯定不可能为每个企业单独设置一台LAC和一个号码,因为这么做成本很高,赚不到钱,运营商的想法是只用1个LAC、1个号码同时为多个企业服务:
如上图所示,该LAC同时为弯曲评论、华三通信、惠普三家企业同时提供L2TP ×××接入服务,这是怎么做到的呢?答案很简单:
- 我们在第一节中讲到了LAC要对拨入用户进行身份验证,可以在这里做文章
- 不同企业的用户肯定不一样,在身份验证时,根据不同的用户名找到不同的LNS即可
- 由于不同企业的人用户名有可能相同,所以这时的身份是带域名的用户名,比如弯曲评论的员工用户名是abc@tektalk.org,而华三的员工则是abc@h3c.com,惠普员工则是@hp.com
- 有了后缀域名,运营商只要少量的LAC,创造的收入就很紧实了
新网络时代的L2TP ×××
随着ADSL等高速接入技术的普及(xDSL下行最高速度可以达到12M),而普通的Modem接入速度只有56k,在这种情况下,高速L2TP ×××接入需求变得很迫切:
如上图所示,新网络时代的L2TP ×××基本上没有运营商什么事,因为没有LAC了,L2TP跨越的网络直接就是互联网:
- 企业总部还是要提供L2TP LNS,对互联网上的出差员工提供接入
- 该LNS最好要有一个固定都IP地址,如60.1.99.140,如果地址是变动的,那么需要实用DDNS和一个固定域名如l2tp.tektalk.org绑定起来,为什么呢,如果没有这个地址或域名,你让出差员工拨入到哪呢,这个地址和域名的作用就相当于原生L2TP ×××中的LAC电话号码15400
- LAC功能(或者叫L2TP客户端)一般集成在出差员工PC上,如Windows XP系统自带L2TP客户端
- 出差员工通过设置拨号连接的IP地址或域名,开始向总部LNS发起连接
- 建立L2TP隧道后协商L2TP会话
- L2TP会话协商结束,开始进行PPP参数协商,主要是身份确认和地址分配
- 获得地址后就算是连接到企业内部网络了,×××建立成功
- L2TP会话结束,立刻拆除隧道,因为在这种模式中,每个客户端都需要和LNS建立隧道,而这个隧道中只有1个PPP会话
具体处理流程如下图所示:
很多时候出差员工是在宾馆上网,而宾馆客房网络通常都是通过NAT接入到互联网的,比如前图所示有2个出差员工的PC地址都是192.168.1.2,那么可以正常连接到LNS吗?
由于L2TP使用UDP 1701端口封装隧道,所以根据第10期专栏互联网穿越NAT介绍,它可以穿越出差员工的NAT网关,经过NAT转换后,两名员工的连接地址分别变成2.17.2.1和6.24.1.1,LNS可以做出正确的区分,L2TP ×××显然可以轻松应对这种条件。