《VPN故障诊断与排除》一2.4 案例研究

2.4 案例研究

VPN故障诊断与排除
本节介绍的问题和解决方案没有前一节介绍的那么常见。

2.4.1 案例研究1:远程AAA

本案例研究讨论涉及远程AAA的配置可能出现的一些问题。

介绍所有的远程AAA问题时,都将使用图2.38所示的网络拓扑,其中有一个NAS(LODI_NAS1)和一台终点网关(PERRIS_HGW1),远程接入客户拨号到LODI_NAS1。

1.问题1:在AAA服务器上错误地配置了L2F隧道定义
将隧道定义和配置存储在AAA服务器上是一种管理L2F VPDN的方便方式。然而,如果隧道定义配置得不正确,隧道建立将失败。

隧道定义可使用Cisco AV对或标准IETF属性进行配置。在这个案例研究中,使用的是Cisco AV对。

排除这种故障时,首先要确定正确地从AAA服务器下载了隧道定义。为此,命令debug aaa authorization很有帮助,如程序清单2-98所示。

在加黑的第1和第2行,串行接口0/0:0连接到1111,异步接口38的状态变为up。远程接入客户连接到了NAS。

在加黑的第3行,创建了用户mjlnet.com。这是远程接入客户的验证响应提供的域名。

注意,在AAA服务器上,隧道定义是以对应于客户的域名的用户名的名义存储的。

接下来开始给用户mjlnet.com授权,如程序清单2-99所示。

加黑的第1行,LODI_NAS1请求网络服务授权。网络服务包括PPP,具体地说,请求有关PPP服务(加黑的第2行)和VPDN协议(加黑的第3行)的授权。

加黑的第4行表明,将使用默认方法列表;加黑的第5行指出,将由RADIUS服务器进行授权。

在程序清单2-100中,成功地进行了授权。

程序清单2-100中加黑的第1行表明授权成功(PASS_REPL)。从RADIUS服务器下载了一系列的属性-值(AV)对,如加黑的第2~4行所示。

看起来一切顺利,然而在加黑的第5行,串行接口0/0:0与1111断开;另外,在加黑的第6行,异步接口38的状态变为down。远程接入客户被断开。

为更清晰地说明这一点,可执行命令debug radius,如程序清单2-101所示。

在加黑的第1行,串行接口0/0:0连接到1111;在加黑的第2行,异步接口33的状态变为up。远程接入客户连接到了NAS。

在加黑的第3行,一条接入请求消息被发送给RADIUS服务器。该消息中包含一系列的属性,它们列在加黑的第3行后面。

在加黑的第4行,RADIUS服务器用一条接入接受消息进行应答,这表明验证获得了成功。同样,接入接受消息中也包含一系列的属性,如加黑的第5~7行所示。

下载而来的属性构成了隧道定义。

在加黑的第8和9行,串行接口0/0:0与1111断开,异步接口33的状态变为down,这表明客户已被断开。

NAS从RADIUS服务器下载隧道定义,然后立刻断开客户。这可能表明隧道定义本身有问题。因此,需要查看RADIUS服务器(这里为一台Cisco安全接入控制服务器[Cisco安全ACS])上的隧道定义。

图2.39显示了RADIUS服务器中的隧道定义。

如果仔细查看隧道定义,将发现遗漏了一个重要的属性:终点网关的IP地址。

要定义终点网关的IP地址,可使用Cisco AV对(009/001)vpdn:ip-address = ip_address。将该属性加入到RADIUS服务器中的隧道定义。

注意,图2.39中的隧道定义没有包含Cisco AV对vpdn:tunnel-type = tunnel_protocol。这没有问题,因为在Cisco路由器上默认的隧道协议为L2F。

图2.40显示了重新配置后的隧道定义。

重新配置隧道定义后,当客户重新连接时,将成功地建立隧道。

这可以使用命令show vpdn tunnel all来核实,如程序清单2-102所示。

加黑的第1行表明,已经建立了一条隧道和一个会话;加黑的第2~4行显示了终点网关的名称(PERRIS_HGW1)、CLID(5)和IP地址(172.16.2.2)。

接下来使用命令show vpdn session来查看客户会话,如程序清单2-103所示。

从加黑的第1行可知,为客户joebloggs@mjlnet.com建立了一个会话。问题解决了。

排除隧道定义故障时,还有几个其他的问题需要注意。确保与RADIUS服务器中的隧道定义相关联的用户(域名)的密码被配置为cisco。在Cisco路由器上,以硬编码的方式为隧道定义指定了该密码。另外,确保服务类型(属性6)被配置为outbound或dialout framed。在Cisco 安全ACS上,这些属性可在Group setup中找到。最后,如果使用的是Cisco安全ACS,全部在User setup或Group setup中配置了No IP Assigment(属性8)。

注意,如果在命令debug radius的输出中看到消息No response from server,这表明服务器不可达。因此,应排除连接性故障。

注意:

有关IETF属性的更详细信息,请参阅RFC 2868以及下面的URL:

http://www.cisco.com/en/US/products/iosswrel/ps1830/products_feature_guide
09186a00800879eb.html。

有关RADIUS属性的更详细信息,请参阅下面的URL:

http://www.cisco.com/univercd/td/doc/product/software/ios121/121cgcr/secur_c/
scprt6/scdradat.htm。

可以将命令debug radius的输出粘贴到Cisco网站中的输出解释器(http://www.cisco.com/cig-bin/Support/OutputInterpreter/home.pl)中,获得其简要解释。要使用输出解释器,必须登录。

从Cisco IOS软件版本12.2(4)T起,在debug radius命令的输出中对属性进行了解码。
结束本案例研究之前,有必要看一下Merit格式的L2F隧道定义(使用Cisco AV对配置的)。

程序清单2-104列出了一个在Merit RADIUS服务器上配置正确的L2F隧道定义。

上述隧道定义的含义非常明确。第1行指定了域名(mjlnet.com),这是连接到NAS的远程接入客户提供的域名。这里还指定了Cisco路由器的硬编码密码(cisco)。第2行列出了服务类型(Outbound-User)。

隧道定义中其他的内容包括隧道ID(LODI_NAS1)、终点网关的IP地址(172.16.2.2)和隧道密码(这里都是cisco)。

2.问题2:远程接入客户未能通过远程AAA(RADIUS)验证
为支持大量的远程接入客户,一种可扩展性更好的解决方案是,将远程接入客户的用户名和密码存储在AAA服务器中。

在这种情况下,要排除客户验证故障,首先应使用命令debug aaa authentication。

程序清单2-105是命令debug aaa authentication的输出。

在加黑的第1行,虚拟接入接口1的状态变为up,客户通过L2F隧道连接到了终点网关。在加黑的第2行,创建了用户joebloggs@mjlnet.com。

验证即将开始,如程序清单2-106所示。

在加黑的第1行,开始PPP服务的登录验证。加黑的第2和第3行表明,默认方法列表中的第一种验证方法为本地验证。

在加黑的第4行,本地验证导致错误。在加黑的第5行,开始使用RADIUS进行验证(默认方法列表中的第二种验证方法)。加黑的第6行表明,使用RADIUS进行验证时失败。

接下来虚拟接入接口1的状态变为down(加黑的第7行),客户被断开。

要获得更详细的信息,可使用命令debug radius。程序清单2-107是命令debug radius的输出。

在加黑的第1行,虚拟接入接口1的状态变为up,客户连接到了终点网关;在加黑的第2行,终点网关发送一条接入请求消息给RADIUS服务器,以便对客户进行验证。

在加黑的第3行,RADIUS服务器发送一条接入拒绝消息给终点网关,验证失败;在加黑的第4行,虚拟接入接口1的状态变为down,客户被断开。

验证失败表明,在客户工作站或RADIUS服务器上,客户的用户名或密码可能配置得不正确。客户确认其用户名和密码配置正确后,可以肯定RADIUS服务器配置不正确。RADIUS服务器上配置的用户名是正确的,这意味着密码肯定配置不正确。因此重新配置密码。

在User Setup对话框中重新配置客户密码,如图2.41所示。

重新配置密码后,客户重新连接时,将通过验证。这可以使用命令show caller user来证明,如程序清单2-108所示。

加黑的第1行表明,用户连接到了虚拟接入接口1。

从加黑的第2~4行可知,同远程接入客户成功地完成了LCP、CHAP和IPCP协商。没有同客户协商多链路PPP,因此它处于关闭(Closed)状态。问题解决了。

注意,如果在命令debug radius的输出中看到消息No response from server,这表明服务器不可达。因此,应排除连接性故障。

注意:

有关RADIUS属性的更详细信息,请参阅下面的URL:

http://www.cisco.com/univercd/td/doc/product/software/ios121/121cgcr/secur_c/scprt6/
scdradat.htm。

可以将命令debug radius的输出粘贴到Cisco网站中的输出解释器(http://www.cisco.com/cig-bin/Support/OutputInterpreter/home.pl)中,获得其简要解释。

要使用输出解释器,必须登录。

另外,从Cisco IOS软件版本12.2(4)T起,在debug radius命令的输出中对属性进行了解码。
3.问题3:对远程接入客户的远程AAA(RADIUS)授权失败
在终点网关上使用远程AAA时,RADIUS服务器不但要对客户进行验证,还需对客户使用的服务进行授权。如果授权配置不正确,客户连接将被断开。

可使用命令debug aaa authorization来调试这种问题,程序清单2-109只列出了相关的调试输出部分。

加黑的第1行表明,终点网关请求网络(NET)服务授权。注意,网络服务包括PPP,具体地说,终点网关请求有关PPP服务和VPDN协议的授权(见加黑的第2和第3行)。加黑的第4和第5行表明,终点网关从默认方法列表中选择了RADIUS授权。在加黑的第6行,授权失败。最后,在加黑的第7行,虚拟接入接口1的状态变为down。下面使用命令debug radius来获得更详细的信息。

程序清单2-111是命令debug radius的输出。

在加黑的第1行,虚拟接入接口1的状态变为up,客户已连接到终点网关。加黑的第2行表明,终点网关给RADIUS服务器发送了一条接入请求消息。在加黑的第3行,终点网关从RADIUS服务器那里收到了一条接入拒绝消息。加黑的第4行表明,终点网关没有收到针对客户的合适授权。最后,虚拟接入接口1的状态变为down,客户被断开。进行了授权,但类型不正确。

下面在RADIUS服务器上查看客户的用户设置和组设置。

图2.42是RADIUS服务器上客户的组设置。

正如读者看到的,在IETF RADIUS Attributes配置中,服务类型(Service-Type,属性6)被配置为登录(Login),分帧协议(Framed-Protocol,属性7)被配置为PPP。

分帧协议的配置是正确的,但服务类型配置错误。服务类型配置为Framed,而不是Login。

将服务类型重新配置为Framed,如图2.43所示。

重新配置服务类型后,客户重新连接时,授权将成功。这可以使用命令show caller user来核实。

程序清单2-112是命令show caller user的输出。

加黑的第1行表明,用户joebloggs@mjlnet.com已通过一条L2F隧道连接到终点网关。

从加黑的第2行可知,成功地同客户进行了LCP协商、PPP验证和IPCP协商。没有同客户进行多链路PPP(MP)协商,因此它处于关闭(Closed)状态。问题解决了。

注意,如果在命令debug radius的输出中看到消息No response from server,这表明服务器不可达。在这种情况下,应排除终点网关和RADIUS服务器之间的连接性故障。

注意:

有关RADIUS属性的更详细信息,请参阅下面的URL:

http://www.cisco.com/univercd/td/doc/product/software/ios121/121cgcr/secur_c/scprt6/
scdradat.htm。

可以将命令debug radius的输出粘贴到Cisco网站中的输出解释器(http://www.cisco.com/cig-bin/Support/OutputInterpreter/home.pl)中,获得其简要解释。

要使用输出解释器,必须有CCO账户。

从Cisco IOS软件版本12.2(4)T起,在debug radius命令的输出中对属性进行了解码。

2.4.2 案例研究2:无法在负载分担服务器和终点网关之间建立L2F隧道

在多机架多链路PPP(MMP)环境中,除非使用多跳VPDN,否则将无法建立从负载分担服务器(offload server)到终点网关的隧道。

在MMP环境中使用栈组争控协议(Stack Group Bidding Protocol,SGBP)组时,多链路PPP连接和可能的常规PPP连接(如果使用命令sgbp ppp-forward)将通过L2F隧道(在较新的Cisco IOS软件版本中,为L2TP隧道)被连接到争控胜者(负载分担服务器)。

注意,可使用命令sgbp protocol {any | l2f | l2tp}来更改使用的协议。如果将经由这些MMP L2F隧道到达的PPP数据流,再通过隧道转发给终点网关,实际上是将来自SGBP成员的入站隧道与前往终点网关的出站隧道连接起来。要完成这种隧道互连,必须仔细进行配置。

在下面的案例中,两个前端NAS(LODI_NAS1和LODI_NAS2)被配置成将PPP数据流转发给一台负载分担服务器(LODI_OFFLOAD),而LODI_OFFLOAD被配置成通过隧道将PPP连接延伸到终点网关PERRIS_HGW1,如图2.44所示。

然而,虽然通过隧道将PPP数据流成功地从LODI_NAS1和LODI_NAS2转发到了负载分担服务器LODI_OFFLOAD,但从LODI_OFFLOAD到终点服务器的L2F隧道没有正确运行。

通过在LODI_OFFLOAD上执行命令show user可知,通过隧道建立了两个来自前端NAS(LODI_NAS1和LODI_NAS2)的MP会话,如程序清单2-113所示。

从程序清单2-115中加黑的第1行可知,总共有两条L2F隧道和两个活动的会话。从加黑的第2行可知,一条隧道从172.16.1.3(LODI_NAS2)到172.16.1.4(LODI_OFFLOAD);从加黑的第3行可知,另一条隧道从172.16.1.1(LODI_NAS1)到172.16.1.4(LODI_OFFLOAD)。

这两条隧道的终点网关和NAS的名称都为LODI_STACK。这是因为LODI_NAS1、LODI_NAS2和LODI_OFFLOAD都被分配到SBGP组LODI_STACK组中,它们彼此进行验证。

然而,从程序清单2-113中的输出可以看出一个明显的问题:没有预期的从LODI_OFFLOAD到终点网关PERRIS_HGW1的隧道。

首先,采用常规的L2F故障排除方法。在这里,呼叫接收没有问题,因为PPP帧被成功地通过隧道从LODI_NAS1和LODI_NAS2转发到LODI_OFFLOAD,从前面的show命令的输出可以知道这一点。

接下来需要排除从LODI_OFFLOAD到PERRIS_HGW1的隧道建立故障。就这条隧道而言,LODI_OFFLOAD为L2F NAS设备,而PERRIS_HGW1为L2F终点网关。

由于已确定呼叫接收是成功的,因此接下来需要做的是,检查NAS(LODI_OFFLOAD)和终点网关(PERRIS_HGW1)之间是否有基本的IP连接性,为此可使用命令ping,如程序清单2-116所示。

在加黑的第1行,收到了一条来自LODI_STACK的L2F_CONF消息。现在,还不清楚该L2F_CONF消息是SGBP组LODI_STACK的哪个成员发送的。

在加黑的第2行,LODI_OFFLOAD打开一个到172.16.1.1(LODI_NAS1)的UDP套接字;在加黑的第3行,向LODI_NAS1发送一条L2F_CONF消息。这表明在加黑的第1行中的L2F_CONF来自LODI_NAS1。

在加黑的第4行,收到一条来自LODI_NAS1的L2F_OPEN消息。LODI_OFFLOAD用一条L2F_OPEN消息进行应答,L2F隧道建立过程完成。

接下来开始建立L2F客户会话,如程序清单2-118所示。

在加黑的第1行,收到一条来自LODI_NAS1的L2F_OPEN消息,这发起了L2F会话建立。在加黑的第2行,LODI_OFFLOAD以一条L2F_OPEN消息应答。在加黑的第3和第4行,虚拟接入接口3和2的线路协议状态变为up。

LODI_OFFLOAD用虚拟接入接口3端接从LODI_NAS1出发的MP链路。虚拟接入接口4用于捆绑MP链路(包括从LODI_NAS1出发的那条)。

接下来开始建立从LODI_NAS2出发的L2F隧道,如程序清单2-119所示。

在加黑的第1和第2行,LODI_NAS2和LODI_OFFLOAD交换L2F_OPEN消息,L2F会话建立完毕。最后,虚拟接入接口1上的线路协议状态变为up。该接口端接从LODI_NAS2出发的MP链路。

在LODI_NAS1、LODI_NAS2和LODI_OFFLOAD之间,能够正确地建立L2F隧道和会话。不幸的是,没有证据表明建立了从LODI_OFFLOAD到终点网关(PERRIS_HGW1)的L2F隧道。这意味着LODI_OFFLOAD可能存在配置错误。程序清单2-121列出了LODI_OFF-LOAD的配置中相关的部分。

咋一看,配置好像没有问题。然而,其中遗漏了一个重要命令。该命令让LODI_OFFLO-AD能够将通过从LODI_NAS1和LODI_NAS2出发的两条入站隧道传来的分组,转发到前往PERRIS_HGW1的隧道中。这个命令为vpdn multihop。

原来的两条隧道都恢复了,同时新增了一条从LODI_OFFLOAD到PERRIS_HGW1(172.16.5.1)的隧道。

最后一步是核实MP会话正确地终止于PERRIS_HGW1。为此,可使用命令show ppp multilink,如程序清单2-125所示。

从中可知,有两个通过隧道从LODI_OFFLOAD(172.16.2.1)延伸而来的MP会话,它们分别终止于虚拟接入接口1和2(见加黑的第2和第3行)。

在虚拟接入接口3上,这两个会话被捆绑在一起(见加黑的第1行)。问题解决了。

注意:

有关配置MMP的更详细信息,请参阅Cisco网站(www.cisco.com)中的文章“Multichassis Multilink PPP (MMP)”。

有关VPDN多跳特性的更详细信息,请参阅下面的URL:

http://www.cisco.com/univercd/cc/td/product/software/ios113ed/113t/113t_3/multih2.htm。

时间: 2024-10-29 05:19:52

《VPN故障诊断与排除》一2.4 案例研究的相关文章

《VPN故障诊断与排除》一2.9 故障排除实验

2.9 故障排除实验 VPN故障诊断与排除下面的实验用于帮助读者巩固和应用本章学到的知识和技能. 这里包括3个实验,它们都是基于图2.45所示的网络拓扑的. 在每个实验中,读者必须重建TATEBAYASHI@mjlnet.com到PERRIS_HGW1的端到端IP连接性.这可以从TATEBAYASHI@mjlnet.compingPERRIS_HGW1的环回接口(10.20.10.1)来测试. 实验的基本配置可在Cisco Press网站(www.ciscopress.com/158705104

《VPN故障诊断与排除》一2.7 show命令和debug命令小结

2.7 show命令和debug命令小结 VPN故障诊断与排除表2.5总结了本章用于排除L2F VPDN故障的show命令和debug命令.

《VPN故障诊断与排除》一1.4 自下而上(或自上而下)的端到端故障排除

1.4 自下而上(或自上而下)的端到端故障排除 VPN故障诊断与排除故障排除的方式有很多种,但VPN技术特别适合采用自下而上(或自上而下)的端到端故障排除方法. 例如,排除强制模式的第2层隧道协议(L2TP)第2版VPN故障时,首先需要确认在L2TP接入集中器(LAC)上收到了远程接入客户的呼叫:然后需要确认在LAC上成功地完成了链路控制协议(LCP)协商和部分验证:接下来需要确认在LAC和L2TP网络服务器(LNS)之间成功地建立了L2TP隧道和会话:最后,需要核实远程接入客户和LNS之间是否

《VPN故障诊断与排除》一1.5 故障排除工具

1.5 故障排除工具 VPN故障诊断与排除主要的VPN故障排除工具是show.ping.traceroute和debug命令.要正确.安全地使用这些命令,必须遵循一系列的指导原则. show命令可用于查看各种与VPN相关的信息和统计数据. ping和traceroute命令可用于检查基本IP连接性和跨越网络的路由.在MPLS主干中,命令traceroute还可用于显示标签栈.通过使用扩展ping命令来扫描一个分组长度范围,还可以确定VPN中可能出现的最大传输单元(MTU)问题.如果使用较短的分组

《VPN故障诊断与排除》一2.3 L2F故障排除

2.3 L2F故障排除 VPN故障诊断与排除要快速.高效地排除L2F故障,必须对L2F协议的工作原理.L2F配置和PPP有深入的了解.另外,如果远程接入客户拨号到NAS,还必须深入了解有关ISDN和异步调制解调器的知识.本节介绍如何将端到端故障排除方法应用于L2F. 图2.26所示的流程图描述了L2F故障排除过程.读者可以根据该流程图,快速地找到与发生的网络问题相关的章节. 警告: 应慎用debug命令.如果在负载非常重的路由器上执行debug命令,可能严重影响路由器运行,甚至导致路由器崩溃或挂

《VPN故障诊断与排除》一第1章 基本的故障排除方法1.1 准备工作:网络的基准化

第1章 基本的故障排除方法 VPN故障诊断与排除有两种基本的故障排除方法:盲人摸象法(stab-in-the-dark)和系统性方法.盲人摸象法通常不涉及有关技术的知识,在本质上是完全随机的.而系统性方法是一种循序渐进的方法,需要对有关技术有深入了解. 盲人摸象法偶尔也可行,但技术越复杂(虚拟专网[VPN]无疑是非常复杂的),盲人摸象法管用的可能性越小. 本章简要地介绍一种循序渐进的系统性方法,其他各章将详细介绍这种方法.要快速.高效地排除VPN故障,必须采用这种方法. 1.1 准备工作:网络的

《VPN故障诊断与排除》一2.8 复习题

2.8 复习题 VPN故障诊断与排除1.NAS建立到终点网关的L2F隧道时,首先发送的是哪种L2F消息? 2.默认情况下,远程接入客户和NAS之间进行PPP验证时将交换哪些消息?假设使用的是CHAP验证且客户没有被配置成对NAS进行验证. 3.客户和终点网关之间进行PPP验证时将交换哪些消息?假设终点网关接受NAS在会话建立期间发送的所有参数. 4.默认情况下,远程接入客户和终点网关之间的LCP协商是如何完成的? 5.NAS将PPP帧转发给终点网关时,将删除其中的哪些部分? 6.在L2F_CLO

《VPN故障诊断与排除》一1.3 开放系统互连模型

1.3 开放系统互连模型 VPN故障诊断与排除两个参考模型常用于理解网络互连技术:开放系统互连(OSI)模型和国防部(DoD)模型.它们都很有用,但本书使用OSI模型.图1.1说明了OSI参考模型. 就本章讨论的技术而言,故障排除只涉及这7层中的4层: 物理层(第1层): 数据链路层(第2层): 网络层(第3层): 传输层(第4层). 物理层与通过物理介质传输比特相关,诸如电平.最大传输距离和连接器类型等参数是在这一层指定的. 数据链路层处理物理编址.流量控制.物理介质的访问和错误检测等.数据链

《VPN故障诊断与排除》一1.2 发生问题时如何办

1.2 发生问题时如何办 VPN故障诊断与排除问题发生时,前一节提到的信息将给您以极大的帮助.然而,即使拥有这些信息,还需要快速收集与问题相关的事实. 首先,需要确定哪里出了问题--确定事实是什么.确定是否对网络做了修改,如果是这样,做了什么样的修改.尽可能同变更涉及的人员交谈,第二手信息可能没有您想象的那样可靠. 另外,如果在故障排除过程中发现显然存在多种问题,务必每次处理一个.试图同时解决多个问题通常会导致迷惑,甚至使情况更糟.