一、交换机基础配置(园区网必备)
1.1 VLAN 与端口基础
核心概念:VLAN(虚拟局域网)将一个物理交换机逻辑分割成多个广播域。
bash
# 华为/H3C 风格配置
system-view
vlan batch 10 20 30 # 批量创建VLAN
interface GigabitEthernet0/0/1
port link-type access # 接入端口(连接PC/服务器单网卡)
port default vlan 10 # 划入VLAN10
stp edged-port enable # 边缘端口,加速收敛
interface GigabitEthernet0/0/2
port link-type trunk # 干道端口(交换机互联)
port trunk allow-pass vlan 10 20 30 # 允许通过的VLAN
undo port trunk allow-pass vlan 1 # 安全考虑:禁止VLAN1通过
易错点 :服务器如果只有单网卡且需要访问多个VLAN,交换机端口应配为 Hybrid 或 Trunk,而不是 Access。
1.2 生成树保护(关键!园区网必配)
bash
# 开启BPDU保护(防止私接交换机导致环路)
stp bpdu-protection
# 根桥保护(指定端口上配,防止非法交换机抢占根桥)
interface GigabitEthernet0/0/24
stp root-protection
为什么重要:园区网用户可能私接傻瓜交换机,一旦形成环路,广播风暴会在几秒内瘫痪整个网段。
二、链路聚合核心原理(重点)
2.1 什么是链路聚合?
通俗解释:你有 4 根 1Gbps 的网线,想让他们"拧成一股绳",变成一根逻辑上的 4Gbps 大网线,同时任何一根物理线断了,业务不中断。
技术术语:
- IEEE 802.3ad / LACP(动态协商,推荐)
- 静态聚合 / Eth-Trunk(手动配置,兼容性要求低时用)
2.2 负载均衡机制(为什么能"合成大网线")
链路聚合不是简单的"4根线叠加 = 4倍带宽给单个连接"。关键认知:
| 负载均衡模式 | 原理 | 适用场景 |
|---|---|---|
| 基于源MAC | 不同源MAC走不同链路 | 服务器多虚拟机场景 |
| 基于目的MAC | 不同目的MAC走不同链路 | 下联多台PC场景 |
| 基于源IP | 不同源IP走不同链路 | 服务器集群多IP |
| 基于目的IP | 不同目的IP走不同链路 | 访问不同网段/存储 |
| 基于源目IP+端口(最细粒度) | 五元组哈希 | 推荐! 最均匀 |
重要结论 :单条 TCP 连接不会 被拆分到多条物理链路上传输(避免乱序),但多个连接会分散到不同链路。所以 4×1G 聚合后,单个 FTP 连接还是 1G,但 10 个 FTP 连接总吞吐可达 4G。
bash
# 华为交换机配置负载均衡模式(Eth-Trunk视图)
interface Eth-Trunk 1
load-balance src-dst-ip # 基于源目IP(推荐)
# 可选:src-mac / dst-mac / src-dst-mac / src-ip / dst-ip / src-dst-ip-and-port
三、服务器 Bond 绑定详解(Linux)
3.1 七种 Bond 模式速查
| 模式 | 名称 | 是否需要交换机配置 | 特点 |
|---|---|---|---|
| mode 0 | balance-rr(轮询) | 静态聚合 | 依次发,易乱序,不推荐 |
| mode 1 | active-backup(主备) | 不需要 | 简单高可用,无负载均衡 |
| mode 2 | balance-xor(异或) | 静态聚合 | 基于MAC异或选链路 |
| mode 3 | broadcast(广播) | 静态聚合 | 每包复制到所有链路,浪费 |
| mode 4 | 802.3ad(LACP) | LACP动态聚合 | 企业标准,强烈推荐 |
| mode 5 | balance-tlb | 不需要 | 自适应发送负载均衡 |
| mode 6 | balance-alb | 不需要 | 收发都负载均衡(需交换机支持混杂) |
企业园区网推荐 :Mode 4 (802.3ad/LACP),理由:
- 交换机侧自动协商,配置标准化
- 故障检测自动化(LACP PDU 保活)
- 跨厂商兼容性好
3.2 服务器配置(CentOS/RHEL/Ubuntu)
bash
# 查看网卡名称
ip link show
# 假设:ens160, ens192 为两张物理网卡
# 创建 bond0 配置文件
cat > /etc/sysconfig/network-scripts/ifcfg-bond0 << 'EOF'
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.10.10
PREFIX=24
GATEWAY=192.168.10.1
ONBOOT=yes
BOOTPROTO=static
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=layer3+4"
EOF
# 物理网卡1配置
cat > /etc/sysconfig/network-scripts/ifcfg-ens160 << 'EOF'
DEVICE=ens160
NAME=ens160
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
EOF
# 物理网卡2配置
cat > /etc/sysconfig/network-scripts/ifcfg-ens192 << 'EOF'
DEVICE=ens192
NAME=ens192
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
EOF
# 重启网络
nmcli connection reload
nmcli connection up bond0
参数详解(易错点!):
mode=4:802.3ad LACP 模式miimon=100:每100ms检测一次物理链路状态,如果线路断了立刻切换。必须配!否则拔线后系统不知道。lacp_rate=1:1秒发送一次LACP报文(快速协商),默认是30秒(slow),生产环境一定要改成 fast。xmit_hash_policy=layer3+4:基于源IP+目的IP+源端口+目的端口做哈希选路。这是实现"多连接负载均衡"的关键!默认 layer2(仅MAC)在多VLAN场景下分布不均。
Ubuntu/Debian (netplan):
yaml
# /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
ens160:
dhcp4: no
ens192:
dhcp4: no
bonds:
bond0:
interfaces: [ens160, ens192]
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: fast
transmit-hash-policy: layer3+4
addresses: [192.168.10.10/24]
gateway4: 192.168.10.1
四、交换机侧聚合配置(配合服务器)
4.1 华为/H3C 交换机配置
bash
system-view
# 创建Eth-Trunk接口
interface Eth-Trunk 1
port link-type trunk
port trunk allow-pass vlan 10 20
mode lacp-static # LACP动态聚合(推荐)
max active-linknumber 4 # 最多4条活动链路(可做备份链路)
lacp preempt enable # 开启抢占(高优先级接口恢复后自动切回)
lacp preempt delay 10 # 10秒后抢占
# 将物理接口加入聚合组
interface GigabitEthernet0/0/1
eth-trunk 1
lacp priority 100 # 接口LACP优先级(越小越优先)
interface GigabitEthernet0/0/2
eth-trunk 1
lacp priority 100
# 查看聚合状态(排错必用)
display eth-trunk 1
display lacp statistics eth-trunk 1
display interface Eth-Trunk 1
关键配置逻辑:
- 交换机侧和服务器侧必须同时配 LACP,一边配了一边没配,聚合起不来。
- 两端 VLAN 允许列表必须一致,否则会出现"聚合口UP但部分VLAN不通"。
- 速率/双工必须一致,不能一个千兆一个百兆,不能一个全双工一个半双工。
4.2 思科交换机配置(对比参考)
bash
interface Port-channel 1
switchport mode trunk
switchport trunk allowed vlan 10,20
interface GigabitEthernet1/0/1
switchport mode trunk
channel-group 1 mode active # active = 主动发LACP
interface GigabitEthernet1/0/2
switchport mode trunk
channel-group 1 mode active
五、典型企业场景实战
场景:四网卡服务器接入(高可用+高吞吐)
拓扑:服务器 4×1GE 网卡 → 两台交换机(堆叠/MLAG)→ 核心网
bash
# ========== 服务器侧(Linux)==========
# bond0:业务网,4口聚合,mode4
cat /etc/sysconfig/network-scripts/ifcfg-bond0
# BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=layer3+4"
# 如果要分业务网和管理网:
# bond0:ens160+ens192 → 业务VLAN10
# bond1:ens224+ens256 → 管理VLAN20(或存储网络)
# ========== 交换机侧(华为堆叠)==========
interface Eth-Trunk 10
description Server-Business-Bond
port link-type trunk
port trunk allow-pass vlan 10
mode lacp-static
least active-linknumber 2 # 至少2条链路才UP(防止单链路瓶颈)
max active-linknumber 4
# 跨堆叠成员分配链路(实现交换机级冗余)
interface GigabitEthernet1/0/1 # 成员交换机1
eth-trunk 10
interface GigabitEthernet2/0/1 # 成员交换机2
eth-trunk 10
为什么配 least active-linknumber 2:如果只剩1根线,1G 带宽可能成为瓶颈,不如直接让聚合口 DOWN,触发上层应用切换备用路径。
六、常见易错点与排错(运维必看)
❌ 易错点 1:聚合起来了但速度没提升
原因 :xmit_hash_policy 用了默认的 layer2(仅MAC),或者测试工具是单线程单连接(如单线程 iperf)。
解决 :改成 layer3+4,用多线程 iperf3 测试:iperf3 -c 目标IP -P 10(10个并行流)。
❌ 易错点 2:拔一根线业务中断几秒
原因 :没配 miimon,或者配了但值太大(如 miimon=1000 表示1秒检测一次)。
解决 :miimon=100(100ms),同时交换机侧配 lacp preempt enable。
❌ 易错点 3:聚合口状态 UP,但部分 VLAN 不通
原因 :Eth-Trunk 接口和成员物理接口的 VLAN 允许列表不一致。华为要求物理口加入 Eth-Trunk 后,VLAN 配置只能在 Eth-Trunk 逻辑口上配,但有时候物理口残留旧配置。
解决:
bash
display current-configuration interface GigabitEthernet0/0/1
# 确保物理口没有 port default vlan / port trunk allow-pass 等配置
❌ 易错点 4:LACP 协商失败,聚合口 DOWN
排查命令:
bash
# 服务器侧
cat /proc/net/bonding/bond0 # 看 bond 状态、LACP 伙伴信息
ethtool ens160 # 看物理层是否 UP
# 交换机侧
display eth-trunk 1 # 看 Selected/Unselected 状态
display lacp statistics eth-trunk 1 # 看 LACP 报文收发计数
❌ 易错点 5:跨交换机聚合(服务器两线分别接两台交换机)
坑 :普通聚合要求所有链路接同一台交换机。如果接两台独立交换机,需要:
- 华为:交换机堆叠(iStack)或 M-LAG
- H3C:IRF 堆叠
- 思科:vPC(Virtual PortChannel)
否则服务器侧 bond 起不来,因为 LACP 检测到两个不同的 System ID。
七、总结速查表
| 组件 | 关键配置 | 作用 |
|---|---|---|
| 服务器 bond | mode=4 + xmit_hash_policy=layer3+4 |
LACP 动态聚合 + 五元组负载均衡 |
| 服务器检测 | miimon=100 |
100ms链路故障检测 |
| 服务器协商 | lacp_rate=1 |
快速 LACP(1秒) |
| 交换机聚合 | mode lacp-static |
与服务器 LACP 匹配 |
| 交换机负载 | load-balance src-dst-ip |
与服务器哈希策略对齐 |
| 高可用增强 | least active-linknumber |
防止单链路降级运行 |
核心口诀 :两端 LACP 要对上,哈希策略要一致,VLAN 列表要对齐,miimon 别忘记。