Más contenido relacionado
La actualidad más candente (20)
Similar a OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介 (20)
Más de Takashi Sogabe (9)
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
- 2. あなた、誰?
• Takashi Sogabe (@rev4t)
• IIJという会社でサービスやデバイスの開発を
しています
– 最近は、新しいサービスを作るためにソフトウェア
を検証したり、ネットワーク構築もやっています
– 自称フルスタックエンジニアです
- 7. 他に何かできるの?
• Service Chaining
– いわゆるNFV
– Firewallなど、色々な機能をVMに挟み込める
• Network Monitoring
– 通信中のセッション情報をWeb画面から閲覧
– 必要であれば、Web画面からtcpdumpが出来る
• Remote SPAN(RSPAN)のオーバーレイネットワーク版と
いう感じ
- 8. テストに必要な最小構成は?
• PC server 1台
– Juniper推奨は5台以上です
– テスト目的であれば、1台あれば十分です
• ルータ 1台
– MPLS VPNが喋られる物
– Juniper MX や SRXが使えます
– External Router不要であれば無くても大丈夫
- 11. インストール(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
- 12. インストール(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
(自動的に再起動されます)
- 13. 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: ‘<ホストのパスワード>’,
}
- 17. 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;
}
- 19. 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を追加する方法が無
い模様です
- 21. ネットワークの設定(1)
• 設定方法は3つ
– OpenContrail Web画面から設定
– OpenStackから設定
• 但し、一部パラメタはneutron(quantum)から設定でき
ない
– OpenContrail REST API
• API server: http://(controller_host):8082/
• 今のところ、ドキュメントが全くありません
– Top level のURLを叩けば、使い方は大体分かると思います
- 35. 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
- 36. 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
- 37. 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
- 38. 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
- 39. 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
- 47. まとめ
• とても使いやすい管理画面
– オーバレイ上の通信を把握できる
• スケールアウトが期待できそうなアーキテクチャ
– オーバーレイ上の通信は各ノードが自律的に行なう
ため、コントローラの仕事が少ない
– Cassandraを用いたスケールアウト性能の高いバック
エンドデータベース
– External router はL3VPNルータを沢山接続することで
アップリンクを増強できる
• VXLANも使えるらしいけれど、管理画面からはまだ設定でき
ない模様