Labs / The Architect / Automation: REST APIs, Ansible & SDN

Lab 3 of 3 · Automation: REST APIs, Ansible & SDN

SDN: one controller programs every switch

Let one OpenFlow controller program every switch, then take it away.

Open this lab Pro 6 steps

The idea

Software-defined networking (SDN) takes the deciding out of the switches: one SDN controller computes every path and writes it into them, and they only forward. Here it programs s1, s2 and s3, cabled in a triangle, so that alice, bob and webServer can talk; then it is cut off, a cable fails, and a policy goes in.

A broadcast that is not flooded
A broadcast that is not flooded
The controller writes the tables, not the packets
The controller writes the tables, not the packets

Steps

  1. A switch that decides nothing

    alice and webServer share a network. A classic switch learns where each MAC address is by itself; these do only what their flow table says. Read s1's.

    alice:~# ping -c 2 -W 1 10.0.1.15
    s1:~# ovs-ofctl -O OpenFlow13 dump-flows br0
    s1:~# ovs-vsctl show
  2. The controller programs the flows

    Deciding where traffic goes is the control plane, and one controller holds it. It asks each switch, over a management network, which ports are up. Read what it sees, then let it program.

    controller:~# sdn-controller status
    controller:~# sdn-controller apply
    alice:~# ping -c 2 -W 1 10.0.1.15

Pro

4 more steps in the app

  1. No controller, and the traffic still flows
  2. A cable fails: nothing happens until the controller acts
  3. A policy written once, enforced in a switch
  4. The controller's tables win
Get Pro

Learn it on real machines.

Every lab is a small network of real Linux machines in your browser. Start with a free account: Google or email, no card.

Open this lab