• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

SR66系列路由器L2TP对接异常经验案例

2014-06-05 发表
  • 0关注
  • 0收藏 1383浏览
何理 四段
粉丝:7人 关注:2人

SR66路由器L2TP对接异常经验案例

一、   组网:

客户希望使用L2TP技术构建安全的虚拟专网,使得企业驻外机构和出差人员可从远程经由公共网络,通过虚拟隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。

客户使用一台SR66路由器作为LNS设备,同时使用一台友商设备作为LAC(一般为运营商设备),如图所示:

L2TP对接过程中,因为各厂家对于协议的理解差异,可能造成参数协商的不正确,下面为大家介绍其中三种情况。

二、   问题描述:

1.   用户通L2TP拨号到LNS设备上,L2TP会话成功建立,PPP LCP协商成功,CHAP认证通过,IPCP成功获取到地址,但是一分钟左右后用户会自动下线LCP/IPCP DOWN

2.   用户通过L2TP拨号到LNS设备上,L2TP会话可成功建立,但是在短时间内,L2TP会话会被清除掉,从而导致用户掉线。

 3.   用户通过L2TP拨号到LNS设备上,L2TP会话成功建立,因为配置了LCP重协商,所以接下来LNS与终端设备重新进行LCP协商,但是LCP协商完成后PPP LCP会立即DOWN,从而导致用户拨号不成功。

 

三、 过程分析:

1.   第一个问题用户可以正常上线,但是一分钟左右便会出现掉线现象,查看debug ppp all信息,发现LCP建立成功后,每隔10s(可调整)会发送Echo-Request报文,但是对端并没有回复我们Echo-reply报文,总计重传5次(可调整)Echo-Request报文后,还没有收到对端的回应,我们设备就会认为链路发生故,所以导致LCP/IPCP Down。示例:

*May  4 16:40:07:247 2014 YNSW-YD3G-SR6616 PPP/7/debug2: -Slot=7;

  PPP Event:

      Virtual-Template1:2 : Echo Timer Expired ,Retransmit = 3 

*May  4 16:40:07:247 2014 YNSW-YD3G-SR6616 PPP/7/debug2: -Slot=7;

  PPP Packet:

      Virtual-Template1:2 Output LCP(c021) Pkt, Len 12

      State opened, code EchoRequest(09), id 2, len 8

      Magic Number 603f9431 

*May  4 16:40:17:247 2014 YNSW-YD3G-SR6616 PPP/7/debug2: -Slot=7;

  PPP Event:

      Virtual-Template1:2 : Echo Timer Expired ,Retransmit = 2 

*May  4 16:40:17:247 2014 YNSW-YD3G-SR6616 PPP/7/debug2: -Slot=7;

  PPP Packet:

      Virtual-Template1:2 Output LCP(c021) Pkt, Len 12

      State opened, code EchoRequest(09), id 3, len 8

      Magic Number 603f9431 

*May  4 16:40:27:247 2014 YNSW-YD3G-SR6616 PPP/7/debug2: -Slot=7;

  PPP Event:

      Virtual-Template1:2 : Echo Timer Expired ,Retransmit = 1 

*May  4 16:40:27:247 2014 YNSW-YD3G-SR6616 PPP/7/debug2: -Slot=7;

  PPP Packet:

      Virtual-Template1:2 Output LCP(c021) Pkt, Len 12

      State opened, code EchoRequest(09), id 4, len 8

      Magic Number 603f9431 

%May  4 16:40:37:247 2014 YNSW-YD3G-SR6616 IFNET/5/LINEPROTO_UPDOWN: -Slot=7; Line protocol on the interface Virtual-Template1:2 is DOWN.

%May  4 16:40:37:248 2014 YNSW-YD3G-SR6616 IFNET/5/PROTOCOL_UPDOWN: -Slot=7; Protocol PPP IPCP on the interface Virtual-Template1:2 is DOWN.

 与对端设备确认,对端LAC设备不支持Keepalive报文,接收到Keepalive报文后不处理,所以便会发生超时重传掉线现象。

 

2.   这个问题会发生在SR66系列路由器R3103版本之前,在之前的版本中,建立L2TP链接后,我司设备默认会自动发送SLI报文SLI报文是LNS用于通知LACLNSClientACCM(异步)选项协商结果。当协商结果与默认不一致时,就会发送。实际应用中,各设备制造商的LACACCM要求可能不同,LNS需要根据LAC的要求配置是否发送ACCM消息。通过这个L2TP的消息,LNS 告知对端LAC 发送和接收的ACCM 掩码。当对端不支持ACCM报文时,SLI报文会重传三次,然后控制报文ACK消息超时,此时便会清掉隧道中的所有会话,从而导致用户下线。抓包信息如图所示:

而相应的debug信息:

*May  4 16:29:22:298 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_PAYLOAD: Tunnel 1 proc ctrl ack timer expired, SendUp=9 SendLow=4   //Tunnel 1 检测到控制报文超时

*May  4 16:29:22:298 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Calls on tunnel 1 cleared because 1                     //Tunnel 1 在控制报文超时后开始清会话

*May  4 16:29:22:299 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Cleared calls on tunnel pstNode=133d8cd0 total=2

*May  4 16:29:22:299 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Cleared the data structure of call 2186

*May  4 16:29:22:300 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Cleared calls on tunnel pstNode=1337d110 total=1

*May  4 16:29:22:300 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Cleared the data structure of call 2235

*May  4 16:29:22:301 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Tunnel 1 sent StopCCN to Tunnel 1                                //  发送StopCCN消息

*May  4 16:29:22:301 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Put AVP Message Type: STOP_CONTROL_CONNECTION_NOTIFICATION  //  StopCCN消息

*May  4 16:29:22:301 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Put AVP Assigned Tunnel ID: 1

*May  4 16:29:22:302 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_CONTROL: Put AVP Result code: LOSS_OF_CARRIER

*May  4 16:29:22:302 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_PAYLOAD: Tunnel 1 sent control (SendUp & RcvLow): Ns (9) Nr (8)

*May  4 16:29:22:303 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG:  L2TP_EVENT: Cleared Tunnel remote ID:1, local ID:1

*May  4 16:29:22:303 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG: -Slot=7;  L2TP_EVENT: IPC recv Src IPC ID=11 Dst node=5 Dst IPC ID=11 Len=16

*May  4 16:29:22:304 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG: -Slot=7;  L2TP_EVENT: IPC recv data type=100 len=16

%May  4 16:29:22:305 2014 YNSW-YD3G-SR6616 IFNET/5/LINEPROTO_UPDOWN: -Slot=7; Line protocol on the interface Virtual-Template1:0 is DOWN.        // LCP DOWN

*May  4 16:29:22:306 2014 YNSW-YD3G-SR6616 L2TP/7/L2TDBG: -Slot=7;  L2TP_EVENT: IPC processed IPC data result 0

%May  4 16:29:22:307 2014 YNSW-YD3G-SR6616 IFNET/5/PROTOCOL_UPDOWN: -Slot=7; Protocol PPP IPCP on the interface Virtual-Template1:0 is DOWN.   // IPCP DOWN

 

SR66路由器R3103(不包括)之前版本,是通过人为控制是否发送SLI消息的,但实际上这个消息的发送并不应该是人为的通过命令行设置,而是应该真正的通过PPP上报来决定它的发送。在R3103(含)之后的版本中只有当PPP设置为异步模式时,才会向L2TP上报ACCM 的设置情况(通过命令字IOCTL_SERIAL_SET_ACCM)。如果PPP 的工作模式为同步方式,则不会上报。即LNS可自动识别是否为同步异步方式来决定是否发送SLI报文

 

3.   LAC对用户进行验证后,为了增强安全性,LNS可以再次对用户进行验证。此时将对用户进行两次验证,第一次发生在LAC侧,第二次发生在LNS侧,只有两次验证全部成功后,L2TP隧道才能建立。

L2TP组网中,LNS侧对用户的验证方式有三种:

1)   代理验证:由LAC代替LNS对用户进行验证,并将用户的所有验证信息及LAC端本身配置的验证方式发送给LNSLNS根据接收到的信息及本端配置的验证方式,判断用户是否合法。

2)   强制CHAP验证:强制在LAC代理验证成功后,LNS再次对用户进行CHAP验证。

3)   LCP重协商:忽略LAC侧的代理验证信息,强制LNS与用户间重新进行LCPLink Control Protocol,链路控制协议)协商

为了增加安全性,有时我们会在LNS上配置LCP重协商,但是配置LCP重协商后,会出现用户不能拨号的现象。查看debug信息:

  PPP Packet:

      Virtual-Template1:0 Input  LCP(c021) Pkt, Len 14

      State acksent, code ConfAck(02), id 1, len 10

      MagicNumber(5), len 6, val 3909544c 

*Mar 20 14:32:15:840 2014 DLWP_R2 PPP/7/debug2: -Slot=3;

  PPP Event:

      Virtual-Template1:0 LCP RCA(Receive Config Ack)  Event

      state acksent

*Mar 20 14:32:15:841 2014 DLWP_R2 PPP/7/debug2: -Slot=3;

  PPP Event:

      Virtual-Template1:0 LCP Close  Event    //acksent状态会突然出现一个close事件

      state acksent

*Mar 20 14:32:15:841 2014 DLWP_R2 PPP/7/debug2: -Slot=3;

  PPP State Change:

      Virtual-Template1:0 LCP : acksent --> closing

*Mar 20 14:32:15:842 2014 DLWP_R2 PPP/7/debug2: -Slot=3;

  PPP Packet:

      Virtual-Template1:0 Output LCP(c021) Pkt, Len 8

      State closing, code TermReq(05), id 2, len 4

LCP重协商阶段,LCP协商完成时,会突然有一个Close事件发生,然后关闭PPP链接,导致协商不成功。

经与LAC厂家确认,对端LAC设备不支持LCP重协商,所以导致PPP协商不成功。

 

四、   解决方法:

1.   如果对端设备不支持对PPP Keepalive报文的处理,我们可以在VT口下使用timer hold 0命令关闭Keepalive报文的发送,这样设备就不会发送echo-request报文,同样也就不会出现超时从而导致PPP down 的现象。

2.   如果对端设备使用PPP同步方式进行协商而且不支持对于SLI报文的回应,在SR66路由器R3103之后的版本中会自动判断是否发送ACCM报文,所以不会出现控制报文ACK消息超时的情况;

如果是R3103之前的版本,可以使用undo l2tp sendaccm enable命令取消ACCM报文的发送。

3.   如果对端不支持LCP重协商,取消LCP重协商即可。

 

 

该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

作者在2019-06-08对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作