NSX 環境中,可有多個專案設有相同的第 0 層或第 0 層 VRF 閘道。這表示這些專案中的第 1 層閘道和 NSX VPC 會連線至相同的第 0 層或第 0 層 VRF 閘道。

為避免專案之間發生 IP 位址衝突,您可以篩選所有第 1 層閘道或 NSX 要從指定專案中通告的路由。例如,首碼可讓您確保指定的專案只會通告來自外部 IP 區塊的 IP 位址。

企業管理員可以設定路由篩選,但無法在專案層級覆寫路由篩選。

首先,您需要建立您要使用的首碼清單。然後,在專案路由篩選器中,您可以定義專案至首碼清單的對應。

NSX 4.1.1 開始,會提供專案路由篩選器。但是,目前只能透過 NSX API 支援此功能。UI 不支援此功能。

範例

下圖顯示連線至相同第 0 層閘道的兩個專案:專案 1 和專案 2。專案 1 含有兩個第 1 層閘道,專案 2 只含有一個第 1 層閘道。對於專案 1,允許的首碼為 10.0.0.0/24,而對於專案 2,允許的首碼為 192.168.0.0/24。


此圖的周圍有文字加以說明。

使用 API 來建立專案路由篩選器的工作流程

  1. 建立首碼清單。

    例如,執行以下 NSX API:

    PATCH https://<nsx-mgr>/policy/api/v1/infra/routing-config/prefix-lists/<prefix-list-id>
    {
      "prefixes": [
          {
              "network":"172.20.0.0/16",
              "action":"PERMIT"
          },
          
      ]
    }

    如需有關此 API 的詳細資訊,請參閱 NSX API 指南

  2. 讀取首碼清單並驗證詳細資料。

    例如,執行以下 NSX API:

    GET https://<nsx-mgr>/policy/api/v1/infra/routing-config/prefix-lists
    GET https://<nsx-mgr>/policy/api/v1/infra/routing-config/prefix-lists/<prefix-list-id>
  3. 建立專案路由篩選器。

    例如,執行以下 NSX API:

    PATCH https://<nsx-mgr>/policy/api/v1/infra/routing-config/project-route-filters/<route-filter-id>
    {
      "projects_list": ["/orgs/default/projects/project-1"],
      "match_prefix_list" : ["/infra/routing-config/prefix-lists/list-1", "/infra/routing-config/prefix-lists/list-2"]
    }
    

    此 API 會建立從專案至首碼清單的對應。首碼清單將套用至指定專案中的所有第 1 層閘道。

    如需有關此 API 的詳細資訊,請參閱 NSX API 指南

  4. 讀取專案路由篩選器並驗證詳細資料。
    例如,執行以下 NSX API:
    GET https://<nsx-mgr>/policy/api/v1/infra/routing-config/project-route-filters/<route-filter-id>
  5. 選用:擷取所有專案路由篩選器的清單。

    例如,執行以下 NSX API:

    GET https://<nsx-mgr>/policy/api/v1/infra/routing-config/project-route-filters
  6. 選用:刪除首碼清單和專案路由篩選器。
    例如,執行以下 NSX API:
    DELETE https://<nsx-mgr>/policy/api/v1/infra/routing-config/project-route-filters/<route-filter-id>
    DELETE https://<nsx-mgr>/policy/api/v1/infra/routing-config/prefix-lists/<prefix-list-id>