[ale] Compatibility problem: Linksys WRT54G & D-Link DFE-570TX NIC
Kenneth W Cochran
kwc at TheWorld.com
Thu Jan 15 20:55:18 EST 2004
This is a copy of what I sent to Linksys, but I thought
maybe someone here in this list/group might be able to
shed some light as well.
Summary: 21143-based net-card won't communicate through
the switch in a Linksys WRT54G.
Hello:
I'm having trouble getting a Linksys WRT54G Rev. 1.1
to communicate with a D-Link DFE-570TX network card.
This network card has 4 interfaces, with DEC (now Intel)
21143 Ethernet controllers on each.
This is happening with both FreeBSD and with Linux
(specifically Slackware, :), 7.1 with kernel 2.2.16,
yaaa, very old, but I'd think still valid for testing;
the net-card uses the tulip driver). For Linux, just
s/dc2/eth2/ and the scenarios/explanations are the same.
Ethernet card: D-Link DFE-570TX
Interfaces:
dc0 - "public" to outside Internet, address assigned by DHCP/dhclient,
100baseTX full-duplex connection to a Motorola SB4101 cable modem
dc1 - 192.168.0.1/24, unused in this scenario
dc2 - 192.168.1.50/24, trying to communicate with Linksys WRT54G
dc3 - unused in this scenario
Other IP addresses:
192.168.1.1/24 - Linksys WRT54G router
192.168.1.51/24 - another machine running Windows 2000 &
with an Intel Pro/100+ NIC
OS: FreeBSD 4.9-STABLE as of 15 January 2004
Firewall: ipfw2
Setup scenarios & successes/failures with them:
1. Connect the router directly to a port on the Ethernet
card - the router won't arp-reply (& thus no further
communication), viz:
dc2 (3rd Ethernet interface) <--> router
$ ping -c3 192.168.1.1 ## ip address of the router on dc2
PING 192.168.1.1 (192.168.1.1): 56 data bytes
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
localhost# tcpdump -lni dc2 ## tcpdump while running the above ping
tcpdump: listening on dc2
10:17:18.123385 arp who-has 192.168.1.1 tell 192.168.1.50
10:17:19.124588 arp who-has 192.168.1.1 tell 192.168.1.50
10:17:20.134583 arp who-has 192.168.1.1 tell 192.168.1.50
2. Connecting (dc2 in this example) from the card to a
*hub* (Netgear DS-104, 100mb/s half-duplex) and then
connecting that hub to the router (via the uplink port)
I get the following (success):
dc2 <--> hub <--> router
$ ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.826 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.751 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.828 ms
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.751/0.802/0.828/0.036 ms
localhost# tcpdump -lni dc2
tcpdump: listening on dc2
18:09:55.023426 192.168.1.50 > 192.168.1.1: icmp: echo request
18:09:55.024193 192.168.1.1 > 192.168.1.50: icmp: echo reply
18:09:56.028951 192.168.1.50 > 192.168.1.1: icmp: echo request
18:09:56.029636 192.168.1.1 > 192.168.1.50: icmp: echo reply
18:09:57.038954 192.168.1.50 > 192.168.1.1: icmp: echo request
18:09:57.039715 192.168.1.1 > 192.168.1.50: icmp: echo reply
18:10:00.022492 arp who-has 192.168.1.50 tell 192.168.1.1
18:10:00.022520 arp reply 192.168.1.50 is-at 0:80:c8:b9:20:df
3. Connection from dc2 to the router and from router to
another machine running Windows 2000 and an Intel
Pro/100 Ethernet NIC:
dc2 <--> router <--> win2k machine with Intel NIC
localhost# ifconfig dc2
dc2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::280:c8ff:feb9:20df%dc2 prefixlen 64 scopeid 0x3
inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:80:c8:b9:20:df
media: Ethernet 100baseTX <full-duplex>
status: active
localhost#
localhost# ping -c3 192.168.1.51
PING 192.168.1.51 (192.168.1.51): 56 data bytes
--- 192.168.1.51 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
localhost# tcpdump -lni dc2
tcpdump: listening on dc2
19:56:40.831349 arp who-has 192.168.1.51 tell 192.168.1.50
19:56:40.831507 arp reply 192.168.1.51 is-at 0:90:27:84:42:f
19:56:40.831521 192.168.1.50 > 192.168.1.51: icmp: echo request
19:56:41.835830 192.168.1.50 > 192.168.1.51: icmp: echo request
19:56:42.845862 192.168.1.50 > 192.168.1.51: icmp: echo request
^C
5 packets received by filter
0 packets dropped by kernel
localhost#
4. Same connection as above, but through hub instead:
dc2 <--> hub <--> win2k machine with Intel NIC
localhost# ifconfig dc2
dc2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::280:c8ff:feb9:20df%dc2 prefixlen 64 scopeid 0x3
inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:80:c8:b9:20:df
media: Ethernet 100baseTX
status: active
localhost# localhost# ping -c3 192.168.1.51
PING 192.168.1.51 (192.168.1.51): 56 data bytes
64 bytes from 192.168.1.51: icmp_seq=0 ttl=128 time=0.391 ms
64 bytes from 192.168.1.51: icmp_seq=1 ttl=128 time=0.215 ms
64 bytes from 192.168.1.51: icmp_seq=2 ttl=128 time=0.178 ms
--- 192.168.1.51 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.178/0.261/0.391/0.093 ms
localhost# localhost# tcpdump -lni dc2
tcpdump: listening on dc2
20:01:59.078456 arp who-has 192.168.1.51 tell 192.168.1.50
20:01:59.078596 arp reply 192.168.1.51 is-at 0:90:27:84:42:f
20:01:59.078608 192.168.1.50 > 192.168.1.51: icmp: echo request
20:01:59.078778 192.168.1.51 > 192.168.1.50: icmp: echo reply
20:02:00.079644 192.168.1.50 > 192.168.1.51: icmp: echo request
20:02:00.079800 192.168.1.51 > 192.168.1.50: icmp: echo reply
20:02:01.089664 192.168.1.50 > 192.168.1.51: icmp: echo request
20:02:01.089781 192.168.1.51 > 192.168.1.50: icmp: echo reply
^C
8 packets received by filter
0 packets dropped by kernel
localhost#
Based on the above setups/scenarios, it appears that
FreeBSD, with a D-Link DFE-570TX NIC and the Linksys WRT54G
(or rather, its switch) don't communicate with each other
directly, but will if a hub is connected between them.
Other notes:
I get the same results using Linux.
The router works fine when connecting another machine
(running Windows 2000 and with an Intel Pro/100 NIC)
to it. The FreeBSD machine however, does not "answer"
the Win2k machine through the router/switch; this works
fine through the hub.
Using ifconfig to force media and mediaoptions, along with
restarting/rebooting the router, has no effect.
Any ideas on getting this working?
Cabling checks out fine and this error "follows" interfaces
if I change them.
It appears that I've found a hardware incompatibility with
the "switch" part of this router.
Idea(s) on further troubleshooting/fixing this?
FAQs/documentation pointers are quite welcome. :)
Sorry this message became so lengthy.
Thanks,
-kc
More information about the Ale
mailing list