A Brief Introduction to OpenDaylight - colin...

30
A Brief Introduction to OpenDaylight Colin Dixon Technical Steering Committee Chair, OpenDaylight Senior Principal Engineer, Brocade Some content from: David Meyer, Neela Jaques, and Kevin Woods

Transcript of A Brief Introduction to OpenDaylight - colin...

Page 1: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

A Brief Introduction to OpenDaylight Colin Dixon Technical Steering Committee Chair, OpenDaylight Senior Principal Engineer, Brocade Some content from: David Meyer, Neela Jaques, and Kevin Woods

Page 2: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Outline • Introduc)on…  

• …to  SDN  • …to  OpenDaylight…  

•  …with  a  brief  aside  into  YANG  • New  in  Lithium  • Plans  for  Beryllium  

Page 3: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

dst   port  

0E   6  

dst   port  

0E   6  

0A   1  

dst   port  

0E   6  

0A   1  

0C   4  

Traditional SDN (OpenFlow) The separation of the control and data planes • Modern  switches  

• Control/data  plane  both  on  switch  • Data  plane:  fast,  reads  tables  • Control  plane:  slow,  writes  tables  

• SDN  • Decouple  control/data  planes  • Data  plane  on  the  switch  • Control  plane  elsewhere,  e.g.,  an  x86  server,  can  do  fancier  things  

Switch  Chip  

Control  Plane  CPU  

Ports,  1-­‐6  

SDN  Controller  

This  gets  smaller,  turns  into  

controller  to  switch  chip  translator  

Most  features  go  here  

0A-­‐>0E  0A-­‐>0E  0A-­‐>0C  

Table  miss,  send  to  controller  

Install  table  entry,  send  

packet  

0C-­‐>4  

Page 4: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Modern, Inclusive SDN

control  

mgmt  

control  

mgmt  

control  

mgmt  

Vendor  A   Vendor  B   Vendor  C  

Logically  Centralized  

SDN  Controller  

Northbound  API  

Industry  Standard  Control/Management  

Protocols  Standard  Modeling  Language  

Vendor  A  

control  

mgmt  

control  

mgmt  

Vendor  B   Vendor  C  

control  

mgmt  

Page 5: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

What is OpenDaylight OpenDaylight  is  an  Open  Source  So9ware  project  under  the  Linux  Founda=on  with  the  goal  of  furthering  the  adop)on  and  innova)on  of  So9ware  Defined  Networking  (SDN)  through  the  crea)on  of  a  common  industry  supported  plaYorm.  

To  create  a  robust,  extensible,  open  source  code  base  that  covers  the  major  common  components  required  to  build  an  SDN  solu)on  

Code  

To  get  broad  industry  acceptance  amongst  vendors  and  users:  •  Using  it  directly  or  through          vendor  products  •  Vendors  using  OpenDaylight          in  commercial  products  

Acceptance  

To  have  a  thriving  and  growing  technical  community  contribu)ng  to  the  code  base,  using  the  code  in  commercial  products,    and  adding  value  above,  below  and  around.  

Community  

Page 6: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

OpenDaylight Releases • Hydrogen  (first  release)  

•  February  2014  •  13  projects,  1.3m  lines  of  code  

• Helium  (second  release)  • October  2014  •  25  projects,  2.1m  lines  of  code  

• Lithium  (latest  release)  •  June  2015  •  40+  projects,  2.3m  lines  of  code  

Page 7: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Model-­‐Driven  Service    Abstrac)on  Layer  (MD-­‐SAL)  

Core Architecture

No)fica)ons  

RPCs  

YANG  Models  

Data  

App/Service  

App/Service  

Plugin   Plugin  

Controllers  in  a  Cluster  

Page 8: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

What is YANG? • Data  modeling  language  for  NETCONF  

• RFC  6020  

• Great,  what  is  NETCONF?  •  Think  of  it  as  an  SNMP  replacement  with  nice  features  •  YANG  models  ~=  SNMP  MIBs  

• OK,  fine,  but  what  is  YANG?  

Page 9: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

What is YANG? • Three  core  abstrac)ons  

• Data  • RPCs  (just  data  in  and  data  out)  • No)fica)ons  (just  data  out)  

• So,  it’s  really  all  about  the  data  

DATA

Page 10: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

What does YANG data look like • container  ~=  struct  •  list  ~=  map/dic)onary  •  leaf  ~=  primi)ve  types  • grouping  ~=  interface  

• Others:  typedef,  pointers,  constraints,  etc.  

grouping node-attributes { leaf node-id { ... } } container network-topology { list topology { key "topology-id"; leaf topology-id { type topology-id; } list node { key "node-id"; uses node-attributes; } list link { key "link-id"; uses link-attributes; } } }  

Page 11: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

OpenDaylight Community • Like  any  Open  Source  Project,  OpenDaylight  primarily  consists  of  those  who  show  up  to  do  the  work.  

• Running  around  250  commits  per  week  over  12  months,  trending  up  •  30  Days:  ~625  commits,  ~100  contributors  (7/13/15–8/12/15;  during  a  release)  

•  Spikes  to  ~2x  this  near  releases  •  12  Months:  ~13,250  commits,  ~365  contributors  (8/12/14–8/12/15)  

• Strong  integra)on  and  tes)ng  community  •  This  stuff  really  malers  

Source: https://www.openhub.net/p/opendaylight

Page 12: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

OpenDaylight Community

Page 13: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

What’s in OpenDaylight

Page 14: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

API-Driven Service Abstraction Layer (AD-SAL) Model-Driven Service Abstraction Layer (MD-SAL)clustering shared data

modelsRPCs and

notifications

OVSDBOpenFlow SNBI SNMPPCMM/COPS LISPBGPPCEP NETCONF OpenFlowUSCALTO CoAP

1.0 1.31.0 TTPLACP SXP OpFlex

AD-SAL REST APIs MD-SAL RESTCONF (REST) APIs Neutron APIs

Custom Basic AuthN Filter AAA AuthN Filter Neutron AuthN

Southbound Interfaces and Protocol Plugins

Abstraction Layers

Northbound/REST APIs

Authentication

OpenStack Neutron Service

VTN Group Policy OVSDB LISPVPN

Svc

Controller Platform and Services

OpenStack(via Neutron)

Application and Orchestration ServicesVTN Coordinator DLUX

Web-based GUISDNi Wrapper

Service Func. Chaining

Group Policy

ALTO

TSDR PersistenceSDNi Aggregator

Netwk. Intent

Base Network Services

stats flow-based programming

host tracking

topology processing L2

Switch

TCPMD5TCPMD5

DOCSIS

ReservationDIDM

CAPWAP

LISP Service

Page 15: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Kernel • AAA  • YANG  Tools  • OpenDaylight  Controller  • MD-­‐SAL  • NETCONF  • ODL  Root  Parent  

Page 16: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Plugins • BGP  • CAPWAP  • FaaS  • IoTDM  • LACP  • LISP  • OVSDB  

• OpenFlow  • Circuit  switching  extensions  

• OF-­‐CONFIG  •  Table  Type  Palerns  

• PCEP  • PacketCablePCMM  • SNMP  

• SXP  • Secure  Network  Bootstrapping  

• TCPMD5  • USC  • YANG  PUBSUB  

Page 17: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Services • Armoury  • Cen)nel  • Controller  Shield  • DIDM  • Messaging4Transport  • NeutronNorthbound  • NeXt  

• ODL-­‐SDNi  App  • VPNService  • TSDR  • Topology  Processing  Framework  • Persistence  

Page 18: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Applications • ALTO  • Defense4All  • Group  Based  Policy  (GBP)  • L2  Switch  • NEMO  • NetIDE  • Network  Intent  Composi)on  

• OpenDaylight  dlux  • OpenDaylight  Virtual  Tenant  Network  (VTN)  

• Reserva)on  • Service  Func)on  Chaining  • SNMP4SDN  • Unimgr  

Page 19: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Metaprojects • Controller  Core  Func)onality  Tutorials  • Documenta)on  • Integra)on/distribu)on  • Integra)on/Packaging  • Integra)on/Test  • RelEng/Autorelease  • RelEng/Builder  

Page 20: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

What do people use it for?

Page 21: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

OpenDaylight with OpenStack • Single  OpenStack  Neutron  service  proxy  

•  Handles  most  of  the  bookkeeping  

• Choose  your  implementa)on  •  Group-­‐based  Policy  •  LISP  •  OVSDB  •  VPN  Service  (only  for  VPNaaS)  •  VTN  

• Check  it  out  (see  the  links  for  instruc)ons)  API-Driven Service Abstraction

Layer (AD-SAL) Model-Driven Service Abstraction Layer (MD-SAL)clustering shared data models

RPCs and notifications

OVSDBOpenFlow SNBI SNMPPCMM/COPS LISPBGPPCEP NETCONF OpenFlowUSCALTO CoAP

1.0 1.31.0 TTPLACP SXP OpFlex

AD-SAL REST APIs MD-SAL RESTCONF (REST) APIs Neutron APIs

Custom Basic AuthN Filter AAA AuthN Filter Neutron AuthN

Southbound Interfaces and Protocol Plugins

Abstraction Layers

Northbound/REST APIs

Authentication

OpenStack Neutron Service

VTN Group Policy OVSDB LISPVPN

Svc

Controller Platform and Services

OpenStack(via Neutron)

Application and Orchestration ServicesVTN Coordinator DLUX

Web-based GUISDNi Wrapper

Service Func. Chaining

Group Policy

ALTO

TSDR PersistenceSDNi Aggregator

Netwk. Intent

Base Network Services

stats flow-based programming

host tracking

topology processing L2

Switch

TCPMD5TCPMD5

DOCSIS

ReservationDIDM

CAPWAP

LISP Service

http://www.flaviof.com/blog/work/how-to-odl-with-openstack-part1.html http://www.flaviof.com/blog/work/how-to-odl-with-openstack-part2.html http://www.flaviof.com/blog/work/how-to-odl-with-openstack-part3.html http://go.linuxfoundation.org/l/6342/2015-06-29/2lgcdr/6342/128166/openstack_20150629.pdf

Page 22: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Network-wide Security Policy • Historically,  policy  is  mostly  

•  Rigidly  enforced  by  the  physical  topology,  e.g.,  firewall  at  the  gateway  •  Configured  “dynamically”  via  box-­‐by-­‐box  Access  Control  Lists  (ACLs)  

• New  policy  efforts  are  changing  this  •  Network  Func)on  Virtualiza)on  (NFV)  and  Service  Func)on  Chaining  (SFC)  •  Automa)cally  generated  ACLs  based  on  network-­‐wide  policy  

• OpenDaylight  is  a  proving  ground  for  at  least  3  policy-­‐oriented  projects  •  Service  Func)on  Chaining,  Group-­‐Based  Policy,  and  Network  Intent  Composi)on  

Page 23: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Programmable EMS and/or NMS • Huge  number  of  southbound  protocol  drivers  

• OpenFlow,  NETCONF,  OVSDB,  SNMP,  BGP,  PCEP,  PCMM/COPS,  etc.  

• With  a  lille  bit  of  effort,  you  can  write  “shell  scripts”  for  your  network  to  either  gather  informa)on  or  automate  tasks  

• Automate  triggering  ac)vi)es  based  on  network  events,  e.g.,  quaran)ne  a  host  with  L2  ACLs  based  on  informa)on  from  an  IDS  

Page 24: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

How to get involved

Page 25: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Ways to get involved •  IRC:  #opendaylight  on  freenode:  hlp://webchat.freenode.net/  • Mailing  lists:  hlp://lists.opendaylight.org/  • Wiki:  hlp://wiki.opendaylight.org/  • Documenta=on:  hlps://www.opendaylight.org/downloads  

•  On  github:  hlps://github.com/opendaylight/docs/  

• Git/Gerrit:  hlp://git.opendaylight.org/  •  Create  an  account:  hlps://iden)ty.opendaylight.org/carbon/user-­‐registra)on/user-­‐registra)on.jsp  

• Projects:  hlps://wiki.opendaylight.org/view/Project_list  •  Individual  pages  have  links  to  mee)ng  )mes,  code,  bugs,  IRC  channels,  etc.  

• Mee=ngs:  hlps://wiki.opendaylight.org/view/Mee)ngs  

Page 26: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Backup Slides

Page 27: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

How to get there from here • How  do  we  deploy  SDN  when  it’s  not  green  field  

•  Because  prely  much  nothing  is  actually  green  field  

•  Hybrid  switches,  hybrid  networks,  legacy  protocols  for  interoperability,  etc.  •  OpenDaylight  supports  SNMP,  BGP,  LISP,  NETCONF,  etc.  

• Trust  and  stability  •  Current  networks  build  on  40  years  of  code/experience  •  How  can  SDN  compete  with  that?  

•  Borrow  good  code/ideas  from  legacy  code  •  Provide  beler  visibility,  debugging,  etc.  •  Model  checking,  verifica)on,  etc.  

27

Page 28: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Centralized vs. Distributed (Consistency, Clustering and Federation) • SDN  promises  a  (logically)  centralized  control  plane  

•  In  prac)ce,  we  have  a  distributed  cluster  of  controllers,  rather  than  just  one  so  that  

•  we  can  tolerate  faults  •  we  can  scale  out  our  performance  •  in  network  par))ons  there  are  controllers  on  both  sides  

• Providing  consistency,  federa)on,  scale-­‐out,  dealing  with  CAP  trade-­‐offs,  etc.  is  HARD  

http://events.linuxfoundation.org/sites/events/files/slides/sdn-consistency-ods2014.pdf https://www.youtube.com/watch?v=XQ-lnB3x30g

Page 29: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Hardware Diversity • OpenFlow  1.0  provided  a  lowest  common  denominator  API  

•  Real  hardware  is  much  more  diverse  •  and  has  many  more  capabili)es  

• Exposing  this  diversity  without  burdening  developers  with  per-­‐device  programming  is  hard  

• Some  Alempts  •  Programming  Protocol-­‐Independent  Packet  Processors  •  TTPs  from  the  ONF’s  FAWG  

29

hlps://www.youtube.com/watch?v=bcaBS6w_k_o  hlp://events.linuxfounda)on.org/sites/events/files/slides/TTPs%20and%20NBIs%20for%20ods2014-­‐final_0.pdf  hlp://arxiv.org/pdf/1312.1719v1.pdf  

Page 30: A Brief Introduction to OpenDaylight - colin dixoncolindixon.com/wp-content/uploads/2014/05/umd-odl... ·  · 2015-10-24A Brief Introduction to OpenDaylight ... (AD-SAL) clustering

Application Composition • How  can  we  let  mul)ple  SDN  apps  share  the  network?  

•  PC  OSes  par))on  and  allocate  resources  •  You  can’t  easily  par))on  the  network  

•  It’s  value  comes  from  the  fact  that  it  spans  everything  •  You  can  in  some  cases,  e.g.,  by  address  space  (FlowVisor)  

• Some  ideas  • Most  apps  should  be  middleboxes,  i.e.,  NFV  

•  Simply  chain  them  together  in  the  right  order  •  There’s  more  to  it  than  this,  but  linear  chaining  is  powerful  

•  Other  apps  are  concerned  only  with  the  physical  path  •  There  is  hope  that  conflicts  here  can  be  sanely  managed  

30