SlideShare a Scribd company logo
Contrail Manual インストールとAnsible
Daisuke Nakajima
Contrailの構成
Contrail Components
Contrailのコンポーネント概要
Controller
Configuration
Controller
Config Analytics
Control
Virtual Machine
VM VM
Bare metal Server
IP network
Overlay
Tunnel
XMPP
XMPP
BGP+Netconf
Orchestration System
Web UI / OSS / BSS
WAN, Internet
REST
BGP
vRouter
VA
Any Gateway Router
Compute Node ToR Switch
• コントローラー
• Config Node
• REST/APIインターフェイスをもち、外部から入力されたデータを格納、内部情報
に変換し、IPMAPサーバ経由でControl nodeに送る。Node情報を格納する
Discovery serverや、Device managerもConfig nodeの一部。
• Control Node
• Control nodeはvRouterや外部BGPルータなどと接続し、データのやり取りを行
う。
• Analytics Node
• トラフィックの情報や、ログなどを格納。REST/APIをもち、外部からのクエリにも
答える。
• Database Node
• CassandraとZookeeperからなるデータベース。
• ToR Agent
• OVSDB経由で物理スイッチにポート情報やMAC情報を送信し、物理サーバな
どを仮想ネットワークに接続する。
• フォワーダー
• vRouter
• オリジナルのデータをMPLSoGRE, MPLSoUDP, VXLANなどにカプセル化し、
データの転送を行う。フィルターなどもここで行う。
Database
TSN
ToR Agent
vRouter
OVSDB
Contrail Components
Contrail Architecture Diagram
• 右の図はOpenstackとContrailの連携図です。OpenstackとはNeutron
のプラグイン経由でContrailと接続します。
• ConrailはOpenstackのようにそれぞれのモジュールが疎結合している
モデルのため、スケールアウト/インはそれぞれのノードごとに行えます。
Contrail Node connection
Contrail プロセスの初期化
• ノード登録
• ContrailのプロセスはDiscovery serverに接続して自身を登録する
Config Node
Discovery
server
Node DB
Config node
IF-MAP
Server
Control node
XMPP
Server
Analytics node
Collector
IF-MAP server: 10.0.0.1
API Server : 10.0.0.1
xmpp Server : 10.0.0.2
DNS Server : 10.0.0.2
Collector : 10.0.0.3
API server DNS Server
Register
Contrail Node connection
Contrail プロセスの初期化
• Node 情報の配布
• ContrailのプロセスはDiscoveryサーバに自身が必要な情報をリクエストする。
• Discoveryサーバは自身のデータベースから必要な情報を配布する
Config Node
Discovery
server
Node DB
Compute node
vRouter
Agent
Request XMPP server Publish XMPP-Server
[10.0.0.2,10.0.0.3]
Config Node 2
REST API
Server
IF-MAP
server
RabbitMQ
Schema
Transformer
Standby
SVC Monitor
Discovery
Server
Contrail High Availability
Config Node High Availability
• Config node High Availability
• Active-Active model
• 全てのConfig nodeはアクティブモードで動作します。ただし、SVC-Monitor や
Schema TransformerなどのプロセスはActive Standbyです。
• 外部からデータを受け付けるプロセスのみIPアドレスの冗長化が必要です。冗
長化が必要なのは以下になります。デフォルトではLBとしてHA Proxyを使用し
ます。
1. REST API Server
2. RabbitMQ
3. Discovert Server
4. ToR Agent (TSNを使用する場合のみ)
HA proxy
Control Node
"BGP module"
Proxies
XMPP
IF-MAP
Client
HA proxy
Keepalived
Config Node 1
REST API
Server
Database
IF-MAP
server
RabbitMQ
Control Node
"BGP module"
Proxies
XMPP
IF-MAP
Client
Schema
Transformer
Active
SVC Monitor
Discovery
Server
Support service
Contrail Components
Config Node
• REST API Server
• contrail-api
• /etc/contrail/contrail-api.conf
• Ifmap Cassandra Discovery server Zookeeper Rabbitmq など
• Schema Transformer
• /etc/contrail/contrail-schema.conf
• Ifmap Cassandra Discovery server Zookeeper API Serverなど
• Service Monitor
• /etc/contrail/contrail-schema.conf
• Ifmap Cassandra Discovery server Zookeeper API Serverなど
• Device Manager
• /etc/contrail/contrail-device-manager.conf
• Ifmap Cassandra Discovery server Zookeeper Rabbitmq など
• Discovery Server
• /etc/contrail/contrail-discovery.conf
• Cassandra Zookeeper TTL など
• Message Bus
• /etc/rabbitmq/*
• rabbitmq.config のクラスタや属性情報 rabbitmq-env.confなど
• IF-MAP server
• /etc/ifmap-server/*
• Ifmap username など
Database NodeConfig Node
REST API
Server
Schema
Transformer
Orchestrator
REST
Cassandra
IF-MAP
server
Control
Node
Control
Node
IF-MAP
Message
Bus
Discovery
server
Compute
Node
Analytics
Node
Zookeeper
Service Monitor
Device Manager
Support service
Contrail Components
Config Node
• Node manager
• /etc/contrail/contrail-config-nodemgr.conf
• Discovery serverなど
• Common
• /etc/contrail/contrail-keystone-auth.conf
• Keystone ユーザー名 テナント名など
• Load Balancer ( for HA )
• /etc/haproxy/haproxy.cfg
• API server, Discovery Server , RabbitMQなどのLB設定情報
• /etc/keepalived/keepalived.conf
• VIPなどの情報
Database NodeConfig Node
REST API
Server
Schema
Transformer
Orchestrator
REST
Cassandra
IF-MAP
server
Control
Node
Control
Node
IF-MAP
Message
Bus
Discovery
server
Compute
Node
Analytics
Node
Zookeeper
Service Monitor
Device Manager
Contrail Components
Control Node
Control Node
Proxies
XMPP
Control
Node
Control
Node
Compute
Node
TSN
Config Node Config Node
IF-MAP
XMPP
IF-MAP
Client
Gateway
Routers
Service
Nodes
• IF-MAP Client / XMPP
• contrail-api
• /etc/contrail/contrail-control.conf
• 自IPアドレス Discovery server ifmapなど
• Proxies
• contrail-dns
• contrail-dns.conf
• 自IPアドレス Discovery server ifmapなど
• contrail-named
• /etc/contrail/dns/contrail-named.conf
• いわゆるBindの設定
• Node manager
• /etc/contrail/contrail-control-nodemgr.conf
• Discovery serverなど
BGP
Netconf
Contrail Components
Analytics Node
• REST API Server
• /etc/contrail/contrail-api.conf
• Cassandra Discovery server Redis server など
• Query engine
• /etc/contrail/contrail-query-engine.conf
• Cassandra Discovery server Redis server など
• Sandesh Collector
• /etc/contrail/contrail-collector.conf
• Cassandra Discovery server Redis server など
• SNMP Collector
• /etc/contrail/contrail-snmp-collector.conf
• Zookeeper Discovery serverなど
• Topology Builder
• /etc/contrail/cat contrail-topology.conf
• Zookeeper など
• Message Bus
• /etc/redis/*
• Redis serverの設定情報 など
• Node manager
• /etc/contrail/contrail-analytics-nodemgr.conf
• Discovery serverなど
Analytics Node
REST API
Server
Rules
Engine
Other
Analytics
Clients
Collector
All
Nodes
All
Nodes
Analytics Client
Generated API
UI, CLI
Application
Message Bus
Query
Engines
Sandesh
REST
Database Node
Cassandra
Zookeeper
Contrail Components
ToR Service Node (TSN)
• vRouter agent
• /etc/contrail/ contrail-vrouter-agent.conf
• Discovery server Default route 物理アドレス情報 など
• TOR agent
• /etc/contrail/ contrail-tor-agent-X-.conf
• Discovery server ToR Switch 情報 CA,Cert 情報など
• Node manager
• /etc/contrail/contrail-vrouter-nodemgr.conf
• Discovery serverなど
ToR Service Node
vRouter Agent
VXLAN
Control Node
vhost0
Kernel
pkt0
User
Config
VRFs
Policy
Table vRouter Forwarding Plane
ToR-Agent
Config
XMPP
Routing
Instance
Flow
Table
FIB
OVSDB
Client
Routing
Instance
Flow
Table
FIB
vhost0
Contrail Forwarding Plane
Compute Node
Compute Node
vRouter Agent
Overlay tunnels
MPLS over GRE/UDP or
VXLAN
Control Node
vhost0
Kernel
pkt0
User
Config
VRFs
Policy
Table vRouter Forwarding Plane
Virtual
Machine
(Tenant A)
Routing
Instance
Flow
Table
FIB
Tap Interfaces (vif)
Routing
Instance
Flow Table
FIB
Virtual
Machine
(Tenant B)
Virtual
Machine
(Tenant B)
• vRouter agent
• /etc/contrail/ contrail-vrouter-agent.conf
• Discovery server Default route 物理アドレス情報 など
• Node manager
• /etc/contrail/contrail-vrouter-nodemgr.conf
• Discovery serverなど
vhost0
Contrail other modules
• Cassandra
• /etc/cassandra/*
• Cassandraクラスタ情報 データベース情報 など
• Zookeeper
• /etc/zookeeper/conf/*
• Zookeeperクラスタ情報 データベース情報 など
Database Node
設定に必要な情報
設定に必要な情報
• IPアドレス
• Contrailが実際の通信に使うインターフェイスのIPアドレス
• 冗長化のためのIPアドレス
• 認証情報
• KeystoneのIPアドレス
• ユーザー名
• パスワード
• ネットワーク情報
• Contrailが使うAS番号
• ToR Switch情報
• ホスト名
• VTEP IPアドレス
• OVSポート
• ToR-Agent管理ポート
• 接続TSNホスト名
Ansibleでの自動化
Ansibleでの自動化
Ansibleとは?
• エージェントレスな構成管理ツール
• ChefやPuppetのようにサーバにエージェントがいらない
• YAML形式の設定ファイル
• 最近ネットワーク界隈で流行ってる(?)YAML形式
• 結構色々できる
• パッケージのインストール
• コンフィグ作成
• 条件分岐など・・・
Ansibleでの自動化
ControllerのPlaybook作りました
• 設定するのはこれだけ
1. Hostsに各ノードをインストールするサーバを設定
2. SSHユーザー/パスワード、Keystone情報、仮想IP情報、AS番号 (ToR-Agent)を設定
3. サーバの情報を設定
• https://github.com/nakadaisuke/contrail_ansible
※OpenstackとCompute nodeはインストールされません。
Ansibleでの自動化
前提
• OpenStackのインストール
• Neutron以外のパッケージ(NeutronはContrailのConfigノードにインストールされます。)
• 現時点でOpenStack Junoのみ対応
• Computeノードのインストールは条件付(Vif driverはApt-getでなくDpkgでインストール)
Ansibleでの自動化
1. Hostsに各ノードをインストールするサーバを設定
[database]
system001
system002
system003
[config]
system001
system002
system003
[control]
system001
system002
system003
[collector]
system001
system002
system003
[webui]
system001
system002
system003
[system]
system001
system002
system003
• hostsの編集
Ansibleでの自動化
2. SSHユーザー/パスワード、Keystone情報、仮想IP情報、
AS番号 (ToR-Agent)を設定
---
ansible_ssh_user: "lab"
ansible_ssh_pass: "juniper123"
contrail_keystone_address: "10.84.50.100"
contrail_admin_user: "admin"
contrail_admin_password: "password"
contrail_keepalived: yes
contrail_haproxy_address: "10.84.50.1" # 10.84.50.80
contrail_netmask: "255.255.255.0"
contrail_prefixlen: "24"
contrail_gateway: "10.84.50.254"
contrail_router_asn: "64512"
• group_vars/all.ymlの編集
Ansibleでの自動化
3.サーバの情報を設定
---
contrail_device: "p4p1"
contrail_address: "10.84.50.1"
contrail_mgmt_address: "172.27.113.85"
• host_vars/XXXXXX.ymlの作成
※サーバ数だけ作成
ここで設定するcontrail_deviceは実際にvRouterが通信するインターフェ
イスです。
Bondingする場合は先にBondingインターフェイスを作成して、bond0な
どを設定してください。
Ansibleでの自動化
4. Playbookの実行
• Contrailのパッケージを install/files/にコピー
• ansible-playbook -K -i hosts setup.yml
• 全てのノードをリスタート
現在進行中
Compute nodeへのvRouterのインストール
• なのですが・・・
• Vif Driverはpython-novaをインストールするときにインストールされる。Contrail付属のPython-novaを入れると依存の関
係でUbuntu リポジトリからとってくるNova関係のパッケージが入らない場合があるのが困ってます(またはその逆)。
※解決策:apt-get でなく、dpkgでContrail repositoryのdebファイルを直接インストール?!
参考リンク
• Juniper Github
• https://github.com/Juniper/
• Ansible置き場
• https://github.com/nakadaisuke/contrail_ansible

More Related Content

What's hot

Opencontrailの基本 for オープンソースカンファレンス2014 Kansai@Kyoto
Opencontrailの基本 for オープンソースカンファレンス2014 Kansai@KyotoOpencontrailの基本 for オープンソースカンファレンス2014 Kansai@Kyoto
Opencontrailの基本 for オープンソースカンファレンス2014 Kansai@Kyoto
Daisuke Nakajima
 
Cloud Operator Days Tokyo 2020
Cloud Operator Days Tokyo 2020Cloud Operator Days Tokyo 2020
Cloud Operator Days Tokyo 2020
Daisuke Nakajima
 
2016 interop sdi_showcase_contrail
2016 interop sdi_showcase_contrail2016 interop sdi_showcase_contrail
2016 interop sdi_showcase_contrail
Daisuke Nakajima
 
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたOpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
Takashi Sogabe
 
Open contrailmeetup 20161207
Open contrailmeetup 20161207Open contrailmeetup 20161207
Open contrailmeetup 20161207
Daisuke Nakajima
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Daisuke Nakajima
 
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
Takashi Sogabe
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
Kentaro Ebisawa
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Takashi Sogabe
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
npsg
 
OpenContrailの基本 for OSC Tokyo 2014 Spring
OpenContrailの基本 for OSC Tokyo 2014 SpringOpenContrailの基本 for OSC Tokyo 2014 Spring
OpenContrailの基本 for OSC Tokyo 2014 Spring
Daisuke Nakajima
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack QuantumAkihiro Motoki
 
OCP Serverを用いた OpenStack Containerの検証
 OCP Serverを用いたOpenStack Containerの検証 OCP Serverを用いたOpenStack Containerの検証
OCP Serverを用いた OpenStack Containerの検証
Takashi Sogabe
 
CloudStack 4.1 + NVP Integration
CloudStack 4.1 + NVP IntegrationCloudStack 4.1 + NVP Integration
CloudStack 4.1 + NVP Integration
Motonori Shindo
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
VirtualTech Japan Inc.
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察
Naoto MATSUMOTO
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
Tomoya Hibi
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
npsg
 

What's hot (20)

Opencontrailの基本 for オープンソースカンファレンス2014 Kansai@Kyoto
Opencontrailの基本 for オープンソースカンファレンス2014 Kansai@KyotoOpencontrailの基本 for オープンソースカンファレンス2014 Kansai@Kyoto
Opencontrailの基本 for オープンソースカンファレンス2014 Kansai@Kyoto
 
Cloud Operator Days Tokyo 2020
Cloud Operator Days Tokyo 2020Cloud Operator Days Tokyo 2020
Cloud Operator Days Tokyo 2020
 
2016 interop sdi_showcase_contrail
2016 interop sdi_showcase_contrail2016 interop sdi_showcase_contrail
2016 interop sdi_showcase_contrail
 
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたOpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
 
2015-ShowNet -DDoS/IX/BGPFlowspec/External
2015-ShowNet -DDoS/IX/BGPFlowspec/External2015-ShowNet -DDoS/IX/BGPFlowspec/External
2015-ShowNet -DDoS/IX/BGPFlowspec/External
 
Open contrailmeetup 20161207
Open contrailmeetup 20161207Open contrailmeetup 20161207
Open contrailmeetup 20161207
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料
 
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
OpenContrailの基本 for OSC Tokyo 2014 Spring
OpenContrailの基本 for OSC Tokyo 2014 SpringOpenContrailの基本 for OSC Tokyo 2014 Spring
OpenContrailの基本 for OSC Tokyo 2014 Spring
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum
 
OCP Serverを用いた OpenStack Containerの検証
 OCP Serverを用いたOpenStack Containerの検証 OCP Serverを用いたOpenStack Containerの検証
OCP Serverを用いた OpenStack Containerの検証
 
CloudStack 4.1 + NVP Integration
CloudStack 4.1 + NVP IntegrationCloudStack 4.1 + NVP Integration
CloudStack 4.1 + NVP Integration
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
 

Similar to Open contrailday 20150926

AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
直久 住川
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
griddb
 
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
Takashi Sogabe
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ  Amazon VPCAWS Black Belt Techシリーズ  Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
Amazon Web Services Japan
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -
NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -
NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -
Daiyu Hatakeyama
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらインターネット株式会社
 
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
Masatomo Ito
 
Bind 9.8 feature overview
Bind 9.8 feature overviewBind 9.8 feature overview
Bind 9.8 feature overview
Tomonori Takada
 
130329 04
130329 04130329 04
130329 04openrtm
 
20130329 rtm4
20130329 rtm420130329 rtm4
20130329 rtm4openrtm
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
Taiki
 
COD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメCOD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメwintechq
 
INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~
INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~
INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~
decode2016
 
NGINX + Ansible Automation Webinar (日本語版)
NGINX + Ansible Automation Webinar (日本語版)NGINX + Ansible Automation Webinar (日本語版)
NGINX + Ansible Automation Webinar (日本語版)
NGINX, Inc.
 
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
erakazu
 
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
真吾 吉田
 

Similar to Open contrailday 20150926 (20)

AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
 
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ  Amazon VPCAWS Black Belt Techシリーズ  Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -
NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -
NET 開発者のための Azure Service Fabric と、 Azure Container Service - 何が違うねん? -
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
 
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
 
ProjectAtomic-and-geard
ProjectAtomic-and-geardProjectAtomic-and-geard
ProjectAtomic-and-geard
 
Bind 9.8 feature overview
Bind 9.8 feature overviewBind 9.8 feature overview
Bind 9.8 feature overview
 
10th jan 2013_miyazaki
10th jan 2013_miyazaki10th jan 2013_miyazaki
10th jan 2013_miyazaki
 
130329 04
130329 04130329 04
130329 04
 
20130329 rtm4
20130329 rtm420130329 rtm4
20130329 rtm4
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 
COD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメCOD2012 九州会場 NAP による簡易検疫のススメ
COD2012 九州会場 NAP による簡易検疫のススメ
 
INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~
INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~
INF-005_ハイブリッド クラウド環境でのネットワークとセキュリティ ~Azure とのプライベート接続~
 
NGINX + Ansible Automation Webinar (日本語版)
NGINX + Ansible Automation Webinar (日本語版)NGINX + Ansible Automation Webinar (日本語版)
NGINX + Ansible Automation Webinar (日本語版)
 
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
 
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
 

More from Daisuke Nakajima

Contrail integrated with Kubernetes and Openstack
Contrail integrated with Kubernetes and OpenstackContrail integrated with Kubernetes and Openstack
Contrail integrated with Kubernetes and Openstack
Daisuke Nakajima
 
Container network security
Container network securityContainer network security
Container network security
Daisuke Nakajima
 
Interop2018 contrail ContrailEnterpriseMulticloud
Interop2018 contrail ContrailEnterpriseMulticloudInterop2018 contrail ContrailEnterpriseMulticloud
Interop2018 contrail ContrailEnterpriseMulticloud
Daisuke Nakajima
 
Open contrailmeetup
Open contrailmeetupOpen contrailmeetup
Open contrailmeetup
Daisuke Nakajima
 
Contrail handson 手順書
Contrail handson 手順書Contrail handson 手順書
Contrail handson 手順書Daisuke Nakajima
 
OpenvswitchでVPS
OpenvswitchでVPSOpenvswitchでVPS
OpenvswitchでVPS
Daisuke Nakajima
 

More from Daisuke Nakajima (6)

Contrail integrated with Kubernetes and Openstack
Contrail integrated with Kubernetes and OpenstackContrail integrated with Kubernetes and Openstack
Contrail integrated with Kubernetes and Openstack
 
Container network security
Container network securityContainer network security
Container network security
 
Interop2018 contrail ContrailEnterpriseMulticloud
Interop2018 contrail ContrailEnterpriseMulticloudInterop2018 contrail ContrailEnterpriseMulticloud
Interop2018 contrail ContrailEnterpriseMulticloud
 
Open contrailmeetup
Open contrailmeetupOpen contrailmeetup
Open contrailmeetup
 
Contrail handson 手順書
Contrail handson 手順書Contrail handson 手順書
Contrail handson 手順書
 
OpenvswitchでVPS
OpenvswitchでVPSOpenvswitchでVPS
OpenvswitchでVPS
 

Open contrailday 20150926

  • 3. Contrail Components Contrailのコンポーネント概要 Controller Configuration Controller Config Analytics Control Virtual Machine VM VM Bare metal Server IP network Overlay Tunnel XMPP XMPP BGP+Netconf Orchestration System Web UI / OSS / BSS WAN, Internet REST BGP vRouter VA Any Gateway Router Compute Node ToR Switch • コントローラー • Config Node • REST/APIインターフェイスをもち、外部から入力されたデータを格納、内部情報 に変換し、IPMAPサーバ経由でControl nodeに送る。Node情報を格納する Discovery serverや、Device managerもConfig nodeの一部。 • Control Node • Control nodeはvRouterや外部BGPルータなどと接続し、データのやり取りを行 う。 • Analytics Node • トラフィックの情報や、ログなどを格納。REST/APIをもち、外部からのクエリにも 答える。 • Database Node • CassandraとZookeeperからなるデータベース。 • ToR Agent • OVSDB経由で物理スイッチにポート情報やMAC情報を送信し、物理サーバな どを仮想ネットワークに接続する。 • フォワーダー • vRouter • オリジナルのデータをMPLSoGRE, MPLSoUDP, VXLANなどにカプセル化し、 データの転送を行う。フィルターなどもここで行う。 Database TSN ToR Agent vRouter OVSDB
  • 4. Contrail Components Contrail Architecture Diagram • 右の図はOpenstackとContrailの連携図です。OpenstackとはNeutron のプラグイン経由でContrailと接続します。 • ConrailはOpenstackのようにそれぞれのモジュールが疎結合している モデルのため、スケールアウト/インはそれぞれのノードごとに行えます。
  • 5. Contrail Node connection Contrail プロセスの初期化 • ノード登録 • ContrailのプロセスはDiscovery serverに接続して自身を登録する Config Node Discovery server Node DB Config node IF-MAP Server Control node XMPP Server Analytics node Collector IF-MAP server: 10.0.0.1 API Server : 10.0.0.1 xmpp Server : 10.0.0.2 DNS Server : 10.0.0.2 Collector : 10.0.0.3 API server DNS Server Register
  • 6. Contrail Node connection Contrail プロセスの初期化 • Node 情報の配布 • ContrailのプロセスはDiscoveryサーバに自身が必要な情報をリクエストする。 • Discoveryサーバは自身のデータベースから必要な情報を配布する Config Node Discovery server Node DB Compute node vRouter Agent Request XMPP server Publish XMPP-Server [10.0.0.2,10.0.0.3]
  • 7. Config Node 2 REST API Server IF-MAP server RabbitMQ Schema Transformer Standby SVC Monitor Discovery Server Contrail High Availability Config Node High Availability • Config node High Availability • Active-Active model • 全てのConfig nodeはアクティブモードで動作します。ただし、SVC-Monitor や Schema TransformerなどのプロセスはActive Standbyです。 • 外部からデータを受け付けるプロセスのみIPアドレスの冗長化が必要です。冗 長化が必要なのは以下になります。デフォルトではLBとしてHA Proxyを使用し ます。 1. REST API Server 2. RabbitMQ 3. Discovert Server 4. ToR Agent (TSNを使用する場合のみ) HA proxy Control Node "BGP module" Proxies XMPP IF-MAP Client HA proxy Keepalived Config Node 1 REST API Server Database IF-MAP server RabbitMQ Control Node "BGP module" Proxies XMPP IF-MAP Client Schema Transformer Active SVC Monitor Discovery Server
  • 8. Support service Contrail Components Config Node • REST API Server • contrail-api • /etc/contrail/contrail-api.conf • Ifmap Cassandra Discovery server Zookeeper Rabbitmq など • Schema Transformer • /etc/contrail/contrail-schema.conf • Ifmap Cassandra Discovery server Zookeeper API Serverなど • Service Monitor • /etc/contrail/contrail-schema.conf • Ifmap Cassandra Discovery server Zookeeper API Serverなど • Device Manager • /etc/contrail/contrail-device-manager.conf • Ifmap Cassandra Discovery server Zookeeper Rabbitmq など • Discovery Server • /etc/contrail/contrail-discovery.conf • Cassandra Zookeeper TTL など • Message Bus • /etc/rabbitmq/* • rabbitmq.config のクラスタや属性情報 rabbitmq-env.confなど • IF-MAP server • /etc/ifmap-server/* • Ifmap username など Database NodeConfig Node REST API Server Schema Transformer Orchestrator REST Cassandra IF-MAP server Control Node Control Node IF-MAP Message Bus Discovery server Compute Node Analytics Node Zookeeper Service Monitor Device Manager
  • 9. Support service Contrail Components Config Node • Node manager • /etc/contrail/contrail-config-nodemgr.conf • Discovery serverなど • Common • /etc/contrail/contrail-keystone-auth.conf • Keystone ユーザー名 テナント名など • Load Balancer ( for HA ) • /etc/haproxy/haproxy.cfg • API server, Discovery Server , RabbitMQなどのLB設定情報 • /etc/keepalived/keepalived.conf • VIPなどの情報 Database NodeConfig Node REST API Server Schema Transformer Orchestrator REST Cassandra IF-MAP server Control Node Control Node IF-MAP Message Bus Discovery server Compute Node Analytics Node Zookeeper Service Monitor Device Manager
  • 10. Contrail Components Control Node Control Node Proxies XMPP Control Node Control Node Compute Node TSN Config Node Config Node IF-MAP XMPP IF-MAP Client Gateway Routers Service Nodes • IF-MAP Client / XMPP • contrail-api • /etc/contrail/contrail-control.conf • 自IPアドレス Discovery server ifmapなど • Proxies • contrail-dns • contrail-dns.conf • 自IPアドレス Discovery server ifmapなど • contrail-named • /etc/contrail/dns/contrail-named.conf • いわゆるBindの設定 • Node manager • /etc/contrail/contrail-control-nodemgr.conf • Discovery serverなど BGP Netconf
  • 11. Contrail Components Analytics Node • REST API Server • /etc/contrail/contrail-api.conf • Cassandra Discovery server Redis server など • Query engine • /etc/contrail/contrail-query-engine.conf • Cassandra Discovery server Redis server など • Sandesh Collector • /etc/contrail/contrail-collector.conf • Cassandra Discovery server Redis server など • SNMP Collector • /etc/contrail/contrail-snmp-collector.conf • Zookeeper Discovery serverなど • Topology Builder • /etc/contrail/cat contrail-topology.conf • Zookeeper など • Message Bus • /etc/redis/* • Redis serverの設定情報 など • Node manager • /etc/contrail/contrail-analytics-nodemgr.conf • Discovery serverなど Analytics Node REST API Server Rules Engine Other Analytics Clients Collector All Nodes All Nodes Analytics Client Generated API UI, CLI Application Message Bus Query Engines Sandesh REST Database Node Cassandra Zookeeper
  • 12. Contrail Components ToR Service Node (TSN) • vRouter agent • /etc/contrail/ contrail-vrouter-agent.conf • Discovery server Default route 物理アドレス情報 など • TOR agent • /etc/contrail/ contrail-tor-agent-X-.conf • Discovery server ToR Switch 情報 CA,Cert 情報など • Node manager • /etc/contrail/contrail-vrouter-nodemgr.conf • Discovery serverなど ToR Service Node vRouter Agent VXLAN Control Node vhost0 Kernel pkt0 User Config VRFs Policy Table vRouter Forwarding Plane ToR-Agent Config XMPP Routing Instance Flow Table FIB OVSDB Client Routing Instance Flow Table FIB vhost0
  • 13. Contrail Forwarding Plane Compute Node Compute Node vRouter Agent Overlay tunnels MPLS over GRE/UDP or VXLAN Control Node vhost0 Kernel pkt0 User Config VRFs Policy Table vRouter Forwarding Plane Virtual Machine (Tenant A) Routing Instance Flow Table FIB Tap Interfaces (vif) Routing Instance Flow Table FIB Virtual Machine (Tenant B) Virtual Machine (Tenant B) • vRouter agent • /etc/contrail/ contrail-vrouter-agent.conf • Discovery server Default route 物理アドレス情報 など • Node manager • /etc/contrail/contrail-vrouter-nodemgr.conf • Discovery serverなど vhost0
  • 14. Contrail other modules • Cassandra • /etc/cassandra/* • Cassandraクラスタ情報 データベース情報 など • Zookeeper • /etc/zookeeper/conf/* • Zookeeperクラスタ情報 データベース情報 など Database Node
  • 16. 設定に必要な情報 • IPアドレス • Contrailが実際の通信に使うインターフェイスのIPアドレス • 冗長化のためのIPアドレス • 認証情報 • KeystoneのIPアドレス • ユーザー名 • パスワード • ネットワーク情報 • Contrailが使うAS番号 • ToR Switch情報 • ホスト名 • VTEP IPアドレス • OVSポート • ToR-Agent管理ポート • 接続TSNホスト名
  • 18. Ansibleでの自動化 Ansibleとは? • エージェントレスな構成管理ツール • ChefやPuppetのようにサーバにエージェントがいらない • YAML形式の設定ファイル • 最近ネットワーク界隈で流行ってる(?)YAML形式 • 結構色々できる • パッケージのインストール • コンフィグ作成 • 条件分岐など・・・
  • 19. Ansibleでの自動化 ControllerのPlaybook作りました • 設定するのはこれだけ 1. Hostsに各ノードをインストールするサーバを設定 2. SSHユーザー/パスワード、Keystone情報、仮想IP情報、AS番号 (ToR-Agent)を設定 3. サーバの情報を設定 • https://github.com/nakadaisuke/contrail_ansible ※OpenstackとCompute nodeはインストールされません。
  • 20. Ansibleでの自動化 前提 • OpenStackのインストール • Neutron以外のパッケージ(NeutronはContrailのConfigノードにインストールされます。) • 現時点でOpenStack Junoのみ対応 • Computeノードのインストールは条件付(Vif driverはApt-getでなくDpkgでインストール)
  • 22. Ansibleでの自動化 2. SSHユーザー/パスワード、Keystone情報、仮想IP情報、 AS番号 (ToR-Agent)を設定 --- ansible_ssh_user: "lab" ansible_ssh_pass: "juniper123" contrail_keystone_address: "10.84.50.100" contrail_admin_user: "admin" contrail_admin_password: "password" contrail_keepalived: yes contrail_haproxy_address: "10.84.50.1" # 10.84.50.80 contrail_netmask: "255.255.255.0" contrail_prefixlen: "24" contrail_gateway: "10.84.50.254" contrail_router_asn: "64512" • group_vars/all.ymlの編集
  • 23. Ansibleでの自動化 3.サーバの情報を設定 --- contrail_device: "p4p1" contrail_address: "10.84.50.1" contrail_mgmt_address: "172.27.113.85" • host_vars/XXXXXX.ymlの作成 ※サーバ数だけ作成 ここで設定するcontrail_deviceは実際にvRouterが通信するインターフェ イスです。 Bondingする場合は先にBondingインターフェイスを作成して、bond0な どを設定してください。
  • 24. Ansibleでの自動化 4. Playbookの実行 • Contrailのパッケージを install/files/にコピー • ansible-playbook -K -i hosts setup.yml • 全てのノードをリスタート
  • 25. 現在進行中 Compute nodeへのvRouterのインストール • なのですが・・・ • Vif Driverはpython-novaをインストールするときにインストールされる。Contrail付属のPython-novaを入れると依存の関 係でUbuntu リポジトリからとってくるNova関係のパッケージが入らない場合があるのが困ってます(またはその逆)。 ※解決策:apt-get でなく、dpkgでContrail repositoryのdebファイルを直接インストール?!
  • 26. 参考リンク • Juniper Github • https://github.com/Juniper/ • Ansible置き場 • https://github.com/nakadaisuke/contrail_ansible