基于二层隧道协议的网络服务器支持多实例的方法 【技术领域】
本发明涉及网络服务器支持多实例的方法。
背景技术
虚拟私有拨号网VPDN(Virtual Private Dial Network,)是指利用公共网络(如综合业务数字网(ISDN)或公用电话交换网(PSTN))的拨号功能及接入网来实现虚拟专用网,从而为企业、小型互联网服务提供商(ISP)、移动办公人员提供接入服务。
VPDN采用专用的网络加密通信协议,在公共网络上为企业建立安全的虚拟专网。企业驻外机构和出差人员可从远程经由公共网络,通过虚拟加密隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。虚拟私有拨号网(VPDN,AccessVPN)是目前的三种类型的VPN之一,二层隧道协议(L2TP)是VPDN的一种实现方式。目前随着网络技术的不断发展,三层VPN都可以支持多实例的情况,但在具体的组网方案中三层VPN和二层VPN是结合使用的,因此二层VPN也要求支持多实例。这里所谓多实例就是一个网络服务器(如华为公司的路由器)可管理多个VPN Site(点),具体到二层VPN就是一个网络服务器可以为多个企业做网络服务器。
使用L2TP协议构建的VPDN典型组网参考图1。图1中,LAC为L2TP访问集中器(L2TP Access Concentrator),是附属在交换网络上的具有点对点协议(PPP)端系统和L2TP协议处理能力地设备,是L2TP隧道的一侧端点,LAC一般是一个网络接入服务器(NAS),主要用于通过PSTN/ISDN网络为用户提供接入服务。LNS为基于L2TP的网络服务器(L2TP Network Server),是PPP端系统上用于处理L2TP协议服务器端。
LAC位于LNS和远端系统(远地用户和远地分支机构)之间,用于在LNS和远端系统之间传递信息包,把从远端系统收到的信息包按照L2TP协议进行封装并送往LNS,或将从LNS收到的信息包进行解封装并送往远端系统。LAC与远端系统之间可以采用本地连接或PPP链路(VPDN应用中通常为PPP链路)。LNS作为L2TP隧道的另一侧端点,是LAC的对端设备,是被LAC进行隧道传输的PPP会话的逻辑终止端点。
基于上述网络的LNS的不同VPDN组(group)仅仅依据对端的LAC名进行配置,这样在LNS接收到LAC通过隧道传来的开始控制连接请求(SCCRQ,Start-Control-Connection-Request)消息,通过解析SCCRQ消息得到对端LAC名,再通过对端的LAC名在本地查找与之相匹配的VPDNgroup,如果未找到,不能建立隧道和会话,否则根据相应的VPDNgroup的配置与对端建立隧道和会话。在上述过程中,如果两个不同的企业采用的相同的对端名(LAC名),那么在LNS端我们将无法区别某个用户是属于的那个企业的,这样就无法实现一个LNS给多个企业做LNS的功能需求。由于现有的LNS不支持多实例,必然影响VPN的综合解决方案,即影响三层VPN和二层VPN的综合使用。
【发明内容】
本发明的目的在于提供一种基于二层隧道协议的网络服务器支持多实例的方法,使用该方法能够为用户提供更加丰富的VPN解决方案,使一个LNS能够用做多个企业网络服务器。
为达到上述目的,本发明提供的基于二层隧道协议的网络服务器支持多实例的方法,包括:
步骤1:在基于二层隧道协议(L2TP)的网络服务器(LNS)中为不同的对端L2TP访问集中器(LAC)配置包括对端LAC名和企业域名的虚拟私有拨号网组(VPDN group);
步骤2:在企业用户进行网络接入时,与该用户连接的LAC将用户提供的企业域名信息和自己的LAC名信息发送到LNS;
步骤3:LNS利用上述对端LAC名信息配置与该LAC之间的隧道,利用上述企业域名信息确定与该域名相匹配的VPDN group,再利用上述隧道和VPDN group的配置建立会话过程。
在步骤2中,LAC利用开始控制连接请求(SCCRQ)发送LAC名信息,用会话连接(ICCN)消息发送企业域名信息。
步骤3所述LNS利用对端LAC名信息配置与该LAC之间的隧道过程按照下述步骤实现:
步骤31:LNS对收到的SCCRQ消息进行解析,得到对端的LAC名;
步骤32:根据对端LAC名在本地查找与之相匹配的VPDN group;
步骤33:根据上述VPDN group的配置与对端LAC建立隧道;
所述方法还包括:
步骤34:对端LAC利用建立好的隧道向LNS发送包括用户名的已建立好会话连接(ICCN)消息。
步骤3所述利用上述企业域名信息确定与该域名相匹配的VPDNgroup的过程按照下述步骤实现:
步骤41:LNS对收到的ICCN消息进行解析,得到用户名;
步骤42:从用户名中分解出该用户名中包含的域名;
步骤43:利用上述域名在本地确定与之相匹配的VPDN group;
步骤44:根据上述VPDN group的配置和已建立好的隧道建立与用户的会话。
所述步骤42还包括:根据域名查找与之相匹配的VPDN group,在没有找到时,原有的VPDN group即为确定的VPDN group。
由于本发明通过在LNS中为不同的对端LAC配置包括对端LAC名和企业域名的VPDN group,这样在企业用户进行网络接入时,LNS就可以利用上述对端LAC名信息配置与该LAC之间的隧道,利用上述企业域名信息确定与该域名相匹配的VPDN group,从而利用上述隧道和VPDN group的配置建立会话过程,为不同企业的用户服务;由于上述方案解决了LNS支持多实例的这个实际问题,使得本发明所述方法能够为用户提供更加丰富的VPN解决方案。
【附图说明】
图1是现有的使用L2TP协议构建的VPDN典型组网图;
图2是本发明所述方法实施例流程图
图3是采用本发明所述方法的使用L2TP协议构建的VPDN典型组网图。
【具体实施方式】
下面结合附图对本发明作进一步详细的描述
图2是本发明所述方法实施例流程图。按照图2实施本发明,首先要在基于二层隧道协议(L2TP)的网络服务器(LNS)中为不同的对端L2TP访问集中器(LAC)配置包括对端LAC名和企业域名的虚拟私有拨号网组(VPDN group)。在本实施例中,L2TP是实现VPDN功能的协议,为实现上述就必须有一些配置命令,通过这些配置命令来建立相应的L2TP隧道和会话,由于配置不同,建立的L2TP隧道和会话也就不同,为了很好区分这些不同的配置,本实施例采用在LNS中配置VPDN group的方法,把不同的配置放在不同的VPDN group下,这样就可以更快找到相应的信息建立L2TP隧道和会话。
上述的具体配置可利用LNS的配置对端名字的命令完成,如果具体的配置命令不支持用户域名的配置,可以通过扩展该命令使其具有配置用户域名的能力。例如华为公司的支持多实例的二层路由器的原有配置命令为accept dialin l2tp virtual-template<virtual-template-number>remote<remote-peer-name>,但是在配置LNS端时,没有配置匹配用户名中所带的域名(一般为企业的名字)这样的命令。为了支持多实例,就在上述命令的基础上增加一个域名关键字domain,新命令变为accept dialin l2tpvirtual-template<virtual-template-number> remote <remote-peer-name>domain<domain-name>,新增的域名domain-name用来配置企业的名字,并且要求VPDN用户在上网时用户名采用类似以下形式的用户名“username@企业名”或“企业名@usrename”,(其中@可用/、%、#来替换)来输入。
本例中的配置还包括以下要求:
1、允许配置对端名相同,但域名不同,对端名不同,域名相同的VPDN group,但不允许配置两者都相同VPDN group;即所述配置VPDNgroup是配置对端LAC名相同,但用户名中的域名不同VPDN group,或者配置对端LAC名不同,但用户名中的域名相同VPDN group,或者配置对端LAC名不同,用户名中的域名也不同的VPDN group。按照上述要求配置的原因是:如果两个VPDN group组配置的对端LAC名和域名都相同,那么到时候建立隧道和会话时就无法确定该使用那一个VPDN group。
2、为了能够建立正常的L2TP隧道,要求配置相同对端名的多个VPDNgroup中的关于隧道验证的命令一致。这样配置的原因是,在建立隧道时需要进行隧道验证,本发明的实现方式在建立隧道时是查找第一个与对端LAC名相同的VPDN group来建立隧道,后来还会根据域名改变VPDNgroup,在改变vpdn Group组后还会用到隧道验证的密码,如果不一致的话和对端建立会话会失败。
基于上述配置,当企业用户(包括地理上分散的用户)进行网络接入时,与该用户连接的LAC首先在步骤1将用户提供的企业域名信息和自己的LAC名信息发送到LNS。所述发送企业域名信息和LAC名信息是LAC利用开始控制连接请求(SCCRQ)消息完成的,该消息是L2TP中的一个控制消息,或者说是一个报文,是LAC用来向LNS发起L2TP隧道建立的请求使用的,在这个报文中,LAC端会将自己本端的命字写在里边。上述SCCRQ消息被发送到LNS后,LNS在步骤2对收到的SCCRQ消息进行解析,得到对端的LAC名,再根据对端LAC名在本地查找与之相匹配的VPDN group。查找完毕后,在步骤3判断是否找到,如果未找到,说明不能建立隧道和会话,因此结束本次操作;如果找到,则在步骤4根据找到的VPDN group的配置与对端LAC建立隧道,在隧道建立好后,对端LAC利用建立好的隧道向LNS发送包括用户名的已建立好会话连接(ICCN)消息,ICCN(Incoming-Call-Connected)消息也是一个L2TP的控制消息,或者说是一个报文,在这个报文中LAC端会将用户端给LAC传的用户名写入这个报文传给LNS。这样,LNS即在步骤5对收到的ICCN消息进行解析,得到用户名全称,再从用户名中分解出该用户名中包含的企业域名,然后在步骤6利用上述域名在本地查找与之相匹配的VPDN group,在步骤7判断是否找到,如果未找到,可能是上述分解出的域名为空,也可能不存在域名对应的VPDN group,在这种情况下,进行步骤8确定由来的VPDN group为最后建立会话采用的VPDN group,否则在步骤9确定新VPDN group为建立会话采用的VPDN group,最后,在步骤10根据上述建立会话采用的VPDN group的配置和已建立好的隧道建立与用户的会话。
图3是采用本发明所述方法的使用L2TP协议构建的VPDN典型组网图。图3中的LNS即为多个企业网络的LNS。在图3中,在匹配VPDN group时首先在收到SCCRQ消息时匹配一次,但在收到ICCN消息后还要从用户名拆离出域名与新增命令中的本地配置的域名再匹配一次,这样不同的企业采用不同的域名,配置不同的VPDN group,每个用户上来以后,都可以找到正确的与之企业相对应VPDN group,然后再建立会话,这样就实现了一个路由器给多个企业当LNS的功能。