1 、冗余网络的问题
1 )广播风暴
2 MAC 表震荡
3 )多帧复制
2 STP 802.1d
    通过 BPDU 协议帧发现物理上有环路的拓扑,能够生成一个逻辑上没有环路的拓扑
1 )接口选好端口类型( DP RP
2 )只有发生变化的链路和 block 口,状态才变化
3 F 口变化的交换发出 TCN
3 STP 操作流程 ----> 破环
1 STP 破环顺序
1 )选举根网桥
2 )选举 RP
3 )选举 DP
4 )其它的就 blcok
2 STP 破环依据
1 lowest BID =Priority*mac
2 lowest root path cost ( 当前 SW root cost 累加, cost 是在接收到 BPDU 帧时累加)      root--------sw:f0/0   (f0/0 处累加 )
3 lowest sender bid
4 lowest sender portid (port priority*port 编号 )
5 lowest portid ( 自己 )
3 STP 破环结果
1 )每个交换网络有一个 ROOT
2 )每个非 ROOT 选举一个 RP (离根最近)
3 )每个网段( segment )选举一个 DP (这个网段离根最近 port
4 )根网桥上的所有端口为 dp
4 )实验
sw8#sh cdp nei
sw8(config)#spanning-tree vlan 1  启用 STP
sw8(config)#spanning-tree vlan 1 priority 0  设置根网桥
sw8(config)#spanning-tree vlan 1 root primary 设置根网桥 -8k
SW14(config)#spanning-tree vlan 1 root secondary 设置根网桥 -4k
SW14(config-if)#spanning-tree vlan 1 cost 39 在入口方向修改
SW14(config-if)#spanning-tree vlan 1 port-priority ?
 <0-240> port priority in increments of 16 表示必须是 16 的倍数
4 BPDU
1 )有二种:配置 BPDU TCN
2 )结构
Protocol Identifier: Spanning Tree Protocol (0x0000)
Protocol Version Identifier: Spanning Tree (0)
BPDU Type: Configuration (0x00) 还有一种 TCN
BPDU flags: 0x00 有二种: TC TCA (第一位和最后一位)
Root Identifier: 32768 / 00:04:c1:6c:e4:80
Root Path Cost: 19
Bridge Identifier: 32769 / 00:0f:24:b5:a1:00  发送者
Port identifier: 0x800b
Message Age: 1 每经过一个交换机 age+1
Max Age: 20   接收 BPDU 帧的老化时间
Hello Time: 2
Forward Delay: 15  有二个 listen learning
3) 收敛时间
(1) link up-- ----- -->blcok---->listening--15sec->learning--15-->forwarding
收发 BPDU        / 不发                                      
学习 MAC                    不能                              
收发数据                     不能              不能               
listening: 构建一个没有环路的拓扑
learning : 学习 MAC
(2) 稳定后变化收敛
发送 TCN F-> 变化) ---> 上游回 TCA--->root TC 置位配置 BPDU----> 通告其它 SW 尽快 刷新 MAC 300->15
5 )注意
    Forwarding 接口有变化的链路才开始发 TCN 包给 root
5 Cisco 一些快速收敛机制
1)portfast
作用:连接终端 PC 可以从 up 马上跳到 forwarding
节省: 30sec
配置: 连接终端 PC 的交换机上
sw8#debug spanning-tree events
00:55:23: STP: VLAN0001 Fa0/24 -> listening
00:55:38: STP: VLAN0001 Fa0/24 -> learning
00:55:53: STP: VLAN0001 Fa0/24 -> forwarding
sw8(config-if)#int f0/24
sw8(config-if)#spanning-tree portfast
00:57:31: STP: VLAN0001 Fa0/24 -> jump to forwarding from blocking
sw8(config)#spanning-tree portfast default
sw8(config-if-range)#spanning-tree portfast disable
2)uplinkfast
作用:直接链路失效,马上会切到备份链路上
优先级 +16k cost+3000
节省: 30sec
配置: 接入层交换机
sw15(config)#spanning-tree uplinkfast                     
01:03:21: setting bridge id (which=1) prio 49153 prio cfg 49152 sysid 1 (on) id
C001.0012.5552.9b40
sw15#sh spanning-tree uplinkfast
sw15(config)#spanning-tree uplinkfast max-update-rate
刷新新链路对面交换机的 MAC
ping 测试
...
没有配置 uplinkfast
...............
3)backbonefast
作用:间接链路失效检测 block 口收到 root bpdu ,往 rp rlq--->root 响应 ---> 收到响应就把
blcok 转到 listen
节省: 20sec
配置: (所有都需要)
sw8(config)#spanning-tree backbonefast
sw15(config)#spanning-tree backbonefast
sw15(config)#spanning-tree backbonefast
................
6 RSTP 802.1W
1) 端口状态及角色
discarding(block+listening)----> learning---->forwarding
RP DP alternative port backup port edge port=portfast
2) 数据结构变化
flag 位全用上
proposal agreement 收敛快的原因
状态: learning forwarding
角色: 4
3)RSTP 收敛快的原因
1 )主动 P/A 协商 :先发 proposal----> 同步其它 port--->agreemnet  逐层同步
2 )网络发生变化 ,TCN 会往 RP/DP
3 CAM 刷新 收到 TCN 刷新 MAC
4 )每个 SW 都可以发送 BPDU keepalive
4) 配置 RSTP
sw8(config)#spanning-tree mode rapid-pvst
 
7 mstp   多实例生成树
pvst :每个 vlan 一个生成树实例 可以做 load-balance 但是协议数据太多
cst :所有 vlan 一个生成树实例   不可以做 load-balance
mst x vlan 一个生成树实例 后台收敛是采用 rstp 可以 load-balance ,又尽可能减少协议数据
 
stp :传统的收敛
RSTP :快速收敛
2 MST 实现
名字
修订号
vlan 绑定表
---------> 三个参数完全相同才是同一个区域
SW4(config)#spanning-tree mst configuration
SW4(config-mst)#name chuyue100
SW4(config-mst)#revision 1
SW4(config-mst)#instance 1 vlan 1-2
SW4(config-mst)#instance 2 vlan 3-4
SW4(config)#spanning-tree mode mst   // 启用 MST
SW4(config-if)#spanning-tree mst 2 ?
 cost          修改开销(入口)
 port-priority 发送方修改
SW4(config)#spanning-tree mst 1 root primary
3 MST 和其它 STP 的兼容性
mst0=IST
MST 域与 PVST 交互时是使用 MST0 ,可以把整个 MST 域看作一台交换机
8 、以太通道
1 )优点
load-balance
redundency
2 )形成 channel 的方法
手工设置:
动态协商
SW3(config-if-range)#channel-group 1 mode ?
 active     LACP 主动发包
 auto       PAgP 被动响应 //cisco 私有
 desirable   PAgP 主动发包
 on         手工设置
 passive    lacp 被动响应
SW4#sh etherchannel summary
SW3(config-if-range)#channel-group 1 mode active
SW4(config-if-range)#channel-group 3 mode passive
3)etherchanmel 类型
二层 channel
三层 channel
SW3(config)#int range f0/46 ,f0/48 (华为的需要连续接口)
SW3(config-if-range)#no sw  (要先先变成三层口,捆绑口变的话会无效)
SW4(config-if-range)#channel-group 1 mode auto
SW3(config)#int port-channel 1
SW3(config-if)#ip add 1.1.1.3 255.255.255.0
4) 注意点
1 )双工速率
2 )不可以是 span 目标端口
5)load-balance 方法
SW3#sh etherchannel load-balance
Source MAC address
SW3(config)#port-channel load-balance ?3550
 dst-mac Dst Mac Addr
 src-mac Src Mac Addr
SW4(config)#port-channel load-balance ? 3560
 dst-ip       Dst IP Addr
 dst-mac      Dst Mac Addr
 src-dst-ip   Src XOR Dst IP Addr
 src-dst-mac Src XOR Dst Mac Addr
 src-ip       Src IP Addr
 src-mac      Src Mac Addr
9 STP 安全相关
1)bpduguard
作用 防止接收到 BPDU 如果收到马上将端口置于 err-disable=down 应用于连接 PC 的端口
配置 SW4(config-if)#spanning-tree bpduguard enable
sw4#sh int f0/22
FastEthernet0/22 is down, line protocol is down (err-disabled)
恢复 shut-no sh
sw4(config)#errdisable recovery cause bpduguard
sw4(config)#errdisable recovery interval 30
sw4#sh errdisable
sw4(config)#spanning-tree portfast bpduguard default 全局启用
2)bpdufilter 优先于 bpduguard
作用 防止接收到 BPDU 如果收到就 drop
配置 sw4(config-if)#spanning-tree bpdufilter enable
3)rootguard
作用 防止别的 SW 成为根 如果收到更优的 BPDU 就会将端口置为 broken
但是如果又没收到更优的 BPDU ,又会恢复
配置 sw4(config-if)#spanning-tree guard root
4)loopguard
作用:防止单向通
配置:所有链路配置 ,RP AP 端口
sw4(config-if)#spanning-tree guard loop
5)udld  // 光纤
作用:防止单向通
配置: SW3(config)#udld enable udld enable
应用: loopguard 针对的是软件问题, udld 一般针对的是硬件问题