不涉及
终端接入我司无线网络获取到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地址显示正常