自动协商
以太网/快速以太网。
自动协商是快速以太网(802.3U)的一个可选项,它使设备可以交换一条链路的速率和双式模式,自动协商在第一层操作,常用于接入层端口。
运行机制
10/100自适应以太网链路上最常见的问题是双工模式不匹配。这种情况偶尔发生在一端或两端的端口复位,自动协商进程未能使用两端的配置一样中。另一个原因是配置了一端,忘记配置另一端了。双工模式不匹配导致的典型症状是交换机上的FCS、CRC、alignment和runts数量大幅增加。
对自动协商的一个最常见的误区是认为将一端手工配置为100M全双工,另一端就会自动变成全双工。实际上,这样做会导致双工模式不匹配,这是因为链路的一端发起协商,然而看不到另一端过来的任何参数,这样,缺省就会设置为半双工。
绝大多数Catalyst 以太网模块支持10/100M和半/全双工自适应,可以使用show port capabilities 命令来证实这一点。
FEFI
远端故障指示(FEFI)保护100Base Fx(光纤)和Giga接口,就象自动协商保护100BaseTX(钢缆)的物理层信号不匹配的一样。
远端故障是指在链路的一端能检测到,而另一端检查不到,就象一条未连接的tx链路一样。在这种情况下,发磅工作站发继续收到合法的数据包,通过链路检查监视器监测链路情况也是好的,然后,它却检查不到对方工作站并未收到自己发出的数据包。在100BaseFx链路上,工作商将发出一个特殊的FEFI IDLE位序列来检查这种错误,FEFI-IDLE序列会将远端端口标识为shutdown状态(ErrDisable)。在UDLD一节中有详细的讨论。
下列硬件模块支持FEFI:
Catalyst 5000:WS-X5201R、WS-X5305、WS-X5237、WS-U5538、WS-U5339
Catalyst 6000和4000:所有的100BaseFx模块和GE模块。
建议
将端口配置为自动协商还是固定的配置一种速度模式取决于接在交换机上的设备类型。Catalyst交换机兼容802.3u规范,和设备间的自动协商也工作良好,然而,不严格遵守规范的网卡或设备则会导致出现问题。硬件不兼容也有可能是因为一些未写进802.3U的一些供应商的高级特性造成的。这通常会在如下所示的注意事项文档中给出:
注意事项:Intel Pro/1000T网卡和Cat4k/6k连接时的性能提示。
这样,把工作站之间的端口速度、双工模式设置正常是值得期待的,下面是基本的调试步骤:
确认链路的两端都设置为固定的工作模式或都设置为自动协商
检查CatOS发行公告中的警告事项
检查网卡驱动和操作系统的版本号,通常需要最新的驱动或补丁程序。
原则上在任何链路上都应该首先使用自动协商模式,这对于使用笔记本电脑等暂时接入的设备具备相当明显的优点。自动协商在服务器、交换机到交换机和交换机到路由器之间也工作得很好。然而,就象上面所提及的一弱,在有些环境中自动协商是不可用的。在这种情况下可以使用如下的调试步骤:
如果端口的速度和双工模式都设置为自动协商,可以使用如下命令将端口模式设置为自动状态:
set port speed auto (缺省配置)
如果要将端口配置为固定速度,可以使用如下的配置命令:
set port speed <10 | 100>
set port duplex
其它:
交换机之间的链路一般用第二层的协议如UDLD等来增强检测能力。
千兆网
千兆网有一个比10/100兆网范围更大的自动协商机制(Ieee802.3z),用来交换流控参数、远程失效信息、双工信息(虽然绝大多数Catalyst上的千兆端口只支持全双工模式)。注意802.3z已经被IEEE802.3:2000标准给替代了。
运行机制
千兆端口的协商在缺省状态下的启用的,并且一条链路两端的端口必须是同样的设置。不象快速以太网,如果千兆链路两端的设置不一致,端口状态将不会up(交换的参数不一样)。和快速以太网的另一个不同点的,千兆端口不协商端口速度,也不能使用set port speed禁用自动协商。(译者注:最新的1000-baseTx规范中是可以协商端口速度的)
例如,假设有两个设备A和B,每个设备对自动协商都有启用一禁用两种状态,下面就是可能的端口状态
建议:
在千兆以太网中启用自动协商比在10/100兆环境中更为关键。实际上,只有在设备不支持自动协商或自动协商不成功的情况下才在交换机的端口上禁用自动协商。Cisco建议在所有的交换机到交换机链路上启用自动协商,在基本上所有的千兆以太网端口上都启用自动协商。使用以下的命令来启用自动协商:
set port negotiation enable (缺省配置)
一个已知的例外是在运行早于IOS12.0(10)S(该版本增加了流控和自动协商)的GSR上面。在这种情况下,需要关闭这两个特性,否则交换机端口将报务“未连接”,在GSR上会报错,配置如下:
set port flowcontrol receive off
set port flowcontrol send off
set port negotiation disable
交换机到服务器的连接则必须具体情况具体分析,已证实可以和Sun、HP和IBM的部分服务器可以自动协商。
其它:
流控是802.3x规范中的一个可选部件,如果要使用必须进行协商。设备不一定能发送和响应一个PAUSE帧慢(使用01-80-c2-00-00-00 0F的周知MAC),这样他们也许不允许远端设备的流控请求。端口在输入缓冲区快満时会给对方设备发出一个PAUSE帧请示暂停发送,将后续帧放到对端设备的发送缓冲区中。这不可能解决超量会聚时的稳定性问题,但对突发流量的控制相当有效。这个特性在端接点和访问层的连接中最有用,因为主机的发送缓冲和它的虚拟内存一样大,在交换机到交换机的连接中有一定的效果。
在交换机上使用下列的命令配置流控:
set port flowcontrol
>show port flowcontrol
Port Send FlowControl Receive FlowControl RxPause TxPause
admin oper admin oper
..... ........ ........ ........ ........ ....... .......
6/1 off off on on 0 0
6/2 off off on on 0 0
6/3 off off on on 0 0
注意:所有处于协商模式的Catalyst模块都会响应Pause帧,一部要模块(如WS-X5410,WS-X4306)则不会发送Pause帧,因为它们的非阻塞模块。