Version 18 (modified by 11 years ago) ( diff ) | ,
---|
MobilityFirst in OpenFlow-enabled SDN Networks
Contents
- 0. Requirements
- 1. System Architecture
- 1.1 SDN Design and Flow Set Up
- 1.2 Floodlight Implementation
- 2. Installation
- 2.1 Required Packages
- 2.2 Installing and Building Floodlight
- 3. Running Floodlight with MobilityFirst
- 4. Performance
- 5. Juniper Networks Hardware
- 5.1 Overview
- 5.2 Specifications & Interfaces
0. Requirements
- Software prototype with reference implementation of the MobilityFirst protocol stack, for end hosts.
- Software prototype with reference implementation of GSTAR for handling storage of chunks.
- Floodlight controller running the MobilityFirst modules.
1. System Architecture
1.1 SDN Design and Flow Set Up
The figure below shows the overall design of an OpenFlow based network that can support MobilityFirst.
All OpenFlow switches that are to perform the functions of a MobilityFirst router are connected to a central controller. As the sender starts to transmit data, the first packet of the chunk is sent to the controller since there is no matching flow rule as of yet. The controller uses the GUID map it created using link probe messages to compute the out port on the switch and sends an appropriate flow rule. The rest of the packets are then forwarded by the switch. Chunks that have to be stored are sent to a software CLICK based router which can handle chunk storage.
The figure below shows the the controller learning GUIDs from link probe messages.
The flow rules are set up using VLAN tags. Every host that wants to send MobilityFirst chunks inserts the hop ID of the packet as a VLAN tag. The controller uses this tag to set up a matching flow rule on the switch. The figure below shows the flow of a MobilityFirst chunk, with the first packet initiating the flow set up.
1.2 Floodlight Implementation
Floodlight is a Java based Apache licensed open source OpenFlow controller. Aside from implementing the core OpenFlow protocol and exposing a REST API for setting up static flows, Floodlight also provides a module loading system that can be used to load user defined modules that set up reactive flows. The figure below shows Floodlight's structure and its core modules.
Additional modules that perform GUID learning and other MobilityFirst functions such as GUID based forwarding and storage were added to Floodlight. The figure below shows Floodlight and the interactions between the MobilityFirst modules.
Detailed descriptions of the SDN design and prototype implementation on Floodlight can be found in this masters thesis.
2. Installation
2.1 Required Packages
sudo apt-get install build-essential default-jdk ant python-dev eclipse git
2.2 Installing and Building Floodlight
git clone git://github.com/floodlight/floodlight.git cd floodlight git checkout fl-last-passed-build ant
Floodlight's installation guide can be found here
The MobilityFirst modules for Floodlight can be downloaded using
svn co https://svn.orbit-lab.org/mobilityfirst/trunk/code/prototype/openflow/floodlight_modules/
Place the contents of floodlight_modules inside the src/main/java/net/floodlightcontroller/ folder.
3. Running Floodlight with MobilityFirst
The CLICK router project page has details on configurations in which the software router can be used. The file sender and file receiver configurations can be used as end hosts. A node running the router configuration can be used for the storage of chunks.
Before starting the controller, it has to be configured to load the MobilityFirst modules on start up and to listen for PACKET_IN messages.
Open the file src/main/resources/floodlightdefault.properties and add the following lines before the lines that mention the ports for floodlight and the REST API.
net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper,\ net.floodlightcontroller.mffunctions.MFFunctions
The file should look like
floodlight.modules = net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher,\ net.floodlightcontroller.forwarding.Forwarding,\ net.floodlightcontroller.jython.JythonDebugInterface,\ net.floodlightcontroller.counter.CounterStore,\ net.floodlightcontroller.perfmon.PktInProcessingTime,\ net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper,\ net.floodlightcontroller.mffunctions.MFFunctions net.floodlightcontroller.restserver.RestApiServer.port = 8080 net.floodlightcontroller.core.FloodlightProvider.openflowport = 6633
Add the following two lines to src/main/resources/META_INF/services/net.floodlightcontroller.core.moduele.IFloodlightModule
net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper net.floodlightcontroller.mffunctions.MFFunctions
The last step is to edit src/main/java/net/floodlightcontroller/forwarding/Forwarding.java to not process MF packets, i.e, to include the condition
if (match.getDataLayerType == 0x27c0) return Command.CONTINUE;
Compile and run with,
ant java -jar target/floodlight.jar
4. Performance
5. Juniper Networks Hardware
There are 6 Juniper Routers available in the lab, two M7i Multiservice Edge routers and four J6350 Enterprise Service routers.
5.1 Overview
The router architectures separate control operations from packet forwarding operations, which helps to eliminate processing and traffic bottlenecks. Control operations in the router are performed by the Routing Engine, which runs Junos OS to handle routing protocols, traffic engineering, policy, policing, monitoring, and configuration management.
Application-specific integrated circuits (ASICs) enable the router to forward data at the high speeds. Forwarding operations in the router are performed by the Packet Forwarding Engine, which consists of hardware, including ASICs, designed by Juniper Networks.
M7i Edge Routers
The M7i Multiservice Edge Router is a routing system that provides ATM, channelized, Ethernet, IP services, and SONET/SDH interfaces for large networks and network applications, such as those supported by Internet service providers (ISPs).
The router accommodates upto four Physical Interface Cards (PICs). In addition to the PICs, the Fixed Interface Card (FIC) provides two Fast Ethernet ports. The built-in tunnel interface on the Compact Forwarding Engine Board (CFEB) and Enhanced Compact Forwarding Engine Board (CFEB-E) provides tunneling services.
J 6350 Service Routers
The J6350 is a modular router for enterprises running desktops, servers, VoIP, CRM/ERP/SCM applications. The J6350 Modular Router offers six PIM slots for additional LAN/WAN connectivity, Avaya VoIP Gateway, and WAN acceleration.
The router accommodates upto six Physical Interface Cards (PICs). In addition to the PICs, the Fixed Interface Card (FIC) provides 4 Gigabit Ethernet ports.
5.2 Specifications & Interfaces
1.Hardware:
M7i : Both the M7i's have the same hardware specs as listed below:
Routing Engine: RE-850
Processor: 850-MHz Pentium III
Memory: 1536 MB
Disk: 40 GB Hard disk
Media: Upto 1 GB CompactFlash card
Ports: 2 Fast Ethernet
PIC slots: 4
PICs Onboard:
One 2-port STM-1/OC-3 ATM2 MMF
One 4-port STM-1/OC-3 SONET MMF
One 4-port 100 Mb Ethernet
J 6350:
All the 4 J 6350 routers have the same hardware specs as listed below:
Memory: 1 GB
Media: 2 USB ports for external storage
Ports: 4 Gigabit Ethernet 10/100/1000 Mbps
PIC slots: 6
PICs On board: None
PICs Supported:
Gigabit Ethernet(1/6/8/16–ports); Dual-Port Fast Ethernet; Dual-Port T1/E1/ISDN PRI; 4-port Fast Ethernet; 4-port ISDN
For detailed hardware specs of M7i and J6350, visit:
http://www.juniper.net/as/en/products-services/routing/j-series/j6350/
http://www.juniper.net/us/en/products-services/routing/m-series/m7i/
2.Software:
M7i
OS: Junos 11.4 (recommended), Upgradable upto 13.2
J6350
OS: Junos 11.4 (recommended), Upgradable upto 12.1
Features:
Junos OS v11.4:
Access Privilege; Class of Service; Firewall Filters and Traffic Policers; Broadband Gateway; MPLS Applications; Multicast Protocols; Network Interfaces; Routing Policy; Routing Protocols; Services Interfaces VPNs
Junos OS v12.1 onwards, OpenFlow can be enabled by installing specific daemons to the Junos OS
For detailed specs of different Junos versions,visit:
Attachments (7)
-
GEC_Poster_Figure.png
(144.4 KB
) - added by 11 years ago.
SDN supporting MobilityFirst
- GEC_Poster_Figure1.png (88.1 KB ) - added by 11 years ago.
- guidLearning.jpg (26.4 KB ) - added by 11 years ago.
- chunkFlow.jpg (46.0 KB ) - added by 11 years ago.
- FloodlightImpl.jpg (43.9 KB ) - added by 11 years ago.
- FloodlightStructure.jpg (23.5 KB ) - added by 11 years ago.
-
main.pdf
(2.4 MB
) - added by 11 years ago.
MobilityFirst SDN - Masters thesis