OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
-
Upload
virtualtech-japan-inc -
Category
Technology
-
view
4.650 -
download
9
description
Transcript of OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要
本日のお題
• OpenStack Neutron• 基本構成
• ML2 Pluginについて
• ML2 Pluginの新機能• DVR
• L3 HA
• IPv6
• Neutron Plugin OpenContrailについて• OpenContrailの概要
• OpenContrailの機能と動作について
自己紹介
• 名前• 中嶋大輔
• 所属• ジュニパーネットワークス株式会社
• 職種• 主にキャリア向けのネットワークエンジニア
• 最近はOpenContrail中心に活動
• 趣味• 料理 日本酒 自転車
Juniper Networksについて
イノベーション: ジュニパーのDNA16年間にわたる技術的進展
20062002 20041998 2007 20081999 20051996 2010 2011 20122009
M Series
T Series
Acorn
IC Series
FORTUNE
1THOUSAND
#789
SSGSeries
T1600
SRX Series
EX Series MX 3D
“Falcon” forMobility
ACX
MX Series
PTX5000
QFabricG
$1.3B $2B $2.8B$2.3B $3.5B $3.3B $4.1B $4.4B
4800従業員数 1500
売上
2500 3500 5300 7000 7200 8800 9000
設立
QFabricM
MX2010/2020
2013
$4.4B
9200
PTX3000
JunosWebAppSecure
JunosDDoSSecure
JunosSpotlightSecure
JunosVFireFly
JuniperNetworksContrail
MX104
ジュニパーの戦略High-IQ ネットワークとクラウドのリーディングプロバイダー
CLOUD BUILDER
HIGH-IQ NETWORKS
一元化したインテリジェンス& コントロール
スイッチングルーティング セキュリティ
シリコン システム ソフトウェア
OpenStack Neutronの動作概要
OPENSTACK
OpenStackの基本的モジュール
www.openstack.org/software
OPENSTACK
OpenStackの概念図
docs.openstack.org
OPENSTACKOpenStackのプロジェクト
Neutronの基本的なモデルNeutronの実現するネットワーク
• マルチテナントネットワーク• 複数テナントのプライベートネットワーク制御
• テナント間の通信制御
• 複数テナント間でのアドレス重複制御
• API経由の制御• ベンダー固有のコンフィグの排除
• ネットワークを抽象化しネットワーク設定の自動化
Neutronの基本的なモデル
外部ネットワーク203.0.113.0/24
仮想ネットワーク10.0.0.0/24
仮想ネットワーク192.168.0.0/24
仮想ネットワーク10.0.0.0/24
仮想サーバNamespace
VIF
Virtual Port
仮想L2ネットワーク
仮想サブネット
仮想ルータSNAT/Floating IP
DHCP DHCP DHCP
Neutronの基本的なモデル
Neutronの実装
Neutronの基本機能
• L2ネットワーク• 複数のNova Compute間でL2ネットワークを作成
• L3ネットワーク• 仮想ネットワーク間ルーティング、外部ネットワーク接続、SNAT、Floagint IP
• DHCPサーバ• 仮想マシンへIPアドレスを割り当てるDHCPサーバ
• メタデータ• メタデータサーバのProxyとして動作
標準的に実装される機能
Nova Compute
API Client
Neutronの構成概要Neutronサーバの構造
intro to OpenStack Quantum / Dan Wendlandt – Quantum Hacker & PTL
Horizon
Nova
User Script
Neutron Server
Neutron API
net-create
net-list
router-list
etc..
Neutron API
Extentions
Neutron
Plugin
DB
Virtual
Switch
VM VM
Nova Compute
Virtual
Switch
VM VM
NeutronのPlugin
• Open vSwitch Plugin
• Cisco UCS/Nexus Plugin
• Cisco Nexus1000v Plugin
• Linux Bridge Plugin
• Modular Layer 2 Plugin (ML2 Plugin)
• Nicira Network Virtualization Platform (NVP) Plugin
• Ryu OpenFlow Controller Plugin
• NEC OpenFlow Plugin
• Big Switch Controller Plugin
• Cloudbase Hyper-V Plugin
• MidoNet Plugin
色々なプラグイン
• Brocade Neutron Plugin Brocade Neutron Plugin
• PLUMgrid Plugin
• Mellanox Neutron Plugin Mellanox Neutron Plugin
• Embrane Neutron Plugin
• IBM SDN-VE Plugin
• CPLANE NETWORKS CPLANE NETWORKS
• Nuage Networks Plugin
• OpenContrail Plugin
https://wiki.openstack.org/wiki/Neutron
ML2 Plugin
NeutronのPlugin
• Neutron標準のプラグイン• 複数のプラグインの同時利用が可能
• Type Driver• Flat
• VLAN
• GRE
• VXLAN
• Mechanism Driver• Open vSwitch
• Linux Bridve
• L2 Population
• Vender
ML2 Plugin
ML2
type_drivers
Fla
t
mechanism_drivers
VLA
N
VX
LA
N
GR
E
Open v
Sw
itch
Lin
ux B
ridge
L
2
Popula
tion
Vender
NeutronのPlugin
• 使用するエージェント• Neutronサーバ
• neutron-server
• L2ネットワーク• neutron-openvswitch-agent
• L3ネットワーク• neutron-l3-agent
• DHCPサーバ• neutron-dhcp-agent
• メタデータ• neutron-metadata-agent
ML2 Plugin - VXLANとOpen vSwitchを使った場合
ML2-Pluginを使った場合の構成例プロセスの配置とネットワーク構成 (Icehouse 以前)
Compute NodeNetwork Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
Nova compute
Neutron-openvswitch
agent
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
Neutron-openvswitch
agent
Network Node
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
Neutron-openvswitch
agent
Cloud Controller
Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
KeystoneData Network
APINetwork
Management Network
ExternalNetwork
外部ネットワーク
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
ML2-Pluginを使った場合のプロセス標準的なネットワークの例
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN BR-TUN
BR-INT BR-INT
qrouter snat VM VM
Compute Node
BR-TUN
BR-INT
VM VM
Data Network
dhcp
dhcp
ML2-Pluginを使った場合のNamespaceネームスペースの例
ML2-Pluginを使った場合のNamespaceネームスペースの例
ML2-Pluginを使った場合のNamespaceネームスペースの例
ML2-Pluginを使った場合の通信フローDHCP
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN BR-TUN
BR-INT BR-INT
qrouter snat VM VM
Compute Node
BR-TUN
BR-INT
VM VM
Data Network
dhcp
dhcp
ML2-Pluginを使った場合の通信フロー同一仮想ネットワーク間通信
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN BR-TUN
BR-INT BR-INT
qrouter snat VM VM
Compute Node
BR-TUN
BR-INT
VM VM
Data Network
dhcp
dhcp
ML2-Pluginを使った場合の通信フロー別仮想ネットワーク間通信
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN BR-TUN
BR-INT BR-INT
qrouter snat VM VM
Compute Node
BR-TUN
BR-INT
VM VM
Data Network
dhcp
dhcp
ML2-Pluginを使った場合の通信フローSNATによる通信
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN BR-TUN
BR-INT BR-INT
qrouter snat VM VM
Compute Node
BR-TUN
BR-INT
VM VM
Data Network
dhcp
dhcp
ML2-Pluginを使った場合の通信フローFloating IPによる通信
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN BR-TUN
BR-INT BR-INT
qrouter snat VM VM
Compute Node
BR-TUN
BR-INT
VM VM
Data Network
dhcp
dhcp
ML2-Pluginのまとめ
• 冗長化• Network Nodeの冗長化
• Peace makerでの冗長化はあった
• トラフィック集中問題• 仮想ネットワーク間の通信が必ずNetwork Nodeを経由してしまう
• プロセス大量問題• 仮想ネットワーク(DHCP=enable) ごとにdnsmasqのプロセスが次々と・・・
Icehouse 以前
ML2 Plugin の新機能
ML2-Pluginの新機能
• L3 High Availability (L3 HA)• Networkノードの機能を冗長化
• Distributed Virtual Router (DVR)• 仮想ネットワーク間の通信を処理し、Networkノードを経由しない通信を実現
• Floating IPの処理を行い、ダイレクトに外部ネットワークと接続
ML2-Plugin DVRを使った場合の構成例プロセスの配置とネットワーク構成 (Juno以降)
Compute NodeNetwork Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
Neutron-openvswitch
agent
Network Node
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
Neutron-openvswitch
agent
Cloud Controller
Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
Data Network
APINetwork
Management Network
Neutron-metadata
agent
Neutron-l3 agent
Neutron-openvswitch
agent
ExternalNetwork
外部ネットワーク
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合のプロセス標準的なネットワークの例
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
Data Network
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の見え方HorizonのNetwork topology
ML2-Plugin DVRを使った場合のL3-Agent
ML2-Plugin DVRを使った場合のNamespaceネームスペースの例
同一Namespace
ML2-Plugin DVRを使った場合のNamespaceネームスペースの例
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の通信フローDHCP
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INT
Data Network
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の通信フロー同一仮想ネットワーク
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
Data Network
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INT
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の通信フロー別仮想ネットワーク
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
Data Network
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INT
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の通信フローSNAT
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
Data Network
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INT
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の通信フローFloating IP
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
Data Network
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INTfip
Floating IPを使った場合のNamespaceバグ?
Compute Node
VM VMqrouter
BR-EX BR-TUN
BR-INT
ML2-Plugin DVRを使った場合の通信フローFloating IP(実際はこう動いている)
Compute NodeNetwork Node
ExternalNetwork
外部ネットワーク
BR-EX BR-TUN
BR-INT
qrouter snat VM VM
Data Network
dhcp
dhcp
qrouter
BR-EX BR-TUN
BR-INTfip
Floating IPを使った場合のNamespaceバグ?
ML2-Plugin L3 HAの概要何を二重化したのか?
Network Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
Neutron-openvswitch
agent
Network Node
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
Neutron-openvswitch
agent
Cloud Controller
Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
Data Network
APINetwork
Management Network
ExternalNetwork
外部ネットワーク
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
ML2-Plugin L3 HAの概要Network Nodeの冗長化
https://wiki.openstack.org/wiki/Neutron/L3_High_Availability_VRRP
• IPアドレスの冗長化• VRRP (keepalived)
• NAT のステート同期• conntracked(予定)
ML2-Plugin L3 HAの動作VRRPの動作
外部ネットワーク
• ルータ間でKeepalive送信• 片方がMasterとして動作
• 仮想IPと仮想MACを送信• Masterが仮想IPと仮想MACを
ARP Replyとして送信
• インターフェイスの監視• インターフェイスを監視し、特定インターフェイスがダウンするとMaster/Backupを切り替え
Master Backup.254 .253
仮想IP192.1681.1.254仮想MAC: 00:00:5e:00:00:01
Default Gateway 192.168.1.254
ML2-Plugin L3 HAの動作VRRPの動作
外部ネットワーク
• Master側に障害が発生• BackupがMasterに昇格
• GARPを送信し、ARPキャッシュを更新させる
Master
.254 .253
仮想IP192.1681.1.254仮想MAC: 00:00:5e:00:00:01
Default Gateway 192.168.1.254
GARPを送信
ML2-Plugin IPv6サポート仮想マシンへIPv6の割り当てが可能
• 仮想ネットワークへIPv6がサポート• 1つの仮想ネットワークへIPv4とIPv6の両方割り当てが可能
• 仮想マシンへのアドレス割当方法• SLAAC
• DHCPv6 Stateful
• DHCPv6 Stateless
ML2-Pluginのまとめ
• 冗長化• Network Nodeの冗長化
• トラフィック集中問題• 分散ルーティングか可能になった
• しかしSNATはNetwork Node経由
• プロセス大量問題• 仮想ネットワーク(DHCP=enable) ごとにdnsmasqのプロセスが次々と・・・
• NameSpace大量問題• Compute Nodeにもqrouter Namespaceが作成される。
Juno以降
OpenContrail
OpenContrailの概要Neutron Pluginとして動作
• Neutron基本機能との互換性
• OpenContrailの独自機能• サービスチェイニングの実装
• ゲートウェイルータとの動的連携
• アナリティクス機能
• WebUI / REST-API
OpenContrailの概要BGPベースのVPN
Source: https://tools.ietf.org/html/draft-ietf-l3vpn-end-system-04
• BGP
• インターネットゲートウェイ、L3VPN PEやRoute reflector
• Route-Server• XMPP経由でEnd-systemへルート情報などを送信
• End-System• ハイパーバイザ上のVPN Data
Forwarder
OpenContrailを使った場合の構成例プロセスの配置とネットワーク構成
Compute NodeNetwork Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
Nova compute
Neutron-openvswitch
agent
Neutron-metadata
agent
Neutron-dhcp agent
Neutron-l3 agent
OpenContrail
Controller
Configuration Node
Analytics Node
Control Node
Cloud Controller
Node
Neutron Server
MariaDB/MySQL
RabbitMQ
Nova-API
Nova Scheduler
Keystone
APINetwork
Management Network
外部ネットワーク
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
Neutron-openvswitch
agent
Compute Node
Nova compute
vRouter Agent
Control/Data Network
APINetwork
OpenContrail使った場合のプロセス標準的なネットワークの例
Compute NodeOpenContrail Controller
外部ネットワーク
NIC vRouter
Control
Compute Node
VM VMvRouter
agent
vRouter
Control/Data Network
SNAT
VM VMvRouter
agent
SNAT
一般的な通信フロー
vRouter
VM VMvRouter
agent
vRouter
SNAT
VM VMvRouter
agent
SNAT
OpenContrailを使った場合の通信フローDHCP
外部ネットワーク
Compute NodeOpenContrail Controller
NIC
Control
Compute Node
Control/Data Network
vRouter
VM VMvRouter
agent
vRouter
SNAT
VM VMvRouter
agent
SNAT
Compute Node Compute Node
OpenContrailを使った場合の通信フロー同一仮想ネットワーク
外部ネットワーク
OpenContrail Controller
NIC
Control
Control/Data Network
vRouter
VM VMvRouter
agent
vRouter
SNAT
VM VMvRouter
agent
SNAT
Compute Node Compute Node
OpenContrailを使った場合の通信フロー別仮想ネットワーク
外部ネットワーク
OpenContrail Controller
NIC
Control
Control/Data Network
Compute Node Compute Node
OpenContrailを使った場合の通信フローSNAT
外部ネットワーク
OpenContrail Controller
NIC
Control
Control/Data Network
vRouter
VM VMvRouter
agent
vRouter
SNAT
VM VMvRouter
agent
SNAT
vRouter
VM VMvRouter
agent
vRouter
SNAT
VM VMvRouter
agent
SNAT
Compute Node Compute Node
OpenContrailを使った場合の通信フローFloating IP
外部ネットワーク
OpenContrail Controller
NIC
Control
Control/Data Network
OpenContrailの独自機能
サービスチェイニング仮想サービスの組み合わせ
Tenant Network
A
Internet
Tenant Network
A
Tenant Network
BFW
Tenant Network
A1
Tenant Network
A2FW
NAT
FWLB
サービスチェイニング
Compute Node Compute Node
Internet
vRouter
VM
vRouter
VM
Tenant Network
AInternetFWLB
VM VM
ゲートウェイルータとの連携
• 仮想ネットワークにRTを設定• L3VPN / L2VPNとの動的な連携
仮想ネットワークとルートターゲット
BA CA
Data Center 1
WAN
BD DA
Data Center 2
TenantVPN
Internet
Gateway Router Gateway
A
A: Route Target : 64512:100B: Route Target : 64512:200C: Route Target : 64512:300D: Route Target : 64512:400
A
A
アナリティクス機能
• トラフィックの収集• 仮想ネットワーク単位
• 仮想マシン単位
• フローの収集• 送信元/送信先
• プロトコル
• ポート番号
• Syslog• ログの一元管理
豊富なアナリティクス機能
OpenContrailのまとめ
• 冗長化• Network Nodeの冗長化
• トラフィック集中問題• 分散ルーティング
• プロセス大量問題• OpenContrailはシンプルなプロセス管理が可能
• DHCPなどはvRouter Agentが行う
• NameSpace大量問題• 仮想ルータごとにAct/Stbの2つのNamespaceのみ作成
• オープンソース
OpenContrail適用事例
• 拠点• ヨーロッパ
• 用途• Private Cloud
• Virtual Private Cloud
• 外部MPLS接続
Pubric / Private Cloud プロバイダ
http://tcpcloud.eu/en/sluzby/virtual-private-cloud/
Thank you!
Appendix
OpenContrail
• OpenContrail Web• www.opencontrail.org
• www.opencontrail.org/jp
• OpenContrail Wiki (日本語)• https://sites.google.com/site/opencontrailwiki/
• OpenContrail Group (日本語)• https://groups.google.com/forum/#!forum/opencontrail-jp
Get information!!