Print

AC对接锐捷服务器做802.1x认证,服务器上显示的终端的ip地址错误经验案例

2021-05-22 发表

组网及说明

不涉及


问题描述

终端接入我司无线网络获取到10.100.13.110的ip地址,但是锐捷服务器上显示的是10.100.238.127和10.100.13.110,经过确认这两个ip地址属于不同的网段



过程分析

收集AC的诊断信息发现该终端拥有两个ip地址: Detected client IP change: Client MAC: xxxx-xxxx-xxxx IP: 10.100.13.110, 10.100.238.127。

其中10.100.13.110是接入我司无线获取的ip,那么10.100.238.127是终端从哪里获取的ip地址呢?

经过现场排查发现,10.100.238.127是从锐捷的无线设备上获取的ip地址,由于我司设备与锐捷设备释放的无线信号相同,因此终端不会区分无线信号背后提供信号的设备是否相同,从锐捷设备漫游到我司设备后依然会尝试使用之前使用的ip地址10.100.238.127,发现老的地址在我司设备上无法使用才会请求新的ip地址10.100.13.110。

但是服务器上为什么轮流显示新地址和老地址?

通过在AC与服务器中间抓包发现终端会分别使用在锐捷设备获取的ip地址10.100.237.69和我司设备获取的ip地址10.100.35.121向服务器发送计费请求报文


服务器收到了两个ip地址不同但是mac地址相同的终端发送的计费请求报文,服务器上显示就是终端的ip地址有时候显示正确有时候显示不正确

那么是否有办法避免AC向服务器发送老的ip的计费请求?这就需要知道AC是通过什么方式学习到终端曾经用过的ip地址

通过下面的命令可以查到AC是通过ARP的方式学习到终端曾经使用过的ip地址10.100.237.69:

[WX3520H-probe]display system internal wlan client ip

Client MAC address: xxxx-xxxx-xxxx

  Current IPv4 address: 10.100.35.121 (source: DHCP)

  Current IPv6 address: N/A

  History:

   10.100.237.69 (source: ARP)

  IPv6 prefix: N/A

终端从锐捷设备漫游到我司设备后会使用老地址发送arp报文,AC通过这个方式学习到终端曾经使用过的ip地址

因此只需要关闭AC的arp学习功能就可以避免AC向服务器发送终端的老ip地址


解决方法

 在AC的服务模板下,关闭AC通过ARP方式学习客户端IPv4地址功能,该功能默认开启。

[Sysname] wlan service-template service1
[Sysname-wlan-st-service1] undo client ipv4-snooping arp-learning enable  

关闭该功能后,服务器侧终端ip地址显示正常