Changes between Version 4 and Version 5 of Internal/OpenFlow/OFIntro
- Timestamp:
- Jul 15, 2013, 8:09:58 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Internal/OpenFlow/OFIntro
v4 v5 1 1 = *Draft* An Intro to OpenFlow@ORBIT = 2 2 This page is meant to get you up and running quickly with !OpenFlow-related experiments/development on the ORBIT testbeds. 3 = I. Using node image(s) = 4 To make things easier, we have images pre-installed with several potentially useful packages, including: 3 4 = I. A simple OpenFlow Network = 5 We begin with a simple setup of a Mininet network controlled by a controller (Floodlight) running on a separate Sandbox node, which looks like this: 6 {{{ 7 network 8 node1-1 link node1-2 9 [Mininet]------[Floodlight] 10 11 }}} 12 13 == 1.1 Some prerequisites - Using the prepackaged node image == #imaging 14 To make things easier, we provide images pre-installed with several potentially useful packages, including: 15 5 16 * [http://www.projectfloodlight.org/floodlight/ Floodlight] : A development-friendly controller platform 6 17 * [http://mininet.org/ mininet] : !OpenFlow network prototyping tool/emulation … … 8 19 * [http://www.openflow.org/wk/index.php/Liboftrace liboftrace] : !OpenFlow message parser/analyzer for pcap files 9 20 10 This makes things easy since you can image multiple nodes with the same image, and pick and choose controllers, switches, etc. For people interested in learning more about/installing these packages, they can refer to [#install Section II] for a summary of each and further links. 11 12 == 1.1 imaging == #imaging 21 This makes things easy since you can image multiple nodes with the same image, and pick and choose what to run where. 22 13 23 The image is named `of-pkg.ndz`. `omf` can be used to image nodes with it: 14 24 {{{ … … 21 31 Once on, you can log into them as root using their names, e.g. '''node1-1'''. 22 32 23 == 1.2 Setting up an OF network == #nw_setup 24 In this section, we set up a basic !OpenFlow network with Floodlight and Mininet using a two-node Sandbox. 25 === 1.2.1 general information === 26 ''' node/Sandbox layout ''' [[BR]] 33 === 1.1.1 node/Sandbox layout === 27 34 When you log onto a Sandbox, you are logged into the '''console''' machine, from which you can use `omf` and the likes to image and log onto/manage the nodes. 28 35 29 36 Each node (save those on sandbox4) have two interfaces. The first, eth1, connects to your console connection for managing the nodes, and is assigned an IP address of the form 10.1x.y.z, where x = sandbox number, and y and z = node number e.g. if your node is named node1-2, and is part of Sandbox8, it will be 10.18.1.2. '''Do not take down this interface or change its address - you will lose your connection'''. The second, eth0, is down by default, and is open to any kind of use. Both are gigabit links and can be used for experimentation, but in general, the second one should be used unless there are specific circumstances. 30 37 31 ''' managing/configuring nodes ''' [[BR]] 38 === 1.1.2 managing/configuring nodes === 32 39 This is done by using SSH to log into the nodes as root. Logging into each is okay, but can get cumbersome if you have many nodes, on which you have to do the exact same thing. In this case, commands may also be issued via SSH from the console, without manually logging into each node (and ending up with a dozen terminal windows): 33 40 {{{ … … 39 46 This can be used in a script to run from the console to quickly set up many nodes. We use it in some of the following examples to make it easier to show what is happening where. 40 47 41 === 1.2.2 setup - by example === 42 As a two-node example, we image the nodes on Sandbox8, as shown in [#imaging Section 1.1]. One is used for the controller, and the other, the Mininet network. 43 44 1. ''Bring up and assign addresses to eth0 of the nodes''. Both should be in the same IP block. From console, the commands look like this: 48 === 1.1.3 Installing your own tools === 49 For people interested in learning more about/installing these packages, they can refer to [#install Section II] for a summary and quick setup instructions for each and links to more information. 50 51 == 1.2 Running the network == #nw_setup 52 As a two-node example, we image the nodes on Sandbox8, as explained in [#imaging Section 1.1]. One is used for the controller, and the other, the Mininet network. 53 54 1. ''Bring up and assign addresses to eth0 of the nodes''. Both should be in the same IP block. If done from console, the commands look like this: 45 55 {{{ 46 56 $ ssh root@node1-1 "ifconfig eth0 inet 192.168.1.1 up" … … 105 115 }}} 106 116 117 == Using OpenVswitch directly == 118 Mininet's datapaths are backed by OVS. Therefore, if you have a Mininet install, you get OVS for "free". You can use OVS directly for your data plane. 119 120 = Multiple controller instances = 121 You can launch multiple instances of Floodlight on one or more nodes. If you decide to run the instances on a single host, the ports used by the Floodlight instances must not conflict i.e. each instance must be assigned a different set of ports. 122 107 123 ---- 108 = I I. Installation = #install124 = Installation = #install 109 125 The following are the installation steps and basic usage for the software that are found on the image. For more information, refer to their respective pages; Floodlight and Mininet in particular have very thorough docs. 110 126