CDP
CDP是cisco设备(路由器、交换机、访问服务器等)所默认启用的一个第2层协议,发现并能识别所连接邻居设备详细信息的一个重要协议。
CDP运行在所有支持SNAP(subnetwork access protocol,子网访问协议)帧类型的介质中,其中包括以太网、帧中继和ATM等物理介质。CDP工作在OSI参考模型的第2层,能够与其他Cisco设备进行交互,而与网络层协议无关。
通过在所有支持CDP的接口上向多播地址01-00-0c-cc-cc-cc发送周期性的消息(通告消息)方式,CDP能够利用邻接设备所发送的消息,学到所连接设备的有关信息。
CDP数据包格式
  -----------------------------------
  |  版本     |   TTL   |   校验和  |
  -----------------------------------
  |             TLV列表             |
  -----------------------------------
数据包各字段描述
字段         长度       描述
-------------------------------------------------------
版本         8比特        CDP版本(Ox02代表版本2)
TTL保存时间 8比特        接收端应当保存数据包中信息的时长,单位为秒
校验和         16比特         CDP数据包的校验和
TLV列表         可变长度 TLV列表
TLV格式
     -------------------------------------------------
     |    类  型(16比特)  | 长  度(16比特)     |
     -------------------------------------------------
     |              数  据(可变长度)               |
     -------------------------------------------------
TLV类型及描述
类型            描述
-------------------------------------
设备ID           标识发送设备
地址           网络层地址---通常为发送CDP数据包的接口地址
端口ID           标识发送CDP数据包的接口
功能           描述设备的功能(例如路由器还是交换机)
版本           描述设备运行软件的信息
平台           描述设备的硬件平台
Native VLAN   802.1Q Native VLAN(未标识的数据报)
应用VLAN ID   包含单个或多个应用,每个包含应用ID(如VoIP电话)及相应的VLAN ID
触发器           当设备接收到带有触发器TLV的CDP数据包,它将对所接收数据包进行响应,而不是等待周期性发送数据包
功耗           接口所连接设备的线上供电的最大功率,单位为毫瓦
SysName    系统名
sysObjectID   发送端MIB对象的sysObjectID部分OBJECT-IDENTIFIER值
管理地址   接收SNMP消息的设备网络层地址
除了包含上述消息之外,CDP还包含保持时间(Hold time),它表示接收设备应当在丢弃CDP消息之前将其保留多久。CDP版本2是CDP些以的最新版本,它能够提供额外的TLV。
配置过程:
默认配置:
参数               默认值
---------------------------------
CDP全局配置         使能
CDP接口上         使能
CDP timer(发送更新) 60秒
CDP holdtime        180秒
CDP通告版本          V2
启用和禁用CDP
配置过程:
启用是默认的,所以默认下不需要启用
1. 全局配置
1) 进入全局模式  configure terminal
2) 禁用CDP
   no cdp run
3) 恢复启用
   cdp run
2. 接口配置
1) 进入接口模式 interface 接口
2) 禁用CDP
    no cdp enable
3) 恢复启用
    cdp enable
配置CDP参数
配置过程:
1) 进入全局模式  configure terminal
2) 修改相应参数
   cdp timer 秒数    //发送CDP更新的时间,时间为5-254,默认为60秒
   cdp holdtime 秒数  //保持时间,时间为10-255,默认为180秒
   cdp advertise-v2  //发送CDP数据包的版本
3) 验证结果
show cdp
Global CDP information:
        Sending CDP packets every 60 seconds
        Sending a holdtime value of 180 seconds
        Sending CDPv2 advertisements is  enabled
案例:
CCIE-LAB(V180)
题目要求:
Configure the Length of time camount,a neighbor should hold CDP information sent by SW2 before discarding it to 2 minute
配置:
SW2
Configure terminal
Cdp holdtime 120
 
IEEE802.3流量控制
   IEEE 802.3流量控制特性用于避免两台设备之间的流量丢失。接收设备的缓冲区溢出能够导致流量丢失。即使发送端和接收端具有相同的工作效率,两者的缓冲区仍然可能不相同。此外,因为设备内在的瓶颈或下游交换机的原因,接收设备也许不能足够快地清空接收缓冲区。为了避免在上述情况下发生流量丢失,通过IEEE 802.3流量控制特性,将使得链路伙伴之间能够交流接收缓冲区满的情况。当链路伙伴发现对端设备的缓冲区已经满了,它将停止发送流量,并且在对端设备表明它既由接收流量的能力之后再重新发送流量。
注意,IEEE 802.3流量控制也常指IEEE 802.3z。
IEEE 802.3使用特定帧(暂停帧)来通知链路伙伴延迟一端特定时间后再发送帧。特定时间不是由用户所决定,而是由接收交换机端口逻辑所确定的。3560交换机只支持接收暂停帧,不会发送和暂停帧。
配置过程:
1) 进入全局模式  configure terminal
2) 进入接口模式  interface 接口
3) 配置流量控制
   flowcontrol [receive|send] [desirable|on|off]
    receive:是否处理接收到的暂停帧
    send:接口在发生拥塞时,是否发送暂停帧
    desirable:如果不知道链路伙伴的IEEE 802.3流量控制配置时,使用desirable
    on:当端口接收到暂停帧,它将停止发送流量
4) 验证配置
   show interface 接口
   show flowcontrol interface 接口
案例:
     configure terminal
     interface fa0/23
        flowcontrol receive on
案例:
CCIE-LAB(yy)
题目要求1:
Sw1 f0/8 为避免拥塞,在收到pause frame 时停止发包
配置:
SW1
Config termi
Interface f0/8
  Flowcontrol receive on
Show interface f0/8 flowcontrol
题目要求2:
配置Sw1 g0/1当网络有拥塞时,发送pause frame,并不对接收到的pause frame做响应。
配置:
SW1
Configure termi
Interface g0/1
   Flowcontrol send on
   Flowcontrol receive off
UDLD(UniDirectional Link Detection单向链路监测)和积极模式UDLD
   当链路保持“UP”状态的时候,但接口却没有传递流量,UDLD协议能够监测到交换机端口上的单向链路的情形。这种情形通常会出现在以下几种情况之中:GBIC(吉比特接口转换器)或接口出现故障、软件故障、硬件失效或其他异常表现。UDLD有助于防止在上述几种失效中发生灾难性的事件,当监测到有单向链路,它将停止端口发送信息。
UDLD是一种第2层协议,它与第1层机制协同工作来确定链路的物理状态。在第1层中,自动协商功能将照顾到物理信令和故障监测。UDLD能够执行自动协商不能执行的任务,例如监测邻居身份和关闭连接不当的端口。当同时启用自动协商和UDLD的时候,第1层和第2层监测将协同工作来防止物理或逻辑上的单向连接,并且还可以其他协议的故障。
UDLD有两种模式:通常模式和广泛模式。通常模式是默认的,当监测吉比特接口出现了故障,它会监测到单向性链路,防止出现问题。如果某个端口连接正确没有故障,但只是传输是单向的,UDLD不会监测到单向链路,因为第1层机制没有问题,它也不会非法这个端口。
广泛模式下,当出现一下情况时,它会监测到单向链路,它将非法端口:
* 一个光纤吉比特端口或双绞线链路中,其中一个端口不能发送或接收数据包
* 一个光纤吉比特端口或双绞线链路中,其中一个端口断了而其他端口是活动
* 一个光纤线缆的一头连接错误
   积极模式UDLD是UDLD的一种变种,它能够提供额外的好处。在启用积极模式UDLD的情况下,当端口停止接收UDLD数据包的时候,UDLD将尝试重新建立与邻居的连接。但如果尝试次数超过8次之后,那么端口状态就将变更为“error-disable”状态,它将有效地禁用端口。
UDLD的算法:
学习邻居的信息并将信息保存在一个本地cache中,一但检测到一个新的邻居或一个邻居请求重新同步cache时,就发送一系列的UDLD probe/echo(hello)包。
  UDLD在所有端口上持续的发送probe/echo信息,当在端口上收到一个UDLD响应信息时触发一个"detection-phase"和验证进程。如果所有的有效条件都达满足(端口是双向连接,并且线缆正确),这个端口被启用。否则,该端口被禁用,并触发如下所示的syslog信息:
"UDLD-3-DISABLE: Unidirectional link detected on port mod/port. Port disabled"()
"UDLD-4-ONEWAYPATH: A unidirectional link from port mod/port to port mod/port of device [chars] was detected"
  一但一个链路建立起来并被标志为双向的,UDLD会继续每隔15秒发送一个probe/echo信息。
1. 邻居数据库维护(Neighbor database maintenance)
UDLD在每个活动的接口上周期性的发送probe/echo包,以维护邻居缓存的完整性。一端收到一个hello信息,将它缓存到内存中,并保存一个通过hold-time定义的时间间隔。如果一个hold-time超时,相应的cache被清空,如果在hold-time定义的时间间隔内收到新的hello信息,则新的替代老的,并将计时器清零。
为了维护UDLD cache的完整性,一旦一个启用了UDLD的接口被禁用,或该接口上的设备被重启,该接口存在的所有缓存均会被清除,UDLD传送至少一个信息让邻居清空响应的缓存条目。
2. 回显监测机制
       回显机制构成了检测算法的基础。一旦一个UDLD设备学习到了一个新的邻居或从一个非同步状态的邻居收到一了个重新同步的请求。它将启动或重启本端的检测窗口,并发送一个完全同意的回显信息。由要求所有的邻居都必须有这个相应的行为,回显的发送者期待收到一个响应的echos。如果检测窗口结束,而没有合法的响应信息收到,这个链路被认为是单向连接。就触发链路重连接或端口shutdown进程。
 在启用UDLD的情况下,交换机将定期地向邻居发送UDLD协议数据包,并且期望在预定计时器到期之前接收到回应的数据包。如果计时器到期,那么交换机将确定该链路是单向链路,并且关闭该端口。
 
配置过程:
默认配置:
参数                 默认值
------------------------------------------
UDLD全局配置         未启动
在光纤上的UDLD         未启动
在铜揽线上的UDLD 未启动
UDLD的aggressive模式 未启动
全局配置:
1) 进入全局模式  configure terminal
2) 启用UDLD
     udld [aggressive|enable|message time 秒数]
      aggressive:启动aggressive模式
      enable:启动通常模式
      message time:消息间隔时间,取值为1-90秒
3) 验证结果
     show udld
switch#show udld
……
Interface Fa0/23
---
Port enable administrative configuration setting: Disabled
Port enable operational state: Disabled
Current bidirectional state: Unknown
Interface Fa0/24
---
Port enable administrative configuration setting: Disabled
Port enable operational state: Disabled
Current bidirectional state: Unknown
   
接口配置:
1) 进入接口模式  interface 接口
2) 配置UDLD
     udld port [aggressive]
       aggressive:设置为aggressive模式,如果不加这个参数就是通常模式
3) 验证结果
     show udld 接口号
案例:
Sw(config)#interface f0/23
Sw(config-if)#udld port aggressive
Sw#show udld f0/23
Interface Fa0/23
---
Port enable administrative configuration setting: Enabled / in aggressive mode
Port enable operational state: Enabled / in aggressive mode
Current bidirectional state: Unknown
Current operational state: Advertisement
Message interval: 7
Time out interval: 5
No neighbor cache information stored
广播和多播抑制
广播数据包具有独特的特征,广播域中的每台设备都将处理广播数据包。如果某个网段中存在过量的广播流量,那么所有的设备都将受到影响。基于上述原因,如果网络中存在广播风暴,最终将导致拥塞,并且会严重降低网络性能的等级。未知多播编址帧将在VLAN中扩散,并且会影响子网中的其余设备。因此,网络应当防止过量多播或广播流量所导致的非正常功能的故障设备或恶意***,这具有非常关键的作用。
为了缓解过量广播的影响,交换机提供了广播抑制的特性。广播抑制监测采取如下两种行动:丢弃过量的流量;或者禁用接收过量的流量的端口。
通过监控在1秒周期内进入端口的流量,这种特性能够正常发挥作用。如果广播流量超过了所配置的阀值,那么交换机就将采取所配置的违规动作。
基于IOS软件的交换机唯一违规行为就是丢弃数据包(对于4500系列交换机还有关闭选项)。
配置过程:
1) 进入全局模式  configure terminal
2) 进入接口模式  interface 接口
3) 配置抑制的类型
     storm-control [broadcast|multicast|unicast] level [阀值 | bps bps值 | pps pps值]
       阀值:取值为0-100,代表是端口带宽的百分比,例如,如果在快速以太网上启用广播抑制的特性,那么10,代表就是10Mbit/s的流量。100表示交换机就将不抑制任何流量。0表示交换机将抑制所有流量。
      Bps:取值为0-10000000000,代表为每秒多少bit,当超过指定的值将会受到抑制。
      Pps:取值为0-10000000000,代表为每秒多少包,当超过指定的值将会受到抑制。
4) 配置抑制的行为
     storm-control action [shutdown|trap]
     shutdown:端口将进入到“err-disable”状态
trap:产生SNMP trap(抑制)消息来通告发生过量流量的情况
5) 验证配置
     show storm-control 接口 [broadcast|multicast|unicast]
案例:
     configure terminal
     interface f0/23
        storm broadcast level 5
        storm multicast level 20
        storm action shutdown
     show storm-control fa0/23
Interface  Filter State   Trap State     Upper    Lower    Current  Traps Sent
---------  -------------  -------------  -------  -------  -------  ----------
Fa0/23     Forwarding     inactive        5.00%    5.00%    0.00%           0
     Show storm-control multicast f0/23
Interface  Filter State   Trap State     Upper    Lower    Current  Traps Sent
---------  -------------  -------------  -------  -------  -------  ----------
Fa0/23     Forwarding     inactive       20.00%   15.00%    0.00%           0
     show running interface f0/23
     Building configuration...
    
Current configuration : 189 bytes
!
interface FastEthernet0/23
   switchport mode trunk
   udld port aggressive
   storm-control broadcast level 5.00
   storm-control multicast level 20.00 15.00
   storm-control action shutdown
end
案例:
CCIE-LAB(v180)
题目要求:
SW1 Fa0/6 will stop forwarding unicast traffic if the input rate exceeds 65Mbps
配置:
SW1
Configure terminal
Interface f0/6
   Storm-control unicast level 65.00
  或 storm-control unicast bps 65000000
保护端口
保护端口不转发第二层的任何数据包(单播、广播、组播)到其它任何保护端口,数据转发必须通过第3层设备来进行。
配置过程:
1) 进入全局模式  configure terminal
2) 进入接口模式  interface 接口
3) 配置保护端口
          switchport proctected
4) 验证结果
       show interface 接口 switchport
switch#show interface f0/2 switchport
Name: Fa0/2
Switchport: Enabled
Administrative Mode: dynamic desirable
Operational Mode: down
Administrative Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: true
Appliance trust: none