Upload
brocade
View
181
Download
2
Embed Size (px)
Citation preview
MPLS VPNデータセンター間接続
Mohammad Hanif、SWエンジニアリング・ディレクタ
Angela Smith、シニアSWエンジニア
Muhammad Durrani、主任SWテスト・エンジニア
2014年7月
1 © 2014 Brocade Communications Systems, Inc.
ご注意
• このプレゼンテーションで取り上げている製品には開発途上のものもあり、リリース日程、価格、製品機能など、詳細には変更が加わることがあります。最終的に、ここで意図したような機能を果たさない製品になることもあり、また正規リリースまで至らないケースもあり得ます。正式リリース版はこのプレゼンテーションで説明する、事前バージョンとはかなり異なるものになる場合があります。
• プレゼンテーションの内容は関係する製品やサービスについて、明示、非明示を問わず、法律上その他の、どのような種類の保証とも見なされるものではありません。これは、商品性や、特定目的への適合性、第三者の権利侵害の有無などについての暗黙の保証も含みます。
• Brocade、Bウイング・シンボル、DCX、Fabric OS、File Lifecycle Manager、MyView、StorageXは、登録商標であり、DCFM、SAN Healthは、米国その他の国で、Brocade Communications Systems, Inc.が所有する商標です。その他のブランド、製品名、サービス名は各所有者の製品またはサービスを示す商標またはサービスマークである場合があります。
© 2014 Brocade Communications Systems, Inc. 2
今回の内容
• 概要
• MPLS VPNのビルディング・ブロック
• OpenStackでの運用の流れ
• L2データセンター間接続の利用例
• 次の課題
• まとめとポイント
• ディプロイメントのガイドライン
• 構成の手順とNeutron CLI & REST APIの定義
• 今後の予定
© 2014 Brocade Communications Systems, Inc. 3 3
概要
• 複数のデータセンター(DC)環境をまたいだクラウドの構築
• 共有リソース・プールの地域分散
• 複数のデータセンターに広がるテナント・ネットワーク
• L2/L3 VPNを展開するMPLSテクノロジ
• QoS保証を向上
• ネットワークの耐障害性を強化
• 処理負荷(VMなど)をデータセンター間で移動
• DC間WAN上で、大規模フローを最適に配分(データ・バックアップ時その他)
データセンター間オーケストレーションの必要性
© 2014 Brocade Communications Systems, Inc. 4
© 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相互接続
© 2014 Brocade Communications Systems, Inc. 6
MPLS VPNのビルディング・ブロック
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
© 2014 Brocade Communications Systems, Inc. 8
L2データセンター間接続の利用例
DCコア (PE)
リーフ/スパイン
(CE)
VM2 VM1
データセンター1 MPLSネットワーク
MPLS VPNサービス LSPトンネル
DCコア (PE)
リーフ/スパイン
(CE)
VM2 VM1
データセンター2
OpenStackオーケストレータ/コントローラ
接続回線 接続回線
OpenStackオーケストレータ/コントローラ
次の課題 大規模フローのグローバル負荷分散による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
まとめとポイント 新規アプリケーション/サービスの迅速で低コストの展開
© 2014 Brocade Communications Systems, Inc. 10
• 複数のデータセンターをまたぐテナント・ネットワークをOpenStackで構築
• 別のデータセンターにある物理サーバへもVMを移動
• Neutron APIから、L2/L3 MPLS VPNをプロビジョニング
• BGPオート・ディスカバリによって、リモート側PEを自動検出(L2 VPNの場合) –
マニュアル作業を減らすダイナミックな構成設定
• オーケストレーション/コントロールは、分散したOpenStackクライアントから
実施しなければならない
ディプロイメントのガイドライン
• 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
ディプロイメントのガイドライン
• OpenStack IceHouseのNeutronクライアント・モジュールをインストール
• インストール説明資料:http://docs.openstack.org/icehouse/
• MLXプラグイン・クライアントのtarファイルをダウンロード:<Location of tar file TBD>
• MLXプラグインのtarファイルを展開して、install_client.shスクリプトを実行
MPLS VPN NeutronクライアントCLI
© 2014 Brocade Communications Systems, Inc. 12
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コントローラ
プロバイダ・エッジの作成 – 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
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>"
}]
}
プロバイダ・エッジの作成 – REST API リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 16
作成はPOST
プロバイダ・エッジ作成のURL
本文には、PEの 作成に使う名前の パラメータを収める レスポンス
レスポンスに入った、 作成されたPEの情報
プロバイダ・エッジのGET処理 – REST API リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 17
GETメソッド
プロバイダ・エッジのGET処理のURL
本文は空
レスポンス
レスポンスに入った PEインスタンスのリスト
接続回線の作成 – 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
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>"
}]
}
接続回線の作成 – REST API リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 20
作成はPOST
接続回線の作成のURL
本文には、名前、ネットワークのタイプ、PE ID等を収める レスポンス
レスポンスに入った、 作成された接続回線の情報
接続回線のGET処理 – REST API リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 21
GETメソッド
接続回線のGET処理のURL
本文は空
レスポンス
レスポンスに入った接続回線インスタンスのリスト
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
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インスタンスを削除
MPLS VPNの作成 – REST API リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 24
作成はPOST
MPLS VPN作成のURL
本文には、名前、 VPN ID、トンネル・ オプション等を収める
レスポンス
VPLS作成が成功すれば、レスポンス・オブジェクトのstatusはACTIVE
MPLS VPNのGET処理 – REST API リクエスト/レスポンスの例
© 2014 Brocade Communications Systems, Inc. 25
GETメソッド
MPLS VPNのGET処理のURL
本文は空
レスポンス
レスポンスに入った、MPLS VPNインスタンスのリスト
THANK YOU
26 © 2014 Brocade Communications Systems, Inc.
本件に関するお問合せ
https://www.brocadejapan.com/form/contact
ブロケード コミュニケーションズ システムズ株式会社