现场组网大致如上图,BRAS使能二层IPOE WEB接入,用户经过AP、AC、SW到达BRAS,不同AP、AC对应到SW的VLAN有区别,报文上送到BRAS不同VLAN的子接口。BRAS子接口100、200属于不同地址段,均使能无感知(MAC RADIUS方式)。BRAS为DHCP SERVER。AAA为城市热点。BRAS版本为R7953PXX。
PC1用MAC1拿到地址IP1,在BRAS子接口100正常上线到IPOE WEB后域。出现故障时PC1异常下线,无法到外网,BRAS查看IP1无异常下线记录,当前IP1正在被用户2(MAC2)使用,AAA记录用户2用IP1无感知上线失败。该现象较为频繁,AAA每隔1-2分钟会记录一次。
部分情况下,用户1拔插网线,又获取到IP1,此时用户访问外网web页面会被重定向到认证portal页面,但portal页面显示用户1已在线,BRAS此时查看MAC1+IP1表项在前域,因此用户无法到外网,持续被重定向到portal,直至AAA侧用户表老化,用户1才能正常再次上线。
先看AAA记录MAC2+IP1无感知失败现象。与AAA交流其记录具体失败原因为ip conflict,出现该记录一般是因为AAA记录该IP已有在线,再有其他MAC用该IP发来无感知请求,AAA会因地址冲突拒绝。正常情况下,BRAS给MAC1分IP1,在其下线前不会把IP1发给MAC2,即使MAC1下线,BRAS也会给AAA发送MAC1+IP1的计费终止告知AAA下线,使两端用户状态同步,之后BRAS才可能将IP1发给MAC2。因此该现象需要看BRAS侧是否有MAC1下线、IP1分给MAC2过程,以及BRAS是否将MAC1+IP1的计费终止发给AAA。在BRAS侧debug dhcp server all,AAA同步开启抓包,收集10分钟信息后,分析如下:
1. AAA记录12:02:16用户4684-31FD-0691用地址1.1.1.1无感知上线失败,地址冲突。
2. 在BRAS debug中查找4684-31FD-0691及1.1.1.1相关交互过程。
终端76c5-382b-9cc6先发dhcp request到BRAS RAGG1.2接口,BRAS记录该reuqest的接口RAGG1.2与用户已有会话所处接口不一致,按照接口下的ip sub dhcp mismatch fast-renew配置,要踢掉旧会话,即force the old user 1.1.1.1 to offline。
*Oct 21 12:00:47:113 2022 BRAS DHCPS/7/PACKET: -MDC=1;
From 0.0.0.0 port 68, interface Route-Aggregation1.2
Message type: REQUEST (1)
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 1717708010
Seconds: 0, Broadcast flag: 0
Client IP address: 0.0.0.0 Your IP address: 0.0.0.0
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 76c5-382b-9cc6
Server host name: not configured
Boot file name: not configured
DHCP message type: DHCPREQUEST (3)
*Oct 21 12:00:47:113 2022 BRAS DHCPS/7/EVENT: -MDC=1; Receive a DHCPREQUEST message for 1.1.1.1 from Route-Aggregation1.2; The server identifier is (none).
*Oct 21 12:00:47:113 2022 BRAS DHCPS/7/EVENT: -MDC=1; Force the old user 1.1.1.1 to offline, interface is mismatch.
正常情况下,上面释放的地址1.1.1.1会放进dhcp expired记录,其他用户上线时,BRAS会从dhcp free中优先分地址。如果新用户dhcp request携带option 50,请求1.1.1.1,则BRAS也会从expired中拿出该地址给新用户。此处新用户ea0c-6d72-7949在RAGG1.1上线,拿到1.1.1.1,该时间点对应AAA记录的地址冲突、无感知失败。
*Oct 21 12:00:52:367 2022 BRAS DHCPS/7/PACKET: -MDC=1;
To 1.1.1.1 port 68, interface Route-Aggregation1.1
Message type: REPLY (2)
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 3924601975
Seconds: 2, Broadcast flag: 0
Client IP address: 0.0.0.0 Your IP address: 1.1.1.1
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: ea0c-6d72-7949
Server host name: not configured
Boot file name: not configured
DHCP message type: DHCPACK (5)
约2分钟后,用户ea0c-6d72-7949又到RAGG1.2发dhcp request,BRAS再次因为dhcp与旧会话接口不同,踢掉旧会话。
*Oct 21 12:02:07:855 2022 BRAS DHCPS/7/PACKET: -MDC=1;
From 0.0.0.0 port 68, interface Route-Aggregation1.2
Message type: REQUEST (1)
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 3924601977
Seconds: 0, Broadcast flag: 0
Client IP address: 0.0.0.0 Your IP address: 0.0.0.0
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: ea0c-6d72-7949
Server host name: not configured
Boot file name: not configured
DHCP message type: DHCPREQUEST (3)
*Oct 21 12:02:07:855 2022 BRAS DHCPS/7/EVENT: -MDC=1; Receive a DHCPREQUEST message for 1.1.1.1 from Route-Aggregation1.2; The server identifier is (none).
*Oct 21 12:02:07:855 2022 BRAS DHCPS/7/EVENT: -MDC=1; Force the old user 1.1.1.1 to offline, interface is mismatch.
3. 检查AAA侧抓包,在12:00:52,ea0c-6d72-7949用1.1.1.1上线之前,没找到76c5-382b-9cc6用1.1.1.1的计费终止报文。这是导致AAA认为1.1.1.1对应旧用户76c5-382b-9cc6,因此新用户ea0c-6d72-7949不能用1.1.1.1无感知上线的直接原因。
经确认,因为用户为双栈,仅配置ipv4 dhcp fast-renew、未配置ipv6 dhcp fast-renew时,用户换接口发ipv4 dhcp,BRAS仅更新ipv4栈,原有ipv6栈表项不会更新。此时BRAS不会对旧用户发计费终止,而是会发送计费更新。计费更新报文会携带159号私有属性,该属性值为1标志用户地址有变化,需要AAA根据此计费更新报文刷新用户ipv4/ipv6地址。现网AAA还不支持该属性,因此BRAS发送该计费更新后,AAA仍保持旧用户在线的记录,对新用户无感知失败。
重新整理问题过程:MAC1用IP1在接口1上线,之后MAC1在接口2发DHCP
REQUEST,BRAS按照ipv4
fast-renew配置踢掉旧会话;BRAS发计费更新报文,携带159号属性标志用户地址有变化,AAA不适配该属性,因此仍记录MAC1在使用IP1;MAC2在任意接口发DCHP
REQUEST,携带OPTION 50请求到IP1,BRAS向AAA发无感知RADIUS报文,AAA拒绝,并记录地址冲突;如果MAC2也换接口发DHCP,则IP1再次释放,AAA仍不会更新,之后如MAC1再DHCP
REQUEST IP1,会导致BRAS认为MAC1+IP1在前域,AAA认为MAC1+IP1在后域,用户挂死在该状态,直至AAA持续3个计费周期(默认1200s
* 3)没有收到MAC1+IP1的计费更新,将旧会话老化,MAC1+IP1才能正常上线。
对于该场景,可以发现触发问题的根本原因是用户经常换VLAN发DHCP报文,导致BRAS侧经常要释放旧地址,之后才会有BRAS与AAA用户状态不一致等问题。经现网确认,终端所处无线环境有两个AP距离较近,所处VLAN不同,当终端在该区域活动,容易出现终端持续在两个VLAN之间来回发DHCP的行为。
1. AAA适配我司RADIUS私有159号属性,当用户更新IP时,AAA同步更新用户状态。
2. 暂时关闭接口ipv6认证,仅保留ipv4单栈认证,当用户切换接口时,BRAS会发送计费终止。ip subscriber l2-connected enable ipv4,该配置会导致所有用户下线。
3. 接口下增加ipv6 dhcp session-mismatch action fast-renew配置,当用户换接口时,根据用户的dhcpv4、dhcpv6报文分别更新双栈,旧会话双栈都被踢掉时,BRAS会发送计费终止,这样也能保持BRAS与AAA用户状态一致。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作