UPDATED:
I recently built a new computer and set it up to dual-boot Windows 7 and Ubuntu 11.10.
In Windows, using the same hardware, my LAN connectivity is solid. In Ubuntu, however, my network interface periodically dies and resets itself; I'll have a solid connection for 30 seconds, and then it will go out for 30 seconds. When I tail the log:
tail -f /var/log/kern.log
I see "eth0 link up" messages appear periodically, corresponding with the return of connectivity.
I posted the original question months ago, and misinterpreted what was going on. With a working Internet connection in Windows, I ignored the problem for some months. See my answer below for the solution (drivers).
ORIGINAL POST
In Ubuntu, although I maintain a solid connection to my LAN (pinging the router IP address consistently returns a good result), my internet connectivity drops in and out. When I continuously ping 74.125.227.18 (a google.com server), I get responses for a while, then I start getting "Destination Host Unreachable" for a while, then I get responses again. This happens consistently, dropping the connection for about 30 seconds out of every minute or two.
Whether I configure my network via the network manager or via /etc/network/interfaces seems to make no difference. I configure with the following settings:
address 192.168.1.101
network 192.168.1.0
gateway 192.168.1.99 (my router's IP address)
netmask 255.255.255.0 (confirmed as the right netmask for the router)
broadcast 192.168.1.255 (also confirmed with the router).
ifconfig confirms that these settings are working:
eth0 Link encap:Ethernet HWaddr 50:e5:49:40:da:a6
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::52e5:49ff:fe40:daa6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11557 errors:0 dropped:11557 overruns:0 frame:11557
TX packets:13117 errors:0 dropped:211 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9551488 (9.5 MB) TX bytes:1930952 (1.9 MB)
Interrupt:41 Base address:0xa000
I get the same issue when I use automatic DHCP address settings, although I did confirm that there is no other machine on the network with the static IP address I want to use.
As I said, the connection to the local network stays solid - I never have any trouble pinging 192.168.1.* - it's internet addresses that I intermittently cannot reach. It's not a DNS issue because pinging known IP addresses directly shows the same behavior. Also, I don't think it's a hardware issue, as I never have any internet connectivity problems on the same machine in Windows. The network hardware is built into the motherboard: Gigabyte Z68XP-UD3P.
I managed to bring the OS fully up to date, according to the update manager, but it didn't fix the issue, and with my limited understanding of network architecture I'm at my wit's end. The only clue I can see is that ifconfig is reporting a lot of dropped packets, but I'm not sure what to do about it.
UPDATE:
It seems my problem is a little more generic than I described; now when I try pinging my router and google simultaneously, they both go unreachable at the same time. Running ifdown eth0 and then ifup eth0 brings it back temporarily; if I just wait it comes back after a couple of minutes. I'll broaden my search through intermittent network connectivity problems.