若要保護 Antrea Kubernetes 叢集中網繭之間的流量,您可以在 NSX 中建立分散式防火牆原則 (安全性原則),並套用至一或多個 Antrea Kubernetes 叢集。

備註: 本說明文件使用「Antrea Kubernetes 叢集」一詞來表示具有 Antrea CNI 的 Kubernetes 叢集。「Kubernetes 叢集」一詞是一個通用詞彙,表示具有 Antrea CNI 的 Tanzu Kubernetes Grid (TKG) 叢集、具有 Antrea CNI 的 OpenShift 叢集,或具有 Antrea CNI 的自助式 (DIY) Kubernetes 叢集。

UI 會針對少數 UI 欄位或標籤使用「Antrea 容器叢集」一詞。在本說明文件的程序一節中,這些 UI 欄位或標籤保留了「Antrea 容器叢集」一詞。對於所有自由格式的文字,會使用「Antrea Kubernetes 叢集」一詞。

必要條件

  • 已將 Antrea Kubernetes 叢集登錄到 NSX
  • NSX 部署中套用適當的安全性授權,以授權系統設定分散式防火牆安全性原則。

程序

  1. 從瀏覽器登入 NSX Manager (網址:https://nsx-manager-ip-address)。
  2. 按一下安全性索引標籤,然後在原則管理下按一下分散式防火牆
    隨即會顯示 類別特定規則頁面。
    備註: 在瀏覽器中啟動 NSX Manager 應用程式時, NSX Manager UI 會擷取有關登錄的 Antrea Kubernetes 叢集的資訊。如果應用程式 UI 已開啟,則不會自動擷取 Antrea Kubernetes 叢集登錄資訊。根據目前的 UI 設計,這是預期的行為。如果在開啟 NSX Manager 應用程式後先登錄了 Antrea Kubernetes 叢集,請確保在導覽至 類別特定規則頁面後重新整理瀏覽器。手動重新整理可確保在達到此程序的步驟 4 時,UI 中會顯示 Antrea 特定的 UI 元素。

    此手動瀏覽器重新整理只需執行一次,無需在每次將新的 Antrea Kubernetes 叢集登錄至 NSX 後都執行。

  3. 選取要在其中建立安全性原則的類別。
    Antrea Kubernetes 叢集目前不支援以 MAC 位址為基礎的第 2 層 (乙太網路) 防火牆規則。 NSX 中的類別對應於 Antrea 中的階層。在 Antrea Kubernetes 叢集中,系統會以下列遞減優先順序強制執行安全性原則:
    • 緊急類別 (最高優先順序)
    • 基礎結構類別
    • 環境類別
    • 應用程式類別 (最低優先順序)

    在類別內,系統會以規則設定順序由上往下處理防火牆規則。類別可供您組織規則。例如,多個使用者角色 (roles) (角色 (persona)) 可以在不覆寫彼此的原則或不讓彼此的原則產生衝突的情況下,建立安全性原則。例如,安全管理員可以在緊急類別中為特定的隔離或允許規則建立原則。應用程式開發人員可以在應用程式類別中建立原則,來保護應用程式中特定網繭之間的流量。網路管理員可以在基礎結構類別中建立原則來定義共用服務 (如 DHCP、DNS、Active Directory 等) 的存取規則。

  4. 按一下新增原則,然後指定原則組態設定。
    1. 為原則輸入唯一名稱。
    2. 依預設,系統會將原則套用到分散式防火牆。按一下套用至旁邊的編輯圖示。
      隨即會開啟 設定 [套用至] 頁面。
    3. 選取 Antrea 容器叢集選項。
    4. (必要) 選取至少一個叢集,以決定要強制執行安全性原則的跨度和範圍。
      原則跨度可以是單一 Antrea Kubernetes 叢集,也可以是多個 Antrea Kubernetes 叢集。
    5. (選擇性) 藉由選取 Antrea 群組來限制原則跨度。
      在原則的 套用至中選取 Antrea 群組後,系統便會針對原則中的所有規則使用此組態。若要為原則中的每個規則指定一組不同的 Antrea 群組,請略過此步驟,然後在您於原則中新增規則時指定 套用至
      備註: 不得在原則的 套用至中使用有 IP 位址的 Antrea 群組,因為 NSX 無法透過 IP 位址計算出有效的網繭成員。
    6. (選擇性) 按一下最右邊角落的齒輪圖示,以指定原則的進階組態設定。
      套用到 Antrea Kubernetes 叢集的安全性原則,其 TCP 嚴格可設定狀態設定會呈現為灰色。目前不支援這些設定。

      僅支援已鎖定註解設定。依預設,系統不會鎖定原則。若要防止多個使用者對同一個原則進行變更,請開啟已鎖定選項。

    7. 按一下發佈
      您可以新增多個原則,再一起發佈這些原則。

      原則狀態最初會先變更為「進行中」,而在 Antrea Kubernetes 叢集中成功實現原則後,其狀態會變更為「成功」。如因任何原因而無法實現原則,按一下失敗狀態即可在快顯視窗中檢視錯誤。

  5. 選取原則名稱旁的核取方塊,然後按一下新增規則。輸入規則名稱。
    依預設,規則的 來源目的地服務套用至資料行會顯示為 任何
    備註: 套用到 Antrea Kubernetes 叢集的規則目前不支援內容設定檔。
  6. 指定規則設定。
    1. 來源目的地資料行中,按一下編輯圖示,然後選取一或多個 Antrea 群組。
      以下是在指定規則來源和目的地時所適用的限制:
      • 只能選取 Antrea 群組。不能在規則中使用有 NSX 成員的群組。換句話說,規則不能同時包含 Antrea 群組和類型為一般僅限 IP 位址的群組。
      • 來源資料行中選取群組後,目的地資料行就不再適用。您可以在規則的套用至中新增目的地。
      • 目的地資料行中選取群組後,來源資料行就不再適用。您可以在規則的套用至中新增來源。

      如果在規則中設定來源套用至,將會篩選從來源套用至的流量。在規則中設定目的地套用至,將會篩選從套用至目的地的流量。Antrea 資料路徑會對套用至群組成員進行篩選。

    2. (選擇性) 服務資料行中按一下編輯圖示,然後選取服務。
      如果未選取任何服務,則會使用 [任何]。

      以下是在指定服務時所適用的限制:

      • 僅支援 TCP 和 UDP 服務。不支援其他所有服務。
      • 原始連接埠和通訊協定組合僅支援 TCP 和 UDP 服務類型。
      • 僅支援目的地連接埠。不支援來源連接埠。
    3. 套用至資料行中,按一下編輯圖示,然後選取要對其套用規則的 Antrea 群組。

      如果未選取任何群組,則會使用 [任何]。

      備註:
      • 不得在規則的套用至中使用有 IP 位址的 Antrea 群組,因為 NSX 無法透過 IP 位址計算出有效的網繭成員。
      • 如果在原則和規則的Antrea套用至中都指定了 群組,則原則的套用至中的群組會有比規則的套用至中的群組更高的優先順序。
    4. 動作下拉式功能表中,選取以下選項之一。
      選項 說明
      允許

      允許具有指定來源、目的地和通訊協定的所有 L3 流量通過目前的防火牆內容。符合規則且被接受的封包會周遊 Kubernetes 叢集,彷彿防火牆不存在一樣。

      捨棄

      捨棄具有指定來源、目的地和通訊協定的封包。捨棄封包是一種無訊息動作,並不會傳送通知給來源或目的地。捨棄封包會導致重試連線,直到達到重試臨界值為止。

      拒絕

      拒絕具有指定來源、目的地和通訊協定的封包。拒絕封包是較委婉的拒絕方式,它會傳送無法連線目的地訊息給寄件者。如果通訊協定是 TCP,則會傳送 TCP RST 訊息。系統會針對 UDP、ICMP 和其他 IP 連線傳送具有以系統管理方式禁止程式碼的 ICMP 訊息。拒絕動作的其中一個好處是,發生一次無法建立連線的情形後,傳送方應用程式即會收到通知。

    5. 按一下切換按鈕可開啟或關閉規則。
      依預設,系統會開啟規則。
    6. (選擇性) 按一下齒輪圖示以進行其他規則設定。
      規則設定 說明
      記錄 依預設,系統會關閉記錄功能。防火牆記錄包含在 Antrea 代理程式記錄中。如果針對 Antrea Kubernetes 叢集建立支援服務包要求,並從叢集中選取節點,則支援服務包會包含這些節點的 Antrea 代理程式記錄。
      方向

      係指從目的地網繭的觀點來看的流量方向。

      在以下情況中,規則方向為唯讀設定,無法加以編輯:
      • 在規則中指定了來源時,方向為傳入。
      • 在規則中指定了目的地時,方向為傳出。

      來源和目的地均設定為 [任何] 時,則可編輯規則方向。在這種情況下,預設方向為 [傳入-傳出]。但是,您可以將方向變更為 [傳入] 或 [傳出]。

      註解

      如有需要,請輸入規則的相關備註。

      這些註解不會傳播到 Antrea Kubernetes 叢集。因此,在 Antrea 叢集網路原則 規格中,規則註解不會顯示為注釋。

  7. 按一下發佈,將規則推送至 Antrea Kubernetes 叢集。
    您可以新增多個規則,然後再一起發佈。
    備註:Antrea Kubernetes 叢集中實現安全性原則後,就無法編輯原則的 套用至。也就是說, NSX 不會允許您將安全性原則的跨度從 Antrea 容器叢集變更為 DFW群組

結果

Antrea Kubernetes 叢集中會出現以下結果:
  • Antrea 網路外掛程式會建立叢集網路原則來與每個套用至 Antrea Kubernetes 叢集的分散式防火牆原則對應。
  • 如果規則包含來源,則會在 Antrea 叢集網路原則 中建立對應的入口規則。
  • 如果規則包含目的地,則會在 Antrea 叢集網路原則 中建立對應的出口規則。
  • 如果規則包含「任何-任何」組態,則叢集中的 Antrea 控制器 會將「任何-任何」規則拆分為兩個規則:一個是「任何對任何」的入口規則,一個是「任何對任何」的出口規則。
備註: Antrea 網路外掛程式不會阻止您透過 kubectl 命令列更新或刪除 Antrea 叢集網路原則。但請避免這麼做。原因是安全性原則的管理者是 NSX。因此, Antrea Kubernetes 叢集中的 中央控制平面介面卡 會立即覆寫透過 kubectl 命令列所進行的原則變更。換句話說, NSX 是原則的事實來源。透過 kubectl 命令列對這些叢集網路原則所進行的變更,不會顯示在 NSX Manager 中。

下一步

Antrea Kubernetes 叢集中成功實現安全性原則後,您可以執行以下可選工作:

  • 確認 Antrea 叢集網路原則已顯示在 Kubernetes 叢集中。在每個 Antrea Kubernetes 叢集中執行以下 kubectl 命令:
    $ kubectl get acnp
    備註: Antrea 叢集網路原則中的 priority 參數會顯示浮點值。這是符合預期的結果。 NSX Manager UI 不會顯示分散式防火牆原則的優先順序。 NSX 會在內部為每個原則的優先順序指派一個整數值。系統會從一個大範圍指派此整數值。但是, Antrea 網路外掛程式會為 Antrea 叢集網路原則的優先順序指派較小的浮點數 (絕對值)。因此, NSX 優先順序值在內部會標準化為較小的浮點數。但是,系統會為 Antrea 叢集網路原則保留您在分散式防火牆類別中新增原則時所採用的順序。

    您也可以在 NSX 詳細目錄中,檢視 Antrea 叢集網路原則的詳細資料。在 NSX Manager 中,導覽到詳細目錄 > 容器 > 叢集。展開叢集名稱,然後按一下叢集網路原則旁邊的數字以檢視原則的詳細資料,包括 YAML 規格。

  • 使用 NSX API 來檢視原則統計資料:
    GET https://{nsx-mgr-ip}/api/v1/infra/domains{domain-id}/security-policies/{security-policy-name}/statistics?container_cluster_path=/infra/sites/{site-id}/enforcement-points/{enforcement-point-id}/cluster-control-planes/{cluster-name}
  • 在 UI 中檢視執行階段規則統計資料:
    1. NSX Manager 中,導覽到安全性 > 分散式防火牆
    2. 展開原則名稱,然後按一下每個規則最右邊角落的圖形圖示。
    3. 從下拉式功能表中選取 Kubernetes 叢集,以檢視每個 Kubernetes 叢集的規則統計資料。

      系統會個別針對已強制執行規則的每個 Kubernetes 叢集,計算規則的統計資料。系統不會彙總所有 Kubernetes 叢集的統計資料並將其顯示在 UI 中。規則統計資料的計算頻率為每分鐘一次。