openstack neutronの機能概要 - openstack最新情報セミナー 2014年12月

Post on 04-Jul-2015

4.650 Views

Category:

Technology

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

OpenStack Neutronの機能概要 講師:中嶋 大輔(ジュニパーネットワーク株式会社 サービスプロバイダー技術本部) OpenStackのネットワークを制御するNeutronの動作概要とJunoでアップデートされたDVR (Distributed Virtual Routing)、L3 HA support、IPv6 subnet modesの解説を行います。 また、プラグインの一つのオープンソースコントローラOpenContrailの紹介とサービス適用事例をご紹介します。

TRANSCRIPT

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

top related