第七章 使用高级特性培强网络稳定性、功能可靠性和性能

时间:2022-11-17 16:26:39
  本章包括如下主题:

  EtherChannel

  CDP(cisco discovery protocol ,cisco 发现协议)协议过滤广播和多播抑制多重默认网关使用DHCP管理IP配置Mac地址通知去抖动计时器“小巨人”和巨型帧Error-DisableIEEE802.3流量控制UDLD(Unidirectional Link Detection, 单向链路检测)和积极模式UDLD通过使用下列属性,将能够防止网络环路、非授权设备、故障设备或软件所导致的网络中断。此外这些特性能够尽量减少网络流量的丢包现象:

  单向链路检测广播和多播抑制Error-DisableIEEE802.3 流量控制 (STP)协议过滤单播扩散阻塞此外,下列属性是为交换机增加功能的服务,它们能够使得交换机支持特定的网络设备或应用:

  小巨人巨型帧去抖动计时器7.1 EtherChannel

  EtherChannel充分利用现有端口的优势来增加可用带宽。cisco catalyst交换机最多允许将8个端口绑定到一起。

  对于cisco IOS软件的交换机,它不仅能够支持第2层EtherChannel ,而且还可以支持第3层EtherChannel。第3层EtherChannel 能够绑定第3层或路由端口。

  catalyst 系统交换机支持 PAgP (Port Aggregation Protocol ,端口汇聚协议)、LACP (Lind Aggregation control Protocol,链路汇聚控制协议)

  PAgP是cisco专有的协议。为连接cisco交换机和其他支持802.3ad的非 cisco 厂商的交换机或服务器,则可以使用LACP形成EtherChannel 。

  7.1.1 PAgP 模式

  PAgP 能够工作在不同模式中,工作模式能够决定端口组是否可以形成通道。

  注释:cisco交换机的默认通道协议是PAgP ,默认模式是自动{auto}

  工作在Auto 和 Desirable (企望)模式的PAgP支持下列选项

  Slient :它表示交换机不期望从伙伴设备接收PAgP帧来防止交换机报告到达STP的链路状态为“down”。non-Silent:它表示交换机期望从伙伴设备接收PAgP帧。这种模式用于检测单向链路故障,如果没有从伙伴设备接收到PAGP帧,那么就表示单向通信失败。对于连接两台交换机的接口,即使接口属于不同的PAGP模式,但如果这些模式能够相互兼容,那么它们就能形成EtherChannel。

  ON模式只能与其他ON模式的接口相互兼容。

  7.1.2 LACP模式

  LACP模式:开启(on)、关闭(off)、被动(passive)、主动(Active)

  cisco允许对具有相同管理密钥的端口配置不同的通道 。

  LACP的配置参数:

  LACP要求每个链路伙伴都拥有一个系统优先级。LACP要求每个端口都拥有一个端口优先级。LACP要求通道内的每个端口都拥有一个密钥值,它既可以自动确定,也可以手工配置。管理密钥定义了端口与其他端口进行汇聚的能力cisco交换机允许对具有相同管理密钥的端口配置不同通道。例如:如果8个端口被分配相同的管理密钥,那么管理员就可以使用LACP主动模式在通道中配置4个端口,并且使用 ON 模式在手工配置的通道中配置其余4个端口。管理密钥的有效范围只限在分配它的交换机环境中,并且不存在全局有效的管理密钥值。7.1.3 EtherChannel

  在配置端口通道的时候,应当遵从下列指导原则和最佳做法。

  在每个EC中,cisco交换机最多允许包括8个端口。这些端口既不必是连续分布的,也不必位于相同模块中。一个EC内的所有端口都必须使用相同协议(PAGP或LACP)一个EC内的所有端口必须具有相同的速度和双工模式,LACP要求端口只能工作在全双工模式。一个端口不能在相同时间内属于多个通道组。一个EC内的所有端口都必须配置到相同的接入VLAN中,或者配置到具有相同VLAN许可列表和相同native Vlan的Vlan 干道中。为了避免想不到的结果,一个EC内的所有端口都需要配置相同的干道模式,例:采用dot1Q desirable的干道模式一个EC内的所有端口都要求具有相同的VLAN开销配置。如果某个端口被配置为SPAN(Switched port Analyzer,交换端口分析器)的目标端口,那么就不能形成EC。如果EC的端口通道接口是三层接口(而不是物理接口),那么就应当为接口配置IP地址。即使接口配置了不同的STP端口路径开销,所配置的兼容端口也能形成一个EC。7.1.4 EtherChannel 配置示例

  二层3550 具体配置如链接

  EtherChannel负载平衡:

  EtherChannel 支持跨越多个接口的流量负载平衡,如果在没有启用EtherChannel的情况下,如果采用两条链路来连接交换机,那么其中一条链路将由于STP的原因而不能转发流量。STP将EtherChannel接口当作单个逻辑接口,因此将把流量分布到EtherChannel中的所有端口。

  为了确定EtherChannel 采用哪个外出端口来发送数据帧,EtherChannel负载均衡能够使用多种决定性的因素,例如:MAC地址、IP地址、第4层端口号(源端口、目标端口或再者兼备)。根据用户所配置分发数据帧的情况不同,散列算法中所使用的参数也不相同。

  负载平衡算法一般有三种形式:1. 采用目标MAC地址或IP地址作为决策的依据,那么EtherChannel将只在单条链路上传送数据帧 2 采用源MAC地址或IP地址作为负载方案的依据,那么负载均衡将更加有效. 3如果采用第4层TCP或UDP端口作为负载均衡的依据,那么就可以跨越两条链路更加平均地分发流量。

  对于cisco IOS 4500软件的系列交换机,需要使用下列命令:

  (config)#port-channel load-banalnce {src-mac| dst-mac| src-dst-mac|src-ip|dst-ip |src-dst-ip| src-port| dst-port |src-dst-port}

  对于基于cisco IOS 软件的catalyst 2950系列交换机,需要使用下面命令

  (conf ig)# por-channel load-balance {dst-mac |src-mac}

  各种catalyst 交换机负载均衡算法所支持的参数:第2层MAC地址、第3层IP地址、第4层TCP/UDP端口号

  7.2 CDP

  CDP是cisco 设备所默认启用的一种第2层协议,并且还是识别所连接设备详细信息的一种重要协议。CDP与网络协议类型无关,并且运行在所有的cisco设备中,其中包括路由器和catalyst交换机。

  LLDP(Link Layer Discover Protocol,链路层发现协议)是种独立于任何厂商的第2层协议,它等同于cisco CDP。

  CDP运行在有有支持SNAP(Subnetwork Access Protocol,子网访问协议)帧类型的介质中,包括以太网、帧中继和ATM等物理介质。

  通过在所有支持CDP的接口上向多播MAC地址 01-00-0c-cc-cc-cc发送周期性消息(又称为通告消息),通过利用邻接设备所发送的消息,设备能够学到所连接设备的相关信息。

  TLV(Type-Length-Value,类型长度值)

  CDP消息中,可以承载以下重要信息:# show CDP neighbour detail

  设备ID网络地址发送消息的端口或接口发送设备的功能硬件平台VTP管理域Native VLAN双工配置软件版本在禁用CDP的时候,既可以选择全局性禁用,也能以每个接口为基础而进行禁用。

  # no cdp run 或 # no cdp enable

  7 .2.1 语音 VLAN和CDP

  VOIP实现的典型配置示例:工作站连接到IP电话,而IP电话连接到catalyst 交换机。在这种配置中推荐配置2个独立的VLAN:

  数据VLAN,用于工作站的数据流量语音VLAN,用于IP电话的语音流量通过分别为语音和数据流量配置独立的VLAN,不仅有助于对每个VLAN 应用QOS和其他策略,而且也有助于区别高优先级语音流量(源于IP电话)和低优先级数据流量(源于工作站)。

  语音VLAN带有VLAN-ID标记

  通过在基于cisco IOS软件的交换机上执行下列接口级命令,将可以指定语音VLAN,进而CDP能够将其在数据包中发送给IP电话。

  (config-if)# switchport voice vlan Vlan-id

  7 .2.2 安全问题

  为了避免交换设备信息,最佳实践是在连接到服务提供商和企业边缘路由器的接口上禁用CDP功能。

  7.3 多重默认网关

  交换机最多能够支持3个默认网关,其中一个担当主网关,而其他两个担当备份网关。

  MDG(Multiple Default Gateway,多重默认网关)

  7.4 MAC 地址通知

  通过使用MAC地址通知的特性,将可以监控连接到网络中的新设备。在特定的环境里,MAC地址通知特性是一种有用的排错工具。

  7.5 第三层协议过滤

  根据具体配置的情况,第3层协议过滤能够防止在属于特定第3层协议的VLAN中转发广播和未知单播扩散流量。例如:对于仅配置IP协议的端口,它就既不能转发任何IPX和AppleTalk广播流量,也就不能转发任何IPX和AT未知单播流量。

  在基于cisco IOS软件的catalyst交换机上配置和验证协议过滤:

  在基于cisco IOS catalyst6500交换机上的F5/8接口上配置协议过滤,在接口上关闭IP 和 AppleTalk数据转发的功能,并启用IPX 数据包转发的功能

  SW# config terminal

  SW(config)#protocol-filtering

  SW(config)#interface f 5/8

  SW(config-if)#switchport protocol appletalk off

  SW(config-if)#switchport protocol ip off

  SW(config-if)#switchport protocol Ipx on

  SW#show protocol-filtering interface f5/8

  总而言之,协议过滤是多协议环境中一种非常有用的特性,在多协议环境中,设备运行在某种特定协议之上,但是却可能与运行不同协议的其它设备共享第2层域。通过启用协议过滤的特性,管理员能够最小化在VLAN内所有端口上扩散不必要流量的范围。

  7 .6 使用DHCP管理IP配置

  在基于cisco IOS软件的交换机上,当重新启动交换机的时候,只有当交换机中不存在配置文件时,交换机自动地从DHCP服务器请求配置信息。

  在下列情形中,将不会出现基于DHCP的IP配置:

  当交换机拥有配置文件,并且禁用全局配置命令service config的时候;当交换机的NVRAM包括配置文件, 皮影戏,并且启用全局命令service config 的时候。在这种情况中,交换机将发出配置文件的广播TFTP请求。7.7 去抖动计时器特征

  抖动容限(jitrrr tolerance)不应当超过1.4纳秒,过量抖动可能会导致链路反复翻动,进而导致网卡超出规范要求。通过对网卡进行排错,更新驱动程序或更换网卡,我们可能解决上述问题。

  我们高度推荐在使用该特性之前对自动协商进行排错。

  在交换机需要与超出规范要求的网卡的工作站或服务器协同工作的情况中,就可以利用去抖动计时器特性。

  通过在基于cisco IOS软件的catalyst 交换机上使用下列接口级别的命令,将可以启用去抖动计时器特性:

  (config-if)# link-debounce

  通过在基于光纤的吉比特以太网上使用下列命令,将可以更改去抖动器的默认值:

  (config-if)# link-debounce time debounce-time

  7.8 广播和多播抑制

  广播数据包具有独特的特征,广播域中的每个设备都将处理广播数据包,如果某个网段中存在过量的广播流量 ,那么所有的设备都影响。

  如果网络中存在广播风暴,那么最终将导致拥塞。应用或网络配置错误也可能导致过量的广播。

  在catalyst 6500交换机中,用户可以在吉比特以太网端口上配置多播或单播抑制的特性。

  我们推茬在接入层的用户端口上启用广播和多播抑制的特性,进而能够限制特定主机端口所能发送到网络中的广播或多播流量大小。

  为了缓解过量广播的影响,catalyst交换机提供了广播抑制的特性。广播抑制检测采用如下两种行动:或者丢弃过量的流量;或者禁用接收过量的流量的端口。

  当某个端口进入“err-disable”状态的时候,交换机将显示错误信息,并且将立即产生SNMP trap消息来通告管理站过量流量的情况。

  对于cisco IOS软件的交换机,广播抑制又称为风暴控制。基于cisco IOS软件的catalyst 6500系列交换机的惟一违规行为就是丢弃数据包。

  在基于cisco IOS软件的catalyst 4500 系列交换机中,除丢弃数据包外,违规行为还包括关闭选项。

  通过使用下列接口级别的命令,将可以启用风暴控制的特性。

  例:用户将广播和多播抑制的阀值级别都设置为5%

  SW(config-if )# storm-control broadcast level 5

  SW(config-if )# storm-control multicast level 5

  7.9 小巨人和巨型帧

  以太网的标准MTU(Maximum Transmission Unit,最大传输单元)是1500字节,其中不包括以太网报头(14字节)和CRC(cyclic refuandancy check,循环冗余校验)报尾(4字节)。

  与标准的以太网帧相比较,小巨人帧的尺寸略大,并且小巨人帧的设计目标是容纳MTU最大1600字节的各种封装。

  小巨人帧的某些应用包括:QinQ、MPLS(Multiprotocol Lable Switching,多协议标签交换)、VPN和 L2TP(layer 2 Tunneling Protocol,第二层隧道协议)等。

  如下为几种应用的帧格式,它们都需要支持比标准MTU(1500字节)更大的尺寸

  标准:1518802.1Q:1522ISL:1548QinQ:1526MPLS VPN:1526L2TPv3:1568巨型以太网帧是一种以太网帧,它的最大尺寸可达9236 字节,巨型帧特性可用于增加以太网性能。

  服务器需要特殊的网卡才能发送和接收巨型帧,尽管如此,巨型帧支持正在逐渐成为新型网卡的标准特性。

  没有任何一种catalyst交换机在其所有模块上都支持这些特性。

  此外,如果负责转发帧的源接口支持巨型帧,但相同VLAN中的相同交换机上的目标端口不支持巨型帧,那么该目标交换机将丢弃该帧。其原因在于交换机只能从外出接口发出许可大小的帧。

  通过在基于cisco IOS软件的交换机上使用下列全局命令,将可以配置小巨人支持特性:

  (config)# system mtu size

  如果希望启用巨型帧特性,那么就可以使用下列接口级别的命令:

  (config-if)# mtu size

  注释:接口级别的配置能够覆盖全局的系统MTU配置

  例:在基于cisco IOS软件的catalyst 4500交换机上全局性地配置和验证小巨人特性,以及在吉比特以太网接口上配置和验证巨型帧

  SW(config)# system mtu 1552

  SW(config)#interface g1/1

  SW(config-if)# mtu 9188

  SW# show interface G1/1 mtu

  7 .1.0 Error-Disable

  通过 Error-Disable 特性,在错误状态影响到整台交换机或网络其余部分之前,交换机能够检测到特定接口的错误状态并禁用该端口。

  例如 catalyst 4500系统交换机能够检测下列错误状态:

  UDLD (UniDirectional Link Detection 单向链路检测)BPDU (bridge protocol data unit,桥协议数据单元)端口安全违规EtherChannel配置不当VMPS客户端违规PAGP翻动DTP翻动链路翻动L2TP防护无效GBICDHCP限速违规单播扩散风暴控制ARP检测当检测到任何一种错误状态时,通过对交换机进行配置,将能够使得接口过渡到 error-disable 状态,这种工作状态类似于链路 down 状态。

  如果接口进入 Error-disable 状态,使用如下两种方法能够从该状态中恢复:

  手工恢复:在基于cisco IOS 软件的catalyst 交换机中,通过先后执行接口级命令 Shutdown 和 no shutdown ,将可以把接口从Error-disable状态中恢复自动恢复:通过在交换机中配置时间间隔(interval),交换机能自动从Error-disable 状态恢复。注释:在手工或自动恢复之后,如果错误状态仍然存在,那么接口将重新进入Error-disable 状态,只有真正找到问题的根本原因才能避免接口重新进入Error-disable 状态。

  在基于cisco IOS 软件的catalyst 交换机中,通过执行下列命令,将能够启用Error-disable 状态检测:

  SW(config)# errordisable detect cause {all | arp-inspection|.........}

  在基于cisco IOS 软件的catalyst 交换机中,通过执行下列命令,将能够启用从Error-disable 状态自动恢复

  SW(config)# erriisable recovery cause {all |arp-inspaection |.......}

  在基于cisco IOS 软件的catalyst 交换机中,通过执行下列命令,将可以指定从Error-disable 状态自动恢复的时间间隔:

  SW(config)# erriisable recovery interval time(S)

  例:配置所有支持状态的err-desable特性检测和恢复。此外,用户将恢复时间间隔从默认30S调整到60S,最后验证。

  4500# config terminal

  4500(config)# errdisable detect cause all

  4500(config)# errdisable recovery cause all

  4500(config)# errdisable revocery interval 60

  4500 # show errdisable detect

  4500 # show errdisable recovery

  总而言之,error-disable特性能够避免单个或多个端口所发生的错误状态影响整台交换机或网络其余部分,最佳实践推荐采用 error-disable 特性配置

  7. 11 IEEE802.3流量控制

  IEEE802.3流量控制特性用于避免两台设备之间的流量丢失。接收设备缓冲区溢出能够导致流量丢失。因为设备内在瓶颈或下游设备的原因,接收设备也许不能足够快的清空接收缓冲区。为了避免发生流量丢失,通过使用IEEE802.3流量控制特性,将使得链路伙伴之间能交流接收缓冲区满的情况,当链路伙伴发现对端设备的缓冲区已满,它将停止发磅流量,并且在对端设备表明它具有接收流量的能力之后再重新发送流量。该特性是QOS特性的补充,有助于避免缓冲区溢出丢包。

  在发生拥塞时,catalyst 交换机使用暂停来通知文件服务器延迟一段特定时间后再发送帧。

  在基于cisco IOS软件的catalyst 交换机中,通过执行下列接口级命令,将能够配置IEEE802.3流量控制。

  SWA(config-if )# [no] flowcontrol [receive | send] {desired | off | on}

  关键字 receive 表示接口是否处理接收的暂停帧。关键字 send 表示接口在发生拥塞时是否发送暂停帧。如果不知道链路伙伴的IEEE802.3流量控制配置,那么就使用关键字 desired .

  例:在基于cisco IOS软件的catalyst交换机上配置和验证IEEE802.3流量控制。

  6500#configure terminal

  6500( config )# interface g1/1

  6500( config-if) # flowcontrol receive on

  6500( config-if) # flowcontrol send on

  6500# show flowcontrol interface g1/1

  7.1.2 UDLD 和积极模式 UDLD

  当链路保持“UP”状态,但是接口却没有传递流量的时候,UDLD协议能够检测到交换机端口上的单向链路的情形。这种情形通常会出现在以下几种情况之中:GBIC(Gigabit interface converter ,吉比特接口转换器)或接口故障、软件故障、硬件失效或其他异常表现。UDLD有助于防止在上述几种失效中发灾难性的事件。

  UDLD是一种第2层协议,它与第1层机制协同工作来确定链路的物理状态。在第1层中,自动协商功能将照顾到物理信令和故障检测。UDLD能够执行自动协商不能执行的任务,例如检测邻居的身份和关闭连接不当的端口。当同时启用自动协商和UDLD的时候,第1层和第2层检测将协同工作来防止物理或逻辑上的单向连接 ,并且还可以防止其他协议的故障。

  在启用UDLD的时候,交换机将定期地向邻居发送UDLD协议数据包,并且期望在预订计时器到期之前接收到回应的数据包。如果计时器到期,那么交换机将确定该链路是单向链路,并且将关闭该端口。

  UDLD数据包包含下列信息:发送端口的设备ID和端口ID;邻居设备的设备ID和端口ID。如果邻居设备也启用了UDLD,那么它将发送相同的hello消息。如果链路两侧的设备都接收到对方的UDLD数据包,那么链路就是双向链路。

  当某个链路伙伴错误禁用某个端口的时候,因为链路已经进入到“down” 状态,所以对端的链路伙伴将不会错误禁用端口。

  UDLD 消息的默认时间间隔是15S ,如果希望检测的速度更快,那么也可以将时间间隔配置得更小。

  积极模式UDLD是UDLD的一种变种。它能够提供额外的好处,在启用积极模式UDLD的情况下,当端口停止接收UDLD数据包的时候,UDLD将尝试重新建立与邻居的连接,但如果尝试次数超过8次之后,那么端口状态就将变更为“ err-disable”状态,它将有效地禁用端口。

  环路检测建立在交换机端口所接收的BPDU基础之上。如果交换机从多个端口接收到相同的BPDU,那么交换机就将选择到达网桥的最佳端口,并且 将阻塞其他的冗余端口。因为接收BPDU是环路检测过程的关键部分,所以需要通过其他方法来检测单向链路,进而确保任意时刻的BPDU都能够在所有链路上的恰当的方向发送。否则,单向链路最终将导致生成树环路或路由流量的黑洞。

  例:在基于cisco IOS软件的交换机上配置和验证 UDLD 

  SW#configure terminal

  SW( config )# interface g1/1

  SW( config-if )# udld port aggressive    //积极模式的UDLD

  SW( config-if )# end

  SW # show udld g1/1

  总而言之,为了避免发生可能导致网络中断的各种问题,建议在所有的光纤端口上采用UDLD和积极模式的UDLD。

  积极模式的UDLD能够通过主动地错误禁用(err-disable)接口(而并非仅仅通知单向链路的系统)来避免网络黑洞,所以积极模式的UDLD是比UDLD更可取的选择。对于积极模式的UDLD,它的最大优势在于能够避免生成树环路。

  7.1.4 学习提示

  配置 error-disable 特性的检测原因:

  (config)#errdisable detect cuase {all |arp-inspection |dhcp-rate-limit |dtp-flap |gbic-invalid |L2ptguard |link-flap |pagp-flap}

  将接口配置为EtherChannel 组的成员,并指定工作模式:

  (config-if)#channel-group Group-number mode { active |auto | desiable |on |passive }

  在指定接口上配置积极模式的UDLD 而忽略全局 UDLD 配置

  (config-if)# udld pott aggressive

  配置 error-disable 特性的恢复原因

  (config)#errdisable recovery causr {all |arp-inspection |bpduguard |channel-msconfig |dhcp-rate-limit |dtp-flap |gbic-invalid |l2ptguard |link-flap |......}

  显示通过CDP发现在邻接设备信息

  SW#show cdp neighbour

  显示通过cdp 发现的邻接设备的详细信息

  SW#show cdp neighbour detail

  显示EtherChannel 组的汇总信息

  SW#show etherfchannel summary

  显示系统中所有接口的状态和统计信息

  SW#show interface

  显示特定接口与 switchport 相关的信息

  SW# show interface Interface-id switchport

  显示特定接口与干道配置相关的信息

  SW#show interface Interface-id trunk

  显示与特定EnterChannel接口相关的状态和统计信息

  SW#show interface port-channel {port-channel-interface-number}

  显示系统中所有接口相关的状态和统计信息

  SW# show ip interface brief

  EtherChannel 协议存在两种械:PAgP和LACPcatalyst 交换机在单个EtherChannel 中最多支持8个端口CDP是cisco 专有的协议,它能收集网络中邻接设备的有价值信息。但是对于公开接口,CDP存在一定的安全风险MAC地址通告用于服务提供商环境,可用来追踪MAC地址和控制用户访问。去抖动计时器特性能够使得catalyst交换机能够与不兼容的网卡工作,具体方法就是管理员调高抖动容限。通过使用小巨人和巨型帧特性,能够增加服务器之间的TCP 吞吐量,并且允许各种封装的数据包都能够穿越交换机。通过DHCP管理catalyst交换机的IP配置,能够简化IP地址分配,并且可以避免手工配置IP地址。通过使用UDLD和积极模式UDLD,能够避免硬件、软件或物理层故障等导致单向链路的原因产生网络中断。当下游交换机的接收缓冲区已满的时候,IEEE802.3流量控制有助于避免丢包,下游交换机将向上游交换机发送暂停帧来通告发生网络拥塞。通过使用第3层协议过滤特性,将能够进入进入网络的数据包进行第3层协议过滤。通过使用广播和多播抑制特性,将能够避免非授权或故障设备向网络中扩散不必要流量并破坏网络。通过 error-disabel 特性,能够阻止通常会导致多层交换网络崩溃状态。error-disable 也是其他特性(BPDU防护和UDLD等)的一个主要功能