成功实现 NSX VPC 后,系统会创建默认南北向和东西向防火墙规则,以控制 NSX VPC 中工作负载的默认防火墙行为。
概览
南北向防火墙规则是应用于进出 NSX VPC 的流量的集中式规则。
东西向防火墙规则是应用于 NSX VPC 中运行的工作负载的分布式规则。
NSX VPC 中的防火墙规则仅适用于 VPC 中的虚拟机。即连接到 NSX VPC 中子网的虚拟机。NSX VPC 中的防火墙规则不会影响 VPC 外部的工作负载。
在以下小节中,术语“基本许可证”是指以下两个许可证中的任何一个:
- NSX Networking for VMware Cloud Foundation
- VCF 的解决方案许可证
NSX VPC 中的默认东西向防火墙规则
对于在项目中添加的每个 NSX VPC,系统都会在 NSX VPC 中创建一个默认东西向防火墙策略。将使用以下命名约定来标识 NSX VPC 中的默认东西向防火墙策略:
PROJECT-<Project_Name> VPC-<VPC_Name>-default-layer3-sectionProject_Name 和 VPC_Name 将替换为系统中的实际值。
例如,以下屏幕截图显示了 NSX VPC 中的默认东西向防火墙规则。
NSX VPC 中所有三个默认东西向防火墙规则的应用对象均设置为 DFW。尽管应用对象设置为 DFW,但只对连接到 NSX VPC 中子网的工作负载虚拟机实施防火墙规则。NSX VPC 外部的工作负载虚拟机不受这些防火墙规则的影响。如有必要,VPC 用户可以将应用对象设置为组,并仅选择在 NSX VPC 中创建的那些组。
- 规则 1030 允许来自 NSX VPC 中子网的所有出站流量。出站流量的目标可以是 NSX VPC 内的工作负载,也可以是 VPC 外部的工作负载。如有必要,可以修改此默认规则。
- 规则 1031 允许所有 DHCP 流量。如有必要,可以修改此默认规则。
- 规则 1032 将丢弃与前两条规则不匹配的所有流量。此规则暗示在默认情况下将丢弃流向 NSX VPC 的所有入站流量。您只能修改此默认规则的规则操作。此规则中的所有其他字段均不可编辑。
NSX VPC 中的默认南北向防火墙规则
对于在项目中添加的每个 NSX VPC,系统都会在 NSX VPC 中创建一个默认南北向防火墙策略。例如,以下屏幕截图显示了 NSX VPC 中的默认南北向策略(即有状态策略)。它仅包含一个防火墙规则。
默认情况下,该规则允许所有流量通过 VPC 南北向防火墙。您只能修改此默认规则的规则操作。此规则中的所有其他字段均不可编辑。
如之前在本文档的概览部分中所述,基本许可证仅授权系统在 NSX VPC 中添加或编辑无状态南北向防火墙规则。要在 NSX VPC 中添加或编辑有状态南北向防火墙规则和无状态南北向防火墙规则,必须在系统中应用相应的安全许可证。
NSX VPC 中的通信
默认情况下,允许 NSX VPC 中工作负载之间的东西向流量。
例如,下图显示了 NSX VPC 中的三个工作负载虚拟机。默认情况下,公用子网上的虚拟机 1 可以在任一方向上与专用子网上的虚拟机 2 进行通信。
默认情况下,隔离子网上的虚拟机无法与专用或公用子网上的虚拟机进行通信。但是,在该图中,专用子网上的虚拟机 2 也连接到隔离子网。因此,专用子网上的虚拟机 2 可以在任一方向上与隔离子网上的虚拟机 3 进行通信。
来自 NSX VPC 的输出通信
如本主题前面所述,默认情况下,允许来自 NSX VPC 的所有出站流量。
无论为 NSX VPC 开启还是关闭了南北向服务选项,连接到公用子网的工作负载都可以将数据包发送到 NSX VPC 外部。公用子网上的工作负载是从 NSX VPC 的外部 IPv4 块中分配的 IP 地址。外部 IP 地址可在 NSX VPC 外部访问。
仅当满足以下条件时,连接到专用子网的工作负载才能将数据包发送到 NSX VPC 外部:
- 已为 NSX VPC 开启南北向服务选项。
- 已为 NSX VPC 开启默认出站 NAT 选项。
开启默认出站 NAT 选项时,将为 NSX VPC 创建一条默认 SNAT 规则,以允许将来自专用子网上工作负载的流量路由到 NSX VPC 外部。在类似行中,如果关闭了此选项,则不会创建默认 SNAT 规则,并且无法将来自专用子网的流量路由到 NSX VPC 外部。
例如,下图显示了已关闭默认出站 NAT 的 NSX VPC。来自公用子网上虚拟机 1 的流量可以直接流向用户 1.1.1.1(此用户位于 NSX VPC 外部)。但是,来自专用子网上虚拟机 2 的输出流量会被阻止。
下图显示了已开启默认出站 NAT 选项的 NSX VPC。在这种情况下,系统会自动在 VPC 的南北向防火墙上配置默认 SNAT 规则。专用子网上虚拟机 2 的 IP 地址会转换为系统从外部 IPv4 块分配的外部 IP。专用子网上的虚拟机 2 现在可以将流量发送到用户 1.1.1.1(此用户位于 NSX VPC 外部)。公用子网上的虚拟机 1 可以继续将流量发送到 NSX VPC 外部,而无需通过 VPC 南北向防火墙上的 NAT。
流向 NSX VPC 的输入通信
如本主题前面所述,默认东西向规则(规则 1035)将丢弃流向 NSX VPC 的所有入站流量。
- 来自同一项目或不同项目内其他 NSX VPC 中运行的工作负载的流量。
- 来自数据中心内任何网络上运行的工作负载的流量。
- 来自 Internet 的流量。
例如,下图显示了来自用户 1.1.1.1(已连接到 Tier-0/VRF 网关)的流量被阻止,以致无法到达公用子网上的虚拟机 1 和专用子网上的虚拟机 2。
要使来自 NSX VPC 外部的入站流量能够到达公用子网上的工作负载,您需要添加自定义的东西向防火墙策略,或者修改 NSX VPC 默认防火墙策略中的东西向规则。请记住,默认情况下,NSX VPC 中的默认南北向规则允许所有流量通过 VPC 南北向防火墙。
要使来自 NSX VPC 外部的入站流量能够到达专用子网上的工作负载,请执行以下步骤:
- 确保为 NSX VPC 开启了南北向服务选项。
- 在 NSX VPC 中添加一个含 REFLEXIVE 操作或 DNAT 操作的 NAT 规则。
在该 NAT 规则中,从外部 IPv4 块分配有效的 IPv4 地址,以便系统可以将专用子网上的虚拟机 IP 地址映射到此外部 IPv4 地址。例如,如果要创建一条含 REFLEXIVE 操作的 NAT 规则,请在规则定义的转换的 IP 文本框中指定外部 IPv4 地址。此 IPv4 地址必须属于 NSX VPC 的外部 IPv4 块,且必须可供分配,否则将显示一条错误消息。目前,在转换的 IP 文本框中仅支持单个 IPv4 地址。不支持 CIDR 块。
执行此步骤,以便为连接到专用子网的每个工作负载虚拟机启用输入流量。例如,如果已将四个工作负载虚拟机连接到专用子网,请创建四条单独的 NAT 规则。
- 添加自定义的东西向防火墙策略,或者修改 NSX VPC 的默认防火墙策略中的东西向规则,以允许流量到达专用子网上的工作负载。
完成这些步骤后,现在允许专用子网工作负载上的所有入站流量。如上一小节中所述,我们建议 VPC 用户在其 NSX VPC 中添加自定义的南北向防火墙规则,以便根据其安全要求限制入站流量仅流向特定端口。
例如,下图显示了来自用户 1.1.1.1(已连接到 Tier-0/VRF 网关)的流量流经 VPC 南北向防火墙上的 NAT,然后到达专用子网上的虚拟机 2。
在此示例中,NAT 规则配置如下所示:
- 源 IP:10.5.0.5(虚拟机 2 的专用 IP 地址)
- 转换的 IP:5.5.100.100(IP 地址来自分配给虚拟机 2 的外部 IPv4 地址块)
- 操作:REFLEXIVE