要提供网络层访问控制列表,最简单且最可扩展的方法是通过指向 IP 组的网络安全策略。IP 组可以由多个虚拟服务使用在组中添加一个 IP 后,具有阻止 IP 组地址列表的网络安全策略的所有虚拟服务将阻止该地址。
创建 IP ACL
使用以下步骤设置环境:
在 NSX Advanced Load Balancer UI 中,导航到 ,然后创建一个新的 IP 组。
创建或编辑一个虚拟服务。
导航到
,然后添加一个新的网络安全规则。将匹配设置为 IP 地址,然后从下拉菜单中选择新的 IP 组。
有关通过 DataScript 创建 IP 访问控制列表的更多信息,请参见“阻止 IP 地址访问虚拟服务”。
检索 IP 组的 UUID
要更新 ACL 列表,请先获取 IP 组的 UUID。可以针对对象的名称进行 API 调用。对于 API 调用,UUID 优先于对象名称,因为它们是唯一的。在以下示例中,控制器的集群 IP 为 10.1.1.1
,IP 组命名为 blocklist。
https://10.1.1.1/api/ipaddrgroup?name=blacklist
从示例查询中返回了以下 JSON 结果:
{ "count": 1, "results": [ { "url": "https://10.1.1.1/api/ipaddrgroup/ipaddrgroup-dc43bd65-7227-4585-8213-34c84c9b1c3b", "uuid": "ipaddrgroup-dc43bd65-7227-4585-8213-34c84c9b1c3b", "name": "Blacklist" "tenant_ref": "https://10.1.1.1/api/tenant/admin", "prefixes": [ { "ip_addr": { "type": "V4", "addr": "10.128.0.0" }, "mask": 16 }, ] } ] }
可以附加 &fields=uuid
以使查询筛选更具体。
在该示例中,在 IP 组中已存在 IP 网络 10.128.0.0/16
。
通过 API 修改 IP 组
要将 IP 网络 10.0.0.0/16
和 IP 范围 192.168.0.1
-192.168.1.250
添加到 IP 组中,请针对 IP 组 URL https://10.1.1.1/api/ipaddrgroup/ipaddrgroup-dc43bd65-7227-4585-8213-34c84c9b1c3b 发出 PUT 请求,其中包含以下负载:
{ "url": "https://10.1.1.1/api/ipaddrgroup/ipaddrgroup-dc43bd65-7227-4585-8213-34c84c9b1c3b", "uuid": "ipaddrgroup-dc43bd65-7227-4585-8213-34c84c9b1c3b", "name": "Blacklist", "tenant_ref": "https://10.1.1.1/api/tenant/admin", "ranges": [ { "begin": { "type": "V4", "addr": "192.168.1.1" }, "end": { "type": "V4", "addr": "192.168.1.250" } } ], "prefixes": [ { "ip_addr": { "type": "V4", "addr": "10.128.0.0" }, "mask": 16 }, { "ip_addr": { "type": "V4", "addr": "10.0.0.0" }, "mask": 16 } ] }
注:
所需的所有配置(包括以前配置的 IP 地址)必须包含在 PUT 请求中。