2.2 配置L2F
VPN故障诊断与排除
配置错误是导致L2F隧道故障的最常见原因。虽然L2F配置不是本章的主要目标,本节还是要讨论一下基本的L2F配置。
接下来的两小节将介绍NAS和终点网关的配置步骤。
2.2.1 配置L2F NAS
这里讨论NAS的配置时,假设NAS采用典型的硬件配置,包括E1或T1 ISDN基群速率接口(PRI)和异步数字(MICA)调制解调器。
配置NAS包括如下9个基本步骤:
第1步 配置E1/T1控制器。
第2步 配置全局ISDN参数。
第3步 配置D信道。
第4步 配置异步线路。
第5步 配置异步接口。
第6步 配置远程AAA(可选)。
第7步 配置隧道密码。
第8步 全局启用VPDN。
第9步 配置VPDN组。
需要指出的是,有很多可行的配置组合,但本节只介绍最常见的配置。
下面将详细讨论每个配置步骤。
1.第1步:配置E1/T1控制器
第一步是配置E1/T1控制器。E1/T1控制器的配置包括指定帧格式(framing)、线路编码、时钟源和时隙。
程序清单2-1是一个E1控制器的配置示例。
注意,在这个范例中,帧格式为CRC4(framing crc4),线路编码为HDB3(linecode hdb3),时钟源为线路(clock source line)。这些都是默认配置,因此没有出现在配置中。
一定要根据服务提供商的推荐配置E1/T1控制器的帧格式、线路编码和时钟源。
2.第2步:配置全局ISDN参数
接下来的一步是配置全局ISDN参数。在程序清单2-2中,只指定了全局ISDN交换机类型。
程序清单2-2将ISDN交换机类型指定为Primary-net5,这是欧洲、澳大利亚、新西兰和亚洲使用的交换机类型。一定要根据服务提供商的规定指定ISDN交换机类型。
3.第3步:配置D信道
接下来需要配置ISDN D信道,使之接收异步调制解调器呼叫。为此,需要使用程序清单2-3所示的配置。
在程序清单2-3中,没有给物理地址配置IP地址,这是因为在这个例子中,NAS不接任何ISDN呼叫。
接下来将ISDN交换机类型配置为primary-net5。这并非必须的,因为已经以全局方式配置了交换机类型。
命令incoming-voice modem是必不可少的,它将到来的语音(异步调制解调器)呼叫转接到内部数字MICA调制解调器。
4.第4步:配置异步线路参数
配置好E1/T1控制器和D信道后,需要配置调制解调器及其对应的异步线路。
程序清单2-4列出了异步线路的配置。
2-4 命令line 33 38让您能够以相同的方式配置一组异步线路。在程序清单2-4中,有6个内部数字调制解调器,它们分别与线路33~38相连。要获悉线路编号,可使用命令show line。
线路配置中的第一条命令是modem InOut,它让调制解调器能够接收和发起呼叫。命令modem autoconfigure type mica让NAS能够自动配置线路33~38上的调制解调器。最后,命令autoselect ppp自动检测线路上的PPP并应用PPP帧格式。
这种线路配置被应用于指定的6条线路,而无需分别配置每条线路。
5.第5步:配置异步接口
现在需要将相应的逻辑配置应用于异步接口。同样,可以将这种配置分别应用于各个接口,也可以将其应用于一组接口。通常,采用后一种方法,这样可以节省时间,并确保所有接口的配置一致。
程序清单2-5列出了异步接口的配置。
上述配置中的第一条命令为no ip address。在group-async接口上配置命令no ip address的原因是,在这个例子中,NAS不是远程接入客户的PPP连接的终点。
命令encapsulation ppp将该接口配置为使用PPP帧类型。
接下来的命令async mode interactive让远程用户能够在线路上启动交互模式。要防止用户启动交互外壳,可使用命令async mode dedicated。
命令no peer default ip address让NAS不给远程接入客户提供IP地址,而让PPP连接的终点(终点网关)提供。
接下来,ppp authentication chap指定使用CHAP验证。最后,group-range 33-38将接口配置group-async 1应用于线路33~38。
注意,命令ppp authentication chap让NAS能够对远程接入客户进行部分验证。它让NAS挑战客户,并根据客户的应答将客户同合适的L2F隧道关联起来。NAS使用L2F_OPEN消息将客户的CHAP应答转发给终点网关(详情请参阅本章前面的2.1.2小节)。
6.第6步:配置远程AAA(可选)
接下来可启用远程AAA。可供选择的方式有两种:RADIUS和终端访问控制器访问控制系统+(TACACS+)。由于远程接入客户的PPP连接的终点为终点网关,因此仅当需要配置基于用户的VPDN,隧道定义(隧道配置)存储在AAA服务器上,或者有些远程客户的PPP连接终点为NAS而不是通过L2F将其转接到终点网关时,才需要配置远程AAA。
虽然详细讨论隧道定义存储在AAA服务器中的情况超出了本章的范围,但在2.4.1小节“在AAA服务器上错误地配置了L2F隧道定义”部分包含有关这方面的更详细信息。
就L2F VPN而言,常用的AAA服务器为RADIUS。
程序清单2-6列出了一种简单的远程AAA配置。
命令aaa new-model全局启用AAA。
接下来使用默认方法列表设置登录时的验证方法(aaa authentication login default group radius local)。默认方法列表指出:首先使用验证方法radius,如果无法连接到RADIUS服务器,则使用本地数据库进行验证。就L2F而言,命令aaa authentication login并非必需的,这里列出它只是为了提供一种完整的AAA配置。
接下来使用默认方法列表启用PPP验证(aaa authentication ppp default local group radius)。该方法列表指出:应首先根据本地数据库进行PPP验证,然后由RADIUS服务器进行验证。
接下来为网络连接启用了AAA授权(aaa authorization network default group radius)。同样,授权是由RADIUS服务器控制的。
命令radius-server ip_address auth-port 1645 acct-port 1646 key key 用于配置RADIUS服务器的IP地址和共享密钥,后者用于对NAS和RADIUS服务器之间发送的用户密码进行加密。验证/授权和统计端口被设置为默认值,它们分别是UDP端口1645和1646。
注意,这些默认端口设置适用于Cisco接入控制服务器(Cisco ACS)和RADIUS的其他早期实现。然而,正式的验证/授权和统计端口分别是1812和1813。
最后,命令aaa accounting network default start-stop group radius为网络连接启用开始-结束统计,其中统计消息存储在RADIUS服务器中。同样,在L2F NAS上,统计配置并非必需的,这里列出它们只是出于完整性考虑。
7.第7步:配置隧道密码
接下来需要配置NAS和终点网关用来彼此验证对方的密码。同样,这些密码可以在本地配置,也可以在AAA服务器上配置。
要在本地配置隧道密码,可使用下述命令:
username nas_name password password
username home_gateway_name password password
8.第8步:全局启用VPDN
接下来的一个配置步骤是全局启用虚拟专用拨号网(VPDN),L2F就是一种这样的网络。为此,可使用如下命令:
vpdn enable
9.第9步:配置VPDN组
最后,需要配置VPDN组(如果没有以隧道定义的方式将VPDN组配置存储在AAA服务器中)。要启用VPND组,可使用程序清单2-7所示的配置。
VPDN组的配置相对比较容易。应为每条隧道配置一个VPDN组。
在程序清单2-7中,配置了vpdn-group 1。当前NAS上配置的所有VPDN组的名称(这里为1)必须各不相同。
第二条命令request dialin让NAS发起到终点网关的隧道建立过程,发生隧道/会话建立事件(即与该隧道相关联的客户连接到NAS)时,这将导致NAS发送L2F_CONF或L2F_OPEN消息。
接下来指定使用L2F协议,然后是与隧道相关联的域名,这里为mjlnet.com。这意味着用户使用用户名user@mjlnet.com连接到NAS时,如果这是第一条PPP连接,NAS将发起建立一条到终点网关的隧道(和会话);如果不是第一条PPP连接,NAS将在已有的隧道中发起建立一个新会话。
要根据DNIS将用户和隧道关联起来,可使用命令dnisdnis代替命令domain domain_name。
命令initiate-to ip的含义是不言自明的,它指出了隧道连接的终点网关的IP地址。
程序清单2-7中还有另外一个命令:vpdn search-order domain,该命令是可选的,它让NAS根据域名将远程接入客户的呼叫同L2F隧道关联起来。默认的搜索顺序为DNIS,如果这种搜索方法失败,将根据域名进行搜索。
程序清单2-8是一个NAS配置示例。
注意,在程序清单2-8中,使用了一条静态路由来提供到终点网关的IP连接性。
2.2.2 配置L2F终点网关
相对于NAS,终点网关的配置非常简单。L2F终点网关的基本配置包括下面6个步骤:
第1步 配置本地验证或远程AAA。
第2步 配置隧道密码。
第3步 全局启用VPDN。
第4步 配置VPDN组。
第5步 配置虚拟模板。
第6步 创建IP地址池以及配置DNS/WINS服务器地址。
下面将详细介绍每个配置步骤。
1.第1步:配置本地验证或远程AAA
第一步是在终点网关上配置本地验证或远程AAA。
要配置一个有关远程接入客户的用户名和密码数据库,可使用如下命令:
username username password password
一种可扩展性更高的解决方案是使用远程AAA。
程序清单2-9列出了终点网关的远程AAA配置。
终点网关的远程AAA配置基本上与NAS相同,完整的说明请参阅前一小节。
2.第2步:配置隧道密码
要在本地配置隧道密码,可使用如下命令:
username nas_name password password
username home_gateway_name password password
这些密码应与NAS上配置的相同。
3.第3步:全局启用VPDN
同样,这部分配置与NAS中相同。
要全局启用VPDN,可使用如下命令:
vpdn enable
4.第4步:配置VPDN组
VPDN组的配置与NAS中稍有不同。
在终点网关中,可以这样配置VPDN组:
vpdn-group 1
accept-dialin
protocol l2f
virtual-template 1
terminate-from hostname LODI_NAS1
命令vpdn-group 1定义了一个VPDN组。同样,组名必须在本地是独一无二的。
命令accept dialin让终点网关能够接受L2F隧道。接下来,命令virtual-template 1指定客户的PPP连接终止于这样的虚拟接入接口:它们的配置为虚拟模板1指定的。当远程接入客户连接到终点网关时,将动态地创建这些虚拟接入接口(每个客户一个)。最后,命令terminate-from指定NAS主机名,终点网关将接受来自该NAS的隧道。
5.第5步:配置虚拟模板
接下来必须配置VPDN组中指定的虚拟模板。
程序清单2-10是一个终点网关上虚拟模板的配置示例。
程序清单2-10中的大部分配置的含义都是不言自明的。
配置该虚拟模板时,没有指定具体的IP地址,而是借用了快速以太网接口1/0的IP地址(ip unnumbered FastEhternet 1/0)。注意,在这个范例中,终点网关只有两个物理接口(参见程序清单2-11)。如果终点网关有更多的物理接口,借用一个环回接口的IP地址将是一个不错的主意(环回接口总是处于UP状态)。
命令peer default ip address pool PERRIS_POOL指出,应从地址池PERRIS_POOL中给远程接入客户分配一个IP地址。
接下来使用命令ppp authentication chap和ppp multilink指定使用CHAP验证和多链路PPP。注意,命令ppp multilink是可选的。
也可以将用户特定的接口配置存储在AAA服务器中(远程接入客户连接时,将把这些配置下载到终点网关中)。在AAA服务器中配置用户特定的接口配置超出了本书的范围,更详细的信息请参阅www.cisco.com上的文档“Configuring Virtual Profiles”。
注意,您可能还想配置另外两个命令:mtu(在虚拟模板接口上)和lcp renegotiation(在VPDN组中)。这让终点网关能够与远程接入客户协商PPP最大接收单元(MRU)。为防止通过L2F隧道传输大型分组时对其进行分段,这很重要。重组分段可能给终点网关带来高昂的处理器开销。
注意:
有关如何调整MTU配置的更详细信息,请参阅Cisco网站(www.cisco.com)上的文章“MTU Tuning for L2TP”。虽然该文针对的是L2TP,但其中讨论的所有原理同样适用于L2F。
对于L2F环境中的分段问题,另一种(或补充)解决方案是,在远程接入客户端减小MTU的长度,有关该主题的更详细信息,请参阅下面的文章:
Microsoft网站(www.microsoft.com)中的Microsoft知识库(Knowledge Base)文章159211和314825。
Cisco网站(www.cisco.com)中的“Adjusting IP MTU,TCP MASS and PMTUD on Windows and Sun Systems”。
在终点网关上克隆虚拟接入接口也可能带来高昂的CPU开销。可使用命令virtual-template template_number pre-clone number 来预先克隆虚拟接入接口,从而极大地降低建立远程接入客户连接期间的处理器开销。
6.第6步:创建IP地址池及配置DNS/WINS服务器地址
最后一步是在终点网关上配置IP地址池,与此同时,还可以配置DNS和WINS(NetBios名称)服务器的地址。
前面使用的IP地址池名为PERRIS_POOL,下面的代码配置了该IP地址池以及DNS和WINS服务器的地址:
ip local pool PERRIS_POOL 10.10.10.50 10.10.10.59
async-bootp dns-server 10.10.10.99
async-bootp nbns-server 10.10.10.100
该地址池中包含10个地址,其中第一个和最后一个地址分别为10.10.10.50和10.10.10.59。
远程客户连接到终点网关时,将从地址池PERRIS_POOL中分配一个IP地址给它;同时将DNS和WINS服务器的地址提供给它。
程序清单2-11是一个终点网关配置示例。
读者可能注意到了,在程序清单2-11中,也配置了一条静态路由以提供到NAS的IP连接性。
为避免简单的配置错误,应以循序渐近的方式进行配置,并不断对NAS和终点网关进行测试。这意味着首先应该完成NAS的拨号配置,然后进行测试。接下来配置VPDN组和本地验证,并进行测试。最后,如果必要,对NAS/终点网关进行配置,使之使用一台远程AAA服务器。