Cisco – Why is the link between the switch and the router always negotiating half-duplex mode

ciscoethernetswitch

I have a Cisco 2950 switch which has one of its ports connected to an Internet router provided by my ISP; I have no access to the router configuration, but I manage the switch.

If I leave all switch ports with their default setup (auto-negotiation of speed and duplex mode), this link always connects at 100 MBit/s, but in half-duplex mode.

I've tried replacing the cable, and also moving the link to another switch port: the result is always the same. A different device connected to the same port (or to any switch port, really) shows no problem at all.

It could be guessed that someone configured the router to only connect in half-duplex mode… BUT, here's the catch: if I manually force the switch port to full-duplex mode (duplex full in the interface configuration), the link goes up, stays up and is completely stable.

So:

  • The connection is not forced to half-duplex mode by the router, otherwise it would not connect at all if I force the switch end to full-duplex.
  • There is no actual link problem, otherwise the full-duplex connection would not go up or would at least show some errors.
  • But if I leave the port free to auto-negotiate, it always connects in half-duplex mode.

Why?

Best Answer

The router is probably set to either full or half duplex. When one device (your router) is forced to full or half, it completely stops trying to negotiate duplex. It won't even tell the other side what it is set to.

When the other device (your switch) doesn't get a response to its negotiation attempts, it takes the default safest choice, which is half duplex.

Gigabit Ethernet solves this problem by not allowing for anything other than full duplex.