Is firmware using DHCPRequest instead of PING by mistake?



  • I'm still wanting to know why the flic_hub makes DHCPREQUEST every 35-45 seconds?

    My only thought is when someone wrote the code for the HUB did they mistakenly use DHCPREQUEST instead of PING wanting to ascertain if the present connection is still active. I have seen countless devices and apps do this. This is not a unusual event or behavior; however, these devices and apps actually use PING instead.

    Now as I have been asked before back in December, "Have you tried a different router?" Yes, sixteen of them ranging from cheap off the shelf consumer routers, ISP supplied routers, to enterprise grade routers and switches (Cisco, Juniper, Ubiquiti, and HP). The HUB exhibits the same behavior on all of them. Even when DHCP is disabled after the HUB has acquired an IP address.

    Next issue. What type of connection? Wifi or Lan? I have used BOTH or all sixteen network setups. The behavior is the same.

    My next plan of attack is to create a script that floods the flic_hub with DHCPACK packets and watch to see if it still sends DHCPRequests. I'm willing to bet it does.

    In the Log below this router is assigning flic_hub a STATIC address with a DHCP lease of zero(0) which means the client should not make another request unless the connection is reset. I do not know of anything interrupting or resetting this connection every 35-45 seconds. I have also tried setting the DHCP lease length to 9999. This would mean there should be new requests or renewal requests from the client for approximately 4,990+ minutes, but I still get the same behavior.

    Apr 24 18:30:26 ###.###.###.### dnsmasq-dhcp DHCPOFFER(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:30:26 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:30:26 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:34:15 ###.###.###.### dnsmasq-dhcp DHCPOFFER(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:34:15 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:34:15 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:35:20 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:35:20 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:35:23 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:35:23 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:35:31 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:35:31 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:35:47 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:35:47 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:36:05 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:36:05 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:36:59 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:36:59 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:37:03 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:37:03 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:37:12 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:37:12 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:37:29 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:37:29 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:37:44 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:37:44 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:38:38 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:38:38 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:38:43 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:38:43 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:38:51 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:38:51 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:39:07 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:39:07 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:39:23 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:39:23 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:40:17 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:40:17 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:40:21 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:40:21 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:40:29 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:40:29 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:40:45 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:40:45 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:41:02 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:41:02 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:41:58 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:41:58 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:42:01 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:42:01 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:42:09 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:42:09 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:42:26 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:42:26 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:42:43 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:42:43 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:43:38 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:43:38 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:43:42 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:43:42 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:43:50 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:43:50 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:44:07 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:44:07 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:44:23 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:44:23 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:45:17 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:45:17 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:45:22 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:45:22 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:45:29 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:45:29 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:45:46 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:45:46 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub
    Apr 24 18:46:02 ###.###.###.### dnsmasq-dhcp DHCPREQUEST(br0) ###.###.#.29 9a:af:b1:1a:08:a7
    Apr 24 18:46:02 ###.###.###.### dnsmasq-dhcp DHCPACK(br0) ###.###.#.29 9a:af:b1:1a:08:a7 flic_hub



  • YES - I am 100% correct. The firmware is using DHCPREQUEST to test network connectivity. This is why the flic hub is sending out almost a 100 DHCPREQUEST packets a minute.

    Received a suggestion that I should try increasing the DHCP lease time. Well I first tried Zero(static), , then 1,440 (24 hrs), then I tried 99,999 minutes(That's 69.44375 days). This does not stop or change the rate of DHCPREQUEST traffic. (FYI - Depending on the DHCP or DNSMASQ version you are running the DHCP lease time is generally restricted to five digits.)

    When you disable DHCP on the network the FLIC_HUB immediately goes into an offline state.
    If you are using ethernet connection the flic hub now shows 'CONNECTED' with the IP address of 169.254.194.195. It knows the NIC is physically connected but refuses to communicate until there is DHCP service. Why do I say this? When you disconnect the ethernet cable the status changes to 'Connect cable.'

    If you are using a WiFi connection the flic hub reports 'WiFi disconnected,' but it shows an IP address of 169.254.194.195. Now if the hub has lost it's wlan connection why is it showing an automatic private address? That is because the access point it was communicating with still shows the flic hub as associated and responding to traffic control packets(RTS/CTS).
    So that only leaves ONE possible explanation. When the flic hub does not receive a DHCPACK it goes offline under the assumption that there is no active internet connection. This is WRONG!
    Maybe you need to implement a Network Connectivity Status Indicator(NCSI) similar to Microsoft has done with windows.

    This is not an isolated incident to just a SINGLE flic hub. I have FIVE(5) FLIC hubs sitting here in front of me that all exhibit the exact same behavior. It does not matter which type of connection you use, WiFi or ethernet, the FLIC hub uses DHCPREQUEST to test network connectivity.

    Now I was helping a friend troubleshoot their VoIP connection for a remote work setup using WiFi. NO, they cannot use ethernet. This person's landlord does not permit cables or cords of any type to be on the floor, even temporarily. And no taping to the floor isn't acceptable either, we asked. If the landlord finds that condition it is grounds for immediate eviction.
    What did I find? Two flic hubs broadcasting nearly 300 DHCPREQUEST a minute across a wireless connection causing congestion on the wireless network. So I unplug the flic hubs and the issue instantly resolves itself. So here is a prime example that this method is poor choice to check for internet connectivity. (Two flichubs? I don't wanna go it that story.)

    YES - This causes disastrous latency issues for gaming computers & consoles using WiFi.
    I quit counting how many times unplugging a FLIC HUB solved latency issues for gaming.

    Here is a list of switch and router manufacturers I can duplicate this behavior with.

    • Ubiquiti
    • Cisco Systems & Meraki
    • Juniper
    • HP Pro Curve
    • Huawei
    • Avaya
    • Mikrotik
    • Dell
    • Netgear
    • D-Link
    • TP-link
    • Zyxel
    • Buffalo Technology
    • Auruba
    • Samsung
    • Ruckus Networks
    • Linksys/Belkin
    • TrendNet
    • Motorola
    • Arris

    Does not matter which brand of router/switch/AP is used in conjunction with the flichub if DHCP is disabled the flichub will go offline without fail - guaranteed.


  • FlicTeam

    Hi. We use dhcpcd-8.1.9 (https://github.com/NetworkConfiguration/dhcpcd/tree/dhcpcd-8.1.9). You are free to investigate the code there to see if you can find any cause of this. Other than that, nothing on the Flic hub sends out dhcp requests.


Log in to reply