2. 英伟达IB交换机安全特性:Mellanox交换机安全功能概览、端口安全与MAC绑定、风暴控制与速率限制
各位好,咱们接着聊IB网络的安全。上一章我们把IB网络的安全威胁和整体架构梳理了一遍。这一章,咱们把目光聚焦到最前线——交换机本身。
说实话,Mellanox的IB交换机,尤其是现在的Quantum和Spectrum系列,安全功能已经相当丰富了。但很多朋友买回来,默认配置一开,就当个普通交换机用。这其实挺浪费的。我见过不少项目,IB网络跑得飞快,但安全配置几乎是裸奔状态。嗯,咱们今天就把这些“隐藏技能”挖出来。
2.1 Mellanox交换机安全功能概览
Mellanox的IB交换机,底层跑的是MLNX-OS或者Onyx(不同系列略有差异)。安全功能方面,我个人觉得最核心的有这么几块:
- ACL(访问控制列表):这是最基础也是最强大的。你可以基于LID、GUID、甚至一些自定义字段做过滤。说白了,就是决定谁可以跟谁说话。
- 802.1X(端口认证):虽然IB网络里用得不如以太网多,但Mellanox交换机是支持的。适合对安全性要求极高的场景。
- CoPP(控制面保护):这个我特别喜欢。它专门保护交换机的“大脑”——CPU。防止有人恶意发大量管理报文把交换机打瘫。
- 风暴控制:后面会细讲,这里先提一嘴。IB网络里广播和多播流量一旦失控,整个集群都可能被拖垮。
2.2 端口安全与MAC绑定
端口安全,说白了就是“认卡不认人”。IB网络里,每个HCA卡都有一个唯一的GUID(全局唯一标识符),类似于以太网的MAC地址。我们可以把这个GUID绑定到交换机的某个端口上。
为什么要这么做?
- 防止设备私自接入:有人偷偷拔掉一台服务器的IB线,插到自己的笔记本上?在IB网络里,笔记本没有HCA卡,插上去也没用。但如果是恶意替换HCA卡呢?端口绑定就能防这个。
- 防止MAC/GUID欺骗:虽然IB网络里伪造GUID比以太网伪造MAC难得多,但不是不可能。绑定之后,交换机只认“白名单”里的GUID。
- 简化故障排查:哪个端口接了什么卡,一目了然。我习惯在部署初期就把所有GUID和端口对应关系录入好,后期排查问题能省一半时间。
配置示例(MLNX-OS CLI):
switch (config) # interface ib 1/1
switch (config interface ib 1/1) # port-security enable
switch (config interface ib 1/1) # port-security mac-address 0002c903000a48b0
switch (config interface ib 1/1) # port-security violation restrict
这里要注意violation restrict这个参数。它表示如果检测到非法设备接入,端口不会直接down掉,而是只丢弃非法流量,合法流量照常转发。我个人建议生产环境用restrict,别用shutdown。为什么?
violation shutdown。结果运维同事更换HCA卡时忘了通知我,端口直接shutdown了。整个计算节点的IB网络断了,影响了线上业务。从那以后,我都是先用restrict,配合日志告警,确认无误后再考虑是否改为shutdown。
2.3 风暴控制与速率限制
风暴控制,这名字听着就吓人。在IB网络里,风暴通常指的是广播风暴或多播风暴。虽然IB的广播域比以太网小(通过分区控制),但一旦出现,破坏力极强。
为什么会发生风暴?
- 配置错误:比如某个分区的配置导致广播报文循环转发。
- 硬件故障:HCA卡或者交换机端口异常,疯狂发包。
- 恶意攻击:虽然少见,但理论上可以通过构造大量多播报文耗尽网络带宽。
Mellanox交换机的风暴控制,主要支持以下几种:
| 控制类型 | 说明 | 推荐阈值 |
|---|---|---|
| 广播风暴控制 | 限制广播报文在端口上的速率 | 端口带宽的 1% - 5% |
| 多播风暴控制 | 限制多播报文速率,IB中尤其重要 | 端口带宽的 10% - 20% |
| 未知单播风暴控制 | 限制目的MAC不在转发表中的单播 | 端口带宽的 5% - 10% |
配置示例:
switch (config) # interface ib 1/1
switch (config interface ib 1/1) # storm-control broadcast level 2
switch (config interface ib 1/1) # storm-control multicast level 15
switch (config interface ib 1/1) # storm-control action trap
这里action trap的意思是,当风暴发生时,交换机除了丢弃超出的报文,还会发送一个SNMP Trap给网管系统。嗯,这个一定要配。不然风暴发生了你都不知道,等用户投诉了才去查,那就被动了。
最后说一句,这些配置不是配完就完事了。我建议定期检查风暴控制计数器的统计信息:
switch # show storm-control ib 1/1
如果发现某个端口频繁触发风暴控制,别急着调高阈值。先查清楚为什么会有这么多广播或多播流量。是应用问题?还是配置问题?找到根因再动手,这才是工程师该有的思路。