IPSsunning
作者IPSsunning·2021-08-24 18:35
系统工程师·浪潮商用机器有限公司

在 K1 Power 服务器上, Mellanox 设备驱动通过 SR-IOV 访问控制列表( ACL )来强制执行安全策略的介绍

字数 4340阅读 1067评论 0赞 0

1 、 ACL 介绍

Single Root I/O Virtualization (SR-IOV) 中的访问控制列表 (ACL) 规则允许流量分类和过滤。 它可以通过限制允许的虚拟机 (VM) 流量并对其进行过滤来强制执行安全策略,以防止大多数 L2 攻击。 在本文中,我们将解释如何使用 Mellanox 设备驱动程序上的 ACL 规则创建和验证虚拟功能 (VF) 。

ACL 是适配器使用的网络过滤器,用于允许和限制进出网络接口的数据流。在网络接口上配置 ACL 时,网络适配器会分析通过接口的数据,将其与 ACL 中描述的标准进行比较,然后允许数据流动或禁止数据流动。

使用 ACL 的主要原因是为网络提供基本的安全级别,由于 ACL 是保护网络安全的基本要素 , 因此了解 ACL 的功能和正确使用对于获得最佳结果至关重要。

而支持 SR-IOV 功能的网络适配器为受管系统提供 I/O 虚拟化功能,通过 API 接口对 SR-IOV 功能进行配置。而虚拟功能( VF ) 是支持 SR-IOV 的网络适配器上的轻量级 PCIe 功能。 VF 与网络适配器上的 PCIe 物理功能 (PF) 相关联,代表网络适配器的虚拟化实例,每个 VF 都有自己的 PCI 配置空间。

ACL 规则允许流量分类和过滤, SR-IOV 与 ACL 的组合可以通过限制允许的流量并对其进行过滤来提供安全性。

在 K1 Power 服务器上以下 Mallanox 适配器支持 SR-IOV 功能

  • 2-Port 100Gb Gen4 PCIe (FC: EC66)
  • 2-port 10Gb (FC: EC2S)
  • 2-port 25Gb (FC: EC2U)
  • 2-port 100Gb (FC: EC3M)

2 、有关 ACL 的命令及语法

在网络设备驱动程序中, ACL 是使用媒体访问控制 (MAC) 地址以及在 Hypervisor 和操作系统层通过对虚拟局域网 (VLAN) 的限制来实现的。

下图描述了 K1 Power 服务器上如何使用 Power Hypervisor 虚拟化物理适配器以及如何将虚拟功能分配给 AIX 分区。

在 AIX 下有关 ACL 的命令和语法

2.1 、 ACL 的命令及语法

chhwres -r sriov -m --rsubtype logport -p -o a -a "adapter_id=,phys_port_id=,logical_port_type=eth, allowed_os_mac_addrs=, allowed_vlan_ids="__

Ø 对于 MAC 限制,我们使用 allowed_os_mac_addrs 参数及如下选项

  • none
  • all
  • Allowed list in format 023344556677 (it should start with 02 )

Ø 对于 VLAN 限制,我们可以使用 allowed_vlan_ids 的选项为 [2,3,4,5,…4095] 。

2.2 、 ACL 命令用法示例

Ø 创建 VF 同时允许 MAC 及 VLAN

chhwres -r sriov -m p9zzh-fsp --rsubtype logport -p p9zzh-cx5a -o a -a "adapter_id=2,phys_port_id=0,logical_port_type=eth, promisc_mode=0, allowed_os_mac_addrs=024444555544, allowed_vlan_ids=4, port_vlan_id=0"__

Ø 创建 VF 且仅允许 MAC

chhwres -r sriov -m p9zzh-fsp --rsubtype logport -p p9zzh-cx5a -o a -a "adapter_id=2,phys_port_id=0,logical_port_type=eth, promisc_mode=0, allowed_os_mac_addrs=024444555544, port_vlan_id=0"__

Ø 创建 VF 且仅允许 VLAN

chhwres -r sriov -m p9zzh-fsp --rsubtype logport -p p9zzh-cx5a -o a -a "adapter_id=2,phys_port_id=0,logical_port_type=eth, promisc_mode=0, allowed_vlan_ids=4, port_vlan_id=0"__

2.3 、在 AIX 下查看 ACL 设置

通过 entstat 工具来查看 ACL 的设置,例如运行 entstat –d entX 可以查看 ACL 中所有允许的 MAC 和 VLAN 列表

Port VLAN: Disabled

MAC Mode: Restricted To List

Maximum Active MAC Addresses: 1

Allowed MAC Addresses:

F2:5F:A4:F5:CA:00 -> Default MAC Address

02:44:44:55:55:44 -> MAC address from the list of allowed macs

VLAN Mode: Restricted To List

Maximum Active VLAN IDs: 20

Allowed VLAN IDs:

0004 -> VLAN from the list of allowed vlans

Enabled VLAN IDs: None


Ø 有关限制

当创建 VF 时,以下限制适用于 MAC 和 VLAN ACL 选项:

• MAC 列表中最多允许 4 个 MAC 地址。

• VLAN 列表中最多允许有 20 个 VLAN ID 。

• 如果 VLAN ID 限制选项设置为允许列表,那么对于列表中的每个 VLAN ID ,操作系统打算同时在接口上激活,必须有一个可用的适配器 VLAN 过滤器。

• 当 VF 上的端口 VLAN ID 大于 1 时, allowed_vlan_ids 属性设置为 None 。

3 、有关 Mellanox 设备驱动程序中的 ACL 规则

对于 Mellanox 适配器:在创建 VF 时, allowed_os_mac_addrs 独立于 allowed_vlan_ids 。 OS 上的 ACL 组合及其预期结果请参考下表。

表 1 : Mellanox 设备驱动程序中的 ACL 规则

S.NoHMC command optionsOSExpected results
MACVLANMACVLANPing on base adapterPing on VLAN pseudo interface
1ALL (Default)ALL (Default)DefaultNO VLANSentNA
2 DefaultVLAN-XSentSent
3 MAC-XNO VLANSentNA
4 MAC-XVLAN-XSentSent
5ALLNONEDefaultNO VLANSentNA
6 DefaultVLAN-XSentVLAN config fails
7 MAC-XNO VLANSentNA
8 MAC-XVLAN-XSentVLAN config fails
9ALLAllowDefaultNO VLANDroppedNA
10 DefaultVLAN-XDroppedSent
11 MAC-XNO VLANDroppedNA
12 MAC-XVLAN-XDroppedSent
13 MAC-XVLAN-YDroppedVLAN config fails
14NONEALLDefaultNO VLANSentNA
15 DefaultVLAN-XSentSent
16 DefaultVLAN-YSentSent
17 MAC-XNO VLANChange MAC failsNA
18 MAC-XVLAN-XChange MAC failsNA
19NONENONEDefaultNO VLANSentNA
20 DefaultVLAN-XSentVLAN config fails
21 MAC-XNO VLANChange MAC failsNA
22 MAC-XVLAN-XChange MAC failsNA
23NONEAllowDefaultNO VLANDroppedNA
24 DefaultVLAN-XDroppedSent
25 MAC-XNO VLANChange MAC failsNA
26 MAC-XVLAN-XChange MAC failsNA
27 DefaultVLAN-YDroppedVLAN config fails
28AllowALLDefaultNO VLANSentNA
29 DefaultVLAN-XSentSent
30 MAC-XNO VLANSentNA
31 MAC-XVLAN-XSentSent
32 MAC-YNO VLANChange MAC failsNA
33AllowNONEDefaultNO VLANSentNA
34 DefaultVLAN-XSentVLAN config fails
35 MAC-XNO VLANSentNA
36 MAC-XVLAN-XSentVLAN config fails
37 MAC-YNO VLANChange MAC failsNA
38AllowAllowDefaultNO VLANDroppedNA
39 DefaultVLAN-XDroppedSent
40 MAC-XNO VLANDroppedNA
41 MAC-XVLAN-XDroppedSent
42 MAC-YNO VLANChange MAC failsNA
43 MAC-XVLAN-YDroppedVLAN config fails

表 2 : 解释了表 1 中的相关术语

TermDescription
MAC-XAllowed MAC
MAC-YNot allowed MAC
VLAN-XAllowed VLAN
VLAN-YNot allowed VLAN
SentPing success
DroppedPing failed
NANot Applicable

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广