1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Weird DHCP issue prevents clients from getting IP addresses

Discussion in 'Tomato Firmware' started by tievolu, May 19, 2017.

Tags:
  1. tievolu

    tievolu Network Guru Member

    I recently updated from an old Shibby Tomato build (~132?) to the most recent release (140), and I have had a strange DHCP issue on two separate occasions. The DHCP server seemed to get stuck in a DHCPDISCOVER/DHCPOFFER loop and the clients cannot get an IP address.

    Several different clients were affected (an Xbox 360, two Raspberry Pis and a Panasonic TV) so I'm pretty sure the clients are not at fault. The problem also went away both times when I rebooted the router.

    In both instances the problem seemed to start after I had been modifying DHCP settings - mostly static assignments I think.

    The logs look like this (MAC addresses etc. obscured):

    Code:
    May 16 21:13:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:14:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:14:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:14:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:14:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:14:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:14:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:14:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:14:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:14:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:14:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:14:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:91:e5
    May 16 21:14:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:15:27 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:15:27 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:15:32 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:15:32 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:15:37 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:15:37 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:15:42 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:15:42 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:15:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:15:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:15:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:15:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:15:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:15:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:16:56 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:16:56 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:16:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:16:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:17:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:17:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:17:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:17:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:17:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:17:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:17:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:17:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:17:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:17:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:18:01 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:18:01 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:18:05 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:18:05 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:18:27 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:18:27 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:18:32 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:18:32 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:18:37 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:18:37 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:18:42 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:18:42 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:18:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:18:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:18:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:18:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:19:05 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:19:05 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:19:10 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:19:10 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:19:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:19:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:20:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:20:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:20:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:20:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:20:10 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:20:10 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:20:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:20:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:20:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:20:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:20:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:20:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:21:18 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:21:18 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:21:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:21:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:21:27 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:21:27 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:21:32 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:21:32 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:21:37 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:21:37 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:21:42 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:21:42 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:21:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:21:47 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:21:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:21:52 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:22:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) 00:1b:d3:43:XX:XX
    May 16 21:22:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.107 00:1b:d3:43:XX:XX
    May 16 21:22:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:22:57 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:23:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:23:02 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:23:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:23:07 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:23:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:23:12 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:23:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:23:17 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    May 16 21:23:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPDISCOVER(br0) b8:27:eb:5a:XX:XX
    May 16 21:23:22 xxxxxxxx daemon.info dnsmasq-dhcp[29438]: DHCPOFFER(br0) 192.168.111.125 b8:27:eb:5a:XX:XX
    In this example there are two clients which cannot get an IP address, and were unable to connect to the internet. The log messages continued until I rebooted the router, then everything went back to normal.

    I haven't seen this again since I finished setting up the network. But I'm curious about what the problem is. I have never seen this before in many years of using Tomato.

    Has anyone seen anything similar?
     
    Last edited: May 19, 2017
  2. AndreDVJ

    AndreDVJ Addicted to LI Member

    Many dnsmasq users have seen this when RFC-6842 was implemented, but it's reverted already.

    Try restarting dnsmasq when this happens. There's no need to reboot the router.
     
  3. tievolu

    tievolu Network Guru Member

    Good to know that it's not just me. Presumably this means we can expect this problem to disappear in a future Tomato release?

    I'm guessing this is the best way to restart dnsmasq?

    Code:
    service dnsmasq restart
     
  4. AndreDVJ

    AndreDVJ Addicted to LI Member

    In your case, probably the clients were simply rejecting/discarding the IP address offered by DHCP, since you have been playing with static assignment. dnsmasq in Tomato doesn't implement RFC-6842, so you have a different issue.

    I'm afraid future dnsmasq releases may break compatibility with "non-compliant" clients.

    And yes, that's the command to restart dnsmasq, though I prefer to reboot the router depending on the change I am doing.
     
  5. tievolu

    tievolu Network Guru Member

    I don't know much about DHCP or dnsmasq, but it seems unlikely to me that the clients were at fault. Once it started happening, every new client that connected to the network was unable to obtain an IP address, even ones whose assigned IPs were not modified by my static IP meddling.

    I guess it's difficult to know exactly what was going on without a wireshark trace or similar.
     
  6. AndreDVJ

    AndreDVJ Addicted to LI Member

    Then we have a different issue at hand. I believe dnsmasq is the culprit then.

    dnsmasq is the DHCP server running on Tomato. Restarting that service will make dnsmasq "re-read" /etc/dnsmasq.conf, which contains the static IP assignment for your MAC addresses.

    About any new versions, looks like dnsmasq is on track for version 2.77. As soon as it goes out of Release Candidate phase, I will to upgrade on my routers. If you have an ARM router you can request that I compile a binary for you, or download kille72 builds.
     
  7. Sean B.

    Sean B. Networkin' Nut Member

    I'd venture to guess it may be an issue with how dnsmasq is being restarted when save is clicked in the GUI, or a direct result of your setting changes. What leads me to this assumption is I don't think the clients are actually "rejecting" the offered IP.. they're silently dropping it. If they were to reject it the log should show a DHCPDECLINE against the offer. However, the offer is simply ignored and the client continues sending discovers as if the server has never responded. This is consistent with RFC behavior when a client receives a DHCPOFFER that does not contain an XID matching that of it's most recently sent DHCPDISCOVER.. which is to silently drop the offer. Dnsmasq may be responding using an XID that is not current due to the restart. Did you by chance set static lease times to infinite? If it happens again, you may try rebooting a client instead of the router. Or, if a windows client, do ipconfig /release then ipconfig /renew and see if the client then responds to the offer. Alternatively, try restarting dnsmasq via command line by first getting dnsmasq's PID from: ps | grep dnsmasq and then do a kill -1 PIDHERE and see if that restart returns proper function. Wireshark captures during the issue would be the best path for information on the cause.

    Excerpt from mentioned RFC:
    RFC 2131 Dynamic Host Configuration Protocol


    4.4.1 Initialization and allocation of network address


    If the 'xid' of an arriving DHCPOFFER message does not match the
    'xid' of the most recent DHCPDISCOVER message, the DHCPOFFER message
    must be silently discarded. Any arriving DHCPACK messages must be
    silently discarded.

    Also, depending on what settings you change and whether or not you renew the clients after said changes:

    RFC 2131 Dynamic Host Configuration Protocol

    4.1 Constructing and sending DHCP messages

    Normally, DHCP servers and BOOTP relay agents attempt to deliver
    DHCPOFFER, DHCPACK and DHCPNAK messages directly to the client using
    uicast delivery. The IP destination address (in the IP header) is
    set to the DHCP 'yiaddr' address and the link-layer destination
    address is set to the DHCP 'chaddr' address. Unfortunately, some
    client implementations are unable to receive such unicast IP
    datagrams until the implementation has been configured with a valid
    IP address (leading to a deadlock in which the client's IP address
    cannot be delivered until the client has been configured with an IP
    address).

    Where dnsmasq may be sending the offer to the newly configured static IP ( DHCPDISCOVER message would have been received via broadcast ) but the client is still holding a prior and differing lease IP ( doesn't receive DHCPOFFER via unicast if new manually configured static IP is used instead of the IP from the DHCPDISCOVER yiaddr field ).
     
    Last edited: May 20, 2017
    AndreDVJ likes this.
  8. tievolu

    tievolu Network Guru Member

    No, the lease times for the static IPs are the default - 24 hours I think. But they were almost certainly holding a previous lease.

    If it happens again I'll try to get useful info, but the last two times it has affected Kodi boxes (among other clients) and it's hard to get data when the kids are moaning in your ear because they can't watch Teenage Mutant Ninja Turtles :)
     
  9. Sean B.

    Sean B. Networkin' Nut Member

    I feel ya on that one :)
     
  10. swhelan

    swhelan New Member Member

    I am having an identical issue on my RT-AC66U running 138. After about 18 - 20 hours about 6 of my IoT devices no longer get IP addresses.

    I now reboot my router at 2am each morning to try and compensate for it.
     
  11. tievolu

    tievolu Network Guru Member

    More dnsmasq/DHCP issues this morning, after modifying a static lease on Saturday afternoon. This time it was two android devices which couldn't connect - both Nexus 5X's running the latest version of Android. Neither of these clients was the one whose static lease I modified.

    The router log appears to show that the devices were given IPs, but the clients couldn't connect to the internet. These clients seemed to experience the problematic situation in a different way to the clients shown in the OP - there was no DHCPDISCOVER/DHCPOFFER cycle this time.

    Here's the router log for these two devices:

    Code:
    May 22 03:00:56 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:fe:fa
    May 22 03:00:56 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:00:57 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:00:57 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 03:06:57 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:f8:c5
    May 22 03:06:57 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 03:06:57 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 03:06:57 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 03:07:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 03:07:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:07:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:07:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 03:27:47 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 03:27:47 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:27:47 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:27:47 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 03:44:33 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 03:44:33 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:44:33 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:44:33 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 03:55:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 03:55:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:55:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 03:55:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 04:02:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 04:02:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:02:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:02:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 04:09:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 04:09:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:09:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:09:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 04:21:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 04:21:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:21:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:21:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 04:27:23 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 04:27:23 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:27:23 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:27:23 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 04:40:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 04:40:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:40:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:40:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 04:47:24 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 04:47:24 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:47:24 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 04:47:24 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 05:00:37 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 05:00:37 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:00:37 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:00:37 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 05:26:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 05:26:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:26:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:26:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 05:46:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 05:46:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:46:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:46:38 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 05:51:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 05:51:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:51:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 05:51:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 06:04:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:04:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 06:04:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 06:04:18 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    May 22 06:30:40 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:30:40 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:30:40 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:30:40 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:35:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:35:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:35:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:35:39 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:35:52 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:35:52 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:35:52 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:35:52 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:36:10 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:36:10 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:36:10 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:36:10 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:36:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:36:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:36:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:36:20 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:36:43 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:36:43 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:36:43 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:36:43 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:40:04 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:40:04 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:40:04 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:40:04 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:40:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:40:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:40:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:40:16 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:41:30 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:41:30 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:41:30 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.113 64:bc:0c:63:XX:XX
    May 22 06:41:30 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.113 64:bc:0c:63:XX:XX android-1
    May 22 06:43:49 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPDISCOVER(br0) 64:bc:0c:63:XX:XX
    May 22 06:43:49 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPOFFER(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 06:43:49 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPREQUEST(br0) 192.168.111.114 64:bc:0c:63:XX:XX
    May 22 06:43:49 XXXXXXXX daemon.info dnsmasq-dhcp[14424]: DHCPACK(br0) 192.168.111.114 64:bc:0c:63:XX:XX android-2
    
    One device was my phone, where the wireless status showed as "IP configuration error".

    Restarting dnsmasq didn't help, but again rebooting the router fixed the problem. I forgot to try rebooting the clients.

    So in my case something clearly breaks when modifying the static lease table. Things seem to work ok otherwise. (I did have to turn wireless off and on again on my phone the other day to get an IP, but that might be completely unrelated.)

    My router is also an AC66U. Perhaps that is relevant.

    So I have now had the problem with two Raspberry Pis (running LibreELEC), an Xbox 360, a Panasonic TV, and two android phones. Clients that don't seem to have been affected (yet) based on the log contents are a Windows PC, a Synology NAS, an LG TV, a Lexmark printer, and an older android tablet running a Cyanogenmod ROM based on Android 4.4, but it may be that devices have simply not tried to renew their IPs in the time period between noticing the problem and rebooting the router.
     
    Last edited: May 22, 2017 at 10:07 AM
  12. ghoffman

    ghoffman LI Guru Member

    i have htis problem intermittently also, most directly solved by router reboot. i think the radio link has to go down to get things working again.

    could it be that dual-band devices are runnning into problems if they first connected with one radio, got an IP address, and then tried to connect using the same address on the other radio, whcih has a different MAC? wold the router get confused on the the IP addr - MAC mapping?
     
  13. tievolu

    tievolu Network Guru Member

    Now that I think about it, all of the clients for which I have noticed the problem are connected (wired) to a wireless bridge (another AC66u running tomato) that connects to the main router on the 5ghz band, so they are effectively 5ghz wireless clients.

    I also know that some funky things happen with the MAC addresses for the clients that connect via the bridge, which could be complicating things further in my case (the MACs all look correct in the router logs though).
     
    Last edited: May 22, 2017 at 4:41 PM
  14. Sean B.

    Sean B. Networkin' Nut Member

    Bingo. It must have something to do with dnsmasq being restarted upon save being clicked in the GUI and the fact dhcp is forwarded through a wireless Ethernet bridge. Things are getting confused in the process. Any reason using wireless client mode wouldn't be fitting for your situation? The clients connected to the secondary router would be in a different subnet, but that secondary router would then handle dhcp for it's connected clients rather than forwarding to your primary. May remedy this issue.
     
  15. ghoffman

    ghoffman LI Guru Member

    sean -i dont think it has necessarily to do with wireless ethernet bridge - I don't have that in my setup. i do, however, have wired access points, so clients can potentially switch radios and access points with the same IP but differnt MAC.
     
  16. Sean B.

    Sean B. Networkin' Nut Member

    No idea if it's related to your circumstance or not, however it seems more than coincidence in the OP's situation that all clients having this issue are the ones connected via the wireless ethernet bridge.

    **EDIT** Now that I think about it, doesn't an access point forward DHCP to an from the primary router as well? Common link being both cases having a middle man for DHCP.
     
  17. Sean B.

    Sean B. Networkin' Nut Member

    @tievolu any chance you're familiar enough with WireShark to grab some captures during the issue?
     
  18. tievolu

    tievolu Network Guru Member

    I really want to avoid the double NAT and extra complications associated with client mode. Prior to my recent upgrade, bridge mode had been absolutely rock solid for about 18 months.

    I have some limited experience with WireShark, but I'm not sure how I could get a trace because my Windows box has not yet experienced any problems (despite being connected via the bridge).

    Is there anything I can run on the router itself? Or any additional syslogging options I can enable?
     
  19. Sean B.

    Sean B. Networkin' Nut Member

    You can run rpcapd on the router which is a remote capture daemon for WireShark. It would be the easiest to use as it still allows use of the GUI Interface from a Windows machine. Or one can use tcpdump or dumpcap via command line on the router to capture. I don't know of any way standard logging could be of much help, as I don't think there's a "program" error going on, but rather an issue of communication between the router and clients of which packet captures may shed some light on.

    What you may try is saving the routing table via: ip route show table all > some-file-name-on-flash-drive
    when everything is working normally from both the main router and the wireless bridge. Then when the issue occurs save the output from both again and compare. I have a feeling the issue may be with the routing over that ethernet bridge after dnsmasq is restarted. You may try and see if disconnecting/reconnecting the wireless link from the ethernet bridge fixes the issue when it occurs as well.. would narrow down the concept if it does.

    With the newer firmware version comes many updates to dnsmasq and other packages on the router. This could be a bug in these newer package versions, or the functionality isn't fully supported now to handle this type of setup seamlessly. I really couldn't say, or give much insight, at least until we know what's going on.

    Also, what's your configuration for the bridge? From the Basic->Network page.

    Make sure the static IP's you're adding are not from within the range you have configured for DHCP to hand out dynamically on the main router as well.
     
    Last edited: May 23, 2017 at 12:42 PM
  20. tievolu

    tievolu Network Guru Member

    Ok, I've set up tcpdump and it's ready to go if/when the problem happens again. I have no reason to modify the static DHCP table right now so I'll leave it for a few days to see if anything goes wrong on its own. If it doesn't, I'll try to make it happen by modifying the table again.

    I have also saved the routing table from the main router in its current working state. I'll grab that again if/when the problem occurs.

    Here's my bridge config:

    upload_2017-5-23_13-12-30.png

    The bridge has both wired and 2.4Ghz wireless clients.

    Yep, dynamic IPs are in the range 192.168.111.200-254, while all the static IPs are in the range 192.168.111.100-130.
     
  21. Sean B.

    Sean B. Networkin' Nut Member

    Sorry should have been more specific, what is the bridge's configuration in the LAN section of Basic->Network? And is your primary routers IP 192.168.111.1?
     
  22. tievolu

    tievolu Network Guru Member

    Yes, the main router is 192.168.111.1 and the bridge is 192.168.111.2:

    upload_2017-5-23_15-40-42.png
     
  23. Sean B.

    Sean B. Networkin' Nut Member

    Is the bridges IP of 192.168.111.2 configured statically in the main router? I'm not sure with Ethernet bridge mode if it would show as a client or simply as a route.. but either one can be configured statically. Oh, and is there a reason you have STP enabled? This can cause issues with dhcp In itself.. as even with portfast functionality enabled the ports may not come out of the blocking state quick enough. Don't know if there's been any changes to the protocol for latest firmware version though.
     
  24. Sean B.

    Sean B. Networkin' Nut Member

    This issue has dug it's way into my curiosity, so hopefully this week but at least this weekend I'm gonna break out one of the retired routers an set it up as a wireless bridge. See if I can duplicate the symptoms, and if so I'll see what some WireShark captures can tell us.
     
  25. tievolu

    tievolu Network Guru Member

    Yes, the bridge's IP (192.168.111.2) is defined in the static DHCP list.

    The Device List on the main router is slightly messed up for clients connected via the bridge, with the bridge MAC address appearing in multiple entries (marked with red dots in the screenshot):

    upload_2017-5-24_12-2-25.png

    However, as I mentioned before everything seems to work ok generally in bridge mode (apart from this recent DHCP issue). Even WOL works correctly via the GUI on the main router. My somewhat simplictic understanding is that the bridge implements something roughly comparable to NAT for the MAC addresses.

    I enabled STP in response to the first occurrence of this issue. I was thinking that my powerline network (on the bridge side) might have been causing issues somehow due to the multiple paths between clients. This was basically a stab in the dark and it's quite possible that it isn't needed, but STP definitely wasn't enabled the first time the DHCP problem occurred.
     
  26. Sean B.

    Sean B. Networkin' Nut Member

    Thanks for the info. Under Advanced->Routing of the main router and bridge ( not sure if it remains an option in bridge mode ) .. is DHCP Routes checked? And do you recall if it was or was not prior to the firmware upgrade? If it isn't, enable the option and see if it may have any effect. I believe it would be needed in this situation, to send static routes with DHCP information requests. Worth a try at aleast.
     
  27. tievolu

    tievolu Network Guru Member

    Yes, DHCP Routes is checked. I don't recall ever touching that option so I suspect it was checked before the firmware upgrade too.
     
  28. tievolu

    tievolu Network Guru Member

    Just as an update, I've had no problems at all since Monday, which further supports the theory that my problems are triggered by modifying the static DHCP table.
     
  29. Sean B.

    Sean B. Networkin' Nut Member

    If you'd be willing, run "service dnsmasq restart" in shell or GUI System Commands and see if the issue happens. It would be good to know if it's actually related specificly to modifying static leases.. or a product of dnsmasq being restarted upon clicking save. If not wanting to investigate any more and are ok with how it is, no problem.
     
  30. tievolu

    tievolu Network Guru Member

    Ok, I've restarted dnsmasq. Let's see what happens over the next 24-48 hours.
     
    Sean B. likes this.
  31. tievolu

    tievolu Network Guru Member

    The problems have started again - both android phones now cannot get an IP when connecting through the bridge. They are fine if they connect to the main router. Wired clients running through the bridge currently seem ok, but I suspect it's a matter of time before they have problems also - probably when they next try to renew their DHCP lease.

    So it appears that simply restarting dnsmasq is enough to trigger the problem.

    I tried capturing a trace with tcpdump but it doesn't seem capture the failed DHCP requests. I'm not completely sure what I'm looking for though.

    I'm going to reboot the router now so I don't have to dick about with it during the FA cup final :)
     
  32. Sean B.

    Sean B. Networkin' Nut Member

    Thank you for testing, I was pretty sure it was the restart in combination with the bridge. Unfortunately the old routers I had in the pile don't support being a wireless ethernet bridge so I haven't found a way to start testing this issue. The main thing I'm unsure of is which end the issue is actually on ( dnsmasq and it's record keeping/way it's restarted in tomato, or on the wireless bridge side and a failure to properly renegotiate its presence ).
     
  33. Sean B.

    Sean B. Networkin' Nut Member

    @AndreDVJ , @kille72 - I don't know if this use case is enough to warrant time spent, but wanted to tag you guys so you're aware now that it's confirmed repeatable via dnsmasq restart, as this likely effects your builds as well.
     
  34. AndreDVJ

    AndreDVJ Addicted to LI Member

    I'm waiting for dnsmasq 2.77. For now we can't do much but wait for the next release.
     
  35. Sean B.

    Sean B. Networkin' Nut Member

    So you think the issue is based in dnsmasq itself? Rather than any tomato specific implementation or configuration?
     
  36. AndreDVJ

    AndreDVJ Addicted to LI Member

    Hard to tell. dnsmasq was updated few times since 132. I'd test a Wireless Ethernet Bridge setup, but still very hard to reproduce.

    For now, I'd add log-dhcp to dnsmasq Custom Configuration box, as it enables a very verbose DHCP-stuff output, and see how much we can find.
     
  37. Sean B.

    Sean B. Networkin' Nut Member

    Good call, I forgot about that option above log-dhcp check box in the GUI.
     

Share This Page