設定防火牆規則

本頁面說明必須設定防火牆規則來啟用 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 控制台的「防火牆」頁面。
    前往「防火牆」頁面

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

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

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

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

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

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

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

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

    • 如果您要允許從 Filestore 執行個體到網路中所有用戶端的流量,請選擇「網路中的所有執行個體」
    • 如果您要允許從 Filestore 執行個體到特定用戶端的流量,請選擇「Specified target tags」(指定的目標標記)。在「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」核取方塊,然後輸入 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 控制台的「防火牆」頁面。
    前往「防火牆」頁面

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

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

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

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

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

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

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

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

    • 如果您要允許從網路中所有用戶端到 Filestore 執行個體的流量,請選擇「網路中的所有執行個體」
    • 如果您要允許從特定用戶端到 Filestore 執行個體的流量,請選擇「Specified target tags」(指定的目標標記)。在「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 通訊埠」。

後續步驟