None
The terminal connected to our wireless network and obtained an IP address of 10.100.13.110, but the third-party server displayed 10.100.238.127 and 10.100.13.110, which were confirmed to belong to different network segments.
Collecting diagnostic information from AC, it was found that the terminal has two IP addresses: Detected client IP change: Client MAC: xxxx xxxx xxxx IP: 10.100.13.13, 10.100.23.23.
Among them, 10.100.13.13 is the IP address obtained by accessing our company's wireless network, so where does 10.100.23.23 obtain the IP address from?
After on-site investigation, it was found that 10.100.23.23 was obtained from the third-party wireless device. Due to the same wireless signal released by our device and third-party device, the terminal will not distinguish whether the device providing the signal behind the wireless signal is the same. After roaming from third-party device to our device, we will still try to use the previously used IP address 10.100.23.23, We only request a new IP address 10.100.13.13 when we find that the old address is unusable on our device.
But why does the server take turns displaying new and old addresses?
By capturing packets between the AC and server, it was found that the terminal would send billing request messages to the server using the IP address 10.100.231.231 obtained from the third-party device and 10.100.131.131 obtained from our company's device, respectively.
The server received a billing request message from two terminals with different IP addresses but the same MAC address. The server displays the IP address of the terminal, sometimes correctly displayed, and sometimes incorrectly displayed.
So is there a way to avoid AC sending old IP billing requests to the server? This requires knowing how AC learned the IP address used by the terminal.
By using the following command, it can be found that AC learned the IP address 10.100.231.231 that the terminal had previously used through ARP:
[WX3520H-probe]display system internal wlan client ip
Client MAC address: xxxx-xxxx-xxxx
Current lPv4 address:10.100.131.131(source: DHCP)
Current lPv6 address: N/A
History: 10.100.231.231(source: ARP)
IPv6 prefix: N/A
After roaming from the third-party device to our company's device, the terminal will use the old address to send ARP messages, and AC will learn the IP address used by the terminal through this method. Therefore, simply turning off the ARP learning function of AC can avoid AC sending the old IP address of the terminal to the server.
Under the service template of AC, turn off the function of AC learning client IPv4 addresses through ARP, which is enabled by default.
[Sysname] wlan service-template service1
[Sysname-wlan-st-service1] undo client ipv4-snooping arp-learning enable
Layer 2 forwarding, and the DHCP Server is the upper layer gateway device.
After turning off this function, the IP address display on the server-side terminal is normal.