I'm new(ish) to networking and have been setting up a home server. Part of making sure the server is good and healthy is making sure it has a solid Internet connection.

Unfortunately, our DD-WRT router jams at least weekly and needs to be reset. No one uses P2P on our network; at most only a few standard machines are doing basic web browsing at any given moment.

Last night I got an opportunity to look for the root of the problem, and try to restore the Internet connection using a less-aggressive method than restarting the router.

I ping(ed) 8.8.8.8 (a Google Public DNS IP address), but received no replies. Then one of the other LAN users insisted I fix the issue right away. However, instead of restarting the router, I made it release and renew its DHCP lease, and the Internet connection worked again.

Leaving the router's WAN port, the next machine down the line is the cable modem, which connects to Comcast's wires. We had similar symptoms with the last three routers, all of which were Netgear or Broadcom machines; the last two ran DD-WRT.

So I have three questions:

1. Who is at fault? ISP or DD-WRT?
2. What tools can I use to more intelligently diagnose the problem than checking whether a known server like Google's DNS is reachable?
3. How can I make sure DD-WRT takes care of this problem itself, even if I can't fix the root cause. For example, I have considered writing a script that pings a known server, such as 8.8.8.8, at regular intervals. If no response, a log is made of how far the machine makes it (using tools like question 2), and then the DHCP is released/renewed. I feel as though a more elegant solution should exist.