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 功能
在网络设备驱动程序中, ACL 是使用媒体访问控制 (MAC) 地址以及在 Hypervisor 和操作系统层通过对虚拟局域网 (VLAN) 的限制来实现的。
下图描述了 K1 Power 服务器上如何使用 Power Hypervisor 虚拟化物理适配器以及如何将虚拟功能分配给 AIX 分区。
在 AIX 下有关 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 参数及如下选项
Ø 对于 VLAN 限制,我们可以使用 allowed_vlan_ids 的选项为 [2,3,4,5,…4095] 。
Ø 创建 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"__
通过 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 。
对于 Mellanox 适配器:在创建 VF 时, allowed_os_mac_addrs 独立于 allowed_vlan_ids 。 OS 上的 ACL 组合及其预期结果请参考下表。
表 1 : Mellanox 设备驱动程序中的 ACL 规则
S.No | HMC command options | OS | Expected results | |||
MAC | VLAN | MAC | VLAN | Ping on base adapter | Ping on VLAN pseudo interface | |
1 | ALL (Default) | ALL (Default) | Default | NO VLAN | Sent | NA |
2 | Default | VLAN-X | Sent | Sent | ||
3 | MAC-X | NO VLAN | Sent | NA | ||
4 | MAC-X | VLAN-X | Sent | Sent | ||
5 | ALL | NONE | Default | NO VLAN | Sent | NA |
6 | Default | VLAN-X | Sent | VLAN config fails | ||
7 | MAC-X | NO VLAN | Sent | NA | ||
8 | MAC-X | VLAN-X | Sent | VLAN config fails | ||
9 | ALL | Allow | Default | NO VLAN | Dropped | NA |
10 | Default | VLAN-X | Dropped | Sent | ||
11 | MAC-X | NO VLAN | Dropped | NA | ||
12 | MAC-X | VLAN-X | Dropped | Sent | ||
13 | MAC-X | VLAN-Y | Dropped | VLAN config fails | ||
14 | NONE | ALL | Default | NO VLAN | Sent | NA |
15 | Default | VLAN-X | Sent | Sent | ||
16 | Default | VLAN-Y | Sent | Sent | ||
17 | MAC-X | NO VLAN | Change MAC fails | NA | ||
18 | MAC-X | VLAN-X | Change MAC fails | NA | ||
19 | NONE | NONE | Default | NO VLAN | Sent | NA |
20 | Default | VLAN-X | Sent | VLAN config fails | ||
21 | MAC-X | NO VLAN | Change MAC fails | NA | ||
22 | MAC-X | VLAN-X | Change MAC fails | NA | ||
23 | NONE | Allow | Default | NO VLAN | Dropped | NA |
24 | Default | VLAN-X | Dropped | Sent | ||
25 | MAC-X | NO VLAN | Change MAC fails | NA | ||
26 | MAC-X | VLAN-X | Change MAC fails | NA | ||
27 | Default | VLAN-Y | Dropped | VLAN config fails | ||
28 | Allow | ALL | Default | NO VLAN | Sent | NA |
29 | Default | VLAN-X | Sent | Sent | ||
30 | MAC-X | NO VLAN | Sent | NA | ||
31 | MAC-X | VLAN-X | Sent | Sent | ||
32 | MAC-Y | NO VLAN | Change MAC fails | NA | ||
33 | Allow | NONE | Default | NO VLAN | Sent | NA |
34 | Default | VLAN-X | Sent | VLAN config fails | ||
35 | MAC-X | NO VLAN | Sent | NA | ||
36 | MAC-X | VLAN-X | Sent | VLAN config fails | ||
37 | MAC-Y | NO VLAN | Change MAC fails | NA | ||
38 | Allow | Allow | Default | NO VLAN | Dropped | NA |
39 | Default | VLAN-X | Dropped | Sent | ||
40 | MAC-X | NO VLAN | Dropped | NA | ||
41 | MAC-X | VLAN-X | Dropped | Sent | ||
42 | MAC-Y | NO VLAN | Change MAC fails | NA | ||
43 | MAC-X | VLAN-Y | Dropped | VLAN config fails |
表 2 : 解释了表 1 中的相关术语
Term | Description |
MAC-X | Allowed MAC |
MAC-Y | Not allowed MAC |
VLAN-X | Allowed VLAN |
VLAN-Y | Not allowed VLAN |
Sent | Ping success |
Dropped | Ping failed |
NA | Not Applicable |
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论