前置知识: 计算机基础

交换与路由技术

5 min中级

交换与路由技术:VLAN、STP、链路聚合、静态路由、动态路由与策略路由

知识点地图

  • 知识类别:交换与路由核心技术——VLAN、生成树、链路聚合(交换层)与静态路由、OSPF、BGP、策略路由(路由层)。VLAN 的专题细节与完整实验在 165 篇,BGP 的深水在 300 篇。
  • 解决什么问题:多交换机组网如何隔离广播域、有环网络如何不广播风暴、如何把多条链路捆成一条、路由器之间如何自动学习路径。
  • 什么时候用到:园区网/数据中心组网;排障时判断「二层通不通、路由对不对」;设备选型与配置下发。

1. VLAN 技术

1.1 VLAN 原理

VLAN(Virtual LAN)将物理网络划分为多个逻辑广播域:

  • 基于端口:将端口分配到 VLAN
  • 基于 MAC:根据 MAC 地址分配
  • 基于协议:根据协议类型分配

802.1Q 标签:

目的MAC

源MAC

TPID 8100

TCI VLAN ID

目的MAC

源MAC

TPID 8100

TCI VLAN ID

mermaid diagram

4 字节标签:TPID(0x8100) + PCP(3bit) + DEI(1bit) + VID(12bit, 0~4095)

1.2 Trunk 链路

在交换机间传输多个 VLAN 的流量:

bash
# Cisco 配置
interface GigabitEthernet0/1
  switchport mode trunk
  switchport trunk allowed vlan 10,20,30

# Huawei 配置
interface GigabitEthernet0/0/1
  port link-type trunk
  port trunk allow-pass vlan 10 20 30

1.3 VLAN 间路由

方式设备优缺点
单臂路由路由器子接口带宽瓶颈
三层交换三层交换机高性能
SVI交换机虚拟接口最常用

2. 生成树协议(STP)

2.1 STP 原理

防止二层环路,通过阻塞冗余链路实现:

  1. 选举根桥(Bridge ID 最小)
  2. 每个非根桥选举根端口(到根桥路径开销最小)
  3. 每个网段选举指定端口
  4. 阻塞非根端口和非指定端口

BPDU:Bridge Protocol Data Unit,交换机间交换的信息。

2.2 STP 端口状态

状态接收BPDU发送BPDU转发数据学习MAC
Blocking是否否否
Listening是是否否
Learning是是否是
Forwarding是是是是

收敛时间:Blocking → Listening(15s) → Learning(15s) → Forwarding = 50秒

2.3 RSTP(802.1w)

快速生成树协议,改进收敛时间:

端口角色说明
根端口到根桥最优路径
指定端口网段上转发数据的端口
替代端口根端口的备份
备份端口指定端口的备份

收敛时间:1~3秒

2.4 MSTP(802.1s)

多生成树协议,支持多个 VLAN 映射到不同生成树实例:

bash
stp region-configuration
  region-name RG1
  instance 1 vlan 10 20
  instance 2 vlan 30 40
  active region-configuration

3. 链路聚合

3.1 LACP(802.3ad)

链路聚合控制协议,动态协商聚合链路:

bash
# Cisco
interface Port-channel1
  switchport mode trunk
interface range GigabitEthernet0/1-2
  channel-group 1 mode active

# Huawei
interface Eth-Trunk1
  port link-type trunk
interface GigabitEthernet0/0/1
  eth-trunk 1
interface GigabitEthernet0/0/2
  eth-trunk 1

3.2 负载均衡

方式说明
src-mac源MAC哈希
dst-mac目的MAC哈希
src-dst-mac源+目的MAC哈希
src-ip源IP哈希
dst-ip目的IP哈希
src-dst-ip源+目的IP哈希

4. 静态路由

4.1 配置

bash
# Cisco
ip route 10.0.0.0 255.255.255.0 192.168.1.1
ip route 0.0.0.0 0.0.0.0 192.168.1.1    # 默认路由

# Huawei
ip route-static 10.0.0.0 255.255.255.0 192.168.1.1
ip route-static 0.0.0.0 0.0.0.0 192.168.1.1

# Linux
ip route add 10.0.0.0/24 via 192.168.1.1
ip route add default via 192.168.1.1

4.2 路由优先级

  1. 最长前缀匹配
  2. 管理距离(AD)最小
  3. 度量值最小
路由来源Cisco ADHuawei 优先级
直连00
静态160
OSPF11010
RIP120100
BGP20/200255

5. OSPF 路由协议

5.1 OSPF 基础

  • 链路状态协议
  • 使用 Dijkstra 最短路径算法
  • 区域化设计
  • 快速收敛

5.2 OSPF 区域

区域类型说明
骨干区域(Area 0)必须存在,连接所有区域
普通区域标准区域
末梢区域(Stub)不接收外部路由
NSSA允许引入少量外部路由
Totally Stub仅接收默认路由

5.3 OSPF 配置

bash
# Cisco
router ospf 1
  router-id 1.1.1.1
  network 10.0.0.0 0.0.0.255 area 0
  network 10.0.1.0 0.0.0.255 area 1

# Huawei
ospf 1 router-id 1.1.1.1
  area 0
    network 10.0.0.0 0.0.0.255
  area 1
    network 10.0.1.0 0.0.0.255

5.4 OSPF LSA 类型

类型名称产生者传播范围
1Router LSA每个路由器区域内
2Network LSADR区域内
3Summary LSAABR区域间
4ASBR SummaryABR区域间
5External LSAASBR全AS
7NSSA ExternalNSSA ASBRNSSA内

6. BGP 路由协议

6.1 BGP 基础

  • 路径向量协议
  • 自治系统间路由
  • 基于策略的路由选择
  • TCP 179 端口

6.2 BGP 选路属性

按优先级排序:

  1. Weight(Cisco 私有)
  2. Local Preference
  3. 本地起源
  4. AS Path 最短
  5. Origin(IGP < EGP < Incomplete)
  6. MED
  7. eBGP > iBGP
  8. IGP 度量最小
  9. 最长连接时间
  10. 最小 Router ID

6.3 BGP 配置

bash
router bgp 65001
  bgp router-id 1.1.1.1
  neighbor 10.0.0.2 remote-as 65002
  neighbor 10.0.0.2 description ISP-A
  network 192.168.0.0 mask 255.255.0.0
  !
  address-family ipv4
    neighbor 10.0.0.2 activate
    neighbor 10.0.0.2 route-map SET-LOCAL-PREF in
  !
route-map SET-LOCAL-PREF permit 10
  set local-preference 200

7. 策略路由

7.1 PBR 配置

bash
# 基于源IP的策略路由
access-list 10 permit 192.168.1.0 0.0.0.255
route-map PBR permit 10
  match ip address 10
  set ip next-hop 10.0.0.1

interface GigabitEthernet0/0
  ip policy route-map PBR

7.2 应用场景

  • 多出口链路负载分担
  • 特定流量走专线
  • 流量清洗引流

动手实践

练习 1(STP 观察与根桥控制):在模拟器(eNSP/HCL,见 035 篇)连三台交换机成环,display stp(华为)或 show spanning-tree(Cisco)观察根桥选举;把性能最好的一台配置为根桥(stp root primary),再观察端口角色变化。

提示:根桥所有端口都是指定端口(转发),非根桥上到根桥方向的口是根端口。

练习 2(链路聚合带宽验证):两台交换机之间捆两条链路做 Eth-Trunk,单条链路打流测带宽,再启用第二条对比;拔掉一条观察业务不中断。

提示:两端负载均衡模式要一致;成员口速率/双工必须相同。

练习 3(OSPF 邻居排错):故意把两台 OSPF 路由器的一端 area 配错(area 1 vs area 0),display ospf peer 观察 neighbor 卡在什么状态;再故意改 MTU 不一致,观察卡 Exstart/Exchange 的现象。

提示:邻居起不来的排查清单:hello/dead 定时器、area 号、认证、网段掩码、MTU。

参考实现(先自己动手,再看这里)
text
练习 1(华为 eNSP 语法):
  [SW1] display stp          # 记下当前根桥 MAC
  [SW-CORE] stp priority 0   # 或 stp root primary
  [SW1] display stp brief    # 端口角色/状态刷新

练习 2:
  [SW1] interface Eth-Trunk 1
  [SW1-Eth-Trunk1] mode lacp-static
  [SW1-Eth-Trunk1] trunkport GigabitEthernet0/0/1 to 0/0/2
  [SW1] display eth-trunk 1   # 两个成员口都 Selected 才算捆绑成功

练习 3:
  RT-A: ospf 1 → area 0 → network 10.1.1.0 0.0.0.255
  RT-B: ospf 1 → area 1 → network 10.1.1.0 0.0.0.255   # area 不一致
  [RT-A] display ospf peer    # 无 FULL 邻居
  # 修正为同 area 后邻居进入 Full;再实验 MTU 不一致时
  # 邻居卡在 Exstart/Exchange,display ospf interface 可见双方 MTU