Just had a problem with cable internet service, and managed to analyze before other's just power cycle the router and cable modem which usually clears the fault.
Router up and working on LAN, had a dhcp received good WAN IP address with 3.5 days remaining on a 6-day lease.
But no internet access, unable to connect to cable modem diagnostic page
Tomato log filled with dhcp inform messages from windows clients
Windows PCs report network connected but no internet access.
Failed to work:
Power cycling the cable modem alone, from its lights just no communication router. Note UK ex-ntl cable modem now "Virgin media", the cable modem will only communicate with one client side device, IP addresses are dynamic but usually remain static for months. If the client-side device (or MAC) changed a different WAN IP is obtained (for 2 or 3 devices), but for each MAC address there's some form of static-dhcp going on as each device gets the same IP. This sticky WAN IP/MAC link clearly makes it easier to track complaints/abuse by reducing the number of combinations in ISP logs!
What did work:
From tomato GUI "Releasing", then "Renewing" the WANIP. Unfortunately don't know whether the cable modem power cycle also needed!
This can clearly happen if the ISP does network maintenance and effectively revokes wan dhcp IP assignments. There is no provision in the ancient dhcp protocol for a dhcp server to inform the clients, it is up to the client to notice and make new requests. Tomato doesn't try to renew until only 50% of lease time remaining.
Tomato did not notice the cable modem power-cycle - a windows PC definitely would have noticed cable disconnected.
A windows PC would not have suffered the same problem if directly connected to the cable modem - but all windows could do was to renew the router lan connection. ISTR this was a general problem in Linux years ago - but most distros now have it sorted don't they?
You can add a 'ping script' to continuously check connection to ISP gateway, DNS or Google etc - but I have found in the past that ISP tends to drop low priority ping requests during high load which complicates the scripts - and false restarts of the WAN disrupt all comms. BUT surely the Linux kernel in the router knows it is sending out lots of messages and not getting replies?
Stock Asus firmware, for example RT-N16 is capable of detecting WAN connectivity.
Recent Asus firmware uses a program called "wanduck" which has no author (I assume Asus?) or copyright just a header stating GPL - this appears to be just what we need in Tomato, it handles multiple protocols, and fallback to USB modem etc. It uses quite a lot of nvram variables, which will need to be setup in other rc files - and presumably runs as a daemon with interconnection with rc processes - anyone up for the challenge? Anything similar in any of the Tomato mods or Oleg?
Maybe Asus has placed this under GPL so we can all help? It' not without issue - see for example wanduck in action - falsely(?) restarting the WAN here:-