problems with opensuse 11.2 and Comcast

Hi,

I’ve recently upgraded my 5 year old PC from Suse 10.1 to Suse 11.2. I’ve had Comcast cable internet service at this location since 1997 (back then it was called @Home, but it’s the same network).

Since the upgrade to 11.2, I’ve had problems accessing the internet over my Comcast cable account. Some of these problems I’ve managed to knock down, but a problem with intermittent loss of connectivity during times where I am downloading data has continued.

First I figure I’d document what I’ve done so far which has at least restored some internet access through this account.

Properly Configure DHCP Client Hostname

Suse 11.2 uses the dhcpcd DHCP client. Comcast cable apparently requires that the DHCP client provide a particular hostname when the client is attempting to discover an IP address. I wont specify the “right” hostname in it’s entirety here, but it begins with “C10…”. Fortunately I never throw out anything so I still had the work order from when the service was installed back in 97 and on that work order the correct hostname is printed. In order to make dhcpcd send this hostname option in its Discovers, I set the hostname of the machine to that “C10…” hostname using Yast:

Network Devices->Network Settings

Then click Hostname/DNS table and enter the hostname into the Hostname field. I think I followed that with a reboot.

Now the dhcpcd client is supplying the hostname. This can be verified by running ps to find dhcpcd, cd’ing to it’s proc entry and catting cmdline, as in:

jeff@C100…:~> ps -A | grep dhcpcd
2381 ? 00:00:00 dhcpcd
jeff@C100…:~> cd /proc/2381
jeff@C100…:/proc/2381> cat cmdline
/sbin/dhcpcd–netconfig-L-E-c/etc/sysconfig/network/scripts/dhcpcd-hook-t0-hC100…eth0jeff@C100…:/proc/2381>

That “-hC100…” is the command line parameter to tell dhcpcd to specify the hostname it will transmit. Once this was done, I was able to get an IP address from Comcast. Note I found later that there is perhaps a better to way to specify this under Yast at:

YaST -> System -> Network Settings -> Global Options -> Hostname to Send

That might work, too, I haven’t tried it.

So that got me an IP address, but what I found is that anytime I did anything that generates significant download bandwidth (like Online Update or any other Yast software installation), my network connectivity would eventually go away. The symptom leading up to this would be very slow ping response from the default router, as in:

jeff@C100…:/proc/2381> netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
67.170.240.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 67.170.240.1 0.0.0.0 UG 0 0 0 eth0
jeff@C100…:/proc/2381> ping 67.170.240.1
PING 67.170.240.1 (67.170.240.1) 56(84) bytes of data.
64 bytes from 67.170.240.1: icmp_seq=1 ttl=255 time=6.34 ms
64 bytes from 67.170.240.1: icmp_seq=2 ttl=255 time=7.51 ms
64 bytes from 67.170.240.1: icmp_seq=3 ttl=255 time=5.93 ms

This example shows “good” connectivity, but when the problems occur, the “time” of the ping response keeps going up and up to around 2 seconds or so and then there’s no response.

At that point, all network activities seem to stop. I’ve found that by power cycling the modem, I can get connectivity back for a while.

Turn Off IPv6

So I read elsewhere in this forum that Comcast doesn’t like IPv6. So I turned off IPv6 globally via Yast:

YaST -> System -> Network Settings -> Global Options -> un-check “Enable IPv6”

and did a reboot. I also disabled IPv6 DNS look ups in Firefox via:

* type about:config in the address bar, and hit the Return or Enter key.

*  type ipv6 in the filter field.
* high-light network.dns.disableIPv6 by right-clicking it, and change the value from false to true using Toggle.

This seems to have perhaps improved things in that I seem to now be able to generate more download bandwidth before things lock up, but I still find I have to power cycle this model to get connectivity back.

The modem is a Motorola SB4200 Surfboard Cable Modem.

I am thinking perhaps Comcast doesn’t like that I am on that 168.254/16 zeroconf network, so I think I am going to try to turn that off now, but that’s a Microsoft invention. It seems unlikely that Comcast would require that PC’s running Windows not do their normal thing.

Any suggestions would be welcome at this point.

Thanks,

Jeff Haran

Someone will correct me if I am wrong. But there are bugfixes related to DNS issues with the original release, so running Online Update would be good.

To properly disable IPv6 in 11.2 I understand you need to add this to the boot argument: ipv6.disable=1

Thanks, caf4926.

I did the Online Update, so I assume I’ve picked up any DNS changes. The problem persists.

I’ll try the ipv6.disable=1 boot parameter. I assume I can specify that via Yast->System->Boot Loader?

One other thing I noticed, under Yast->System->Network Settings in the Overview tab it lists 2 devices:

ASUSTeK A7N8X Mainboard onboard nForce2 Ethernet
Device Name: eth-id-00:0e:a6:68:d2:db
Started automatically at boot
IP address assigned using DHCP4

and:

Ethernet Network Card
MAC : 00:0e:a6:68:d2:db
BusID : 0000:00:04.0

Device Name: eth0
Started automatically at boot
IP address assigned using DHCP4

There’s only one ethernet NIC that I am aware of. Is having two of these entries expected in this case?

If not, should I delete one of them and if so, which one?

One of the other problems I had to muddle through after I did the upgrade is that the system seemed to think I had a network device named eth1 but no eth0. I fixed that, somehow (I forget what I did exactly), but I am wondering if there is some configuration problem behind this that I have not yet dealt with correctly.

Thanks again,

Jeff Haran

su terminal

lspci -v

in the list, look for network devices and post here

The ipv6.disable=1 didn’t seem to take. I got this in /var/log/boot.msg:

<3> 0.000000] Unknown boot option `ipv6.disable=1’: ignoring

The lspci output seems to have only a single network interface described in it:

00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)
Subsystem: ASUSTeK Computer Inc. A7N8X Mainboard onboard nForce2 Ethernet
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
Memory at fe800000 (32-bit, non-prefetchable) [size=4]
I/O ports at eff0 [size=8]
Capabilities: [44] Power Management version 2
Kernel driver in use: forcedeth

I’ve copied the complete lspci -v output below:

C100…:/home/jeff/Documents # lspci -v
00:00.0 Host bridge: nVidia Corporation nForce2 IGP2 (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: bus master, 66MHz, fast devsel, latency 0
Memory at f4000000 (32-bit, prefetchable) [size=64]
Capabilities: [40] AGP version 2.0
Capabilities: [60] HyperTransport: Host or Secondary Interface
Kernel driver in use: agpgart-nvidia

00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: 66MHz, fast devsel

00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: 66MHz, fast devsel

00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: 66MHz, fast devsel

00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: 66MHz, fast devsel

00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: 66MHz, fast devsel

00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a4)
Subsystem: ASUSTeK Computer Inc. A7N8X Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0
Capabilities: [48] HyperTransport: Slave or Primary Interface

00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 80ad
Flags: 66MHz, fast devsel, IRQ 10
I/O ports at ef80 [size=32]
Capabilities: [44] Power Management version 2
Kernel driver in use: nForce2_smbus

00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. Device 80ad
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 21
Memory at fe900000 (32-bit, non-prefetchable) [size=4]
Capabilities: [44] Power Management version 2
Kernel driver in use: ohci_hcd

00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. Device 80ad
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 20
Memory at fea00000 (32-bit, non-prefetchable) [size=4]
Capabilities: [44] Power Management version 2
Kernel driver in use: ohci_hcd

00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. Device 80ad
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
Memory at feb00000 (32-bit, non-prefetchable) [size=256]
Capabilities: [44] Debug port: BAR=1 offset=0080
Capabilities: [80] Power Management version 2
Kernel driver in use: ehci_hcd

00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)
Subsystem: ASUSTeK Computer Inc. A7N8X Mainboard onboard nForce2 Ethernet
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
Memory at fe800000 (32-bit, non-prefetchable) [size=4]
I/O ports at eff0 [size=8]
Capabilities: [44] Power Management version 2
Kernel driver in use: forcedeth

00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)
Subsystem: ASUSTeK Computer Inc. nForce2 AC97 Audio Controler (MCP)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 21
I/O ports at e800 [size=256]
I/O ports at ec00 [size=128]
Memory at fe700000 (32-bit, non-prefetchable) [size=4]
Capabilities: [44] Power Management version 2
Kernel driver in use: Intel ICH

00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3) (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, fast devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
Memory behind bridge: f9f00000-fbefffff

00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2) (prog-if 8a [Master SecP PriP])
Subsystem: ASUSTeK Computer Inc. Device 80ad
Flags: bus master, 66MHz, fast devsel, latency 0
[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
[virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
I/O ports at ffa0 [size=16]
Capabilities: [44] Power Management version 2
Kernel driver in use: pata_amd

00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev a2) (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, medium devsel, latency 64
Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
Memory behind bridge: fbf00000-fe0fffff
Prefetchable memory behind bridge: e9c00000-f1dfffff

01:06.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
Subsystem: LeadTek Research Inc. Leadtek Winfast 2000XP Expert
Flags: bus master, medium devsel, latency 64, IRQ 16
Memory at fa000000 (32-bit, non-prefetchable) [size=16]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2
Kernel driver in use: cx8800
02:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX - nForce GPU] (rev a3) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Device 80c0
Flags: bus master, 66MHz, medium devsel, latency 248, IRQ 16
Memory at fd000000 (32-bit, non-prefetchable) [size=16]
Memory at ec000000 (32-bit, prefetchable) [size=64]
Memory at f1d00000 (32-bit, prefetchable) [size=512]
[virtual] Expansion ROM at fe000000 [disabled] [size=128]
Capabilities: [60] Power Management version 2
Capabilities: [44] AGP version 2.0
Kernel driver in use: nvidia[/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size][/size]

So this would be the device to concentrate on
nVidia Corporation nForce2 Ethernet Controller

As eth0

I’ll see if I can check back on this ipV6

Check this thread. I dumped you in part way, at a point that seemed appropriate
[11.2] IPv6 is not Disabled!? - openSUSE Forums](http://forums.opensuse.org/network-internet/426511-11-2-ipv6-not-disabled.html#post2072578)

At this point I don’t think IPv6 is my problem. It looks like it is now off:

> ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 576 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0e:a6:68:d2:db brd ff:ff:ff:ff:ff:ff
inet 67.170.245.5/21 brd 255.255.255.255 scope global eth0

> ls -al /proc/sys/net
total 0
dr-xr-xr-x 0 root root 0 2009-12-31 19:12 .
dr-xr-xr-x 1 root root 0 2009-12-31 19:12 …
dr-xr-xr-x 0 root root 0 2009-12-31 19:13 core
dr-xr-xr-x 0 root root 0 2009-12-31 19:13 ipv4
dr-xr-xr-x 0 root root 0 2009-12-31 19:13 netfilter
dr-xr-xr-x 0 root root 0 2009-12-31 19:13 unix

So I am thinking now maybe it is an Ethernet device problem. I note that when I power cycle the modem, the system seems to notice it since during the reset the pings to the default router report Destination Unreachables rather than just block:

64 bytes from 67.170.240.1: icmp_seq=797 ttl=255 time=7.54 ms
64 bytes from 67.170.240.1: icmp_seq=798 ttl=255 time=381 ms
*** here its hung so I power cycled the modem ***
From 67.170.245.5: icmp_seq=820 Destination Host Unreachable
From 67.170.245.5 icmp_seq=820 Destination Host Unreachable

From 67.170.245.5 icmp_seq=833 Destination Host Unreachable
From 67.170.245.5 icmp_seq=834 Destination Host Unreachable
64 bytes from 67.170.240.1: icmp_seq=836 ttl=255 time=14.3 ms
64 bytes from 67.170.240.1: icmp_seq=837 ttl=255 time=7.46 ms

Perhaps the link goes down and up, the driver is seeing that and doing some cleanup that causes things to work again.

I am still trying to get a little comfort level about removing that second network device in Yast->System->Network Settings in the Overview tab. :slight_smile:

It’s this one I think I should remove:

Ethernet Network Card
MAC : 00:0e:a6:68:d2:db
BusID : 0000:00:04.0

Device Name: eth0
Started automatically at boot
IP address assigned using DHCP4

Is this going to be a “safe” thing to do? If I remove that device and then my network access stops working completely, how do I put it back?

Thanks,

Jeff

From what I see the entry there

Ethernet Network Card
MAC : 00:0e:a6:68:d2:db
BusID : 0000:00:04.0

Is a duplication of your
nVidia Corporation nForce2 Ethernet Controller
Just check the MAC’s
They are both the same, so must be the same device

Just delete it. I’m sure it will be fine.

Well, I think I got the problem solved. Time will tell I suppose but I am now not seeing the very slow ping to first hop router times that I had been seeing during concurrent network access.

Deleting the duplicate device entry wasn’t a solution. It wasn’t even an option. When I tried to delete it, Yast complained that it wasn’t configured, but it did allow me to disable the thing so that it never activated the device. That left me with no network access even though the other entry was still set to activate on boot. So I restored the entry to what it was before.

The problem is, I believe, that Comcast’s DHCP servers offer an MTU of 576, not the typical 1500 of ethernet. I can see this in /var/lib/dhcpcd:

> cat /var/lib/dhcpcd/dhcpcd-eth0.info

MTU=‘576’

When I ran ifconfig eth0, it showed that the interface had an MTU of 576. So I went into Yast->System->Network Settings.

Then for each of the two displayed network devices, click Edit, go to the General Tab and at the bottom there’s a drop down box to enter the MTU in. It was blank, so I changed it to 1500 and rebooted.

Now even though Comcast’s DHCP server is still offering an MTU of 576, ifconfig eth0 shows the interface has an MTU of 1500.

I guess in previous Suse versions the dhcpcd client either ignored the offered MTU or was run with the -M option to ignore it. Now it seems to make a difference unless you override it via Yast. I can’t explain why the small MTU would make pings to the first hop router fail, but it does seem to have improved things. I guess I’ll find out next time I do an Online Update.

Again, not sure this has really fixed it, but things so far are looking much better.

Thanks for the help,

Jeff Haran

Good to hear. That sure was a strange one:)