Gluon Project with EVPN Solution - conference.cn · Project Proposal – Support BGP-EVPN SDN-X...
Transcript of Gluon Project with EVPN Solution - conference.cn · Project Proposal – Support BGP-EVPN SDN-X...
Introduction – Gluon (A Model-Driven, Extensible Framework for NFV Networking Services)
Benefits: ü More choice Don’t have to find one tool that does everything ü More simplicity
The individual API endpoints are much simpler because they only have to do one thing
ü More innovation ü Agile method to enable new use cases in telco market ü Accelerated time-to-market of launching new services to Telco customers
GluonAims
q Supportmul*pleinfraandvendorssimultaneouslyq Model-DrivenAPIsandcodegenera*onq Agilityfornewservicesq Separa*onbetweenAPIsandbackend
Gluon Feature summary
Page 3
ü It’s difficult to extend neutron’s networking API’s to
address several networking services.
ü Gluon introduces a simple modelling framework q To test different networking services (networking API’s)
q Reduces time to market
q Provides flexibility to integrate any controller
NOVA
Neutron Plugin:ML2
controller
VM
OVS
Gluon Driver
controller
OVS
Neutron Plugin
Compute
Node
VM
Neutron NOVA Neutron
Compute
Node
Gluon Present Support
Page 4
ü Gluon relies on the Neutron’s Plugin frame.
ü Gluon ensures that the L3 service is flexible.
ü Adopts a model driven approach
ü Data models are described using YAML
ü Uses tool to generate corresponding networking API’s called Proton.
ü Controller needs to define an adaptive shim layer to communicate with the Proton server using
etcd.
ü Already support L3VPN networking API’s.
Gluon Ecosystem
Page 5
ü ONOS can support Gluon.
q Support advertisement and processing of BGP-EVPN packets
q Ensure multi-vendor compatibility for the defined NBI’s
Neutron
Agile Controller
VM1 VPN1
CE1800V
VM1 VPN2
VM2 VPN1
DPDK/ OVS
VM2 VPN2
ODL/ Ericsson
VM3 VPN1
Switch/ vRouter
VM3 VPN2
Juniper
VM5 VPN1
Juniper Switch/ vRouter
VM5 VPN2
Cisco
VM4 VPN1
Cisco Switch/ vRouter
VM4 VPN2
Gluon Proton
ONOS
Data Plane
Control Path
others
OtherCloudPla4orm
Project Proposal – Support BGP-EVPN
ONOS SDN-X
BGP-EVPN
VxLAN
VM1 evpn-ins:1
EVPN
Host2
OVS
Host 1
Vrouter/switch
shim
etcd
Proton-Server
Neutron
Nova shim
VM3 evpn-ins:1
VM2 evpn-ins:2
VM4 evpn-ins:2
ü Integrate ONOS with Gluon.
ü Between two independent ONOS controllers establish BGP-EVPN session.
ü Form OVS VxLAN tunnel.
ü Different tenants establish BGP EVPN session and does not affect each other.
ONOS Project Framework
Page 7
ONOS CORE
BGP Provider
Network Config Subsystem
BGP-EVPN Open (L2VPN:25, EVPN:70) KeepAlive Update (MP_NLRI \ MP_UNLRI) Notification
http://127.0.0.1:8181/onos/v1/network/configuration “RouterId”: “10.0.2.27”, “LocalAs”: 100, “HoldTime”: 90th, “EvpnCapability”: true, “BgpPeer”:[{“PeerIp”: “10.0.2.28”, “RemoteAs”: 100, “PeerHoldTime”: 90th, “ConnectMode”:“Active”}]
ReSTful API
BGP-EVPN
Host Subsystem
Route Subsystem
OVSDB OpenFlow
FlowRule Subsystem
ovs
VM
EVPN APP
SHIM Vpnlist, Port-VM Vpn-Port-Binding
VTN APP makes VxLAN connection
ü EVPN and VTN APP coordination is required.
ü BGP_LS Provider will be extended to support BGP-EVPN signaling;
ü Through the shim layer, EVPN-APP will communicate with Gluon and receives EVPN configuration.
ü EVPN-APP processing will include:
ü OVS establishes the VxLan tunnel;
ü BGP to transmit local MAC/IP to other BGP peer via BGP-EVPN routes.
ü BGP peers needs to program the OVS data-plane for the received MAC/IP.
Essential flow – Gluon Configurations
Protonclient –api net-l3vpn vpn-list [ { “Description”: “My Test VPN”, “Route_distinguishers”: “1100:1100”, “name”: “TestVPN”, “Ipv6_family”: “1100:1100”, “Id”: “B70b4bbd-aa40-48d7-aa4b-57cc2fd34010”, “Ipv4_family”: “1000:1000” }]
Protonclientt --api net-l3vpn port-list [ { “Status”: “ACTIVE”,
“Vif_type”: “Ovs”, “Name”: “TestVPNPort”, “Admin_state_up”: true, “Tenant_id”: “5205b400fa6c4a888a0b229200562229”,
“Mtu”: 1500, “Vnic_type”: “Normal”,
“Vlan_transparency”: true, “Mac_address”: “c8:2a:14:04:43:30”,
“Id”: “Fe338d4c-2aef-4487-aa25-cb753bf02518” }]
protonclient --api net-l3vpn vpnbinding-create --interface_id fe338d4c-2aef-4487-aa25-cb753bf02518 --service_id b70b4bbd-aa40-48d7-aa4b-57cc2fd34010 --ipaddress 10.0.0.103 --sebnet_prefix 24 --gateway 10.0.0.1
nova --debug boot --flavor 1 --image cirros --nic port-id=fe338d4c-2aef-4487-aa25-cb753bf02518 TestGluon
1. Create Gluon Port and VPN
2. Bind Gluon port to the created VPN
3. Boot a VM with the gluon port bounded to the created VPN
ONOS Gluon APP will extract these configuration using etcd-client
protonclient –api net-l3vpn vpn-create --name "TestVPN" --ipv4_family 1100:1100 --ipv6_family 1100:1100 --route_distinguishers 1100:1100 --description "My Test VPN"
protonclient --api net-l3vpn port-create --mac_address c8:2a:14:04:43:30 --mtu 1500 --admin_state_up True --name "TestVPNPort" --vlan_transparency True --vnic_type normal --vif_type ovs --status ACTIVE --tenant_id $(openstack network list --long -c Project -c Name | grep GluonNetwork | awk '{print $4}'
{ “service_id”: “B70b4bbd-aa40-48d7-aa4b-57cc2fd34010”, “Interface_id”: “Fe338d4c-2aef-4487-aa25-cb753bf02518”, “ipaddress”: “10.0.0.103”, }
Collaboration with Other Companies
Tech Mahindra
• Strategy • Huawei India will design & implement ONOS Gluon EVPN • Tech Mahindra will design & implement ONOS Gluon L3VPN
• Knowledge share • Huawei India gave ONOS Gluon EVPN design training to Tech Mahindra • Huawei India conducted ONOS Gluon EVPN code walk through
ON.Lab
• ONOS Route Subsystem • Discussed with ON.Lab and refined their new route subsystem design • As per ON.Lab design, added route subsystem support for EVPN routes
• ONOS Gluon EVPN • Updated BGP provider, EVPN app and Gluon app and submitted for review by ON.Lab
Ericsson & Juniper
• Lab • Deployed E2E Gluon EVPN project in Ericsson OPNFV Lab
• Interoperability • YAML based BGP configuration on ONOS and Juniper Contrail controllers using Gluon proton-client • Verified BGP EVPN route exchange and interoperability between ONOS and Juniper Contrail controllers
Progress & Workload
Features Implemented
ONOS Gluon App
ONOS EVPN App
Route Subsystem Support EVPN route
BGP Provider Support EVPN route exchange
YAML based BGP config via ETCD
Scenarios Demonstrated
Single VPN bind/unbind
Multi VPN bind/unbind
Host & VPN addition/deletion
Shim layer operations
YAML based BGP EVPN peer config and route exchange
Current Status
Total code size: 15 KLOC
Committed to ONOS
Review in progress
Other Community Activities
• Presented Gluon EVPN demo to OpenStack Boston Summit 2017
• EVPN project is dependent on OpenStack Gluon-core-plugin
• Discussed with OpenStack Gluon community and resolved the issues during integration
OpenStack
• Deployed E2E Gluon EVPN project in Ericsson OPNFV Lab
• Verified BGP EVPN interop between SDN ONOS and Juniper Contrail controller using YAML config via Gluon proton-client
OPNFV
Thanks