I found this quote recently:
“The switch is configured to autodetect the speed and duplex settings on an interface. However, there are several things that can cause the autonegotiation process to fail, resulting in either speed or duplex mismatches (and performance issues). The rule of thumb for key infrastructure is to manually hard-code the speed and duplex on each interface so there is no chance for error. “
THIS IS VERY VERY VERY WRONG
Let me say it again: This is mythinformation.
Cisco(1), Sun(2), Dell(3) and all major manufacturers RECOMMEND auto-negotiation.
How did the myth get started ?
Once upon a time ( or at least, around 1996/7 ) , there was no Ethernet autonegotiation standard, but everyone agreed this would be a good idea. At that time, Intel and 3Com were the biggest manufacturers of network adapters, and Cisco / 3Com / Nortel were the main switch vendors. So 3Com implemented their version and 3Com adapters worked on 3Com switches. Intel came up with their version and Intel adapters worked with Cisco switches. Nortel switches didn’t really work with anyone consistently. And the OEM equipment didn’t do much at all, it was hard setting or nothing.
This was a massive problem. In fact, I remember entire corporate networks had their network adapters swapped out of every computer. No-one really knew which adapters and switches could interoperate, and inter-switch connections were a real concern.
So we all just concluded that hard setting Ethernet speed and duplex was the best option.
Then the 802.3u standard was ratified in 1998 and new equipment from all the vendors started to come into the market after that time that was compliant with 802.3u and things got better. But we still had a lot of that older equipment around, and those network adapters were quite expensive back then.
So we all became used to hard setting Ethernet speed and duplex as the best option. But all of that problematic hardware should be gone by now, and we can consider changing the way we work.
Why doesn’t everyone know ?
I suspect that this is one of the basic topics that no one ever researches. Everyone just “knows” that you always hard set duplex and speed. These days it is pretty much a mantra, especially among telco operations and some server teams.
Because we all “know” it seems nobody has taken the time to fix it.
And because many people configure this by default, it forces everyone else to do the same.
Whats the problem ?
A major problem is that many people are also hard setting Gigabit Ethernet , and this is causing major problems. Gigabit Ethernet must have auto-negotation ENABLED to allow negotiation of master / slave PHY relationshitwhp for clocking at the physical layer. Without negotiation the line clock will not establish correctly and physical layers problems can result.
From Sun’s Best Practices on Ethernet Auto-negotiation (2):
Disabling autonegotiation can result in physical links issues going undetected. The Fast Link Pule process does some testing for the physical link properties as well as negotiation on several Ethernet properties.
- Unable to detect bad cables
- Unable to detect link failures
- Unable to check link partners capabilities
- Unable to move systems from one port to another or to another switch or router
- Unable to determine performance issues on higher layer applications
- Unable to implement Pause Frames (Flow Control)(4)
From the IEEE standard:
All 1000BASE-T PHYs shall provide support for Auto-Negotiation
(Clause 28) and shall be capable of operating as MASTER or SLAVE.
Auto-Negotiation is performed as part of the initial set-up of the link, and
allows the PHYs at each end to advertise their capabilities (speed, PHY
type, half or full duplex) and to automatically select the operating mode
for communication on the link. Auto-negotiation signaling is used for the
following two primary purposes for 1000BASE-T:
a) To negotiate that the PHY is capable of supporting 1000BASE-T half
duplex or full duplex transmission.
b) To determine the MASTER-SLAVE relationship between the PHYs at
each end of the link. 1000BASE-T MASTER PHY is clocked from a local source.
The SLAVE PHY uses loop timing where the clock is recovered from the received data stream. My emphasis
There are new standards for 10 Gigabit but the new Converged Enhanced Ethernet (CEE) (Cisco is developed a superset called Data Centre Ethernet(c)) will require each side of GigE connection to negotiate capabilities relating to pause, capabilities, queues and a number of other critical features.
If you haven’t already, you should consider changing your standards to use auto-negotiation everywhere because it is a prerequisite in the new technology.
I make an especial plea to Service Providers to change their standard practice to using Autonegotiation on Ethernet. We have to move with times and mode
But most of all, setup auto-negotiation so I don’t have to think about configuring ports for each server. I am going nuts here with my staff having to manually configure every fricking port whenever a server moves around. It a ridiculous waste of resources.
Plus it makes you more successful, since hard setting means that more mistakes will be made.
Comments invited, I would love to discuss this more. Tell all your friends!
(1)Cisco recommends to leave auto-negotiation on for those devices compliant with 802.3u.This would be every device since 1999 or so.
Wikipedia The debatable portions of the autonegotiation specifications were eliminated by the 1998 release of 802.3. This was later followed by the release of IEEE 802.3ab in 1999. The new standard specified that gigabit Ethernet over copper wiring requires autonegotiation. Currently, all network equipment manufacturersóincluding Ciscoórecommend to use autonegotiation on all access ports. On rare occasions where autonegotiation may fail , it may still be necessary to force settings.
(3) Dell – Gigabit Ethernet Auto-Negotiation
(4) Peter Lapukhov of Internetwork Expert posted a good article about why 802.3X pause frame should be disabled here