故障案例:AC无法识别Radius服务器下发的DM报文中Calling-Station-Id属性字段中的MAC地址格式导致强制用户下线失败

故障案例:AC无法识别Radius服务器下发的DM报文中Calling-Station-Id属性字段中的MAC地址格式导致强制用户下线失败

现象描述

AC配置802.1X + Radius认证,Radius服务器强制用户下线失败。

相关告警与日志

无。

原因分析

Radius服务器下发的DM报文中Calling-Station-Id属性字段中的MAC地址格式与AC侧默认支持的MAC地址格式不匹配,AC无法识别。

操作步骤

  1. 复现故障,通过trace功能查看认证报文交互过程,未发现DM和CoA报文交互过程。


    [AC] trace object mac-address sta-mac[AC] trace enable


  2. 通过debug功能查看Radius报文交互过程。


    <AC> debug radius all<AC> terminal debugging<AC> terminal monitor

    回显信息提示calling-station-id格式错误,AC侧不能正常识别。

    Mar 22 2021 18:00:55.200.2+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    [RDS(Evt):] Receive a packet(IP:x.x.x.x,Port:1812,Code:disconnect request,ID:16 )
    <AC-Active>
    Mar 22 2021 18:00:55.200.3+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    RADIUS Received a Packet.
    <AC-Active>
    Mar 22 2021 18:00:55.200.7+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=7;
    [RDS(Evt):] Decoding mac according to global configuration: 0 3 1
    <AC-Active>
    Mar 22 2021 18:00:55.200.4+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    Server Template: 0
    Server IP   : x.x.x.x
    Server Port : 1812
    Protocol: Standard
    Code    : 40
    Len     : 54
    ID      : 16
    [User-Name                          ] [15] [XXXXX]
    [Calling-Station-Id                 ] [19] [XX-XX-XX-XX-55-FB]
    <AC-Active>
    Mar 22 2021 18:00:55.200.5+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    [RDS(Evt):] Decoding mac for coa or dm packet
    <AC-Active>
    Mar 22 2021 18:00:55.200.6+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    [RDS(Evt):] Decoding mac according to global configuration: 0 3 1
    <AC-Active>
    Mar 22 2021 18:00:55.200.8+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=7;
    [RDS(Err):] attribute length: 17, decoding mac as unformatted ascii error.
    <AC-Active>
    Mar 22 2021 18:00:55.200.7+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    [RDS(Err):] attribute length: 17, decoding mac as unformatted ascii error.
    <AC-Active>
    Mar 22 2021 18:00:55.200.8+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;Attr decode err. (Calling-Station-Id(31)).
    <AC-Active>
    Mar 22 2021 18:00:55.200.9+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=7;Attr decode err. (Calling-Station-Id(31)).<AC-Active>
    Mar 22 2021 18:00:55.200.9+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=6;
    [RDS(Err):] Disconnect request attribute decode error,send nak packet.
    <AC-Active>
    Mar 22 2021 18:00:55.200.10+08:00 AC-Active RDS/7/DEBUG:Slot=0,Vcpu=7;
    [RDS(Err):] Disconnect request attribute decode error,send nak packet.


  3. 通过报文捕获工具镜像捕获报文,分析后发现服务器侧发起DMRequest的calling-station-id属性字段中的MAC地址格式为:XX-XX-XX-XX-XX-XX,大写格式。缺省情况下,AC支持识别的calling-station-id属性字段中的MAC地址格式为xxxx-xxxx-xxxx,小写形式。因此,AC无法识别Radius服务器发送的MAC地址格式。


    DM下线报文交互:

    本次DM所携带的calling-station-id属性字段:


  4. 针对上述问题,有两种处理方法。


    • 方法1:在Radius服务器侧进行配置,将calling-station-id属性字段中的MAC地址格式统一修改为xxxx-xxxx-xxxx,小写形式。AC与多台Radius服务器对接时,推荐该方法。

    • 方法2:在AC侧进行修改calling-station-id字段中MAC地址的格式,以匹配Radius服务器支持的格式。

      <AC> system-view [AC] radius-server template test [AC-radius-test] calling-station-id mac-format dot-split mode2 uppercase

    当AC与多台Radius服务器对接时,推荐方法1;当AC与单台Radius服务器对接时,推荐方法2。如果AC与多台Radius对接时有Radius服务器不支持修改MAC地址格式,则建议参考方法2为每个Radius服务器定制格式。


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » 故障案例:AC无法识别Radius服务器下发的DM报文中Calling-Station-Id属性字段中的MAC地址格式导致强制用户下线失败

作者: 小编


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!