SDN

Courses

http://www.cse.wustl.edu/~jain/tutorials/ http://www.cs.kent.edu/~mallouzi/Software%20Defined%20Networking/ http://www.cs.fsu.edu/~xyuan/cis5930/ https://www.cs.princeton.edu/~jrex/papers/ http://zoo.cs.yale.edu/classes/cs434/cs434-2017-spring/lectures/02-prognet-openflow.pdf https://www.youtube.com/playlist?list=PLpherdrLyny8YN4M24iRJBMCXkLcGbmhY

Mininet

Install

Supported switch & controller

Run

http://mininet.org/api/classmininet_1_1topo_1_1Topo.html

Remote control

https://github.com/mininet/mininet/wiki/FAQ#how-can-i-control-my-mininet-hosts-remotely https://github.com/mininet/mininet/wiki/FAQ#how-can-i-add-a-rest-interface-to-mininet

Switch - C - Open vSwitch - OpenFlow 1.0+

OVS

Switch - C - Lagopus - OpenFlow 1.3

https://github.com/lagopus/lagopus VLAN, QinQ, MAC-in-MAC, MPLS and PBB. tunnel protocol processing for overlay-type networking with GRE, VxLAN and GTP. Memory: 2GB or more

Switch - C - OpenFlow 1.3 Software Switch

https://github.com/CPqD/ofsoftswitch13

Controller - Python - Faucet - OpenFlow 1.3

http://faucet.nz/ for multi table OpenFlow 1.3 switches, that implements layer 2 switching, VLANs, ACLs, and layer 3 IPv4 and IPv6 routing, static and via BGP.

Docs

http://docs.openvswitch.org/en/latest/tutorials/faucet/#overview https://github.com/faucetsdn/faucet/tree/master/docs PDF http://costiser.ro/2017/03/07/sdn-lesson-2-introducing-faucet-as-an-openflow-controller

faucet.yaml

http://faucet.readthedocs.io/en/latest/configuration.html#configuration-options

DP

https://github.com/faucetsdn/faucet/blob/master/docs/default_conf_doc.md

Attribute
Default
Description

dp_id

None

Name for this dp, used for stats reporting and configuration

timeout

300

inactive MAC timeout

arp_neighbor_timeout

500

ARP and neighbor timeout (seconds)

stack

None

stacking config, when cross connecting multiple DPs

vlan_acl_table

None

vlan_table

None

port_acl_table

None

The table for internally associating vlans

Port

Attribute
Default
Description

number

None

acl_in

None

native_vlan

None

tagged_vlans

None

permanent_learn

False

stack

None

unicast_flood

True

mirror

None

mirror_destination

False

max_hosts

255

maximum number of hosts

Router

Attribute
Default
Description

vlans

None

VLAN

Attribute
Default
Description

acl_in

None

routes

None

vid

None

faucet_vips

None

max_hosts

255

Limit number of hosts that can be learned on a VLAN.

proactive_arp_limit

None

proactively ARP for hosts (None unlimited)

proactive_nd_limit

None

proactively ND for hosts (None unlimited)

unicast_flood

True

Manually install

FAUCET_LOG_LEVEL / GAUGE_LOG_LEVEL

Docker

https://github.com/faucetsdn/faucet/tree/master/etc/ryu/faucet

Controller - Python - Ryu

Docker

Writing Your Ryu Application

http://ryu.readthedocs.io/en/latest/writing_ryu_app.html

Debug

Controller - OCaml - Frenetic

https://github.com/frenetic-lang/frenetic (.ova provided) http://www-users.cselabs.umn.edu/classes/Spring-2016/csci8211/Lecture-Notes/csci8211-Frenetic-Pyretic.pptx

Source build

Manual

Install

https://gist.githubusercontent.com/basus/cd48c8e4e9d14f853cea4f45f7e0edaf/raw/b6d698a16e1de5fa7d0daef7f7a36a57a9766ae1/frenetic.sh

Controller - C - OVN

https://docs.openstack.org/networking-ovn/latest/admin/features.html

Controller - C++ - OpenContrail by Juniper

http://www.opencontrail.org/opencontrail-quick-start-guide/

Kubernetes

Controller - JAVA - ODL

Releases

Ports

https://wiki.opendaylight.org/view/Ports

Docker

https://hub.docker.com/r/opendaylight/odl/

Init

Controller - JAVA - ONOS

Ports

Docker

Cluster

https://wiki.onosproject.org/display/ONOS/Running+the+published+Docker+ONOS+images

Init

WebUI

http://server_ip:8181/onos/ui/login.html # onos/rocks

Running as a service

https://wiki.onosproject.org/display/ONOS/Running+ONOS+as+a+service

Forming a cluster

Form a cluster of three instances, from one of the target machines

Controller - JAVA - Floodlight

https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/pages/1343544/Installation+Guide

Controller - Calico

https://github.com/projectcalico/calico enabling cloud native application connectivity and policy integrates with Kubernetes, Apache Mesos, Docker, OpenStack and more

Controller - Scala/JAVA - MidoNet

https://github.com/midonet/midonet use with OpenStack, vanilla Linux hosts, Docker, Mesos, etc. MidoNet supports virtual L2 switches, virtual L3 routing, distributed, stateful source NAT and distributed stateful L4 TCP load balancing.

Controller - Ruby - Trema

https://github.com/trema/trema

Controller - Powershell - Microsoft SDN

https://github.com/Microsoft/SDN

Routing framework - Kulfi

https://github.com/merlin-lang/kulfi

Controller - POX - python

inactive: http://en.community.dell.com/techcenter/networking/w/wiki/3820.openvswitch-openflow-lets-get-started

Controller - More

http://yuba.stanford.edu/~casado/of-sw.html https://www.sdxcentral.com/sdn/definitions/sdn-controllers/open-source-sdn-controllers/

Open Security Controller - JAVA

https://www.opensecuritycontroller.org/documentation/tutorials/openstack_workload/

C++ simulation library and framework - OMNeT++

https://omnetpp.org/models

Programming - P4

http://www.inf.usi.ch/faculty/soule/teaching/2015-fall/netpl/ https://p4.org/

Last updated

Was this helpful?