設定防火牆規則

本頁面說明何時必須設定防火牆規則,才能啟用 NFS 檔案鎖定功能。

需要設定防火牆輸入規則的條件

如果符合下列條件,您就必須建立防火牆輸入規則,才能啟用從 Filestore 執行個體到用戶端的流量:

  • 您正在存取 Filestore 執行個體的應用程式中使用 NFS 檔案鎖定。
  • 您使用的虛擬私有雲網路設定的防火牆規則封鎖了 TCP 通訊埠 111 或 statdnlockmgr Daemon 使用的通訊埠。如要判定 statdnlockmgr Daemon 在用戶端上使用哪些通訊埠,請查看目前的通訊埠設定

    如果並未設定 statdnlockmgr 通訊埠,且您認為可能隨時需要設定防火牆規則,強烈建議您在所有用戶端 VM 執行個體上一致設定這些通訊埠。詳情請參閱「設定 NFS 通訊埠」。

需要設定防火牆輸出規則的條件

如果符合下列條件,您必須建立防火牆輸出規則,才能啟用從用戶端到 Filestore 執行個體的流量:

  • 您使用的虛擬私有雲網路具有防火牆輸出規則,適用於 Filestore 執行個體使用的 IP 位址範圍。
  • 防火牆輸出規則封鎖了 TCP 通訊埠 111、2046、2049、2050 或 4045 的流量。

您可透過 Filestore 執行個體頁面或執行 gcloud filestore instances describe,取得任何 Filestore 執行個體保留的 IP 位址範圍。詳情請參閱「取得特定執行個體的相關資訊」。

如要進一步瞭解虛擬私人雲端網路防火牆規則,請參閱使用防火牆規則

建立防火牆輸入規則

執行下列程序建立防火牆規則,以啟用來自 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 Daemon 在用戶端上使用哪些通訊埠。請記下這些值,稍後會用到。

    Linux

    完成這項工作沒有任何先決條件。

    MacOS

    完成這項工作沒有任何先決條件。

  2. 前往 Google Cloud 控制台的「Firewall」(防火牆) 頁面。
    前往「Firewall」(防火牆) 頁面

  3. 點按「建立防火牆規則」

  4. 輸入防火牆規則的「Name」(名稱)。 此名稱在專案中不得重複。

  5. 指定您要實作防火牆規則的「Network」(網路)

  6. 指定規則的「優先順序」

    如果這項規則與其他規則沒有衝突,您可以保留預設的 1000。如果現有的 Ingress 規則已針對相同的 IP 位址範圍、通訊協定和通訊埠,將「相符時的動作」設為「拒絕」,請將優先順序設為低於現有的 Ingress 規則。

  7. 針對「流量方向」選擇 [輸入]

  8. 針對「相符時執行的動作」選擇 [允許]

  9. 針對「Targets」(目標),執行下列其中一項操作:

    • 如要允許從 Filestore 執行個體到網路中所有用戶端的流量,請選擇「All instances in the network」(網路中的所有執行個體)
    • 如要允許從 Filestore 執行個體到特定用戶端的流量,請選擇「指定的目標標記」。在「Target tags」(目標標記) 中輸入用戶端的執行個體名稱。
  10. 將「Source filter」(來源篩選器) 保留為預設值 [IP ranges] (IP 範圍)

  11. 針對「Source IP ranges」(來源 IP 範圍),以 CIDR 標記法輸入您要允許存取之 Filestore 執行個體的來源 IP 位址範圍。您可以輸入您要與 Filestore 執行個體搭配使用的內部 IP 位址範圍,以啟用所有 Filestore 流量。您也可以輸入特定 Filestore 執行個體的 IP 位址。

  12. 將「Second source filter」(次要來源篩選器) 保留為預設值 [None] (無)

  13. 在「Protocols and ports」(通訊協定和通訊埠) 中選擇「Specified protocols and ports」(指定的通訊協定和通訊埠),然後:

    • 勾選「tcp」tcp核取方塊,並在相關聯的欄位中輸入 111,STATDOPTS,nlm_tcpport,其中:
      • STATDOPTS 是用戶端上 statd Daemon 使用的通訊埠。
      • nlm_tcpport 是用戶端上 nlockmgr Daemon 使用的 tcp 通訊埠。
    • 選取「UDP」udp核取方塊,然後輸入 nlm_udpport 的值,這是 nlockmgr 使用的 udp 連接埠。請注意,這些規格僅適用於下列服務層級
      • 可用區
      • 區域
      • 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 控制台的「Firewall」(防火牆) 頁面。
    前往「Firewall」(防火牆) 頁面

  3. 點按「建立防火牆規則」

  4. 輸入防火牆規則的「Name」(名稱)。 此名稱在專案中不得重複。

  5. 指定您要實作防火牆規則的「Network」(網路)

  6. 指定規則的「優先順序」

    如果這項規則與其他規則沒有衝突,您可以保留預設的 1000。如果現有的輸出規則已針對相同的 IP 位址範圍、通訊協定和通訊埠,將「相符時的動作」設為「拒絕」,請將優先順序設為低於現有的輸入規則。

  7. 針對「流量方向」選擇 [輸出]

  8. 針對「相符時執行的動作」選擇 [允許]

  9. 針對「Targets」(目標),執行下列其中一項操作:

    • 如要允許從網路中所有用戶端到 Filestore 執行個體的流量,請選擇「All instances in the network」(網路中的所有執行個體)
    • 如要允許從特定用戶端到 Filestore 執行個體的流量,請選擇「指定的目標標記」。在「Target tags」(目標標記) 中輸入用戶端的執行個體名稱。
  10. 針對「Destination IP ranges」(目標 IP 範圍),以 CIDR 標記法輸入您要允許存取之 Filestore 執行個體的目標 IP 位址範圍。您可以輸入您要與 Filestore 執行個體搭配使用的內部 IP 位址範圍,以啟用傳至所有 Filestore 執行個體的流量。您也可以輸入特定 Filestore 執行個體的 IP 位址。

  11. 在「Protocols and ports」(通訊協定和通訊埠) 中選擇「Specified protocols and ports」(指定的通訊協定和通訊埠)。然後選取「tcp」tcp核取方塊,並在相關聯的欄位中輸入 111,2046,2049,2050,4045

  12. 選擇 [建立]

驗證 NFS 連接埠

建議您確認 NFS 連接埠是否已正確開啟。詳情請參閱「在用戶端 VM 上設定 NFS 連接埠」。

後續步驟