OpenStackネットワーク入門
Midokura Japan
Takaaki Suzuki
Agenda
- History of Neutron
- Nova Network
- Quantum
- Neutron
- Packet Flow
- Neutron and SDN
History of Neutron...
History of Neutron...
● In 2010, OpenStack debut with its monolithic
networking model → Nova Network
2010
Nova
Network
History of Neutron...
● Nova Networkの機能
o L2
o DHCP
2010
Nova
Network
History of Neutron...
● In 2011, pluggable networking model was
proposed to the community → Quantum
Nova
Network
Quantum
OVS MidoNet…...OVS plugin and Vendor plugins
2010 2011
History of Neutron...
● Quantum
o L3/L2
o DHCP
o FloatingIP
o Secutiry Group
2011
Quantum
History of Neutron...
● In 2013, OpenStack Foundation received a
notice that Quantum was a trademark and
they had to change the name → Neutron
Nova
Network
Quantum
OVS MidoNet
…...
OVS plugin and Vendor plugins
Neutron
OVS MidoNet
…...
20112010 2013
History of Neutron...
● Neutron (Juno)
o L3/L2
o DHCP
o FloatingIP
o Secutiry Group
Neutron
o LBaaS
o FWaaS
o VPNaaS
o DVR(分散ルーティング)
o L3HA
Server
eth0
Linux
Bridge
VM01
192.168.10.2/24
Nova Network (Flat DHCP Manager)
L2 Switch Vlan1
nova-network
nova-compute
VM02
192.168.10.3/24
dnsmasq
Server
eth0
Linux
Bridge
VM01
192.168.10.2/24
Nova Network (VLAN Manager)
L2 Switch
Trunk
nova-network
nova-compute
VM02
192.168.10.3/24
dnsmasq
Linux
Bridge
dnsmasq
VM01
172.16.0.2/24
VM02
172.16.0.2324
VLAN100 VLAN200
VLAN100
VLAN200
Server
iptables PRE-POST Routing
(DNAT,SNAT)
eth0
VM01
192.168.10.2/24
L2 Switch
nova-network
nova-compute
VM02
192.168.10.3/24
Vlan1
Nova Network (Routing NAT)
DNAT 119.15.120.4 : 172.16.0.2
SNAT any: 119.15.120.3
eth1
Linux
Bridge
dnsmasq
Server
iptables PRE-POST Routing
(DNAT,SNAT)
Server
eth0
VM01
192.168.10.2/24
L2 Switch
nova-compute
VM02
192.168.10.3/24
VLAN1
Nova Network (Routing NAT)
DNAT 119.15.120.4 : 172.16.0.2
SNAT any: 119.15.120.3
eth1
Linux
Bridge
dnsmasq
eth0
nova-network
GW: 192.168.10.1
Nova Network
● Linux Bridgeやiptablesを使う.
● ネットワークを分ける為に
VLANを利用している.
● L3ルーティングは外部機器におまかせ.
● 枯れた技術を好む人もいる.
Compute
ovs-agent
Quantum
Controller
Quantum-server
Compute
ovs-agent
Compute
quantum
openvswitch
plugin-agent
Network
quantum-l3-agent
quantum-dchp-agent
quantum-metadata-agent
quantum-openvswitch-plugin-
agent
OpenvSwitch
Plugin
Quantum Server (API)
Controller
Quantum-server
Quantum Server (API)
● Plugin形式で様々なPluginを1つ選べる
Controller
Quantum-server
OpenvSwitch
Plugin
MidoNet
Plugin
LinuxBridge
Plugin
Quantum L2 agent
Compute
quantum
openvswitch
plugin-agent
Quantum L2 agent
● VM用の仮想L2設定自動的に設定してくれる.
Compute
quantum
openvswitch
plugin-agent
VM
VM
VM
VM
VM
VM
Quantum L3/DHCP/Metadata agent
Network
quantum-l3-agent
quantum-dchp-agent
quantum-metadata-agent
quantum-openvswitch-plugin-
agent
Quantum L3/DHCP/Metadata agent
● DHCP、インターネット外部接続
● VM用メタデータの提供
(hostname, SSH鍵等)
Network
quantum-l3-agent
quantum-dchp-agent
quantum-metadata-agent
quantum-openvswitch-plugin-
agent
Compute
ovs-agent
Quantum
Controller
Quantum-server
Compute
ovs-agent
Compute
quantum
openvswitch
plugin-agent
Network
quantum-l3-agent
quantum-dchp-agent
quantum-metadata-agent
quantum-openvswitch-plugin-
agent
OpenvSwitch
Plugin
Quantum
・Agentを使って様々な機能を提供する.
・Plugin形式により様々な技術を利用できる.
・NetoworkノードはL3機能(Routing, NAT)
ComputeノードではL2機能が利用できる.
Quantum -> Neutron
Compute
ovs-agent
Neutron
Controller
neutron-server
Compute
ovs-agent
Compute
neutron
openvswitch
agent
Network
neutron-l3-agent
neutron-dchp-agent
neutron-metadata-agent
neutron-openvswitch-agent
OpenvSwitch
Plugin
Compute
ovs-agent
Neutron (Juno)
Controller
neutron-server
Compute
ovs-agent
Compute
neutron
openvswitch
agent
Network
neutron-l3-agent (FWaaS)
neutron-dchp-agent
neutron-metadata-agent
neutron-openvswitch-agent
neutron-lbaas-agent
neutron-vpn-agent ML2
Plugin
Neutron Multi Layer 2 Plugin
Controller
neutron-server
ML2
Plugin
Neutron Multi Layer 2 Plugin
Controller
neutron-server
ML2
Plugin
Type Driver
GRE
VXLAN
FLAT
Mechanism
Driver
OpenvSwitch
Cisco
Arista
Neutron Multi Layer 2 Plugin
Controller
neutron-server
ML2
Plugin
Type Driver
GRE
VXLAN
FLAT
Mechanism
Driver
OpenvSwitch
Cisco
Arista
Neutron Multi Layer 2 Plugin
Controller
neutron-server
ML2
Plugin
Type Driver
GRE
VXLAN
FLAT
Mechanism
Driver
OpenvSwitch
LinuxBridge
Cisco
Compute
neutron
openvswitch
agent
Compute
neutron
cisco
agent
Neutron Multi Layer 2 Plugin
Controller
neutron-server
ML2
Plugin
Type Driver
GRE
VXLAN
FLAT
Mechanism
Driver
OpenvSwitch
LinuxBridge
Cisco
Compute
neutron
openvswitch
agent
Compute
neutron
cisco
agent
VM
VM
VM
VM
VM
VM
VM
VM
様々なネットワーク
技術を複数組合せて
利用できる.
Network
neutron-l3-agent (FWaaS)
neutron-dchp-agent
neutron-metadata-agent
neutron-openvswitch-agent
neutron-lbaas-agent
neutron-vpn-agent
Neutron (Juno)
Neutronでユーザーができること
Neutronでユーザーができること
Neutronでユーザーができること
1. 仮想ネットワーク(L2)の
作成
① ① ①
Neutronでユーザーができること
2. 仮想L3ルータの作成
neutron router-create
① ① ①
② ②
3. ネットワークとルータの
接続
(router-interface-add)
Neutronでユーザーができること
① ① ①
② ②
③ ③ ③
Neutronでユーザーができること
4. ルータと外部ネットワー
クの接続(router-gateway-
set)
① ① ①
② ②
③ ③ ③
④ ④
Neutronでユーザーができること
5. FloatingIP(グローバルIP
DNAT/SNAT)をVMに付与で
きる.① ① ①
② ②
③ ③ ③
④ ④
⑤⑤ ⑤ ⑤
Neutronでユーザーができること
6. VMのポートに対して
SecurityGroupを作成しSSH
やHTTPの通信を許可等を
適用することができる.
① ① ①
② ②
③ ③ ③
④ ④
⑤⑤ ⑤ ⑤
⑥ ⑥ ⑥ ⑥ ⑥ ⑥
Neutronでユーザーができること
① ① ①
② ②
③ ③ ③
④ ④
⑤⑤ ⑤ ⑤
⑥ ⑥ ⑥ ⑥ ⑥ ⑥
*外部ネットワーク作成は
管理者(admin権限)のみ
Neutron環境のパケットフロー
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM VM VM
eth0
VM VM
qbr43d***qbr5db***
qbr5db*** qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron
openvswitch
agent
eth0VXLAN
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM VM VM
eth0
VM VM
qbr43d***qbr5db***
qbr5db*** qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron
openvswitch
agent
eth0VXLAN
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM VM VM
eth0
VM VM
qbr43d***qbr5db***
qbr5db*** qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron
openvswitch
agent
eth0VXLAN
tap interface
veth interface
LinuxBridge
ovs bridge
ovs bridge
vxlan-port
patch
tap interface
LinuxBridge
veth interface
ovs bridge
ovs bridge
patch
vxlan-port
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM
eth0
VM VM
qbr43d***qbr5db***
br-tun
br-int
br-tun
br-int
VXLAN
DHCP
namespace
br-ex
router
namespace
Network
node eth1eth0
neutron-l3-agent
neutron-openvswitch-agent
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM
eth0
VM VM
qbr43d***qbr5db***
br-tun
br-int
br-tun
br-int
VXLAN
DHCP
namespace
br-ex
router
namespace
Network
node eth1eth0
neutron-l3-agnet
neutron-openvswitch-agent
Network Namespace
Network Namespace
Network Namespace
ip netns
ip netns exec qrouter-*** ip link
ip netns exec qrouter-*** netstat -nr
Neutron環境のパケットフロー
br-tun
br-int
br-ex
router
namespace
Network
node
eth1
neutron-l3-agnet
neutron-openvswitch-agent
Neutron環境のパケットフロー
br-tun
br-int
br-ex
router
namespace
Network
node
eth1
GigabitEthenet0/0
119.15.120.129
neutron-l3-agnet
neutron-openvswitch-agent
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
Neutron環境のパケットフロー
br-tun
br-int
br-ex
router
namespace
Network
node
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
router namespaceルーティングテーブル
192.168.73.0 255.255.255.0 qr-4894a511-cf CONNECTED
192.168.83.0 255.255.255.0 qr-5ad834a4-df CONNECTED
eth1
neutron-l3-agnet
neutron-openvswitch-agent
Neutron環境のパケットフロー
br-tun
br-int
br-ex
router
namespace
Network
node
router namespaceルーティングテーブル
192.168.73.0 255.255.255.0 qr-4894a511-cf CONNECTED
192.168.83.0 255.255.255.0 qr-5ad834a4-df CONNECTED
119.15.120.130 255.255.255.128 qg-ad4adf-1e CONNECTED
0.0.0.0 0.0.0.0 119.15.120.129 qg-ad4adf-1e STATIC
eth1
GigabitEthenet0/0
119.15.120.129
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
qg-ad4adf22-1e: 119.120.130
Neutron環境のパケットフロー
br-tun
br-int
br-ex
router
namespace
Network
node
eth1
neutron-l3-agnet
neutron-openvswitch-agent
router
namespace
router
namespace
router
namespace
ルーターnamespaceがどんどん作成される
Neutron環境のパケットフロー
br-tun
br-int
br-ex
router
namespace
Network
node
eth1
neutron-l3-agnet
neutron-openvswitch-agent
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace router
namespace
router
namespace
router
namespace
router
namespace
router
namespace router
namespace
router
namespace
router
namespace router
namespacerouter
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
router
namespace
ユーザーからルーターを定義すればするほど
ネットワークノードがボトルネックに...
Distributed Virtual Router
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agenteth0
VXLAN
router
namespace
router
namespace
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agenteth0
VXLAN
router
namespace
router
namespace
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agenteth0
VXLAN
router
namespace
eth1 eth1
router
namespace
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agenteth0
VXLAN
router
namespace
router
namespace
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
router namespaceインターフェース
qr-4894a511-cf: 192.168.73.1
qr-5ad834a4-df: 192.168.83.1
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agent
eth0VXLAN
router
namespace
FloatingIP
namespace
br-ex
eth1 eth1
router
namespace
br-ex
FloatingIP
namespace
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agent
eth0VXLAN
router
namespace
FloatingIP
namespace
br-ex
eth1 eth1
router
namespace
br-ex
FloatingIP
namespace
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
qbr43d***
VM VM
br-tun
br-int
br-tun
br-int
Compute
neutron-openvswitch-agent
neutron-l3-agent
eth0VXLAN
router
namespace
FloatingIP
namespace
br-ex
eth1 eth1
router
namespace
br-ex
FloatingIP
namespace
Neutron環境のパケットフロー (DVR)
Compute
neutron-openvswitch-agent
neutron-l3-agent
VMVM
eth0
qbr5db***
br-tun
router
namespace
VXLAN
br-tun
br-ex
SNAT
namespace
Network
node
eth1
neutron-l3-agnet
neutron-openvswitch-agent
eth0
eth1
br-ex
FloatingIP
namespacebr-int
br-int
L3HA
L3HA OVS Network Node
● Active/Standby deployment with VRRP
● Up to two Network Nodes
Network Node
(Active)
Network Node
(Standby)
L3 agentL3 agent
Ext Switch Ext Switch
VRRP
DHCP and MetaData
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM
eth0
VM VM
qbr43d***qbr5db***
br-tun
br-int
br-tun
br-int
VXLAN
DHCP
namespace
Network
node eth2eth0
neutron-l3-agnet
neutron-openvswitch-agent
neutron-dhcp-agent
neutron-metadata-agent
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM
eth0
VM VM
qbr43d***qbr5db***
br-tun
br-int
br-tun
VXLAN
DHCP
namespace
Network
node eth2eth0
neutron-l3-agnet
neutron-openvswitch-agent
neutron-dhcp-agent
neutron-metadata-agent
dnsmasq
br-int
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM
eth0
VM VM
qbr43d***qbr5db***
br-tun
br-int
br-tun
VXLAN
DHCP
namespace
Network
node eth2eth0
neutron-l3-agnet
neutron-openvswitch-agent
neutron-dhcp-agent
neutron-metadata-agent
dnsmasq
br-int
metadata
proxy
metadata
agent
Nova
api
Network
node
Neutron環境のパケットフロー
Compute
neutron
openvswitch
agent
VMVM
eth0
VM VM
qbr43d***qbr5db***
br-tun
br-int
br-tun
br-int
VXLAN
br-ex
router
namespace
eth0
neutron-l3-agent
neutron-openvswitch-agent
DHCP
namespace metadata
proxy
metadata
agent
Nova
api
eth2
NeutronとSDN製品
OpenStack Kilo (Neutron)
● 4/30リリース
Brocade ML2 driver for MLX and ICX switches
Brocade L3 routing plugin for MLX switch
Brocade Vyatta vRouter L3 Plugin
Brocade Vyatta vRouter Firewall Driver
Brocade Vyatta vRouter VPN Driver
Cisco Nexus
http://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/openstack-at-cisco/data_sheet_c78-727737.html
Contrail
http://www.slideshare.net/natiueno/contrail-overview-open-stack-days-tokyofeb2015
IBM SDN-VE
http://www-06.ibm.com/systems/jp/networking/software/sdnve/
MidoNet
http://midonet.org/midonet-tv.php
MidoNet and Cumulus
Janさんお願いします!

OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月