Gwenael LAMBROUIN
Santa Clara, CA, USA2015-07-28
/ Provisioning VPNs on a heterogeneous network
infrastructure with OpenDaylight and NETCONF /
15/04/2023
28/07/15 / 2Diffusion : confidentiel28/07/15 / 2Diffusion : confidentiel28/07/15 / 2Diffusion : confidentiel / 2Diffusion : public
Contents
› Part 1•The Problem to Solve
•Key Technical Issues
•Why OpenDaylight (ODL)?
› Part 2•Our implementation
› Part 3•Ongoing work with ODL
•Feedback on ODL
28/07/15 / 3Diffusion : confidentiel28/07/15 / 3Diffusion : confidentiel28/07/15 / 3Diffusion : confidentiel / 3Diffusion : public
›faster service delivery & improved self-service
›through automation
›on an example: L2VPN
The Problem to Solve
28/07/15 / 4Diffusion : confidentiel28/07/15 / 4Diffusion : confidentiel28/07/15 / 4Diffusion : confidentiel / 4Diffusion : public
The Problem to Solve
28/07/15 / 5Diffusion : confidentiel28/07/15 / 5Diffusion : confidentiel28/07/15 / 5Diffusion : confidentiel / 5Diffusion : public
The Problem to Solve
28/07/15 / 6Diffusion : confidentiel28/07/15 / 6Diffusion : confidentiel28/07/15 / 6Diffusion : confidentiel / 6Diffusion : public
The Problem to Solve
28/07/15 / 7Diffusion : confidentiel28/07/15 / 7Diffusion : confidentiel28/07/15 / 7Diffusion : confidentiel / 7Diffusion : public
›Abstraction
›Error management
›Resource allocation
›Orchestration
Key Technical Issues
28/07/15 / 8Diffusion : confidentiel28/07/15 / 8Diffusion : confidentiel28/07/15 / 8Diffusion : confidentiel / 8Diffusion : public
›Simplifies service logic
›Makes it possible to change the hardware
›What is the good level?
Abstraction
28/07/15 / 9Diffusion : confidentiel28/07/15 / 9Diffusion : confidentiel28/07/15 / 9Diffusion : confidentiel / 9Diffusion : public
›Configurations can fail
›Errors must be detected
›A recovery plan is needed
Error Management
28/07/15 / 10Diffusion : confidentiel28/07/15 / 10Diffusion : confidentiel28/07/15 / 10Diffusion : confidentiel / 10Diffusion : public
›open source
›backed-up by industry
›NETCONF
›abstraction (MD-SAL/YANG)
›to evaluate ODL
Why OpenDaylight (ODL)?
28/07/15 / 11Diffusion : confidentiel28/07/15 / 11Diffusion : confidentiel28/07/15 / 11Diffusion : confidentiel / 11Diffusion : public
Contents
› Part 1•The Problem to Solve
•Key Technical Issues
•Why OpenDaylight (ODL)?
› Part 2•Our implementation
› Part 3•Ongoing work with ODL
•Feedback on ODL
28/07/15 / 12Diffusion : confidentiel28/07/15 / 12Diffusion : confidentiel28/07/15 / 12Diffusion : confidentiel / 12Diffusion : public
Our Implementation
28/07/15 / 13Diffusion : confidentiel28/07/15 / 13Diffusion : confidentiel28/07/15 / 13Diffusion : confidentiel / 13Diffusion : public
The Generic Device Driver
28/07/15 / 14Diffusion : confidentiel28/07/15 / 14Diffusion : confidentiel28/07/15 / 14Diffusion : confidentiel / 14Diffusion : public
›Better than CLI•structured
•explicit failures
›But some useful features are optional•eg « commit »
Comments on NETCONF
28/07/15 / 15Diffusion : confidentiel28/07/15 / 15Diffusion : confidentiel28/07/15 / 15Diffusion : confidentiel / 15Diffusion : public
The Generic Device Driver
28/07/15 / 16Diffusion : confidentiel28/07/15 / 16Diffusion : confidentiel28/07/15 / 16Diffusion : confidentiel / 16Diffusion : public
<cmd>interface GigabitEthernet3</cmd> <cmd>no ip address</cmd><cmd>no shut</cmd><cmd>negotiation auto</cmd> <cmd>service instance 1 ethernet</cmd> <cmd>encapsulation untagged</cmd> <cmd>bridge-domain 1</cmd> <cmd>end</cmd>
Example 1
28/07/15 / 17Diffusion : confidentiel28/07/15 / 17Diffusion : confidentiel28/07/15 / 17Diffusion : confidentiel / 17Diffusion : public
<routing-instances><instance><name>orange_vpn</name><interface operation="create">GigabitEthernet 0/0/3</interface>…
Example 2
28/07/15 / 18Diffusion : confidentiel28/07/15 / 18Diffusion : confidentiel28/07/15 / 18Diffusion : confidentiel / 18Diffusion : public
The Generic Device Driver
28/07/15 / 19Diffusion : confidentiel28/07/15 / 19Diffusion : confidentiel28/07/15 / 19Diffusion : confidentiel / 19Diffusion : public
String vendor="Cisco"; // or "Juniper"Driver driver = Driver.build(vendor);driver.open(deviceAddress, login, password);driver.addL2vpnPort("orange_vpn", 1, "GigabitEthernet3");driver.close();
Example
28/07/15 / 20Diffusion : confidentiel28/07/15 / 20Diffusion : confidentiel28/07/15 / 20Diffusion : confidentiel / 20Diffusion : public
The Generic Device Driver
28/07/15 / 21Diffusion : confidentiel28/07/15 / 21Diffusion : confidentiel28/07/15 / 21Diffusion : confidentiel / 21Diffusion : public
POST http://[...]/l2vpn:add-l2vpn-port
{ "device-id" : "v_lightblue_site1", "vpn-name" : "orange_vpn", "vpn-number" : 1, "port-name" : "GigabitEthernet3"}
Example
28/07/15 / 22Diffusion : confidentiel28/07/15 / 22Diffusion : confidentiel28/07/15 / 22Diffusion : confidentiel / 22Diffusion : public
L2VPN Service Orchestrator
28/07/15 / 23Diffusion : confidentiel28/07/15 / 23Diffusion : confidentiel28/07/15 / 23Diffusion : confidentiel / 23Diffusion : public
L2VPN Service Orchestrator
28/07/15 / 24Diffusion : confidentiel28/07/15 / 24Diffusion : confidentiel28/07/15 / 24Diffusion : confidentiel / 24Diffusion : public
›Error recovery strategies•rollback on error
•continue on error
›What is the better strategy?•It depends!
L2VPN Service Orchestrator
28/07/15 / 25Diffusion : confidentiel28/07/15 / 25Diffusion : confidentiel28/07/15 / 25Diffusion : confidentiel / 25Diffusion : public
Contents
› Part 1•The Problem to Solve
•Key Technical Issues
•Why OpenDaylight (ODL)?
› Part 2•Our implementation
› Part 3•Ongoing work with ODL
•Feedback on ODL
28/07/15 / 26Diffusion : confidentiel28/07/15 / 26Diffusion : confidentiel28/07/15 / 26Diffusion : confidentiel / 26Diffusion : public
›Move orchestration to ODL
›Experiment with data persistency
›Develop a CLI driver
Ongoing Work with ODL
28/07/15 / 27Diffusion : confidentiel28/07/15 / 27Diffusion : confidentiel28/07/15 / 27Diffusion : confidentiel / 27Diffusion : public
›Cons•Hard to learn, hard to master
›Pros•Stable
•Bug & patch processes work
•Friendly & responsive community
Feedback on ODL
28/07/15 / 28Diffusion : confidentiel28/07/15 / 28Diffusion : confidentiel28/07/15 / 28Diffusion : confidentiel / 28Diffusion : public
›ODL can manage network devices
›We are ready to share our code
›… if there is interest!
Conclusion