Lecture 3 - SDN Part 2 Flashcards
Give some examples of where wildcards can be used.
- IPv4 traffic to a certain machine (e.g., result of a routing algo)
- Traffic of a certain VLAN from a certain port
- All traffic to a certain web server (p80)
What are the limitations of OpenFlow?
“One” Specification
- No switch supports all features
- Not all switch features are supported by OF
Protocol/Action bounded
- Fixed set of Protocols and Match Fields
- Fixed set of “allowed actions”
“Too Complex”
No interest of market dominant vendors*
What is NETCONF and its specifications?
NETCONF - Network Configuration Protocol
Southbound Protocol
- Initially: Management Plane Southbound
Transport layer & Operations
- TCP/TLS encrypted
- RPC like operations
– Connect/Disconnect
– Read config
– Overwrite/Update config
Data Representation
- JSON
- XML
- YANG
NETCONF doesn’t specify
- Type of Data
- Compared to OF - any protocol/function supported
- Difficult - How to realize “packet-in”/”packet-out”
Name some further OF and netconf alternatives
- RESTCONF: basically NETCONF but based on REST
- gRPC: often used in industry, vendor specific protobuf files
- SNMP (management only): ~100% support in commercial hardware
- PFCP: Used in 5g
- P4Runtime: Unused & “no future”
In a controller, name what comes through north, south and east/west bound interactions
Northbound - Programs and API
East/West - Other controllers
Southbound - Interact with Data Plane
Name controller functionalities.
- Routing - e.g. shortest path forwarding
- Notification manager - Receive, process, forward from/to app events
- Security mechanisms - Isolation and security enforcement, between apps and services
- Topology mngr - builds and maintains topology
- Statistics mngr - Collects data on traffic through the switches
- Device mngr - Configures switch parameters and attributes, manages flow tables
What does a SDN Controller (=Networked Operating System (NOS)) provide?
A SDN Controller provides:
- Essential services
- Common APIs
- Abstraction of lower-layer elements to developers
- Orchestration
- Application coordination
- Resource Abstraction
It’s between the application and resource layer connected by app control and resource control interfaces
Give some OpenSource and Commercial SDN controllers as example.
OpenSource
- ONOS
- OpenDaylight
- RYU
- OVS (by Linux F.)
Commercial
- CloudVision (Arista)
- Central (Aruba)
- CNC and ThousandEyes (Cisco)
- NSX-V (VMWare)
- …
What is the northbound interface?
Interface between controller and application-specific control logic
- “API” to program the network
Controller
- Exposes information about the network to the application
– Network topology
– Traffic stats
- Translates application requests to e.g. OpenFlow requests
- Sends Data Plane (e.g. OpenFlow) events to application
– packet_in events for reactive routing
Northbound interface is on top of the controller towards the control plane
Is there a single standard northbound interface?
There is no standard for the northbound interface
Every controller defines its own interfaces
We focus on one specific interface of OpenDaylight
- REST interface
Further possible Protocols:
- Java/OSGi interface
- gRPC
- …
What are REST interfaces?
REST interfaces are popular for web services
- Many programmers already know web technologies
- Can expose network configuration as a web service
Based on common web technologies
- HTTP: No problems with firewalls
- XML, JSON: Simple and intuitive markup languages
Drawback: events not supported
- HTTP based on request/response paradigm
- Restricted to proactive routing!!!
How is REST used with controllers?
REST is resource-oriented
Unique identifiers to identify resources (URI)
- Employees of a company: http://foo.bar/employees/
- One employee: http://foo.bar/employees/170974d
- Relevant SDN resources: flows, topology, hosts, etc.
Client/Server architecture
- Server manages resources (-> controller implements server)
- Client manipulates resources (-> control logic/applications)
Uniform interface: well-defined methods to manipulate resources
What HTTP methods exist to manipulate resources (you should know this without studying)
GET - retrieve a resource
POST - create resource
PUT - update resource
DELETE - remove resource
HEAD - retrieve metadata on resource
OPTIONS - methods that can be executed on resource
What kind of protocol is used between client and server and what format are resource representations in between them.
Stateless protocol between client and server
Formats:
- XML
- JSON
- binary
- etc.
How are flows/added deleted using REST?
Simple API call using PUT to update a certain switch (update switch with new flow), pass the flow details as the payload in JSON or XML format
To remove send DELETE request, no payload
To retrieve call GET (default (all), specific node (switch), specificflow) just change the URI of the request
Why would we want to use something besides REST?
Rest interfaces are request/response
- Client - control application (implementing control logic)
- Server - SDN controller
Reactive flow programming requires event interface between controller and control application
- packet_in events sent from controller to control application
No REST interface for sending packets
What does Java/OSGi northbound interface provide over REST interfaces?
- Event interface (callback functions)
- Service for sending packets
What are the 2 examples of OpenDaylight northbound interfaces we named? Is there a standard northbound interface?
RESTful interface
- Remote access to controller via HTTP
- Only proactive flow programming
Java/OSGi interface
- Full power of OpenFlow due to event support
– Proactive & Reactive flow programming
– Pushing packets
More interfaces are possible - THERE IS NO STANDARD FOR NORTHBOUND INTERFACES!!!!
Standard for southbound - OpenFlow