SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
OpenStack の仮想ネットワーク
~Neutron の今~

Akihiro Motoki (@ritchey98)
NEC / 日本 OpenStack ユーザー会
Oct 11st , 2013
自己紹介
• 元木 顕弘 (@ritchey98)

– NEC 情報・ナレッジ研究所
– IPルータ、広域Ethernet装置、迷惑メールフィルタなど
の開発をやっていました。
– ここ数年は、ネットワーク仮想化、OpenStack,
OpenFlow 周りで活動しています。

• OpenStack Developer

– Neutron and Horizon Core Developer
– I18N team

• Linux JM (日本語マニュアル) Project Maintainer
OpenStack Networking (Neutron)
• Network-as-a-Service (NaaS) を提供する
– テナントが自由なネットワーク操作を提供
• 複数のプライベートなネットワークの作成
• IPアドレスの制御

– L2/L3 に限らず、さまざまなネットワークサービス
の提供

• Neutron API
– API は論理操作のみを定義。物理操作を分離。
– 物理操作は Neutron Plugin が行う
OpenStack の仮想ネットワークモデル
TenantA-VM1
10.0.0.2

TenantA-VM2
10.0.0.3

Tenant-A Net1
10.0.0.0/24

External
Net
88.0.0.0/18

•
•
•
•
•

TenantA-VM3
9.0.0.2

virtual server
virtual interface (VIF)

Tenant-A Net2
9.0.0.0/24

SNAT for external traffic
Floating IP

ネットワークの自由な作成
IP overlapping Tenant Networks
複数 NIC を持った VM の)作成
ルータ経由で Subnet 間通信
Floating IP での外部からの接続 (Elastic IP@AWS)

virtual port
L2 virtual network
virtual subnet
Network API の例
•
•
•

API モデルは基本的に REST
一般ユーザー向けの API では、論理情報のみが見える
管理者権限であれば、物理情報を指定した操作も一部では定義。

GET http://localhost:9696/v2.0/networks/20b49737c718-4f10-8edc-7fe9f8ee7cfd

GET http://localhost:9696/v2.0/networks/20b49737c718-4f10-8edc-7fe9f8ee7cfd

{

{

}

"network": {
"admin_state_up": true,
"id": "20b49737-c718-4f10-8edc-7fe9f8ee7cfd",
"name": "net1",
"router:external": false,
"shared": false,
"status": "ACTIVE",
"subnets": [
"644f729f-1c86-48b3-91a2-761e29398e81"
],
"tenant_id": "be11ce3cabc74ee68d4f22253ffbb5e8"
}

一般ユーザー

}

"network": {
"admin_state_up": true,
"id": "20b49737-c718-4f10-8edc-7fe9f8ee7cfd",
"name": "net1",
"router:external": false,
"shared": false,
"status": "ACTIVE",
"subnets": [
"644f729f-1c86-48b3-91a2-761e29398e81"
],
"tenant_id": "be11ce3cabc74ee68d4f22253ffbb5e8",
"provider:network_type": "vlan",
"provider:physical_network": "physnet_1",
"provider:segmentation_id": 201
}

管理者ユーザー
Network Service Insertion

Service Insertion

Network 2

Network 1

External
Network
VPN Connection
Neutron の基本構造
•

API に対応して、物理操作を行う Plugin が存在

– Plugin を切り替えることで、様々なネットワーク技術を利用可能
– 複数のPlugin (Core + Service *N) が併存。一つのPluginで複数のAPIも対応可

•

OpenStack の一部だが、Neutron 単体でも利用可能

– Neutron API を使うことで、特定のベンダーAPI に Lock-In されにくくなるかも

Neutron API
LBaaS
API

FWaaS
API

L3 API

Compute API

Neutron
LBaaS
Plugin

FWaaS
Plugin

Nova

L2 API

Compute Node

L2/L3 Plugin

VM
Agent

XXX
HAProxy
Driver
Agent

L3
Agent

Network
Controller
OpenFlow Controller など

VM

vSwitch

HW Switch
仮想ルータの実現方法
•

現状の Neutron では
下線付きのものが存在

Network Namespace (l3-agent)

– Linux Kernel の名前空間機能を利用

•

Distributed Router

– 仮想スイッチ、OpenFlow スイッチをコントローラで制御して実現

•

Router as Service VM

– 仮想ルータ単位に VM を用意する。通常の VM と同じ。

•

VRF on normal router

– いわゆるハードウェアルータで、複数の論理ルーティングテーブルがあるものを利用

VM

net1
VM

R

net2

VM

分散ルータの例

ルータの振りをして
nexthopのARPに応答

VM
VM vSW

同じサブネットなら
そのまま転送

Controller

vSW

VM
VM
L3-agent での仮想ルータ
• Linux Kernel の機能を組み合わせて実現
– Network Namespace + iptables

• Network Namespace (netns)

– ネットワークのプロトコル・スタックを一つの OS 上に複数持つ仕組み。
IPアドレスや NW インタフェース等が分離した空間を複数構成可能。
– LXC などのコンテナ技術で発展

netns for router1

netns for router2

Routing + iptables

Routing + iptables

qg-xxx

qr-yz1

qr-yz2

qr-zz1

qr-zz2

veth pair
qg-xxx

qr-yz1

qr-yz2

qr-zz1

Open vSwitch
eth1

eth2

qr-zz2
おまけ
l3-agent netns example (1/3)
ubuntu@ostack02:~$ ip netns
qdhcp-07b6df1f-bb88-4cc5-8903-45c543143f9f
qdhcp-373ed983-b2e9-4c6b-90f2-92c347302675
qrouter-6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648
qrouter-b920913b-22ca-48ad-843b-e8ab78ae22a7
qdhcp-20b49737-c718-4f10-8edc-7fe9f8ee7cfd
ubuntu@ostack02:~$ neutron router-list
+--------------------------------------+---------+--------------------------------------------------------+
| id
| name
| external_gateway_info
|
+--------------------------------------+---------+--------------------------------------------------------+
| 6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 | router2 | null
|
| b920913b-22ca-48ad-843b-e8ab78ae22a7 | router1 | {"network_id": "e4ad0d48-d0ee-42f8-889b-72283fdd607f", |
|
|
| "enable_snat": true}
|
+--------------------------------------+---------+--------------------------------------------------------+
l3-agent netns example (2/3)
(router1)
ubuntu@ostack02:~$ sudo ip netns exec qrouter-b920913b-22ca-48ad-843b-e8ab78ae22a7 ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: qr-656aebdc-61: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode
DEFAULT qlen 1000
link/ether fa:16:3e:a2:1b:62 brd ff:ff:ff:ff:ff:ff
3: qg-215b9b04-9e: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode
DEFAULT qlen 1000
link/ether fa:16:3e:f3:c9:4c brd ff:ff:ff:ff:ff:ff
4: qr-8357d717-fa: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode
DEFAULT qlen 1000
link/ether fa:16:3e:c9:c9:41 brd ff:ff:ff:ff:ff:ff
ubuntu@ostack02:~$ sudo ip netns exec qrouter-b920913b-22ca-48ad-843b-e8ab78ae22a7 netstat -nr
Kernel IP routing table
Destination
Gateway
Genmask
Flags MSS Window irtt Iface
0.0.0.0
172.24.4.225
0.0.0.0
UG
0 0
0 qg-215b9b04-9e
10.0.0.0
0.0.0.0
255.255.255.0 U
0 0
0 qr-656aebdc-61
10.2.2.0
0.0.0.0
255.255.255.0 U
0 0
0 qr-8357d717-fa
172.24.4.224
0.0.0.0
255.255.255.240 U
0 0
0 qg-215b9b04-9e
l3-agent netns example (3/3)
(router2)
ubuntu@ostack02:~$ sudo ip netns exec qrouter-6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: qr-04c3c871-55: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode
DEFAULT qlen 1000
link/ether fa:16:3e:ef:af:b6 brd ff:ff:ff:ff:ff:ff
4: qr-1b1091ed-41: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode
DEFAULT qlen 1000
link/ether fa:16:3e:da:9e:50 brd ff:ff:ff:ff:ff:ff
ubuntu@ostack02:~$ sudo ip netns exec qrouter-6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 ip route
10.2.2.0/24 dev qr-1b1091ed-41 proto kernel scope link src 10.2.2.2
10.3.3.0/24 dev qr-04c3c871-55 proto kernel scope link src 10.3.3.1
20131011_openstack-neutron-vyattameeting

Más contenido relacionado

La actualidad más candente

OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
Etsuji Nakai
 

La actualidad más candente (20)

OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
OpenStack管理者入門 - OpenStack最新情報セミナー 2014年12月
 
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
 
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
 
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
 
openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
 
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
 
OpenStack ComputingはHyper-Convergedの夢を見るのか?
OpenStack ComputingはHyper-Convergedの夢を見るのか?OpenStack ComputingはHyper-Convergedの夢を見るのか?
OpenStack ComputingはHyper-Convergedの夢を見るのか?
 
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
 
NFV標準化動向 NFVの適用範囲と標準化 – OpenStack最新情報セミナー 2015年4月
NFV標準化動向 NFVの適用範囲と標準化 – OpenStack最新情報セミナー 2015年4月NFV標準化動向 NFVの適用範囲と標準化 – OpenStack最新情報セミナー 2015年4月
NFV標準化動向 NFVの適用範囲と標準化 – OpenStack最新情報セミナー 2015年4月
 
Openstack summit walk DNSaaS 2015-0713 Summit LT
Openstack summit walk DNSaaS 2015-0713 Summit LTOpenstack summit walk DNSaaS 2015-0713 Summit LT
Openstack summit walk DNSaaS 2015-0713 Summit LT
 
OpenStack Project Update Neutron Update
OpenStack Project Update Neutron UpdateOpenStack Project Update Neutron Update
OpenStack Project Update Neutron Update
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 
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 行ってきました
 
OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門
 
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
 

Similar a 20131011_openstack-neutron-vyattameeting

OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
Etsuji Nakai
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Study
irix_jp
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
Sho Shimizu
 

Similar a 20131011_openstack-neutron-vyattameeting (20)

OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
 
OpenFlowで覚えるネットワーク
OpenFlowで覚えるネットワークOpenFlowで覚えるネットワーク
OpenFlowで覚えるネットワーク
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
 
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Report of OpenStack Ops Meetup Palo Alto (in Japanese)Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介
 
JOSUG 34th Meetup
JOSUG 34th Meetup JOSUG 34th Meetup
JOSUG 34th Meetup
 
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Study
 
OpenStack Kuryrについて
OpenStack KuryrについてOpenStack Kuryrについて
OpenStack Kuryrについて
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlow
 
デバイスパッケージを開発してみた @沖縄オープンラボ
デバイスパッケージを開発してみた @沖縄オープンラボデバイスパッケージを開発してみた @沖縄オープンラボ
デバイスパッケージを開発してみた @沖縄オープンラボ
 
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlow
 

Más de Akihiro Motoki

20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum
Akihiro Motoki
 
Horizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyHorizon Quantum Integration grizzly
Horizon Quantum Integration grizzly
Akihiro Motoki
 
Horizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyHorizon quantum-integration-grizzly
Horizon quantum-integration-grizzly
Akihiro Motoki
 
Quantum-grizzly-packet-filtering
Quantum-grizzly-packet-filteringQuantum-grizzly-packet-filtering
Quantum-grizzly-packet-filtering
Akihiro Motoki
 

Más de Akihiro Motoki (12)

20190722 OpenStack community past present future
20190722 OpenStack community past present future20190722 OpenStack community past present future
20190722 OpenStack community past present future
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
 
20190118-josug-open stack-community-goals
20190118-josug-open stack-community-goals20190118-josug-open stack-community-goals
20190118-josug-open stack-community-goals
 
OpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsOpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 Lessons
 
Neutron: br-ex is now deprecated! what is modern way?
Neutron: br-ex is now deprecated! what is modern way?Neutron: br-ex is now deprecated! what is modern way?
Neutron: br-ex is now deprecated! what is modern way?
 
20150713 OpenStack Translation in Japan
20150713 OpenStack Translation in Japan20150713 OpenStack Translation in Japan
20150713 OpenStack Translation in Japan
 
neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_update
 
OpenStack Contribution Howto
OpenStack Contribution HowtoOpenStack Contribution Howto
OpenStack Contribution Howto
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum
 
Horizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyHorizon Quantum Integration grizzly
Horizon Quantum Integration grizzly
 
Horizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyHorizon quantum-integration-grizzly
Horizon quantum-integration-grizzly
 
Quantum-grizzly-packet-filtering
Quantum-grizzly-packet-filteringQuantum-grizzly-packet-filtering
Quantum-grizzly-packet-filtering
 

Último

Último (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

20131011_openstack-neutron-vyattameeting

  • 1. OpenStack の仮想ネットワーク ~Neutron の今~ Akihiro Motoki (@ritchey98) NEC / 日本 OpenStack ユーザー会 Oct 11st , 2013
  • 2. 自己紹介 • 元木 顕弘 (@ritchey98) – NEC 情報・ナレッジ研究所 – IPルータ、広域Ethernet装置、迷惑メールフィルタなど の開発をやっていました。 – ここ数年は、ネットワーク仮想化、OpenStack, OpenFlow 周りで活動しています。 • OpenStack Developer – Neutron and Horizon Core Developer – I18N team • Linux JM (日本語マニュアル) Project Maintainer
  • 3. OpenStack Networking (Neutron) • Network-as-a-Service (NaaS) を提供する – テナントが自由なネットワーク操作を提供 • 複数のプライベートなネットワークの作成 • IPアドレスの制御 – L2/L3 に限らず、さまざまなネットワークサービス の提供 • Neutron API – API は論理操作のみを定義。物理操作を分離。 – 物理操作は Neutron Plugin が行う
  • 4. OpenStack の仮想ネットワークモデル TenantA-VM1 10.0.0.2 TenantA-VM2 10.0.0.3 Tenant-A Net1 10.0.0.0/24 External Net 88.0.0.0/18 • • • • • TenantA-VM3 9.0.0.2 virtual server virtual interface (VIF) Tenant-A Net2 9.0.0.0/24 SNAT for external traffic Floating IP ネットワークの自由な作成 IP overlapping Tenant Networks 複数 NIC を持った VM の)作成 ルータ経由で Subnet 間通信 Floating IP での外部からの接続 (Elastic IP@AWS) virtual port L2 virtual network virtual subnet
  • 5. Network API の例 • • • API モデルは基本的に REST 一般ユーザー向けの API では、論理情報のみが見える 管理者権限であれば、物理情報を指定した操作も一部では定義。 GET http://localhost:9696/v2.0/networks/20b49737c718-4f10-8edc-7fe9f8ee7cfd GET http://localhost:9696/v2.0/networks/20b49737c718-4f10-8edc-7fe9f8ee7cfd { { } "network": { "admin_state_up": true, "id": "20b49737-c718-4f10-8edc-7fe9f8ee7cfd", "name": "net1", "router:external": false, "shared": false, "status": "ACTIVE", "subnets": [ "644f729f-1c86-48b3-91a2-761e29398e81" ], "tenant_id": "be11ce3cabc74ee68d4f22253ffbb5e8" } 一般ユーザー } "network": { "admin_state_up": true, "id": "20b49737-c718-4f10-8edc-7fe9f8ee7cfd", "name": "net1", "router:external": false, "shared": false, "status": "ACTIVE", "subnets": [ "644f729f-1c86-48b3-91a2-761e29398e81" ], "tenant_id": "be11ce3cabc74ee68d4f22253ffbb5e8", "provider:network_type": "vlan", "provider:physical_network": "physnet_1", "provider:segmentation_id": 201 } 管理者ユーザー
  • 6. Network Service Insertion Service Insertion Network 2 Network 1 External Network VPN Connection
  • 7. Neutron の基本構造 • API に対応して、物理操作を行う Plugin が存在 – Plugin を切り替えることで、様々なネットワーク技術を利用可能 – 複数のPlugin (Core + Service *N) が併存。一つのPluginで複数のAPIも対応可 • OpenStack の一部だが、Neutron 単体でも利用可能 – Neutron API を使うことで、特定のベンダーAPI に Lock-In されにくくなるかも Neutron API LBaaS API FWaaS API L3 API Compute API Neutron LBaaS Plugin FWaaS Plugin Nova L2 API Compute Node L2/L3 Plugin VM Agent XXX HAProxy Driver Agent L3 Agent Network Controller OpenFlow Controller など VM vSwitch HW Switch
  • 8. 仮想ルータの実現方法 • 現状の Neutron では 下線付きのものが存在 Network Namespace (l3-agent) – Linux Kernel の名前空間機能を利用 • Distributed Router – 仮想スイッチ、OpenFlow スイッチをコントローラで制御して実現 • Router as Service VM – 仮想ルータ単位に VM を用意する。通常の VM と同じ。 • VRF on normal router – いわゆるハードウェアルータで、複数の論理ルーティングテーブルがあるものを利用 VM net1 VM R net2 VM 分散ルータの例 ルータの振りをして nexthopのARPに応答 VM VM vSW 同じサブネットなら そのまま転送 Controller vSW VM VM
  • 9. L3-agent での仮想ルータ • Linux Kernel の機能を組み合わせて実現 – Network Namespace + iptables • Network Namespace (netns) – ネットワークのプロトコル・スタックを一つの OS 上に複数持つ仕組み。 IPアドレスや NW インタフェース等が分離した空間を複数構成可能。 – LXC などのコンテナ技術で発展 netns for router1 netns for router2 Routing + iptables Routing + iptables qg-xxx qr-yz1 qr-yz2 qr-zz1 qr-zz2 veth pair qg-xxx qr-yz1 qr-yz2 qr-zz1 Open vSwitch eth1 eth2 qr-zz2
  • 11. l3-agent netns example (1/3) ubuntu@ostack02:~$ ip netns qdhcp-07b6df1f-bb88-4cc5-8903-45c543143f9f qdhcp-373ed983-b2e9-4c6b-90f2-92c347302675 qrouter-6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 qrouter-b920913b-22ca-48ad-843b-e8ab78ae22a7 qdhcp-20b49737-c718-4f10-8edc-7fe9f8ee7cfd ubuntu@ostack02:~$ neutron router-list +--------------------------------------+---------+--------------------------------------------------------+ | id | name | external_gateway_info | +--------------------------------------+---------+--------------------------------------------------------+ | 6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 | router2 | null | | b920913b-22ca-48ad-843b-e8ab78ae22a7 | router1 | {"network_id": "e4ad0d48-d0ee-42f8-889b-72283fdd607f", | | | | "enable_snat": true} | +--------------------------------------+---------+--------------------------------------------------------+
  • 12. l3-agent netns example (2/3) (router1) ubuntu@ostack02:~$ sudo ip netns exec qrouter-b920913b-22ca-48ad-843b-e8ab78ae22a7 ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: qr-656aebdc-61: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether fa:16:3e:a2:1b:62 brd ff:ff:ff:ff:ff:ff 3: qg-215b9b04-9e: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether fa:16:3e:f3:c9:4c brd ff:ff:ff:ff:ff:ff 4: qr-8357d717-fa: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether fa:16:3e:c9:c9:41 brd ff:ff:ff:ff:ff:ff ubuntu@ostack02:~$ sudo ip netns exec qrouter-b920913b-22ca-48ad-843b-e8ab78ae22a7 netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 172.24.4.225 0.0.0.0 UG 0 0 0 qg-215b9b04-9e 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-656aebdc-61 10.2.2.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-8357d717-fa 172.24.4.224 0.0.0.0 255.255.255.240 U 0 0 0 qg-215b9b04-9e
  • 13. l3-agent netns example (3/3) (router2) ubuntu@ostack02:~$ sudo ip netns exec qrouter-6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: qr-04c3c871-55: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether fa:16:3e:ef:af:b6 brd ff:ff:ff:ff:ff:ff 4: qr-1b1091ed-41: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether fa:16:3e:da:9e:50 brd ff:ff:ff:ff:ff:ff ubuntu@ostack02:~$ sudo ip netns exec qrouter-6ce6df1a-0eb8-4bf8-8ad6-fe6855d5e648 ip route 10.2.2.0/24 dev qr-1b1091ed-41 proto kernel scope link src 10.2.2.2 10.3.3.0/24 dev qr-04c3c871-55 proto kernel scope link src 10.3.3.1