VMware Integrated OpenStack 4.0 以降では、プロバイダおよびテナントにダイナミック ルーティングを構成することができます。

最初に VXLAN 外部ネットワークを作成する必要があります。これは後でゲートウェイ エッジの内部インターフェイスとして使用します。

前提条件

  • 仮想ネットワーク プロバイダとして VMware NSX for vSphere を使用する必要があります。

手順

  1. 将来のテナント サブネットおよび外部 VXLAN ネットワーク サブネット用に IPv4 アドレス範囲を作成します。
    neutron address-scope-create scope_name 4
  2. プロバイダ サブネット プールを作成します。
    scope_name は、以前に作成したアドレス範囲の名前で置き換えます。
    neutron subnetpool-create --pool-prefix 10.10.10.0/24 --default-prefixlen 24 provider_pool_name --address-scope scope_name
  3. テナント ネットワーク用のセルフサービス サブネット プールを作成します。
    scope_name は、以前に作成したアドレス範囲の名前で置き換えます。
    neutron	subnetpool-create --pool-prefix 1.1.1.0/24 --default-prefixlen 26 selfservice	--address-scope scope_name --shared
  4. 外部 VXLAN ネットワークを作成します。
    次のコマンドを実行すると、 VMware NSX for vSphere 内に新しい論理スイッチが作成されます。
    neutron net-create --provider:network_type vxlan --router:external external_VXLAN_network_name
  5. 外部 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]
  6. nsxadmin ユーティリティを使用して、BGP ピアリング ゲートウェイ エッジを作成します。
    ゲートウェイ エッジは管理ネットワークを外部インターフェイスとして使用し、作成された外部ネットワークを内部インターフェイスとして使用します。
    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
  7. BGP 通知を使用して NSX Edge を更新します。
    前の手順で作成したエッジの ID を使用します。
    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 
    
  8. BGP ネイバーを使用して NSX Edge を更新します。
    前に作成したエッジの ID を使用します。
    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
  9. 物理ルーターを更新します。
    1. AS の値を 65000 に設定します。
    2. BGP ネイバーを name_GW-EDGE1 および name_GW-EDGE2 に設定します。
    3. 動的ゲートウェイとして自分自身を通知するように設定します。
  10. BGP スピーカーを作成して構成します。
    1. BGP スピーカーを作成します。
      neutron bgp-speaker-create --local-as local_as_valuename_bgp_speaker
    2. 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
    3. BGP スピーカーに BGP ピアを追加します。
      neutron bgp-speaker-peer-add name_bgp_speakername_GW-EDGE1 
      
      neutron bgp-speaker-peer-add name_bgp_speakername_GW-EDGE2
    4. VXLAN ネットワークにスピーカーを関連付けます。
      neutron bgp-speaker-network-add name_bgp_speakerexternal_VXLAN_network_name
  11. (オプション) テナントの BGP ルーターを作成します。
    テナント ユーザーは BGP ルーターを作成できます。テナント ユーザーが SNAT を使用しないでルーターを構成するには、 admin である必要があります。
    1. テナント用の 2 つの論理スイッチを作成し、これらのサブネット プールを作成します。
      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
      
    2. BGP 構成を持つルーターを作成します。
      BGP はすべての形状の OpenStack 論理ルーター( shareddistributed、および 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

結果

これで、BGP ダイナミック ルーティングがプロバイダ側に構成され、テナントも使用できるようになりました。