Platform Environment Description:
Cpu:Intel Core 2 Duo T6570
Mem:4.00GB
Os :Ubuntu 14.04
1.Floodlight
Floodlight is a relatively mature SDN controller implementation, in which the opendaylight Project also uses many of its implementation methods, the official website: http://www.projectfloodlight.org/floodlight/. in this paper, we use it as a controller, using virtual machine with mininet as network topology, which combines analog display network.
Floodlight Installation:
A. $ sudo apt-get install build-essential default-jdk ant Python-dev//Because the controller is implemented by Java, some Java environments need to be installed first;
B. $ git clone git://github.com/floodlight/floodlight.git//Then git download the source code, if there is no git, need to install: sudo apt-get install git;
C. $ CD Floodlight
D. $ ant
E. $ Java-jar Target/floodlight.jar//Then complete the command in turn, the controller will open, enter the URL: http://localhost:8080/ui/ Index.html can see the Controller's UI interface, when the controller does not detect the network topology (the number of Switchs hosts is 0)
2.Mininet
mininet openflow of the Agreement switch host and so on. Official homepage: http://mininet.org/ mininet integrated into a virtual machine (which also integrates the wireshark https://github.com/mininet/mininet/wiki/ Mininet-vm-images This article uses the Ubuntu14.04 version. This article uses the Ubuntu14.04 version.
This article uses the Ubuntu14.04 version, which extracted the . OVF file.
Mininet Installation
A. $ sudo apt-get install VirtualBox//If the virtual machine software is not installed, first press on.
B. $ su-root
C. # VirtualBox//Open as root, this is the reference online, ordinary users seem to have a bug
D. In VirtualBox graphical interface: File->import virtual Appliance
Import the mininet. ovf file directly, even if it's installed ...
The initial user name password is mininet (you can activate the root permission at this time), about the operation of Mininet software meet the official homepage: http://mininet.org/walkthrough/
3. Platform Integration
After the floodlight,VirtualBox and other software have been started, you can log on to the virtual machine on the physical machine to achieve a variety of operations:
a.$ ifconfig//Can be performed separately for physical machine virtual machines PC-IP,VM-IP
b.$ ssh-x [email protected]//-x means X11 forwarding, so the Wireshark graphical interface can appear
c.$ Wireshark &//Wireshark with support OpenFlow in the VM, can start the Eth0 protocol OFP port capture
d.$ sudo mn--controller=remote,ip=pc-ip,port=6633//Connect the mininet to the remote controller (floodlight, at which point the default listener is on the 6633 port of the physical machine), At this point mininet will create a switch, two hosts by default.
I. ofp data appears in Wireshark , indicating floodlight and Mininet is communicating with the openflow protocol.
Ii. at this point , the http://localhost:8080/ui/index.html visible controller has discovered that switch and host in the underlying network structure .
Iii. at this point in mininet in Pingall , found all-through, floodlight The controller makes the switch full-pass by default.
4. Release Flow meter
floodlight Roman; API through rest api rest Api api package becomes generic http get/ PUT http request to complete api operation.
So, we can request various kinds of information through Floodlight 's Restful API to Floodlight , including switch status, capability, Topology and so on, and the static flow pusher is a mechanism for streaming tables through the Restful API, including adding, deleting flow tables, and so on.
A. generating A flow table
$ sudo curl-d {"switch": "00:00:00:00:00:00:00:01″," "Name": "Flow-mod-1″," "Cookie": "0″," "Priority": "32768″," Ingress-port ":" 1″, "active": "true", "Actions": "Output=1″} ' http://<pc_ip>:8080/wm/staticflowentrypusher/ JSON//This will send the ingress of 1 packets back to 1, will be connected to the 1 port of the host isolation. At this time in MN Pingall found not to pass.
B. View the Flow table
$ sudo curl Http://<pc_ip>:8080/wm/staticflowentrypusher/list/all/json
C. Deleting a flow table
$ sudo curl-x delete-d ' {"name": "Flow-mod-1″} ' Http://<pc_ip>:8080/wm/staticflowentrypusher/json// At this point, we can all ping, and the process of OpenFlow protocol interaction is visible in these processes, which provides a good research environment for Wireshark.
Floodlight+mininet Research on the SDN experimental platform of the system