OpenStackユーザ会 第15回勉強会「OpenStack+OpenContrailで実現するマルチテナントIaaSのご紹介」講演資料公開

OpenStackユーザ会 第15回勉強会「OpenStack+OpenContrailで実現するマルチテナントIaaSのご紹介」講演資料公開

OSS×クラウド最新TOPICS 2013年11月18日 18:03

OpenStackユーザ会 第15回勉強会「OpenStack+OpenContrailで実現するマルチテナントIaaSのご紹介」講演資料公開

OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介 Presentation Transcript OpenStack + OpenContrailで 実現するマルチテナントIaaS のご紹介 Takashi Sogabe(@rev4t) Internet Initiative Japan., Inc. あなた、誰? • Takashi Sogabe (@rev4t) • IIJという会社でサービスやデバイスの開発を しています – 最近は、新しいサービスを作るためにソフトウェア を検証したり、ネットワーク構築もやっています – 自称フルスタックエンジニアです  何したいの? • Contrail がオープンソースになりました! – エンジニアとしては使って試すのが理解への早 道 – ソースコードを眺めてニヤニヤしたい – まずはデモ環境を作って遊んでみよう OpenContrailって何? • スケールアウト性の高いIaaSを簡単に構築で きるソフトウェア – いわゆるSDN製品です • OpenStack, CloudStackと連係して動作する • コントロールプレイン: BGP又はXMPP • データプレイン: MPLS over GRE – MPLS over UDP, VXLANにも対応している模様 情報源 • http://opencontrail.org/ – 各種ドキュメントやパッケージが提供されている • https://github.com/Juniper/contrail-controller – ソースコードはgithub上に公開されている • http://juni.pr/17tlcQh – Juniper有村さんがJ-NETに投稿された、 OpenContrailの貴重な日本語情報です 何故MPLS/BGPなの? • 何といっても、枯れた技術なので安心して使 える – ISP各社が既に IP-VPNサービスとしてMPLSを利用 中 – 沢山のVPNコネクションを張っても性能が出る – DC間の接続やハイブリッドクラウドが簡単に出来 る • External routerはL3VPNルータなので、相互接続が簡 単に出来る 他に何かできるの? • Service Chaining – いわゆるNFV – Firewallなど、色々な機能をVMに挟み込める • Network Monitoring – 通信中のセッション情報をWeb画面から閲覧 – 必要であれば、Web画面からtcpdumpが出来る • Remote SPAN(RSPAN)のオーバーレイネットワーク版と いう感じ テストに必要な最小構成は? • PC server 1台 – Juniper推奨は5台以上です – テスト目的であれば、1台あれば十分です • ルータ 1台 – MPLS VPNが喋られる物 – Juniper MX や SRXが使えます – External Router不要であれば無くても大丈夫 デモ環境のサーバ構成 インターネット接続ルータ 10.0.0.1/24 External Router(Gateway Router) .79 192.168.192.0/24 .64 • Contrail System • OpenStack (controller, etc) • OpenStack(nova-compute) • vRouter OpenContrail アーキテクチャ インストール(1) • http://juni.pr/1alNn7h – sourceからビルド • git + repo – セットアップが大変なので、ビルドのみの用途に向いている • devstack – https://github.com/dsetia/devstack – Binaryパッケージを使用 • Juniper提供のOSイメージ • rpmパッケージ (CentOS or Fedora) • Juniper.net のアカウントが必要 – Online formから申請すれば、1日程度でアカウントが発行されるとのこと • 今回のデモでは、OSイメージを使用 – Contrail Install Media for CentOS 90-day EVAL (Release 1.02) – OpenStack Grizzly インストール(2) 1. OSイメージをダウンロード、PCにインストール 2. setup.sh の実行 – cd /opt/contrail/contrail_packages ./setup.sh 3. testbedファイルの作成 4. システムのインストール – – – – cd /opt/contrail/utils fab install_contrail (自動的に再起動されます) cd /opt/contrail/utils fab setup_all (自動的に再起動されます) testbedファイル • cd /opt/contrail/utils/fabfile/testbeds • cp testbed_singlebox_example.py testbed.py • vi testbed.py を編集 ext_routers = *(‘srx1’, ‘192.168.192.79’)+ (external router が無い場合はコメントのままにしておく) host1 = ‘root@192.168.192.64’ host_build = ‘root@192.168.192.64’ env.passwords = { host1: ‘<ホストのパスワード>’, host_build: ‘<ホストのパスワード>’, } インストール(3) • インストールが成功すれば、Horizon及び ContrailのWeb画面にログインできるようにな ります – Horizon • http://(ホストのIPアドレス)/ • username: admin • password: contrail123 – Contrail • http://(ホストのIPアドレス):8080/ • username, password は Horizonと同じ External Routerの設定(1) • Interfaceの設定 interfaces { ge-0/0/0 { unit 0 { family inet { address 192.168.192.79/24 } } } ge-0/0/1 { unit 0 { family inet { address 10.0.0.1/24 } } } External Routerの設定(2) • L3VPNの設定 routing-options { static { route 0.0.0.0/0 next-hop 192.168.192.5 } route-distinguisher-id 192.168.192.79 autonomous-system 64512 dynamic-tunnels { setup1 { source-address 192.168.192.79 gre destination-networks { 192.168.192.0/24 } } } } protocols { bgp { group contrail-controller { type internal local-address 192.168.192.79 family inet-vpn { unicast } neighbor 192.168.192.64 } } stp } External Routerの設定(3) • VRFの設定 routing-instances { cusotomer-public { instance-type vrf interface ge-0/0/1.0 vrf-target target:64512:10000 routing-options { static { route 0.0.0.0/0 next-hop 10.0.0.2 } } } } External Routerの設定(4) • SRXを使う場合は forwarding mode を packet basedにする security { forwarding-options { family { inet6 { mode packet-based } mpls { mode packet-based } iso { mode packet-based } } } } root> show security flow status Flow forwarding mode: Inet forwarding mode: packet based Inet6 forwarding mode: packet based MPLS forwarding mode: packet based ISO forwarding mode: packet based Flow trace status Flow tracing status: off Flowベースだと、security zone に dynamic tunnelを追加する方法が無 い模様です OPENCONTRAILを使ったテナント ネットワークの構築 ネットワークの設定(1) • 設定方法は3つ – OpenContrail Web画面から設定 – OpenStackから設定 • 但し、一部パラメタはneutron(quantum)から設定でき ない – OpenContrail REST API • API server: http://(controller_host):8082/ • 今のところ、ドキュメントが全くありません – Top level のURLを叩けば、使い方は大体分かると思います テナントネットワーク .1 Floating-ip External router vRouter 10.1.0.253 .254 .253 .252 external network 10.0.0.0/24 global 10.1.0.0/24 public 10.255.0.0/24 .254 vRouter test-public-1 .253 test-private-1 test-public-2 .252 test-private-2 .254 private 10.254.0.0/24 ネットワークの作成(public) IPアドレスブロックの作成(public) Globalネットワークの設定 test-public-1, test-public-2 起動 Ping from test-public-1 to 10.0.0.1 Privateネットワークの作成 test-private-1, test-private-2 起動 Ping from test-private-1 to test-public-1 Policyの作成 Policyの適用 再度 Ping from test-private-1 to test-public-1 Floating-ipの作成、割り当て Ping from ext-router to test-public-1 root> ping 10.1.0.253 routing-instance cusotomer-public PING 10.1.0.253 (10.1.0.253): 56 data bytes 64 bytes from 10.1.0.253: icmp_seq=0 ttl=62 time=31.423 ms 64 bytes from 10.1.0.253: icmp_seq=1 ttl=62 time=2.510 ms ^C --- 10.1.0.253 ping statistics --2 packets transmitted, 2 packets received, 0% packet loss External router show route (1) root> show route inet.0: 5 destinations, 5 routes (4 active, 0 holddown, 1 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Static/5] 1d 20:49:14 > to 192.168.192.5 via ge-0/0/0.0 10.1.0.1/32 *[Local/0] 1d 20:49:29 Reject 192.168.192.0/24 *[Direct/0] 1d 20:49:14 > via ge-0/0/0.0 192.168.192.79/32 *[Local/0] 1d 20:49:20 Local via ge-0/0/0.0 External router show route (2) inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.192.0/24 *[Tunnel/300] 1d 20:49:46 Tunnel 192.168.192.64/32 *[Tunnel/300] 00:56:35 > via gr-0/0/0.32769 External router show route (3) cusotomer-public.inet.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Static/5] 1d 20:49:14 > to 10.0.0.2 via ge-0/0/1.0 10.0.0.0/24 *[Direct/0] 1d 20:49:14 > via ge-0/0/1.0 10.0.0.1/32 *[Local/0] 1d 20:49:19 Local via ge-0/0/1.0 10.1.0.253/32 *[BGP/170] 00:07:40, localpref 100, from 192.168.192.64 AS path: ? > via gr-0/0/0.32769, Push 16 External router show route (4) mpls.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 299792 *[VPN/170] 02:02:08 > to 10.0.0.2 via ge-0/0/1.0, Pop bgp.l3vpn.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.192.64:2:10.1.0.253/32 *[BGP/170] 00:07:40, localpref 100, from 192.168.192.64 AS path: ? > via gr-0/0/0.32769, Push 16 Network管理(1) Network管理(2) Network管理(3) Flowの情報をリアルタイムに把握できる Network管理(4) Routing Table の情報を確認 Analyzerを使う(1) • L3SWのRemote SPAN(RSPAN)機能を便利にし たようなもの – パケットを捕捉したいネットワークとパケットの種 類を指定 • Analyzerインスタンスが自動的に起動する • 管理者は、OpenStackの管理画面上からWiresharkを 操作することでパケットダンプを閲覧できる – Compute Nodeにログインしてtapインタフェースを 直接tcpdumpすることもできるけれど、Analyzerの 方がずっと便利 Analyzerを使う(2) Analyzerを使う(3) まとめ • とても使いやすい管理画面 – オーバレイ上の通信を把握できる • スケールアウトが期待できそうなアーキテクチャ – オーバーレイ上の通信は各ノードが自律的に行なう ため、コントローラの仕事が少ない – Cassandraを用いたスケールアウト性能の高いバック エンドデータベース – External router はL3VPNルータを沢山接続することで アップリンクを増強できる • VXLANも使えるらしいけれど、管理画面からはまだ設定でき ない模様 今後調べたいこと • Service Chaining • ノード数を増やしてスケールアウト性能を測 定 • VXLANで external router を終端 • Havana対応版を使ってみたい

OSSNEWSに広告を掲載しませんか?

最新TOPICS

【講演資料を公開】12/11【システム運用の効率化と、Zabbixによるクラウド・コンテナや、IoTの監視 ~そしてZabbix最新バージョン4.4の解説と、Zabbix5.0への道】(01月10日 09:15)

2019/12/11(水)13:30~電気ビル共創館3F カンファレンスCにて 【システム運用の効率化と、Zabbixによるクラウド・コンテナや、IoTの監視 ~そしてZabbix最新バージョン4.4の解説と、Zabbix5.0への道~】 と題したセミナーが開催されました。 当日は、寒空のなか掲題にご興味をお持ちの58名もの方々にご来場頂くことができました。ありがとうございます。 ...

関連オープンソース

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter