Lecture 4

Per-router control plane: every router runs some routing algorithm that all talk to one another
E.g. OSPF, RIP
Logically-centralised control plane: remote controller interacts with agents on every router

Generalised forwarding: match + action

Forwarding table (flow table)
Match bits in incoming packet, take action
Destination-based forwarding: forward based on dest. IP addr
Generalised forwarding: many header fields can determine action (e.g. drop/copy/modify/...)

Flow Table

Flow: defined by header field values
Generalised forwarding: simple packet-handling rules
match pattern values in headers
actions for matched packet: drop, forward, modify or send to controller
priority to choose between multiple overlapping patterns
counters # bytes and #packets
Pasted image 20260213114547.png

OpenFlow Abstraction

Match+action works for multiple kinds of devices
Router:

SDN

  1. Simple data-plane switches
  2. SDN controller (network OS), maintains network state and talks to the switches
  3. Network-control apps, the brains. Use API provided by SDN controller

OpenFlow Protocol

Operates between controller and switches
TCP 6653, optionally uses TLS
Three classes of messages
Controller-to-switch
Features: what does the switch support?
Set/Get config
FlowMod: add,delete,modify entries in the switch's flowt able
PacketOut: send this packet out of a specific switch port (used to tell the switch where to send something)
Async switch-to-controller
PacketIn: switch sends packet to controller, when no matching rule exists for a packet
FlowRemoved: switch notifies controller when a flow entry is expired or deleted
PortStatus: update controller on port changes (e.g. up/down)
Symmetric (misc.)

Pasted image 20260213120149.png|400

  1. S1, experiencing link failure uses OpenFlow port status message to notify controller
  2. SDN controller receives OpenFlow message, updates link status info
  3. Dijkstra’s routing algorithm application has previously registered to be called when ever link status changes. It is called.
  4. Dijkstra’s routing algorithm access network graph info, link state info in controller, computes new routes
  5. link state routing app interacts with flow-table-computation component in SDN controller, which computes new flow tables needed
  6. controller uses FlowMod to install new flow entries in switches that need updating

SDN makes networks more flexible
Primarily adopted by hyperscalers
Not per-se OpenFlow, but it is the norm
Automatic provisioning and centralised control

Network Virtualisation

Info

SDN:
Decoupling the data and control layers

Decoupling the services provided by the network from the physical infrastructure
Virtual network is a bundle of services, provisioned by software
Provides agility: provision, change or tear down a network quickly
Pasted image 20260217102235.png|400

Two main ideas

  1. Sharing the network
    • Provide services to different tenants with different requirements
    • Give them control over their own virtual networks
    • Traffic isolation (traffic should not leak between them)
    • Performance isolation (congestion of one tenant should not congest the others)
  2. Abstracting the topology
    • One big virtual switch
    • Arbitrary topologies
    • Pasted image 20260217102919.png|400

Allows you to:

Example technologies

SDN vs Network Virtualisation

SDN
Network programmability
Separate control and data
Easier to virtualise an SDN switch
Separate controller per virtual network
Partition the space of all flows
Leverage the interface to the hardware
Virtualisation
Multi-tenancy
Decouple physical infra from what it actually runs
Predates SDN, does not require SDN