第13章 レイヤー 3 VPN へのインスタンス接続
BGPVPN により、L3 VPN と OpenStack デプロイメント内の neutron リソース (ネットワーク、ルーター、ポートを含む) との間の接続を確立することができます。これでインスタンスとリモートサイトの間の接続を確立することができます。このユースケースでは、BGPVPN ドライバーはプロジェクトのルーターがエッジルーターとして機能し、neutron ネットワークを BGP/MPLS ネットワークに対してアドバタイズするように設定できます。また、インスタンスの受信および送信トラフィックはこれで BGP/MPLS ネットワーク全体にわたってルーティングできるようになります。
標準的なユースケースは、既存の BGP IP VPN (外部サイトのセット) がデータセンター外にすでにデプロイされており、インスタンスとそれらの VPN サイト間の接続を確立する必要がある場合です。これと同様のもう 1 つのユースケースは、複数のサイト間のイーサネット相互接続を提供するのに E-VPN が使用されている場合です。
13.1. director を使用した BGPVPN API の有効化
director には、以下のバックエンドをサポートする BGPVPN コンポーザブルサービス (NeutronBgpvpnApi
) が含まれています。
-
Bagpipe:
BGPVPN:BaGPipe:networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe.BaGPipeBGPVPNDriver:default
-
OpenContrail:
BGPVPN:OpenContrail:networking_bgpvpn.neutron.services.service_drivers.opencontrail.opencontrail.OpenContrailBGPVPNDriver:default
-
OpenDaylight:
BGPVPN:OpenDaylight:networking_bgpvpn.neutron.services.service_drivers.opendaylight.odl.OpenDaylightBgpvpnDriver:default
Nuage:
BGPVPN:Nuage:nuage_neutron.bgpvpn.services.service_drivers.driver.NuageBGPVPNDriver:default
オーバークラウドで特定のバックエンドを有効化するには、デフォルトの
BgpvpnServiceProvider
値を置き換えます。以下に例を示します。resource_registry: OS::TripleO::Services::NeutronBgpvpnApi: ../puppet/services/neutron-bgpvpn-api.yaml parameter_defaults: NeutronServicePlugins: 'networking_bgpvpn.neutron.services.plugin.BGPVPNPlugin' BgpvpnServiceProvider: 'BGPVPN:Dummy:networking_bgpvpn.neutron.services.service_drivers.driver_api.BGPVPNDriver:default'
注記BgpvpnServiceProvider
は、実際には機能しないプレースホルダーdummy
ドライバーで事前に設定されています。
コンポーザブルサービス NeutronBgpvpnApi
はデフォルトでは有効化されません。コンポーザブルロールのデプロイに関する詳しい情報は、『オーバークラウドの高度なカスタマイズ』ガイドを参照してください。
13.2. BGPVPN ネットワークの管理
この手順では、BGPVPN ネットワークが作成され、特定のプロジェクトに関連付けられます。プロジェクトのユーザーは、次にそのルーターが BGPVPN ネットワークに接続するように設定することができます。以下に例を示します。
BGPVPN のエントリーを作成します。既存の L3VPN のパラメーターを指定する必要があります。以下に例を示します。
$ neutron bgpvpn-create --type l3 --route-targets 100:100 --route-distinguishers 1:1 --tenant-id 2105d8af1c3949a0ae1aa4a90cab60a6 --name BGPVPN01 Created a new bgpvpn: +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | export_targets | | | id | 6cd49c6e-cd6b-477d-bb92-525abd112ad1 | | import_targets | | | name | BGPVPN01 | | networks | | | project_id | 2105d8af1c3949a0ae1aa4a90cab60a6 | | route_distinguishers | 1:1 | | route_targets | 100:100 | | routers | | | tenant_id | 2105d8af1c3949a0ae1aa4a90cab60a6 | | type | l3 | +----------------------+--------------------------------------+
BGPVPN を neutron ルーターに関連付けます。以下に例を示します。
$ neutron bgpvpn-router-assoc-create --router ecc76bce-b214-4950-8b08-6cbae7e6fefc BGPVPN01
BGPVPN をプロジェクトネットワークに関連付けます。以下に例を示します。
$ neutron bgpvpn-net-assoc-create BGPVPN01 --network eb3cfe75-00be-46e4-b752-80323ce50b0e Created a new network_association: +------------+--------------------------------------+ | Field | Value | +------------+--------------------------------------+ | id | f8be79e2-6e25-456d-be98-6fa5e059fc2a | | network_id | eb3cfe75-00be-46e4-b752-80323ce50b0e | | project_id | 2105d8af1c3949a0ae1aa4a90cab60a6 | | tenant_id | 2105d8af1c3949a0ae1aa4a90cab60a6 | +------------+--------------------------------------+
接続性のテスト
BGPVPN が neutron ネットワークに関連付けられると、neutron ネットワークに接続されているインスタンスは、同じ BGPVPN に参加している他のサイトから到達可能となります。