配置防火墙规则

本页面介绍了何时必须配置防火墙规则以启用 NFS 文件锁定。

需要防火墙入站规则配置的条件

在以下情况下,您必须创建防火墙入站规则,以允许从 Filestore 实例到客户端的流量:

  • 您在访问 Filestore 实例的应用中使用了 NFS 文件锁定。
  • 您使用的 VPC 网络具有阻止 TCP 端口 111 或者 statdnlockmgr 守护程序使用的端口的防火墙规则。要确定 statdnlockmgr 守护程序在客户端上使用的端口,请检查当前端口设置

    如果未设置 statdnlockmgr 端口,并且您在任何时候认为可能需要配置防火墙规则,我们强烈建议在所有客户端虚拟机实例上一致地设置这些端口。如需了解详情,请参阅设置 NFS 端口

需要防火墙出站规则配置的条件

在以下情况下,您必须创建防火墙出站规则,以允许从客户端到 Filestore 实例的流量:

  • 您使用的 VPC 网络具有针对 Filestore 实例使用的 IP 地址范围设置的防火墙出站规则。
  • 该防火墙出站规则会阻止流向 TCP 端口 111、2046、2049、2050 或 4045 的流量。

您可以从 Filestore 实例页面或通过运行 gcloud filestore instances describe,获取任何 Filestore 实例的预留 IP 地址范围。如需了解详情,请参阅获取特定实例的相关信息

要详细了解 VPC 网络防火墙规则,请参阅使用防火墙规则

创建防火墙入站流量规则

请按以下步骤创建防火墙规则,以允许来自 Filestore 实例的流量通过。

  1. 在开始之前,请先验证以下内容:

    Windows

    1. 确认该客户端可以与 Filestore 实例通信,并且本地防火墙不会屏蔽所需端口。 如需打开所有必需的 NFS 端口,请在 PowerShell 中运行以下命令:

         '111','2046','2049','2050','4045' | % {
            C:\Windows\system32\netsh.exe advfirewall firewall add rule name="NFS Shares allow TCP/UDP port $($_)" dir=IN action=ALLOW protocol=TCP,UDP localport=$($_)
         }
      
    2. 检查当前端口设置,以确定 statdnlockmgr 守护程序在客户端上使用哪些端口。记下它们以便稍后使用。

    Linux

    完成此任务没有前提条件。

    MacOS

    完成此任务没有前提条件。

  2. 前往 Google Cloud 控制台中的防火墙页面。
    转到“防火墙”页面

  3. 点击创建防火墙规则

  4. 输入防火墙规则的名称。 该名称在项目中必须是唯一的。

  5. 指定要实行防火墙规则的网络

  6. 指定规则的优先级

    如果此规则不与任何其他规则冲突,则可以保留默认值 1000。如果现有入站规则已针对同一 IP 地址范围、协议和端口设置对匹配项执行的操作:拒绝,则设置低于现有入站规则的优先级。

  7. 选择入站作为流量方向

  8. 对于对匹配项执行的操作,选择允许

  9. 对于目标,请执行以下操作之一:

    • 如果要允许从 Filestore 实例到网络中的所有客户端的流量传入,请选择网络中的所有实例
    • 如果要允许来自 Filestore 实例的特定客户端的流量,请选择指定的目标标记。在目标标记中输入客户端的实例名称。
  10. 保留来源过滤条件IP 地址范围的默认值。

  11. 来源 IP 地址范围部分,以 CIDR 表示法输入要允许作为访问来源的 Filestore 实例的 IP 地址范围。您可以输入 Filestore 实例所用的内部 IP 地址范围以允许所有 Filestore 流量。您还可以输入特定 Filestore 实例的 IP 地址。

  12. 保留次要来源过滤条件的默认值

  13. 对于协议和端口,请选择指定的协议和端口,然后:

    • 选中 tcp 复选框并在关联字段中输入 111,STATDOPTS,nlm_tcpport,其中:
      • STATDOPTS 是客户端上的 statd 守护程序使用的端口。
      • nlm_tcpport 是客户端上的 nlockmgr 守护程序使用的 tcp 端口。
    • 选中 udp 复选框并输入 nlm_udpport 的值,该值是 nlockmgr 使用的 udp 端口。请注意,这些规范仅适用于以下服务层级
      • 容量范围较小的可用区级
      • 具有更大容量范围的可用区级(以前为大规模 SSD)
      • Enterprise
  14. 选择创建

创建防火墙出站规则

使用以下过程创建防火墙规则,以实现流量流入 Filestore 实例。

  1. 在开始之前,请先验证以下内容:

    Windows

    确认该客户端可以与 Filestore 实例通信,并且本地防火墙不会屏蔽所需端口。 如需打开所有必需的 NFS 端口,请在 PowerShell 中运行以下命令:

       '111','2046','2049','2050','4045' | % {
           C:\Windows\system32\netsh.exe advfirewall firewall add rule name="NFS Shares allow TCP/UDP port $($_)" dir=OUT action=ALLOW protocol=TCP,UDP localport=$($_)
          }
    

    Linux

    完成此任务没有前提条件。

    MacOS

    完成此任务没有前提条件。

  2. 前往 Google Cloud 控制台中的防火墙页面。
    转到“防火墙”页面

  3. 点击创建防火墙规则

  4. 输入防火墙规则的名称。 该名称在项目中必须是唯一的。

  5. 指定要实行防火墙规则的网络

  6. 指定规则的优先级

    如果此规则不与任何其他规则冲突,则可以保留默认值 1000。如果现有出站规则为同一 IP 地址范围、协议和端口设置了对匹配项执行的操作:拒绝,则设置低于现有入站规则的优先级。

  7. 选择出站作为流量方向

  8. 对于对匹配项执行的操作,选择允许

  9. 对于目标,请执行以下操作之一:

    • 如果要允许从网络中的所有客户端到 Filestore 实例的流量传入,请选择网络中的所有实例
    • 如果要允许从特定客户端到 Filestore 实例的流量通过,请选择指定的目标标记。在目标标记中输入客户端的实例名称。
  10. 目标 IP 地址范围部分,以 CIDR 表示法输入要允许作为访问目标的 Filestore 实例的 IP 地址范围。您可以输入 Filestore 实例所用的内部 IP 地址范围,以允许流向所有 Filestore 实例的流量通过。您还可以输入特定 Filestore 实例的 IP 地址。

  11. 对于协议和端口,请选择指定的协议和端口。然后,选中 tcp 复选框,并在关联字段中输入 111,2046,2049,2050,4045

  12. 选择创建

验证 NFS 端口

建议您验证 NFS 端口是否已正确打开。如需了解详情,请参阅在客户端虚拟机上配置 NFS 端口

后续步骤