從 VMware Integrated OpenStack 4.0 開始,您可以為提供者和承租人設定動態路由。
您必須先建立 VXLAN 外部網路,稍後可將其用作閘道 Edge 的內部介面。
必要條件
- 您必須使用 VMware NSX for vSphere 做為虛擬網路提供者。
程序
- 針對未來承租人子網路和外部 VXLAN 網路子網路建立 IPv4 位址範圍。
neutron address-scope-create scope_name 4
- 建立提供者子網路集區。
將 scope_name 取代為您之前建立的位址範圍的名稱。
neutron subnetpool-create --pool-prefix 10.10.10.0/24 --default-prefixlen 24 provider_pool_name --address-scope scope_name
- 針對承租人網路建立自助服務子網路集區。
將 scope_name 取代為您之前建立的位址範圍的名稱。
neutron subnetpool-create --pool-prefix 1.1.1.0/24 --default-prefixlen 26 selfservice --address-scope scope_name --shared
- 建立外部 VXLAN 網路。
下列命令會在 VMware NSX for vSphere 中建立新的邏輯交換器。
neutron net-create --provider:network_type vxlan --router:external external_VXLAN_network_name
- 建立外部 VXLAN 子網路。
將 provider_pool_name 取代為您之前建立的提供者集區的名稱。將 external_VXLAN_network_name 取代為您之前建立的網路的名稱。
neutron subnet-create --no-gateway --name ext_vxlan_subnet_name --disable-dhcp --allocation-pool start=start_IP,end=end_IP --subnetpool provider_pool_nameexternal_VXLAN_network_nameNETWORK[CIDR]
- 使用
nsxadmin
公用程式建立 BGP 對等互連閘道 Edge。閘道 Edge 使用管理網路做為外部介面,並使用所建立的外部網路做為內部介面。nsxadmin -r bgp-gw-edge -o create --property name=name_GW-EDGE1 --property local-as=65001 --property external-iface=morefid:mgtnetwork --property internal-iface=morefid:internal_interface_network_GW-EDGE1 nsxadmin -r bgp-gw-edge -o create --property name=name_GW-EDGE2 --property local-as=65001 --property external-iface=morefid:mgtnetwork --property internal-iface=morefid:internal_interface_network_GW-EDGE2
- 使用 BGP 通告更新 NSX Edge。
使用您在上一個步驟中建立的 Edge 的識別碼。
nsxadmin -r routing-redistribution-rule -o create --property gw-edge-ids=edge-ID_GW-EDGE1,edge-ID_GW-EDGE2 --property learner-protocol=bgp --property learn-from=connected,bgp --property action=permit
- 使用 BGP 鄰接項目更新 NSX Edge。
使用您之前建立的 Edge 的識別碼。
nsxadmin -r bgp-neighbour -o create --property gw-edge-ids=edge-ID_GW-EDGE1,edge-ID_GW-EDGE2 --property ip-address=IP_physical_router1 --property remote-as=65000 --property password=BGP_password nsxadmin -r bgp-neighbour -o create --property gw-edge-ids=edge-ID_GW-EDGE1,edge-ID_GW-EDGE2 --property ip-address=IP_physical_router2 --property remote-as=65000 --property password=BGP_password
- 更新實體路由器。
- 將
AS
值設為 65000。 - 將 BGP 鄰接項目設為 name_GW-EDGE1 和 name_GW-EDGE2。
- 設定為將本身通告為動態閘道。
- 將
- 建立並設定 BGP 發言人。
- 建立 BGP 發言人。
neutron bgp-speaker-create --local-as local_as_valuename_bgp_speaker
- 建立 BGP 對等。
neutron bgp-peer-create --peer-ip internal_interface_network_GW-EDGE1 --remote-as 65001 --password BGP_password --auth-type md5 name_GW-EDGE1 --esg-id edge-ID_GW-EDGE1 neutron bgp-peer-create --peer-ip internal_interface_network_GW-EDGE2 --remote-as 65001 --password BGP_password --auth-type md5 name_GW-EDGE2 --esg-id edge-ID_GW-EDGE2
- 向 BGP 發言人新增 BGP 對等。
neutron bgp-speaker-peer-add name_bgp_speakername_GW-EDGE1 neutron bgp-speaker-peer-add name_bgp_speakername_GW-EDGE2
- 將發言人與 VXLAN 網路相關聯。
neutron bgp-speaker-network-add name_bgp_speakerexternal_VXLAN_network_name
- 建立 BGP 發言人。
- (選擇性) 為承租人建立 BGP 路由器。
承租人使用者可建立其 BGP 路由器。承租人使用者必須為
admin
,才能在不使用 SNAT 的情況下設定路由器。- 為其建立用於承租人和子網路集區的兩個邏輯交換器。
neutron net-create name_Tenant1_LS1 neutron subnet-create --name name_network_Tenant1-LS1name_Tenant1_LS1 --subnetpool selfservice neutron net-create name_Tenant1_LS2 neutron subnet-create --name name_network_Tenant1-LS2name_Tenant1_LS2 --subnetpool selfservice
- 使用 BGP 組態建立路由器。
BGP 適用於所有 OpenStack 邏輯路由器板型規格:
shared
、distributed
和exclusive
。neutron router-create name_Tenant1-LR --router_type=exclusive neutron router-interface-add name_Tenant1-LRname_network_Tenant1-LS1 neutron router-interface-add name_Tenant1-LRname_network_Tenant1-LS2 neutron router-gateway-set name_Tenant1-LR --disable-snat external_VXLAN_network_name
- 為其建立用於承租人和子網路集區的兩個邏輯交換器。