[Asterisk-Users] iaxtel and jitterbuffer
Scott Laird
scott at sigkill.org
Sat Aug 28 07:58:47 MST 2004
On Aug 28, 2004, at 7:39 AM, Rich Adamson wrote:
>
> I do a lot of work with companies throughout the US on network
> performance
> and we _frequently_ run into routers, switches, servers, etc, that are
> allowed to auto-negotiate their half vs full duplex nic interfaces.
> About
> 50% of the time, systems will get it wrong as there are no standards as
> to how the negotiation should be done.
No standard? Huh? You mean besides 'NWay', which is part of 802.3?
http://www.scyld.com/NWay.html
I've certainly seen problems, particularly with older Cisco switches
and routers, but newer hardware seems to be pretty good. In fact,
autonegotiation is *required* with GigE; you aren't even allowed to
disable it according to the specs. Of course, that's sort of moot,
because 1000/half isn't even slightly useful due to its 640-byte
minimum packet size.
At my previous employer, we were having tons of duplex problems. They
mostly boiled down to forced duplex problems, where someone would force
one end of a link, but leave the other end to autonegotiate. With most
of Cisco's hardware, forcing 100/full *completely* disables
autonegotiation. IMHO, it should still participate in autonegotiation,
but only advertise the 100/full ability. Instead, Cisco tells the
other end "I don't negotiate." So, if you set one end to 100/full and
fail to force the other end, then it will try to negotiate, fail, and
fall back to 100/half, because that's the only reasonable thing to when
negotiation fails. At this point, one end is 100/full and the other is
100/half, and you're about to have trouble. The really fun thing with
this sort of link is that it works just fine with low traffic levels--a
normal ping won't show problems, but it'll break when you actually try
to use it for anything non-trivial. Using larger ping packets helps:
ping -s 10000 totally fails if the duplex is broken anywhere along the
link.
With newer IOS and CatOS builds, you can get around this by leaving CDP
enabled; CDP v2 shares duplex information, and it'll log duplex
mis-matches when both ends of the link use Cisco hardware. I wrote a
small CDP listener for Linux boxes and did the same thing, logging
duplex mis-matches. With 700 servers over 2 years, the only mismatches
we ever found were caused by forced 100/full on the switches.
One easy fix that we found, at least for IOS switches, was to set the
speed to auto but force the duplex. That apparently leaves NWay
negotiation running but only advertises full duplex as an option.
Since nothing *ever* uses NWay to negotiate the speed of the link, this
has the same result as forcing 100/full, but it fails in the right
direction if you only force one end of the link. Of course, knowing
Cisco, this only applies for every third model of switch running
even-numbered IOS builds.
Scott
More information about the asterisk-users
mailing list