4. 数据平面安全基础

控制平面加固解决的是“谁能登录、谁能改配置”的问题,而数据平面安全解决的是“帧在交换机内部和链路上如何被隔离、限制与保护”的问题。在 Nexus 上,这两者必须同时成立:即使管理面被严格限制,如果同一 VLAN 内的终端可以随意互访、某个端口被 MAC 泛洪打满、广播风暴占满上行带宽,业务仍然会失效。本节围绕五种互补机制展开:VLAN 隔离、私有 VLAN(PVLAN)、端口安全、风暴控制与 MACsec,并给出可验证的部署方法。

一、VLAN 隔离:最基础的广播域边界

VLAN 的本质是把一个物理交换网络切成多个逻辑广播域。同一 VLAN 内的主机处于同一二层域,可直接通过 MAC 寻址通信;不同 VLAN 之间必须经过三层设备(SVI、路由端口或外部路由器)转发,从而获得策略控制点。在 Nexus 上创建 VLAN 并划分端口的基本操作如下:

Nexus(config)# vlan 10,20
Nexus(config-vlan)# name FINANCE
Nexus(config)# interface Ethernet1/1
Nexus(config-if)# switchport mode access
Nexus(config-if)# switchport access vlan 10
Nexus(config-if)# no shutdown

验证时不要只看配置,要看实际生效状态:show vlan brief 确认端口归属,show interface Ethernet1/1 switchport 确认 mode 与 access vlan,show mac address-table vlan 10 确认学习到的 MAC 是否落在预期 VLAN。若端口被错误地配成 trunk,或 native VLAN 未显式指定,就可能出现 VLAN 跳跃与跨域泄漏。因此建议所有 trunk 显式设置 switchport trunk native vlan 999(未使用 VLAN),并只允许必要 VLAN 通过:switchport trunk allowed vlan 10,20。

二、私有 VLAN:同一 VLAN 内的精细隔离

VLAN 隔离解决的是“不同 VLAN 之间”,但同一 VLAN 内的主机默认可以互访。PVLAN 在同一主 VLAN 内再划分二层隔离关系,适合服务器群、DMZ、酒店/宿舍等场景。PVLAN 有三种端口角色:

  • Promiscuous(混杂):可与其他所有端口通信,通常连接网关或上行路由器。
  • Isolated(隔离):只能与 promiscuous 端口通信,隔离端口之间完全不能互通。
  • Community(团体):同一 community 内可互通,跨 community 不能互通,但都能与 promiscuous 通信。

Nexus 上 PVLAN 通过主 VLAN 与辅助 VLAN 组合实现:

Nexus(config)# vlan 100
Nexus(config-vlan)# private-vlan primary
Nexus(config-vlan)# private-vlan association 101,102
Nexus(config)# vlan 101
Nexus(config-vlan)# private-vlan isolated
Nexus(config)# vlan 102
Nexus(config-vlan)# private-vlan community
Nexus(config)# interface Ethernet1/5
Nexus(config-if)# switchport mode private-vlan host
Nexus(config-if)# switchport private-vlan host-association 100 101

验证要点:show vlan private-vlan 查看主/辅助 VLAN 关联,show interface Ethernet1/5 switchport 确认 host-association。测试时用两台隔离端口主机互 ping,应不通;各自 ping 网关应通。若不通,先检查主 VLAN 的 SVI 是否配置了 private-vlan mapping,否则网关无法与隔离端口通信。

三、端口安全:限制 MAC 数量与行为

端口安全用于防止 MAC 泛洪、私接交换机或未授权终端。核心参数是最大 MAC 数、违规动作与老化时间。Nexus 支持 switchport port-security:

Nexus(config-if)# switchport port-security
Nexus(config-if)# switchport port-security maximum 2
Nexus(config-if)# switchport port-security violation restrict
Nexus(config-if)# switchport port-security aging time 30

违规动作有三种:protect 静默丢弃超额帧;restrict 丢弃并产生日志/计数器;shutdown 直接 err-disable 端口。生产环境常用 restrict 以便观察,关键端口可用 shutdown。验证命令:show port-security interface Ethernet1/1 查看当前 MAC 数、违规计数与状态;show port-security address 查看安全 MAC 表。若端口进入 err-disable,用 show interface status err-disabled 定位,再 shutdown/no shutdown 恢复。

四、风暴控制:给广播/组播/未知单播设上限

风暴控制通过流量阈值限制进入端口的广播、组播和未知单播帧,防止环路或攻击占满带宽。Nexus 使用带宽百分比或 pps 阈值:

Nexus(config-if)# storm-control broadcast level 5
Nexus(config-if)# storm-control multicast level 5
Nexus(config-if)# storm-control unicast level 5
Nexus(config-if)# storm-control action trap

阈值应结合端口速率与业务基线设定。例如 1G 接入端口上,5% 约等于 50 Mbps 广播,通常足够正常 ARP/DHCP,又能抑制风暴。验证:show interface Ethernet1/1 counters storm-control 查看各类型丢弃计数;show storm-control 查看全局阈值。若计数持续增长,说明阈值过低或确有异常流量,应结合 show mac address-table 与端口流量定位源。

五、MACsec:链路级加密与完整性保护

MACsec(802.1AE)在以太网链路上对帧进行加密与完整性校验,防止链路窃听与篡改,常用于交换机之间或交换机到服务器的点对点链路。Nexus 上通过 MKA(MACsec Key Agreement)协商密钥:

Nexus(config)# key chain MKA-KC
Nexus(config-keychain)# key 01
Nexus(config-keychain-key)# cryptographic-algorithm aes-256-cm
Nexus(config-keychain-key)# key-string 7 MySecretKey
Nexus(config)# interface Ethernet1/10
Nexus(config-if)# macsec
Nexus(config-if)# mka key-chain MKA-KC
Nexus(config-if)# mka policy MKA-POL

验证:show macsec interface Ethernet1/10 查看链路状态、密钥与加密计数;show mka sessions 确认 MKA 会话建立。若状态为 down,检查两端 key-chain 名称、密钥与算法是否一致,以及接口是否均为点对点、速率匹配。

数据平面安全五层防护与验证点 VLAN 隔离 广播域边界 对象:access 端口 / trunk 允许列表 / native VLAN 操作:switchport access vlan 10;trunk allowed vlan 10,20;native vlan 999 验证:show vlan brief / show interface switchport / show mac address-table vlan 10 私有 VLAN 同 VLAN 内隔离 角色:Promiscuous(网关)/ Isolated(互不通)/ Community(组内通) 操作:primary 100 + association 101,102;host-association 100 101 验证:show vlan private-vlan / 隔离口互 ping 不通、ping 网关通 端口安全 MAC 数量与行为 参数:maximum 2;violation protect / restrict / shutdown;aging time 30 作用:防 MAC 泛洪、私接交换机、未授权终端 验证:show port-security interface / show port-security address 风暴控制 广播/组播/未知单播限速 参数:broadcast / multicast / unicast level 5(约 50 Mbps @1G) 动作:action trap(记录)或 shutdown(阻断) 验证:show interface counters storm-control / show storm-control MACsec 链路加密与完整性 机制:802.1AE + MKA 密钥协商;key-chain + mka policy 适用:交换机互联、交换机到服务器点对点链路 验证:show macsec interface / show mka sessions

六、组合部署与验证闭环

五种机制并非孤立:接入端口通常同时启用 VLAN 划分、端口安全与风暴控制;服务器区可能叠加 PVLAN;上行链路则用 MACsec 保护。建议按以下顺序验证,形成闭环:

  1. 先确认 VLAN 与 trunk 允许列表正确,避免隔离被错误放通。
  2. 再验证 PVLAN 隔离关系,确保同 VLAN 内该不通的不通、该通的通。
  3. 然后检查端口安全计数与 err-disable 状态,确认无异常 MAC 学习。
  4. 查看风暴控制丢弃计数,判断阈值是否合理。
  5. 最后确认 MACsec 会话 up、加密计数增长,链路无明文泄漏。
建议把上述验证命令整理成一份接入端口上线检查表:VLAN 归属、trunk 允许列表、native VLAN、port-security 状态、storm-control 计数、MACsec 会话状态六项全部通过后,再放行业务。任何一项异常都应先定位再恢复,而不是直接重启端口。

需要强调的是,数据平面安全的目标不是“全部打开”,而是“按业务需要精确放通”。VLAN 与 PVLAN 决定可达范围,端口安全与风暴控制限制异常行为,MACsec 保护链路机密性与完整性。只有把配置、状态与计数器三者结合观察,才能确认安全策略真正生效,而不是停留在配置文件中。