Hi Guys I have an ASA 5510 running 8.0 code.
I was experiencing slower throughput then normal and decided to do some testing on the firewall.
I had a redundant interface for the inside of the firewall with ports e0/2 and e0/3. both configures to 100/FULL.
I configured the management interface and e0/1 ( e0/0 is being used on the outside interface) with seperate ip subnets and configured the required NAT'ing.
I then ran some speedtests via speedtest.net. I found that using e0/1(gig) or management(100mb) I was achieving speeds consistently(over many tests) at least 10 times faster then on the redundant 1 interface ( with e0/3 active).
I then removed the redundant interface and tested e0/2 and e0/3 seperately and discovered e0/2 gave consistent high speeds just like all of the other interfaces but e0/3 was still consistently showing very poor speeds.
The interface was up, didn't seem to be under any load and full duplex 100 ( the same as 0/2 and management interface).
So I think there is an issue with e0/3 but I'm not sure how to test. What should I look for, what sort of tests are at my desposal?
The reason this will cause a problem is if the ASA is hardcoded for 100/full-duplex, and then is connected to a device (laptop/switch) which is configured for Auto then the switch side will try to autonegotiate the settings. Since the ASA is hard-coded, it will not participate in the negotiation process. The switch side will then see that negotiation has failed, and will be able to sense the speed, so it will set itself to 100 Mbps. However, for duplex it cannot be sensed, and therefore the side configured for Auto will default to half-duplex. Thereby causing a duplex mis-match.
That is why the general recommendation is to leave all ports at 'auto'. (In the old days - 1990s; the auto-negotiation process had some bugs between different vendor's equipment, and thus the general recommendation back then was to hard-code everything. However, those issues have long been since addressed, and configuring the devices for autonegotiation is a much better option, as it avoids the more common case of misconfigurations - where one side is hard-coded, but the other is not).
I hope it helps explain it.