When plugging a workstation, server or PC directly behind a Cisco router, you might notice that you may experience speed problems. Why am I not able to get the full 100Mbps speed?
I had run into this problem while deploying a brand spanking new 100Mbps internet connection for my work environment. The new internet connection was utilizing a faster 3800 series Cisco router which will route at 100Mbps. For those of you who may not know, a Router with a 100Mb interface does not necessarily mean that it may route at 100Mbps! For more information please see Cisco router performance sheets here.
When I plugged in my laptop directly behind the router, and went to speedtest.net, I was unable to obtain the full 100Mbps speed that the ISP had promised. It turns out that, I had to hard code the speed and duplex settings on the Cisco router interface and the PC as the auto-negotiation was not detecting the right duplex and speed.
Before blaming Cisco please see the following:
From the Cisco website:
Whether to configure autonegotiation on 10/100 links or to hard code speed and duplex ultimately depends on the type of link partner or end device you have connected to a Catalyst switch port. Autonegotiation between end devices and Catalyst switches generally works well, and Catalyst switches are compliant with the IEEE 802.3u specification. However, problems can result when NIC or vendor switches do not conform exactly. Hardware incompatibility and other issues can also exist as a result of vendor-specific advanced features, such as auto-polarity or cabling integrity, that are not described in the IEEE 802.3u specification for 10/100 Mbps autonegotiation.
Checking the interface speed and duplex by running a show interface is important when troubleshooting speed problems. Make sure your Cisco interface is negotiated to the proper speed, in my case 100Mbps, Full duplex.
Router#sh int fastEthernet 0/0 FastEthernet0/0 is up, line protocol is up Hardware is PQUICC_FEC, address is 000d.28c7.aee0 (bia 000d.28c7.aee0) Description: Internet Internet address is 22.214.171.124/21 MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 100Mb/s, 100BaseTX/FX ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:00, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 2000 bits/sec, 3 packets/sec 5 minute output rate 3000 bits/sec, 3 packets/sec 3361998 packets input, 4018470442 bytes Received 2909331 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog 0 input packets with dribble condition detected 714074 packets output, 84591176 bytes, 0 underruns 0 output errors, 0 collisions, 1 interface resets 0 unknown protocol drops 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
Here’s a link on Cisco’s site which will show you when to use auto-negotiation. More often than not, you may run into poorly implemented interfaces from vendors which may not follow 802.3u properly.
This also happens to very old Cisco switches and routers that I had worked with. Most of them back then don’t support auto-mdix, so make sure you have your cross-over cables and straight through cables when you are supporting those old routers and switches! Check out my other post if you need to refresh yourself on types of cables to use.