About overlay network in CORD(Central Office Re-architected as a Datacenter), overlay network is driven by VTN application in ONOS controller, and this talk will deep into how VTN use OpenFlow rules to construct Service Networking in CORD.
3. 3Outline
q Introduction
q SDN & NFV
q ONOS
q Central Office Re-architecture as a Datacenter
q XOS
q Service, Tenant, Slices
q Service Dependency and Service Instance Link
q Virtual Tenant Network (VTN)
q VTN components
q VTN OVS pipeline
q Service Dependency relationship
6. 6Central Office Re-architect as a Datacenter (CORD)
SDN + NFV +
Cloud
Open Source Software
Commodity Hardware
(Servers, White-Box Switches, I/O Blades)
Large number of COs
Evolved over 40-50 years
300+ Types of equipment
Huge source of CAPEX/OPEX
9. 9
Internet
Virtualized Mobile Services Architecture
Control Platform (XOS)
BBU MME HSS SPGW-C SPGW-U
Virtualized
BBU
Virtualized
BBU
Virtualized
MME
Virtualized
HSS
Virtualized
SPGW-C
Virtualized
SPGW-U
10. 10XOS
q XOS is an orchestrator to manage CORD architecture.
q XOS can manage networks of VM
(e.g. create a network using DHCP 10.0.0.0/24 by calling Openstack Neutron)
q XOS can manage VMs
(e.g. create a 2 CPU VM with HSS image by calling Openstack Nova)
q XOS can connect to VMs to perform user defined operations
(e.g. connect to HSS VM and enable HSS service with specific HSS config via SSH)
NFV Orchestration
XOS
CORD
Infrastructure
11. 11Orchestration behavior as module
q XOS provides a framework for implementing orchestration behavior as module.
NFV Orchestration
XOS
CORD
Infrastructure
XOS Developer
XOS User
Create Module
Request Orchestrate
Module
User intends to initialize VM
=> XOS calls Nova to initialize VM
12. 12Orchestration behavior as module
q Each installed module(include synchronizer) is a XOS Service
q Sychronizer manages the operation of module
XOS GUI
XOS User
Request
XOS RESTful API
XOS Web Socket
XOS Core
REDIS DB XOS DB
synchronizer
Module - X
xos service
synchronizer
Module - Y
xos service
CORD infrastructure services (ONOS, OpenStack, …)
13. 13
Service Slice
VM related XOS Models (illustrated)
Service VM
Service VM
Service VM
Multiple VM
(Service Instance)
Service VM
Service VM
Service VM
Service VM
Container
Service Slice
Service VM
Service VM
Service VM
Service
Controller
Controller +
Container
Tenant Service Slice Service
Service Slice
Service VM
Service VM
Service VM
Service Controller
(Synchronizer)
Service Slice
Service VM
Service VM
Service VM
Service with
multiple Slices
Controller +
2 Containers
14. 14VM related XOS Models
q Service: First Class in XOS, the model owned “service related objects”.
q Service composed by Service Slices and Service Contoller.
q Slice: Service Slice, Container to contain several Tenants.
q Tenant: Child model of Service, represent Service VM in XOS.
q Vendor: Service VM’s vendor image model.
q Instance: Model to save OpenStack VM state.
Service Slice
Service VM
Service VM
Service VM
Service VM
Service VM
Service VM
Service Slice
Service VM
Service VM
Service VM
Service
Controller
Tenant Service Slice Service
Service Slice
Service VM
Service VM
Service VM
Service Controller
(Synchronizer)
Service Slice
Service VM
Service VM
Service VM
Service with
multiple Slices
15. 15Service Dependency Model
q ServiceDependency: Create dependency relationship between Services.
q Dependency used in calculate Service process order and Network Connectivity.
q ServiceInstanceLink: Create dependency relationship between Tenants.
q Link used in calculate Tenant process order and Synchronizer sync sequence.
Service Slice
Tenant
Service
Controller
Service A
Service Slice
Tenant
Service
Controller
Service B
simplify simplify
Service Instance Link
Service Dependency
Subscriber Provider
16. 16CORDVTN: Virtual Tenant Network architecture
XOS
OVS
VTN @ ONOS-CORD
Service Network
Manager
Dependency
Handler
Instance
Handler
Node Manager
OpenStack
Neutron
CORDVTN enables network functionality
on overlay networking.
1. Build OVS pipeline with 7 tables.
2. Build Service private network flows.
3. Build Service Dependency network
flows.
4. Trasmit Tunneling packets to other
compute nodes.
5. VLAN tagged packets handling.
18. 18CORDVTN: Table introduction
3
2
5
1
0
6
4
SEL
ECT
vSG
Port
Tunnel
Port
Service
Port
• Ingress (Table 0): Check if a packet is VLAN tagged or not.
• Input Port (Table 1): Check packet’s source, and send to corresponding table.
• Access (Table 2): Check source IP to determine if packet is valid.
• Service Chaining (Table 3): Check if source net and destination net in service dependency relationship.
• Destination IP (Table 4): send to VM port by matching IP address.
• VNI (Table 5): VxLAN Network ID Table for Tunnel use.
• VLAN (Table 6): (depressed) Check VLAN tag and send to vSG port.
• SELECT Group: Service Dependency Load Balance use.
19. 19CORDVTN: Service Network Manager
XOS
OVS
VTN @ ONOS-CORD
Service Network
Manager
Dependency
Handler
Instance
Handler
Node Manager
OpenStack
Neutron
Service Network Manager offers RESTful API and is
responsible for update information from XOS.
1. RESTful API for CRUD an network.
• using ML2 driver to interact with Neutron
• update overlay network via Neutron
2. Inform Instance Handler of network state change.
3. Inform Dependency Handler of dependencies info.
20. 20CORDVTN: Node Manager
XOS
OVS
VTN @ ONOS-CORD
Service Network
Manager
Dependency
Handler
Instance
Handler
Node Manager
OpenStack
Neutron
Node Manager is responsible to manage overlay OVS,
namely create and install bridge.
Steps:
1. Connnect to OVSDB.
2. Create a br-int as and set its controller.
3. Create Management, VxLAN, Fabric Ports.
4. Set management IP and Fabric IP to bridge br-int.
21. 21CORDVTN: Instance Handler
XOS
OVS
VTN @ ONOS-CORD
Service Network
Manager
Dependency
Handler
Instance
Handler
Node Manager
OpenStack
Neutron
Instance Handler provides Tenant’s network
Connectivity and maintains Tenant’s port on OVS.
1. Provides several network types.
• Private: private network
• Public: external connectivity network
• Flat: external accessibled network
• Management: accessible from
head/compute for only management usage
2. Detect / Configure port for Tenant on OVS.
22. 22CORDVTN: Dependency Handler
XOS
OVS
VTN @ ONOS-CORD
Service Network
Manager
Dependency
Handler
Instance
Handler
Node Manager
OpenStack
Neutron
Dependency Handler provides network connectivity
from subscriber to provider.
Dependency Handler create flows about service
dependency, flows have following limit:
1. subscriber can access providers’ tenants by
providers’ service gateway.
i.e. subscriber can’t access providers‘ tenants by
IP directly.
23. 23CORDVTN: Network Architecture
Fabric
vHSS Tenant
vMME Tenant
vSPGW-C Tenant
vSPGW-U Tenant
management
hss_net
management
management
management
mme_net
spgwc_net
spgwu_net
public
Compute Node
Data Plane
In OAI M-CORD Network Architecture,
have use 4 different VTN network types.
MANAGEMENT: management usage.
PRIVATE: private network.
FLAT: external accessibled private network.
PUBLIC: external connectivity network.
eNodeB
24. 24
vMME Slice
MME
10.0.6.2/24
eNB
10.0.5.2/24
vHSS Slice
HSS
10.0.7.2/24
vSPGW Slice
SPGW
10.0.8.2/24
SPGW
10.0.8.3/24
MME: 10.0.6.1/24
HSS: 10.0.7.1/24
SPGW: 10.0.8.1/24
Services communicate with each other by Service Gateway IP.
eNB learned SPGW’s IP from MME.
Virtual Service Gateway
Virtualized Gateway
(Done by OVS Group Table)
33. 33Conclusion
q VTN’s design concept
q Categorized flows into different tables in VTN OVS pipeline
q Service Dependencies: Subscriber to Provider
q Considered packet transmission between 2 compute nodes
q Service Dependency concept
q Subscriber can only communicate with Provider by Service Gateway IP
q When provider reply to subscriber, source IP will be updated to Gateway IP
34. Q & A
34
Any Question?
aweimeow
wychen@cord-ambassadors.org