Linux – NIC is receiving, but not transmitting at all

fedoralinuxnetworking

I'm trying to fix a very strange problem remotely on a machine at a customer site. The machine is a Dell PowerEdge 1950. The machine's NIC is a dual-port on-board Broadcom NetXtreme II BCM5708 Gigabit Ethernet, using the bnx2 driver.

The primary interface eth0 works perfectly, and is in fact how I am ssh'd in.

However, the secondary interface eth1 is not transmitting. I can see this in ifconfig output, for example, where the TX field is always 0. However, it is receiving, and tcpdump shows ARP requests coming from the ISP's gateway on the other side.

The interface is physically connected to a Siemens BSTU4 modem, configured by the ISP. The link is properly set to 10MBps and full duplex, without negotation, as the ISP requested. A small /30 subnet is configured. For the sake of anonymity, let's say the machine is 3.3.3.2/30, and the ISP's gateway .1. The machine has no firewall settings whatsoever.

Even running something like arping -I eth1 3.3.3.1, and running tcpdump alongside, shows no traffic whatsoever being transmitted on the interface. (But the other side keeps steadily sending ARP requests, and that is all that can be seen.)

What could be causing this?


Here's some output, anonymized, which may hopefully help:

$ ethtool eth1
Settings for eth1:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supports auto-negotiation: Yes
    Advertised link modes:  Not reported
    Advertised auto-negotiation: No
    Speed: 10Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: off
    Supports Wake-on: d
    Wake-on: d
    Link detected: yes

$ ip link show eth1
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:15:c5:xx:xx:xx brd ff:ff:ff:ff:ff:ff

$ ip -4 addr show eth1
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    inet 3.3.3.2/30 brd 3.3.3.3 scope global eth1

$ ip -4 route show match 3.3.3.0/30
3.3.3.0/30 dev eth1  proto kernel  scope link  src 3.3.3.2
default via 10.0.0.5 dev eth0 

Best Answer

First thing to check: Possible hardware problem. Are you using a known good cable? Check that again.

Do you get anything out of the RG45 when you plug it into a LAN tester? O-scope on the TX leads?

If there's a HW fault, you'll spend a lot of time looking for SW configuration issues and not find anything.