在 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 來建立專案路由篩選器的工作流程
- 建立首碼清單。
例如,執行以下 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 指南》。
- 讀取首碼清單並驗證詳細資料。
例如,執行以下 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>
- 建立專案路由篩選器。
例如,執行以下 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 指南》。
- 讀取專案路由篩選器並驗證詳細資料。
例如,執行以下 NSX API:
GET https://<nsx-mgr>/policy/api/v1/infra/routing-config/project-route-filters/<route-filter-id>
- 選用:擷取所有專案路由篩選器的清單。
例如,執行以下 NSX API:
GET https://<nsx-mgr>/policy/api/v1/infra/routing-config/project-route-filters
- 選用:刪除首碼清單和專案路由篩選器。
例如,執行以下 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>