HCIA-华为数通基础理论与实践06
本文档聚焦于协议原理、报文结构、底层逻辑及工程选型思维。
目录
一、VLAN 深度解析
1.1 802.1Q 标签的深层含义
VLAN的核心是帧标记。交换机通过识别Tag来控制转发。
-
EthType/TPID:值为0x8100。这是区分标准以太网帧和802.1Q帧的关键。如果网卡不支持802.1Q,收到此类帧会直接丢弃。
-
PRI (802.1p):3比特,定义8个优先级(0-7)。
-
硬件队列映射:交换机内部通常有多个发送队列(Queue)。PRI值决定了数据帧进入哪个队列。高优先级队列享有“空口优先”权(PQ调度),这是实现VoIP语音零丢包的关键。
-
DEI (原CFI):1比特,原为兼容令牌环,现用作丢弃 eligible indicator。在拥塞时,标记为1的帧会被优先丢弃(类似IP报文中的ECN)。
-
VID:12比特,理论支持4096个VLAN,其中0和4095保留,可用范围1-4094。
1.2 链路类型本质
-
Access链路:用于连接终端设备(PC/Server)。收发规则:发出时剥离Tag,接收时打上PVID(Port Default VLAN ID)。
-
Trunk链路:用于交换机互联。收发规则:发送时,若VID等于PVID则剥离,否则保留Tag;接收时,若带Tag则检查允许列表,无Tag则打上PVID。
-
Hybrid链路(华为特性):比Trunk更灵活,允许对多个VLAN的帧在出方向分别配置是否剥离Tag。常用于连接IP电话(Voice VLAN)或特定的服务器集群。
1.3 VLAN 的局限性
-
单播泛洪:如果交换机的MAC地址表满了(CAM表溢出),或者目的MAC未知,交换机依然会在VLAN内泛洪单播帧。
-
控制平面攻击:攻击者可以通过发送大量伪造源MAC的数据包填满MAC表,导致正常的单播流量被迫泛洪,从而被窃听。
二、生成树协议
(STP/RSTP/MSTP)底层逻辑
2.1 BPDU(网桥协议数据单元)
交换机之间的“谈判”语言。
-
Protocol ID:固定为0。
-
Version:STP为0,RSTP为2,MSTP为3。
-
BPDU Type:
-
0x00:Configuration BPDU(配置BPDU,用于选举和维护拓扑)。
-
0x80:TCN BPDU(拓扑变更通知,用于通知根桥发生了变化)。
-
Flags(RSTP/MSTP关键):
-
TCA (Topology Change Acknowledgment):确认收到TCN。
-
TC (Topology Change):通知全网刷新MAC表。
-
Proposal/Agreement (P/A机制):RSTP快速收敛的核心,用于同步邻接状态。
-
Root ID / RPC / Bridge ID / Port ID:构成了BPDU的核心计算字段,用于在全网传递“我是谁、我的老板是谁、我离老板多远”。
2.2 STP 的先天缺陷
被动等待计时器:Listening和Learning状态的15秒等待是固定的,即使网络环境稳定也必须等待,无法主动跳过。
MAC地址表老化机制低效:依赖TCN报文触发全网MAC表老化时间从300秒改为15秒。这意味着在拓扑变化后的15秒内,依然可能存在转发黑洞或泛洪。
端口角色单一:只有RP、DP和BP(阻塞端口),没有明确谁是备份,故障切换时必须重新计算。
2.3 RSTP 的快速收敛原理(重点)
RSTP之所以快,是因为引入了同步机制(Sync)和边缘端口(Edge Port)。
- P/A机制(Proposal/Agreement):
当两个RSTP交换机互联时,它们会通过BPDU握手。
上游交换机发送Proposal(提议)报文,下游交换机收到后,先将非边缘端口同步(阻塞),然后回复Agreement(同意)。
结果:上游端口立刻进入Forwarding状态,无需等待30秒。
-
边缘端口(EP):连接PC的端口。管理员将其配置为边缘端口后,端口通电即转发(类似PortFast),不参与生成树计算,且不触发拓扑变更。
-
根端口快速切换:Alternate Port时刻监听BPDU,一旦根端口失效,Alternate Port立即接管,无需重新选举。
2.4 MSTP 的多实例逻辑(核心考点)
MSTP不是简单的多个RSTP,而是一个大的RSTP框架下包含多个独立的树。
IST (Internal Spanning Tree):实例0,是所有VLAN共有的树,负责交换BPDU和管理信息。
MSTI (MST Instance):用户自定义的实例(1-4094)。每个MSTI独立计算生成树。
VLAN映射表:将VLAN ID映射到MSTI。例如:instance 1 vlan 10, 20;instance 2 vlan 30, 40。
Region (域):域名、修订级别、VLAN映射表完全一致的一组交换机组成一个MST域。不同域之间只交互CST(公共生成树),域内交互IST/MSTI。
负载分担实现:通过修改不同实例的根桥优先级,使得Instance 1的根桥在Switch A,Instance 2的根桥在Switch B。这样,通往A的链路转发VLAN 10/20,通往B的链路转发VLAN 30/40,带宽利用率最大化。
2.5 Smart Link 与 Monitor Link
-
Smart Link:华为私有。一对接口(主+备)绑定为一个Smart Link组。主接口转发,备接口阻塞。主接口故障,备接口毫秒级切换。缺点:无法检测上行链路故障(除非配合Monitor Link)。
-
Monitor Link:通常配合Smart Link使用。上行接口监控下行接口。一旦上行链路断开,强制关闭下行接口,触发下游设备的切换机制。
三、二层网络的高级故障与防御
3.1 环路不仅仅是广播风暴
CPU过载:环路不仅占用带宽,大量的BPDU和ARP报文会上送交换机CPU处理,导致CPU利用率100%,交换机死机。
CAM表抖动(MAC Flapping):这是最隐蔽的故障。交换机端口1看到MAC A,下一秒端口2又看到MAC A。交换机会不断更新CAM表,导致转发路径不稳定,表现为网络时通时断。
3.2 防环技术的补充(非生成树)
-
LBDT (Loopback Detection):环路检测。交换机从某端口发出检测报文,如果能从自身其他端口收到,判定为环路,直接Error-Down该端口。适合接入层。
-
SEP (Smart Ethernet Protection):华为私有,用于环形组网,收敛速度快于STP,常用于工业网络。
-
RRPP (Rapid Ring Protection Protocol):华为私有,专用于以太网环网,主节点控制环路的通断,收敛速度极快。
四、重难点解析
- 为什么二层需要STP,三层不需要?
答:二层帧头没有TTL字段,数据帧无法自我终结,会无限循环。三层IP包头有TTL,每过一跳减1,减到0时丢弃,天然防环。
- RSTP一定比STP好吗?
答:在纯点对点链路上,RSTP收敛极快。但在Hub(集线器)环境下,RSTP会退化为STP模式(因为Hub无法参与P/A协商)。此外,RSTP不支持负载分担,带宽利用率不如MSTP。
- MSTP中,VLAN 10的数据为什么会从Blocked端口发出?
答:不可能。如果端口在某个MST Instance中被阻塞,那么该Instance对应的VLAN流量绝不会从该端口发出。如果看到流量从该口出,说明该VLAN可能被映射到了另一个处于Forwarding状态的Instance中。
- 根桥抢占的风险?
答:根桥不稳定会导致全网频繁重构生成树,网络震荡。因此,工程上通常手动指定核心交换机为根桥(priority 0或4096),并将次优核心设为备份根桥(priority 8192),禁止自动选举。
- 为什么不建议在服务器端口运行STP?
答:服务器网卡通常不支持STP协议,收到BPDU可能会丢弃或产生日志告警。且STP的阻塞/转发状态变化可能导致服务器网络闪断。服务器端口应配置为边缘端口(Edge Port)并开启BPDU保护(BPDU Protection),一旦收到BPDU直接关闭端口,防止误接交换机造成环路。
五、小结
-
VLAN:二层隔离手段。靠802.1Q标签(12位VID)区分流量;PRI字段决定转发优先级(QoS)。
-
STP:防环祖师爷。慢(30-50秒),靠阻塞端口破环。核心是桥ID选举(优先级+MAC)。
-
RSTP:STP升级版。快(2-4秒),靠P/A机制和预备端口实现毫秒级切换。
-
MSTP:终极方案。支持多实例负载分担。将VLAN映射到不同实例,让不同链路各干各活,解决带宽浪费。
-
底层逻辑:二层无TTL,必须靠协议防环;根桥务必手动指定,避免网络震荡。
-
排错关键:广播风暴耗带宽,MAC漂移乱转发。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)