OpenDaylight as an SDN controller: overview and installation

OpenDaylight Project is a SDN controller sponsored by a lot of big vendors and Cisco itself. Cisco Extensible Network Controller (XNC) is a controller for the ONE enabled devices based on OpedDaylight project.

hydrogen_diagram_-_final_0 ## Installation (on iou-web VM) OpenDaylight comes as a Java app, so Java must be installed on a Linux system. Let's assume we want to install OpenDaylight on iou-web VM: iou-web is a clean CentOS 6 installation, so it's a good platform for OpenDaylight tests. Java SE Runtime Environment (JRE) 7 must be downloaded, so get the jre-7u45-linux-i586.rpm package and upload it to the iou-web VM using SCP. Upload an OpenDaylight packages also. The installations steps are very simple: ~~~ yum install unzip rpm -Uvh jre-7u45-linux-i586.rpm unzip distribution.opendaylight-osgipackage.zip -d /opt ~~~ Because iou-web comes with a firewall configured, the ports used by OpenDaylight must be properly configured. In this case 8023, and 8080 ports will be used: ~~~ iptables -L INPUT -n --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:2001:3024 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:32768:61000 8 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited ~~~ An additional rule must be installed before the rule #8: ~~~ iptables -I INPUT 8 -m state --state NEW -p tcp -m multiport --dports 6633,8023,8080 -j ACCEPT service iptables save ~~~ Now ports 6633, 8023 and 8080 are permitted: ~~~ iptables -L INPUT -n --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:2001:3024 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:32768:61000 8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW multiport dports 6633,8023,8080 9 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited ~~~ ## Starting OpenDaylight and connecting to OpenDaylight can be started using Java (we wants telnet port on TCP 8023): ~~~ export JAVA_HOME=/usr/java/latest/ cd /opt/opendaylight/ /opt/opendaylight/run.sh -start 8023 ~~~ Now OpenDaylight can be managed using Telnet (port 8023) and HTTP (port 8080) using the IP address of the iou-web VM itself: default username is "admin" with password "admin".

opendaylight_login OpenDaylight can be debugged using the console mode: ~~~ /opt/opendaylight/run.sh -stop /opt/opendaylight/run.sh -console ~~~ ## Adding a device under OpenDaylight controller Mininet should be used for initial tests with OpenDaylight. Let's assume we want to create a tree topology and import into OpenDaylight controller: ~~~ sudo mn --controller=remote,ip=192.168.32.129 --topo=tree,3 ~~~ Now OpenDaylight controller can manage seven switches:

mininet_on_sdn_controller ## References - OpenDayLight project - OpenDaylight Controller: installation - OpenDaylight Controller: download

Posted on 07 Nov 2013 by Andrea.
  • Gmail icon
  • Twitter icon
  • Facebook icon
  • LinkedIN icon
  • Google+ icon