More Related Content
Similar to 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
Similar to 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続 (20)
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
- 3. 今回の内容
• 概要
• MPLS VPNのビルディング・ブロック
• OpenStackでの運用の流れ
• L2データセンター間接続の利用例
• 次の課題
• まとめとポイント
• ディプロイメントのガイドライン
• 構成の手順とNeutron CLI & REST APIの定義
• 今後の予定
© 2014 Brocade Communications Systems, Inc. 33
- 4. 概要
• 複数のデータセンター(DC)環境をまたいだクラウドの構築
• 共有リソース・プールの地域分散
• 複数のデータセンターに広がるテナント・ネットワーク
• L2/L3 VPNを展開するMPLSテクノロジ
• QoS保証を向上
• ネットワークの耐障害性を強化
• 処理負荷(VMなど)をデータセンター間で移動
• DC間WAN上で、大規模フローを最適に配分(データ・バックアップ時その他)
データセンター間オーケストレーションの必要性
© 2014 Brocade Communications Systems, Inc. 4
- 5. © 2014 Brocade Communications Systems, Inc. 5
データセンター間オーケストレーションの全体図
MLXe
境界
ルータ
VCS
テクノロジApp
OS
App
OS
• プライベートWAN
• キャリアEthernet専用線
AT&T、VZ、FTその他
VPLS-BGPコア
DC1
vLAG
MCT
インター
ネット
VLAN
VLAN
VLAN
DC2
VPLS相互接続
- 7. OpenStackでの運用の流れ
• 各テナント・ネットワークの「接続回線」(Attachment Circuit)を作成
• 論理インタフェースとして取り扱い
• L2ネットワークのVLANの集合などに相当
• MPLS LSPトンネルを作成
• LDPシグナリングを使用してトンネルを随時に構成させる場合はオプション
• 接続回線とLSPトンネルからMPLS VPNサービスを作成
• 各データセンターの接続回線の間をLSPトンネルで接続する(デフォルトでフルメッシュのLSPと
MPLSの耐障害性機能が有効)
• MAC Withdrawalによる速い収束
• VMの移動/削除、サーバ統合などの際
Neutron API拡張機能を使用
© 2014 Brocade Communications Systems, Inc. 7
- 8. © 2014 Brocade Communications Systems, Inc. 8
L2データセンター間接続の利用例
DCコア
(PE)
リーフ/スパイン
(CE)
VM2VM1
データセンター1
MPLSネットワーク
MPLS VPNサービスLSPトンネル
DCコア
(PE)
リーフ/スパイン
(CE)
VM2VM1
データセンター2
OpenStackオーケストレータ
/コントローラ
接続回線
接続回線
OpenStackオーケストレータ
/コントローラ
- 9. 次の課題
大規模フローのグローバル負荷分散によるDC間WAN帯域幅の最適化
© 2014 Brocade Communications Systems, Inc. 9
• フローを大規模に発生するアプリケーション(BCDRなど)に対応
• ハッシュ・ベースの負荷分散は、WAN帯域幅やアプリケーションQoEの最適化には不十分
• 実装プロポーザル
• アプリケーションから(オフ・ネットワークで)、「Large Flow」(大規模フロー)を通知
• 入/出側ルータ間に複数のLSPを構成
• 大規模フローに所要の帯域幅で新規に構成した(または構成済みの) LSPを割り振り
• エッジLSRのPBR処理で、所定のLSPに大規模フローを転送
• このアプローチによるメリット
• WAN帯域幅の最適利用、DCをまたぐアプリケーションのQoE向上
• ブロケードからRam (Ramki) KrishnanがIETF I2RSワーキング・グループに参加し、
中心になって取り組みを推進中
• http://datatracker.ietf.org/doc/draft-krishnan-i2rs-large-flow-use-case/?include_text=1
- 10. まとめとポイント
新規アプリケーション/サービスの迅速で低コストの展開
© 2014 Brocade Communications Systems, Inc. 10
• 複数のデータセンターをまたぐテナント・ネットワークをOpenStackで構築
• 別のデータセンターにある物理サーバへもVMを移動
• Neutron APIから、L2/L3 MPLS VPNをプロビジョニング
• BGPオート・ディスカバリによって、リモート側PEを自動検出(L2 VPNの場合) –
マニュアル作業を減らすダイナミックな構成設定
• オーケストレーション/コントロールは、分散したOpenStackクライアントから
実施しなければならない
- 11. ディプロイメントのガイドライン
• OpenStack IceHouseからNeutronその他の必要なモジュールをインストール
• インストール説明資料:http://docs.openstack.org/icehouse/
• Brocade VCSプラグインを設定(必要な場合)
• OpenStack IceHouseに組み込みまれたBrocade VCSプラグインを設定
• Python ncclientパッケージをインストール。VCSプラグインからVDXスイッチへのNETCONF通信に使用
• 説明資料:https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/brocade/README.md
• MLXプラグインのtarファイルをダウンロード:<Location of tar file TBD>
• MLXプラグインのtarファイルを展開して、install_server.shスクリプトを実行
• 設定ファイルneutron.confの編集
• service_pluginsエントリにMPLS VPNサービス・プラグインを設定
• Brocade MPLS VPNドライバのservice_providerエントリを追加
• Neutronサーバを再起動
• 詳細については、tarファイルに入ったDeployment_Guide_MLX_Plugin.docを参照
MPLS VPNサービス拡張、Brocade MLXプラグイン
© 2014 Brocade Communications Systems, Inc. 11
- 13. MPLS VPNの構成設定
• (下の手順では、OpenStackコントローラのIP
を10.10.10.10、Neutronのポートを9696と
仮定したときのURLを使用)
• ステップ1:Adminからプロバイダ・エッジを作成。
REST URL:
http://10.10.10.10:9696/v2.0/mplsvpn
/provider_edges
• ステップ2:Adminからテナントの接続回線を
作成。REST URL:
http://10.10.10.10:9696/v2.0/mplsvpn
/attachment_circuits
© 2014 Brocade Communications Systems, Inc. 13
MPLSネットワーク
プロバイダ
エッジ
VLAN
ネット
ワーク
データセンター1
MPLS VPN
サービス
プロバイダ
エッジ
VLAN
ネット
ワーク
VM
データセンター2
OpenStackコントローラ
接続
回線
接続回線
ステップ1
ステップ2
ステップ3ステップ4
ステップ5 VM
• ステップ3:AdminからテナントのMPLS VPNを作成。REST URL:http://10.10.10.10:9696/v2.0/mplsvpn/mplsvpns
• ステップ4:Brocade VCS Neutron ML2プラグインを使って、テナントのVLANネットワークを作成(VCSスイッチにVLAN
を設定、REST URL:http://10.10.10.10:9696/v2.0/networks)
• ステップ5:テナントで、VLANネットワークにVMインスタンスを作成。MLX機器でVPLSにVLANを設定
• データセンター2のOpenStackコントローラから、ステップ1~5を繰り返し
OpenStackコントローラ
- 14. プロバイダ・エッジの作成 – Neutron CLI
© 2014 Brocade Communications Systems, Inc. 14
コマンド 出力
mplsvpn-provideredge-create stack@vm-ubuntu-51-42:~$ neutron mplsvpn-provideredge-create --name DataCenter1
Created a new provider_edge:
+-------+--------------------------------------+
| Field | Value |
+-------+--------------------------------------+
| id | c5e60365-5b20-4c54-85bf-dfaae44ba5de |
| name | DataCenter1 |
+-------+--------------------------------------+
mplsvpn-provideredge-list stack@vm-ubuntu-51-42:~$ neutron mplsvpn-provideredge-list
+--------------------------------------+-----------------+
| id | name |
+--------------------------------------+-----------------+
| c5e60365-5b20-4c54-85bf-dfaae44ba5de | DataCenter1 |
+--------------------------------------+-----------------+
mplsvpn-provideredge-show stack@vm-ubuntu-51-42:~$ neutron mplsvpn-provideredge-show c5e60365-5b20-4c54-85bf-dfaae44ba5de
+-------+--------------------------------------+
| Field | Value |
+-------+--------------------------------------+
| id | c5e60365-5b20-4c54-85bf-dfaae44ba5de |
| name | DataCenter1 |
+-------+--------------------------------------+
mplsvpn-provideredge-delete stack@vm-ubuntu-51-42:~$ neutron mplsvpn-provideredge-delete c5e60365-5b20-4c54-85bf-dfaae44ba5de
Deleted provider_edge: c5e60365-5b20-4c54-85bf-dfaae44ba5de
- 15. MPLS VPN REST API
プロバイダ・エッジの作成 – ステップ1
© 2014 Brocade Communications Systems, Inc. 15
Request:
POST /v2.0/mplsvpn/provider_edges
Accept: application/json
{
"provider_edges":[
{
"name": "DC1_Provider_Edge”
},
{
"name": "DC2_Provider_Edge”
}]
}
Response:
{
"provider_edges": [
{
"name": "DC1_Provider_Edge”
"id": "<UUID value>"
},
{
"name": "DC2_Provider_Edge”
"id": "<UUID value>"
}]
}
- 16. プロバイダ・エッジの作成 – REST API
リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 16
作成はPOST
プロバイダ・エッジ作成のURL
本文には、PEの
作成に使う名前の
パラメータを収めるレスポンス
レスポンスに入った、
作成されたPEの情報
- 17. プロバイダ・エッジのGET処理 – REST API
リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 17
GETメソッド
プロバイダ・エッジのGET処理のURL
本文は空
レスポンス
レスポンスに入った
PEインスタンスのリスト
- 18. 接続回線の作成 – Neutron CLI
© 2014 Brocade Communications Systems, Inc. 18
コマンド 出力
mplsvpn-attachmentcircuit-create stack@vm-ubuntu-51-42:~$ neutron mplsvpn-attachmentcircuit-create --name Demo_AC --network_type L2 --
provider_edge_id e508943a-e6e9-4f83-b138-ed9b9a76e947
Created a new attachment_circuit:
+------------------+--------------------------------------+
| Field | Value |
+------------------+--------------------------------------+
| id | 7662ac23-134c-40da-bc13-e3ef818f3f45 |
| name | Demo_AC |
| network_type | L2 |
| provider_edge_id | e508943a-e6e9-4f83-b138-ed9b9a76e947 |
+------------------+--------------------------------------+
mplsvpn-attachmentcircuit-list stack@vm-ubuntu-51-42:~$ neutron mplsvpn-attachmentcircuit-list
+--------------+--------------------------------------+
| name | id |
+--------------+--------------------------------------+
| Demo_AC | 7662ac23-134c-40da-bc13-e3ef818f3f45 |
+--------------+--------------------------------------+
mplsvpn-attachmentcircuit-show stack@vm-ubuntu-51-42:~$ neutron mplsvpn-attachmentcircuit-show 7662ac23-134c-40da-bc13-e3ef818f3f45
+------------------+--------------------------------------+
| Field | Value |
+------------------+--------------------------------------+
| id | 7662ac23-134c-40da-bc13-e3ef818f3f45 |
| name | Demo_AC |
| network_type | L2 |
| provider_edge_id | e508943a-e6e9-4f83-b138-ed9b9a76e947 |
+------------------+--------------------------------------+
mplsvpn-attachmentcircuit-delete stack@vm-ubuntu-51-42:~$ neutron mplsvpn-attachmentcircuit-delete 7662ac23-134c-40da-bc13-
e3ef818f3f45
Deleted attachment_circuit: 7662ac23-134c-40da-bc13-e3ef818f3f45
- 19. MPLS VPN REST API
接続回線の作成 – ステップ2
© 2014 Brocade Communications Systems, Inc. 19
Request:
POST /v2.0/mplsvpn/attachment_circuits
Accept: application/json
{
"attachment_circuits": [
{
"name": "DataCenter 1",
“type”: “L2” // ほかにはL3
"provider_edge_id": "<UUID of provider edge 1>",
"networks": [
{
"network_id": "<UUID of L2 network to be extended>"
} // 複数のL2ネットワークも指定可]
},
{
"name": "DataCenter 2",
“type”: “L2” // ほかにはL3
"provider_edge_id": "<UUID of provider edge 2>",
"networks": [
{
"network_id": "<UUID of L2 network to be extended>"
} // 複数のL2ネットワークも指定可]
}]
}
Response:
{
"attachment_circuits": [
{
"name": "DataCenter 1",
"id": "<UUID of attachment circuit>",
"tenant_id": "<UUID of the tenant for which it has been created>"
},
{
"name": "DataCenter 2",
"id": "<UUID of attachment circuit>",
"tenant_id": "<UUID of the tenant for which it has been created>"
}]
}
- 20. 接続回線の作成 – REST API
リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 20
作成はPOST
接続回線の作成のURL
本文には、名前、
ネットワークのタイプ、
PE ID等を収めるレスポンス
レスポンスに入った、
作成された接続回線の
情報
- 21. 接続回線のGET処理 – REST API
リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 21
GETメソッド
接続回線のGET処理のURL
本文は空
レスポンス
レスポンスに入った接続
回線インスタンスのリスト
- 22. MPLS VPNの作成 – Neutron CLI
© 2014 Brocade Communications Systems, Inc. 22
コマンド 出力
mplsvpn-create stack@vm-ubuntu-51-42:~$ neutron mplsvpn-create --name Demo_MPLSVPN --vpn_id 500
Created a new mplsvpn:
+----------------+-------------------------------------------------------------------------------------+
| Field | Value |
+----------------+-------------------------------------------------------------------------------------+
| id | d5ce38e1-172f-4dcc-876c-768654e60e0a |
| name | Demo_MPLSVPN |
| status | ACTIVE |
| tenant_id | 5ae242ce0f154028b3b8b3d14e357863 |
| tunnel_options | {"tunnel_backup": "frr", "qos": "Gold", "bandwidth": 10, "tunnel_type": "fullmesh"} |
| vpn_id | 500 |
+----------------+-------------------------------------------------------------------------------------+
mplsvpn-list stack@vm-ubuntu-51-42:~$ neutron mplsvpn-list
+--------------------------------------+--------------+--------+
| id | name | status |
+--------------------------------------+--------------+--------+
| d5ce38e1-172f-4dcc-876c-768654e60e0a | Demo_MPLSVPN | ACTIVE |
+--------------------------------------+--------------+--------+
mplsvpn-show stack@vm-ubuntu-51-42:~$ neutron mplsvpn-show d5ce38e1-172f-4dcc-876c-768654e60e0a
+----------------+-------------------------------------------------------------------------------------+
| Field | Value |
+----------------+-------------------------------------------------------------------------------------+
| id | d5ce38e1-172f-4dcc-876c-768654e60e0a |
| name | Demo_MPLSVPN |
| status | ACTIVE |
| tenant_id | 5ae242ce0f154028b3b8b3d14e357863 |
| tunnel_options | {"tunnel_backup": "frr", "qos": "Gold", "bandwidth": 10, "tunnel_type": "fullmesh"} |
| vpn_id | 500 |
+----------------+-------------------------------------------------------------------------------------+
mplsvpn-delete stack@vm-ubuntu-51-42:~$ neutron mplsvpn-delete d5ce38e1-172f-4dcc-876c-768654e60e0a
Deleted mplsvpn: d5ce38e1-172f-4dcc-876c-768654e60e0a
- 23. MPLS VPN REST API
MPLS VPNの作成 – ステップ3
© 2014 Brocade Communications Systems, Inc. 23
Request:
POST /v2.0/mplsvpn/mplsvpns
Accept: application/json
{
"mplsvpns":
{
"name": "Datacenter Interconnect",
"vpn_id": <Integer VPN ID>
“type”: “L2”, // ほかにはL3
"tunnel_options":
{
“tunnel_type”: “fullmesh”, // ほかにはCustomized
“tunnel_backup”: “frr”, // ほかにはSecondary
“qos”: “Gold”, // ほかにSilver、Bronze
“bandwidth”: “10" // 単位はGbps
}
"attachment_circuits": [
{
"attachment_circuit_id": "<UUID of attachment circuit>"
},
{
"attachment_circuit_id": "<UUID of attachment circuit>"
}]
}
Response:
{
"mplsvpns":
{
"id": "<UUID of mpls vpn service>",
"tenant_id": "<UUID of the tenant for which VPN was created>"
"status": "DOWN"
// 読み出しコールの間に、
// 両端点がUPならば“ACTIVE”
}
}
• Neutronクライアントの相当CLIコマンド
• mplsvpn-list – 既存のMPLS VPNインスタンスを一覧表示
• mplsvpn-show – 特定のMPLS VPNインスタンスの情報を表示
• mplsvpn-create – MPLS VPNインスタンスを作成
• mplsvpn-delete – MPLS VPNインスタンスを削除
- 24. MPLS VPNの作成 – REST API
リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 24
作成はPOST
MPLS VPN作成のURL
本文には、名前、
VPN ID、トンネル・
オプション等を収める
レスポンス
VPLS作成が成功すれば、
レスポンス・オブジェクトの
statusはACTIVE
- 25. MPLS VPNのGET処理 – REST API
リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 25
GETメソッド
MPLS VPNのGET処理のURL
本文は空
レスポンス
レスポンスに入った、
MPLS VPNインスタンス
のリスト
- 26. THANK YOU
26© 2014 Brocade Communications Systems, Inc.
本件に関するお問合せ
https://www.brocadejapan.com/form/contact
ブロケード コミュニケーションズ システムズ株式会社