Why Teams call analytics are critical to your entire business
OpenStack KOREA 정기 세미나_OpenStack meet iNaaS SDN Controller
1. OpenStack meet iNaaS SDN Controller
iNaaS : SDN Controller for virtual network
OpenStack과 SDN Controller 연동을 위한 삽질 기행기
SDN Research Section, ETRI
Yongyoon SHIN
2. 함께 이야기 해 봅시다
• OpenStack Neutron
• OpenStack ml2
– Write own mechanism driver
– Using DevStack
• SDN
– iNaaS : The SDN Controller for virtual network
– Value
• Demo
3. OpenStack ml2 plugin
• Ml2 plugin : Types + Mechanisms
• Type : typically network type (gre/vlan/vxlan)
• Mechanism : network implement (vender specific)
Core plugin (ML2)
Type Manager Mechanism Manager
Type Driver Mechanism Driver
GRE VLAN VXLAN…
Linux
Bridge
OVS ODL iNaaS…
HERE!!
4. Mechanism 드라이버를 어떻게 만들죠?
• Ml2 plugin (neutron/plugins/ml2/plugin.py)
…
self.mechanism_manager.create_RESOURCE_precommit(mech_context)
try:
self.mechanism_manager.create_RESOURCE_postcommit(mech_context)
except ml2_exc.MechanismDriverError:
with excutils.save_and_reraise_exception():
LOG.error(_("The respective error message"))
self.delete_RESOURCE(context, result['id']) # only on create operations
return result
network /
subnet /
port
9. 이제 서비스를 해볼까?
나 : “아싸~~ 완성~~ git에다가 올리고~~ 룰루~~”
A모 서브팀장 : “이거 안 돌아가는데???”
B모 서브팀장 : “우리는 잘 돌아가는데???”
이유는…
A 서브팀에서는 DevStack을 사용하더라…
10. DevStack
• Where is ml2 mechanism driver??
– /opt/stack/neutron/neutron/plugins/ml2/drivers/
• Where is ml2_conf.ini??
– /etc/neutron/plugins/ml2/ -> don’t
– must edit setup.cfg -> /opt/stack/neutron/
• How can I start DevStack??
– Edit local.conf : /stack/
– stack.sh
15. iNaaS
• Based OpenIRIS SDN Controller
(https://github.com/bjlee72/IRIS)
• iNaaS : OpenIRIS Network as a Service
(https://github.com/uni2u/iNaaS)
• Network virtualization solutions for cloud environments
• Providing policy-based NaaS
• Work with OpenStack to create a virtual segment
networks(VSN) for each tenant
• Separate policy application support for each VSN
16. SDN 환경에서는 OVS도 제어할 수 있다던데
• OpenStack using OpenvSwitch
– Wow!!! OpenvSwitch support OF 1.0/1.3
– Wow!!! OpenvSwitch connect SDN Controller
– Wow!!! OpenvSwitch create tunnel network
• BUT!!!!
– OpenvSwitch using hybrid flow
• Make OpenFlow rule using OF 1.0 + 1.3
• Solutions
– Using OVSDB
– agent
17. ovsdb / agent 무엇을 사용하나?
• Ubuntu에서는 Remote로 ovs 관련 command를 100% 사용할 수 없다
– ovs-vsctl : 완벽 사용 가능
– ovs-ofctl : 사용 불가
• ovsdb를 사용하면?
– ovs는 OF 기반의 가상 스위치인데…
– 그러면 당연 SDN Controller가 제어할 수 있어야 하는데…
– 이거 되게 복잡하네???
• ovs-ofctl add flow를 사용하게 해 달라
– Agent 개발 하라는 무언의 압박
19. iNaaS Agent
• Using Java
• Install Network/Compute node
• Create tunnel network (full mash)
– Network to each compute node
• Create Flow rules to OF switch from iNaaS
20. iNaaS Function
iNaaS Server
iNaaS Manager iNaaS DB Tunnel Manager
Policy-based Virtual Forwarding
Manager
ARP Manager
Flow-to-VNID Mapper
vNet State
Manager
Policy Manager
OpenStack iNaaS Plugins
iNaaS AgentiNaaS Mechanism Driver
iCanvas
Custom Costs
Manager
Custom Path
Finder
Path Calculation
Multipath
Selection
21. iNaaS Architecture
Compute Node
Nova
Compute
Agent
…
IRIS Agent
ovs
VM VM
Network Node
DHCP Agent
l3 Agent
IRIS Agent
DHCP & l3 servicesDHCP & l3 servicesDHCP & l3 services
ovs
iCanvas/Horizon
IRIS Controller
iNaaS Server
IRIS Core
iNaaS
Manager
Policy
Manager
iNaaS
DB
Policy based Virtual
Forwarding Manager
Flow to VNID
Mapper
Tunnel
Manager
DHCP
Manager
l3
Manager
vNet State
Manager
Control Node
Nova
ovs
Neutron
REST API
RPCs
REST API
22. Our Topology
Public Network
Data Network
[OpenStack Tunnel Network]
OpenStack Management Network
iNaaS
OpenStack
Control Node
OpenStack
Network Node
OpenStack
Compute01
OpenStack
Compute02
OpenStack
Compute03
eth0 eth2
eth1
eth0
eth1
eth0 eth2
eth1
eth2
eth1
eth2
eth1
eth2
eth1
OF AP OF AP OF AP OF AP
OF SWOF SW
OpenFlow
Management
Switch
10.0.0.10 10.0.0.11 10.0.0.21 10.0.0.31 10.0.0.32 10.0.0.33
10.0.10.32 10.0.10.3310.0.10.21 10.0.10.31Public IP 10.0.20.10
10.0.20.21 10.0.20.23
10.0.20.11 10.0.20.12 10.0.20.13 10.0.20.14
OpenStack Management
Switch
Public IP Public IP
24. OpenStack과 SDN.. 뭘 할 수 있는거지?
• Physical & Virtual Network 제어
– Virtual Network에 해당하는 Physical Network 제어
– Flow level management
• Tenant 별 네트워크 제어
– Band width, Traffic 등
– Flow path management
– Policy based network management