26
MPLS VPNデータセンター間接続 Mohammad HanifSWエンジニアリング・ディレクタ Angela Smith、シニアSWエンジニア Muhammad Durrani、主任SWテスト・エンジニア 201471 © 2014 Brocade Communications Systems, Inc.

【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

  • Upload
    brocade

  • View
    181

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

MPLS VPNデータセンター間接続

Mohammad Hanif、SWエンジニアリング・ディレクタ

Angela Smith、シニアSWエンジニア

Muhammad Durrani、主任SWテスト・エンジニア

2014年7月

1 © 2014 Brocade Communications Systems, Inc.

Page 2: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

ご注意

• このプレゼンテーションで取り上げている製品には開発途上のものもあり、リリース日程、価格、製品機能など、詳細には変更が加わることがあります。最終的に、ここで意図したような機能を果たさない製品になることもあり、また正規リリースまで至らないケースもあり得ます。正式リリース版はこのプレゼンテーションで説明する、事前バージョンとはかなり異なるものになる場合があります。

• プレゼンテーションの内容は関係する製品やサービスについて、明示、非明示を問わず、法律上その他の、どのような種類の保証とも見なされるものではありません。これは、商品性や、特定目的への適合性、第三者の権利侵害の有無などについての暗黙の保証も含みます。

• Brocade、Bウイング・シンボル、DCX、Fabric OS、File Lifecycle Manager、MyView、StorageXは、登録商標であり、DCFM、SAN Healthは、米国その他の国で、Brocade Communications Systems, Inc.が所有する商標です。その他のブランド、製品名、サービス名は各所有者の製品またはサービスを示す商標またはサービスマークである場合があります。

© 2014 Brocade Communications Systems, Inc. 2

Page 3: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

今回の内容

• 概要

• MPLS VPNのビルディング・ブロック

• OpenStackでの運用の流れ

• L2データセンター間接続の利用例

• 次の課題

• まとめとポイント

• ディプロイメントのガイドライン

• 構成の手順とNeutron CLI & REST APIの定義

• 今後の予定

© 2014 Brocade Communications Systems, Inc. 3 3

Page 4: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

概要

• 複数のデータセンター(DC)環境をまたいだクラウドの構築

• 共有リソース・プールの地域分散

• 複数のデータセンターに広がるテナント・ネットワーク

• L2/L3 VPNを展開するMPLSテクノロジ

• QoS保証を向上

• ネットワークの耐障害性を強化

• 処理負荷(VMなど)をデータセンター間で移動

• DC間WAN上で、大規模フローを最適に配分(データ・バックアップ時その他)

データセンター間オーケストレーションの必要性

© 2014 Brocade Communications Systems, Inc. 4

Page 5: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

© 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相互接続

Page 6: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

© 2014 Brocade Communications Systems, Inc. 6

MPLS VPNのビルディング・ブロック

Page 7: 【Brocade OpenStack ソリューション】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

Page 8: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

© 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オーケストレータ/コントローラ

Page 9: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

次の課題 大規模フローのグローバル負荷分散による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

Page 10: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

まとめとポイント 新規アプリケーション/サービスの迅速で低コストの展開

© 2014 Brocade Communications Systems, Inc. 10

• 複数のデータセンターをまたぐテナント・ネットワークをOpenStackで構築

• 別のデータセンターにある物理サーバへもVMを移動

• Neutron APIから、L2/L3 MPLS VPNをプロビジョニング

• BGPオート・ディスカバリによって、リモート側PEを自動検出(L2 VPNの場合) –

マニュアル作業を減らすダイナミックな構成設定

• オーケストレーション/コントロールは、分散したOpenStackクライアントから

実施しなければならない

Page 11: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

ディプロイメントのガイドライン

• 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

Page 12: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

ディプロイメントのガイドライン

• 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

Page 13: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

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コントローラ

Page 14: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

プロバイダ・エッジの作成 – 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

Page 15: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

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>"

}]

}

Page 16: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

プロバイダ・エッジの作成 – REST API リクエスト/レスポンスの例

© 2014 Brocade Communications Systems, Inc. 16

作成はPOST

プロバイダ・エッジ作成のURL

本文には、PEの 作成に使う名前の パラメータを収める レスポンス

レスポンスに入った、 作成されたPEの情報

Page 17: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

プロバイダ・エッジのGET処理 – REST API リクエスト/レスポンスの例

© 2014 Brocade Communications Systems, Inc. 17

GETメソッド

プロバイダ・エッジのGET処理のURL

本文は空

レスポンス

レスポンスに入った PEインスタンスのリスト

Page 18: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

接続回線の作成 – 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

Page 19: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

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>"

}]

}

Page 20: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

接続回線の作成 – REST API リクエスト/レスポンスの例

© 2014 Brocade Communications Systems, Inc. 20

作成はPOST

接続回線の作成のURL

本文には、名前、ネットワークのタイプ、PE ID等を収める レスポンス

レスポンスに入った、 作成された接続回線の情報

Page 21: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

接続回線のGET処理 – REST API リクエスト/レスポンスの例

© 2014 Brocade Communications Systems, Inc. 21

GETメソッド

接続回線のGET処理のURL

本文は空

レスポンス

レスポンスに入った接続回線インスタンスのリスト

Page 22: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

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

Page 23: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

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インスタンスを削除

Page 24: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

MPLS VPNの作成 – REST API リクエスト/レスポンスの例

© 2014 Brocade Communications Systems, Inc. 24

作成はPOST

MPLS VPN作成のURL

本文には、名前、 VPN ID、トンネル・ オプション等を収める

レスポンス

VPLS作成が成功すれば、レスポンス・オブジェクトのstatusはACTIVE

Page 25: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

MPLS VPNのGET処理 – REST API リクエスト/レスポンスの例

© 2014 Brocade Communications Systems, Inc. 25

GETメソッド

MPLS VPNのGET処理のURL

本文は空

レスポンス

レスポンスに入った、MPLS VPNインスタンスのリスト

Page 26: 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続

THANK YOU

26 © 2014 Brocade Communications Systems, Inc.

本件に関するお問合せ

https://www.brocadejapan.com/form/contact

ブロケード コミュニケーションズ システムズ株式会社