I have a linux firewall which has a network card, eth1 that insists the link is down, despite having a link light on the card itself. I have used ethtool to check and the result is as follows:
# ./ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000020c1 (8385)
Link detected: no
- # ./ethtool eth1
- Settings for eth1:
- Supported ports: [ TP MII ]
- Supported link modes: 10baseT/Half 10baseT/Full
- 100baseT/Half 100baseT/Full
- Supports auto-negotiation: Yes
- Advertised link modes: 10baseT/Half 10baseT/Full
- 100baseT/Half 100baseT/Full
- Advertised auto-negotiation: Yes
- Speed: 10Mb/s
- Duplex: Half
- Port: MII
- PHYAD: 1
- Transceiver: internal
- Auto-negotiation: on
- Current message level: 0x000020c1 (8385)
- Link detected: no
There is a statically assigned ip address and the cable is definitely plugged into the NIC and the other end into the switch. There is even data activity light blinking, but linux still doesn't see the link.
# ifconfig eth1
eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.x
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:867 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:36414 (35.5 Kb)
Interrupt:4
- # ifconfig eth1
- eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
- inet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.x
- UP BROADCAST MULTICAST MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:867 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:0 (0.0 b) TX bytes:36414 (35.5 Kb)
- Interrupt:4
So the link does not appear up, despite what the hardware says. The kernel definitely detects the card, otherwise there would be no eth1. I can ping the eth1 ip address from the box itself but not from anywhere else on the network, and nor can the box ping anything anywhere else.
It looks like it is not receiving any packets at all. I have changed switch ports, the cable, and used a second switch. Both switches have other devices working on them.
I have changed network cards, pci slots, rebooted several times etc.
This was working fine with the original network card and the ip address up until yesterday when there was a power failure and the machine went down hard. I am leaning towards broken hardware, but I've changed the NIC, the switch, the cable and used different pci slots. There is another network card in the box which still works... but I need two interfaces since it's a firewall.
I am truly stuck. Any ideas?