background image

User  Gu i d e

Summary of Contents for Opendaylight

Page 1: ...User Guide ...

Page 2: ...User Guide ii User Guide ...

Page 3: ...15 Single Node Clustering 15 Multiple Node Clustering 16 II Addons 22 5 BGP LS PCEP 23 BGP LS 23 PCEP 26 6 Defense4All 30 Defense4All Overview 30 Defense4All User Interface 31 7 Group Based Policy 36 Architecture and Model 36 Tutorial 36 Contact Information 46 8 L2Switch 47 Running the L2Switch project 47 Create a network using mininet 47 Generating network traffic using mininet 48 Checking Addres...

Page 4: ...6 2 3 Yang UI 7 2 4 Yang API Specification 8 2 5 Yang UI API Specification 9 2 6 DLUX Yang Topology 10 2 7 DLUX List Warnings 11 2 8 DLUX List Button1 11 6 1 Defense4All Overview 30 8 1 Address Observations 48 8 2 Hosts 49 8 3 STP status 50 10 1 Architecture Overview 58 ...

Page 5: ...User Guide v List of Tables 3 1 Supported XSQL Console Commands 12 3 2 Supported XSQL Query Criteria Operators 13 ...

Page 6: ...Part I Getting Started with Opendaylight This first part of the user guide covers the basic user operations of the OpenDaylight Release using the generic base functionality ...

Page 7: ...ller while the REST web based API is used for applications that do not run in the same address space or even the same system as the controller The business logic and algorithms reside in the applications These applications use the controller to gather network intelligence run its algorithm to do analytics and then orchestrate the new rules throughout the network On the southbound multiple protocol...

Page 8: ...e information about the SAL services available see SAL Services DLUX also uses the SAL services to obtain network related information and use it to provide network management capabilities Getting Started with DLUX You can either use DLUX as a stand alone plug in or integrate with the Opendaylight controller To install DLUX as a standalone application see OpenDaylight DLUX Setup and Run To integrat...

Page 9: ...n us installed 2 Login to the application with user ID and password credentials as admin NOTE admin is the only user type available for DLUX in this release Working with DLUX After you login to DLUX you will see all the modules that are available for DLUX in the left pane However the modules disappear if the features are not enabled in the Karaf distribution To get a complete DLUX feature list ins...

Page 10: ...4 Not Found Viewing Network Statistics The Nodes module on the left pane enables you to view the network statistics and port information for the switches in the network To use the Nodes module 1 Select Nodes on the left pane The right pane displays atable that lists all the nodes node connectors and the statistics 2 Enter a node ID in the Search Nodes tab to search by node connectors 3 Click on th...

Page 11: ...esentation on the right pane In the diagram blue boxes represent the switches the black represents the hosts available and lines represents how switches are connected 2 Hover your mouse on hosts links or switches to view source and destination ports 3 Zoom in and zoom out using mouse scroll to verify topology for huge topologies Figure 2 2 Topology Module Interacting with the Open Daylight Control...

Page 12: ...ality only Inputs can be filled from ODL when existing data from ODL is displayed or can be filled by user on the page and sent to ODL Buttons under the API tree are variable It depends on subAPI specifications Common buttons are GET to get data from ODL PUT and POST for sending data to ODL for saving DELETE for sending data to ODL for deleting You must specify the xpath for all these operations T...

Page 13: ...For example a device can store multiple flows In this case flow is name of the list and every list element is different by a key value List element of list can obtain other lists Every list element has a list name a key name and its value and a button for removing this list element Usually the key of the list statement obtains an ID Inputs can be filled from ODL using GET button from xpath part or...

Page 14: ...ill be sent to ODL A pane is displayed on the right side with text of request when some input is filled Displaying Topology on the Yang UI To display topology 1 Select subAPI network topology topology revision number operational network topology 2 Get data from ODL by clicking on the GET button 3 Click Display Topology ...

Page 15: ...s provided after list name When some list element is added button with his name and key value is displayed 2 To remove several list elements use the X button that is provided after every list element DLUX List Elements image dlux yang list elements png DLUX list elements width 500 3 Key of list is one or more inputs which are used like identifier of list element All list elements in one list must ...

Page 16: ...the list element displayed You can choose one of them by clicking the icon The name button of the list element and name buttons of its neighbours will be displayed in the row list You can can forward or backward row list of list elements name buttons by clicking on the arrow button on the end of row Figure 2 8 DLUX List Button1 ...

Page 17: ...SQL commands and the proper way to structure queries Installing XSQL Before you can run commands from the XSQL console you must first install XSQL onto your system 1 Navigate to the directory in which you unzipped the OpenDaylight source files 2 Start Karaf karaf 3 Install XSQL feature install odl mdsal xsql XSQL Console Commands When entering a command in the XSQL console structure it as follows ...

Page 18: ...he criteria you specify Any query you run should be structured as follows select vfields you want to search for separated by a comma and a space from vtables you want to search in separated by a comma and a space where criteria criteria operator For example say you want to search the nodes node ID field in the nodes node connector table and find every instance of the Hardware Address object that c...

Page 19: ...ne all of the ports that belong to a YY type module Network Element 1 Module 1 Type XX Module 1 1 Type YY Port 1 Port 2 Module 2 Type YY Port 1 Port 2 If you specify Module Type YY in your query criteria the ports associated with module 1 1 will not be returned since its parent module is type XX Instead enter Module Type YY or skip Module YY This tells XSQL to disregard any parent module data that...

Page 20: ...s and either distribute that data across the cluster or perform certain operations on certain members of the cluster High Availability If you have multiple controllers running and one of them crashes you would still have the other instances working and available Data Persistence You will not lose any data gathered by your controller after a manual restart or a crash The following sections describe...

Page 21: ...o house all or a certain segment of a module s data For example one shard can contain all of a module s inventory data while another shard contains all of it s topology data If you do not specify a module in the modules conf file and do not specify a shard in module shards conf then by default all the data is places onto the default shard which must also be defined in module shards conf file Each ...

Page 22: ...ting you need to run all three nodes Setting Up a Multiple Node Cluster To run an OpenDaylight controller in a three node cluster do the following 1 Determine the three machines that will make up the cluster and copy the controller distribution to each of those machines 2 Unzip the controller distribution 3 Navigate to the Karaf distribution location bin directory 4 Run Karaf karaf 5 Install the c...

Page 23: ...o that the replicas match roles defined in this host s akka conf file replicas member 1 For reference view a sample akka conf file here https gist github com moizr 88f4bd4ac2b03cfa45f0 a Run the following commands on each of your cluster s nodes JAVA_MAX_MEM 4G JAVA_MAX_PERM_MEM 512m karaf JAVA_MAX_MEM 4G JAVA_MAX_PERM_MEM 512m karaf JAVA_MAX_MEM 4G JAVA_MAX_PERM_MEM 512m karaf The OpenDaylight co...

Page 24: ...currentThreadPoolSize 1 maxThreadPoolSize 1 totalTaskCount 1 largestThreadPoolSize 1 currentQueueSize 0 completedTaskCount 1 rejectedTaskCount 0 maxQueueSize 5000 FailedTransactionsCount 0 CommittedTransactionsCount 0 NotificationMgrExecutorStats activeThreadCount 0 largestQueueSize 0 currentThreadPoolSize 0 maxThreadPoolSize 20 totalTaskCount 0 largestThreadPoolSize 0 currentQueueSize 0 completed...

Page 25: ...st for each data shard 3 Restart all of the nodes The nodes should automatically sync up with member 1 After some time the cluster should be ready for operation When HA is enabled you must have at least three replicas of every shard Each node s configuration files should look something like this module shards name default shards name default replicas member 1 member 2 member 3 name topology shards...

Page 26: ...es Whenever the lead replica on a data shard is brought down another replica takes its place As a result the cluster should remain available To determine which replica is acting as the lead on a data shard make an HTTP request to obtain the information for a data shard on any of the nodes The resulting information will indicate which replica is acting as the lead ...

Page 27: ...Part II Addons This second part of the user guide covers project specific usage instructions ...

Page 28: ... to uncomment ALL the commented parts in this file 1 Adjust values for initial BGP Open message module type prefix rib impl type name example bgp rib name rib id example bgp rib rib id local as 64496 local as Our AS number we use this in best path selection bgp id 192 0 2 2 bgp id Our BGP identifier we use this in best path selection 2 Specify IP address of your BGP speaker module type xmlns prefi...

Page 29: ...xecutor name executor module BGP speaker configuration Previous entries addressed the configuration of a BGP connection initiated by ODL ODL also supports BGP Speaker functionality and accepts incoming BGP connections The configuration of BGP speaker is located in 41 bgp example xml module type xmlns prefix urn opendaylight params xml ns yang controller bgp rib impl prefix bgp peer acceptor type n...

Page 30: ...fix urn opendaylight params xml ns yang controller bgp rib impl prefix bgp peer registry type name global bgp peer registry name peer registry module BGP peer registers itself into the registry which allows incoming BGP connections handled by the bgp speaker Config attribute peer registry is optional for now to preserve backwards compatibility With this configuration the connection to 192 0 2 1 is...

Page 31: ...th Selection algorithm target rib type xmlns prefix urn opendaylight params xml ns yang controller bgp rib impl prefix rib instance type name example bgp rib name RIB where the changes from application RIB should be propagated target rib application rib id example app rib application rib id Your application RIB identifier data broker type xmlns binding urn opendaylight params xml ns yang controlle...

Page 32: ... type name pcep parser ietf initiated00 name extension This block is draft ietf pce stateful pce 02 draft crabbe pce inititated pce 00 extension type xmlns pcepspi urn opendaylight params xml ns yang controller pcep spi pcepspi extension type name pcep parser ietf stateful02 name extension extension type xmlns pcepspi urn opendaylight params xml ns yang controller pcep spi pcepspi extension type n...

Page 33: ...rn opendaylight params xml ns yang controller pcep spi prefix pcep extensions impl type name global pcep extensions name extension type xmlns pcepspi urn opendaylight params xml ns yang controller pcep spi pcepspi extension type name pcep parser segment routing02 name extension module services xmlns urn opendaylight params xml ns yang controller config service type xmlns pcepspi urn opendaylight p...

Page 34: ...mlns pcep urn opendaylight params xml ns yang controller pcep pcep pcep session proposal factory type name pcep session proposal factory sr02 name pcep session proposal factory module services xmlns urn opendaylight params xml ns yang controller config service type xmlns pcep urn opendaylight params xml ns yang controller pcep pcep pcep session proposal factory type instance name pcep session prop...

Page 35: ...g tasks 1 Monitoring behavior of protected traffic the application sets flow entries in selected network locations to read traffic statistics for each of the PNs aggregating statistics collected for a given PN from multiple locations 2 Diverting attacked traffic to selected AMSs the application set flow entries in selected network locations to divert traffic to selected AMSs When an attack is over...

Page 36: ...cords can be operational or security related The former includes failures and errors and informational logs The latter includes detections attacks and attack mitigation lifecycles traffic diversion information and periodic traffic averages All logs are persistent stable storage and replication Defense4All User Interface This section describes how to configure the Defense4All Framework environment ...

Page 37: ...n be removed only when there are no active mitigations traffic redirections to it Version AMS version Note This parameter is only applicable to Radware DefensePro IP Address AMS IP address Note This parameter is only applicable to Radware DefensePro Port AMS port number Note This parameter is only applicable to Radware DefensePro Username AMS username Note This parameter is only applicable to Radw...

Page 38: ...oming Traffic Port The incoming traffic port number Outgoing Traffic Port The outgoing traffic port number 6 Click OK 7 To the right of the AMS Connections label click Add 8 In the Add AMS Connection pane set the following parameters Parameter Description Name AMS connection descriptive name AMS Name AMS connection name NetNode North Port NetNode NothPort NetNode South Port NetNode South Port AMS ...

Page 39: ...e b Query by Last Number of Rows In the Number of Rows field enter the last number of rows in the database you want displayed in your report Select the Event Types you want included in the report Click Run Query The results display at the bottom of the pane You cannot save this query to a file c Cleanup In the Delete events older than field enter a number of days Events older than this number of d...

Page 40: ... Time Period In the From and To fields select the appropriate dates to define the range of the query Select the Event Types you want included in the report Click Run Queryv The results display at the bottom of the pane To save the query to a file enter a file path in the Filename filed and click Export Query to File Query by Last Number of Rows In the Number of Rows field enter the last number of ...

Page 41: ... the Environment Start with two running Ubuntu 14 04 systems which can be either VMs or physical machines You ll need a newer version of openvswitch than exists in Ubuntu 14 04 but you only need the user space components so this is easy We ll start by installing OVS 2 1 2 or later Log into one of your Ubuntu systems and run OVS_VERSION 2 1 2 sudo apt get install build essential fakeroot debhelper ...

Page 42: ...LER You ll need to replace the CONTROLLER address with the IP address of the system where you ran your controller This will run mininet and set up the hosts that are configured as attached to s1 When you re finished running this you ll be at a mininet prompt but you won t be able to do anything because the policy is not set up The output will look like sudo testOfOverlay py local s1 controller 10 ...

Page 43: ... 2 l3 context f2311f52 890f 4095 8b85 485ec8b92b3c mac address 00 00 00 00 36 02 ofoverlay node connector id openflow 1 3 ofoverlay node id openflow 1 tenant f5c7d344 d1c7 4208 8531 2c2693657e12 POST http 10 160 31 238 8080 restconf operations endpoint register endpoint input endpoint group e593f05d 96be 47ad acd5 ba81465680d5 l2 context 70aeb9ea 4ca1 4fb9 9780 22b04b84a0d6 l3 address ip address 1...

Page 44: ...8 8080 restconf config opendaylight inventory nodes opendaylight inventory nodes node id openflow 1 ofoverlay tunnel ip 10 160 9 20 id openflow 2 ofoverlay tunnel ip 10 160 9 21 PUT http 10 160 31 238 8080 restconf config policy tenants policy tenants tenant contract clause name allow http clause subject refs allow http subject allow icmp subject id 22282cca 9a13 4d0c a67e a933ebb0b0ae subject nam...

Page 45: ...2f61dd network domain 77284c12 a569 4585 b244 af9b078acfe4 provider named selector consumer named selector id e593f05d 96be 47ad acd5 ba81465680d5 network domain 472ab051 554e 45be a133 281f0a53412a provider named selector contract 22282cca 9a13 4d0c a67e a933ebb0b0ae name e593f05d 96be 47ad acd5 ba81465680d5 1eaf9a67 a171 42a8 9282 71cf702f61dd 22282cca 9a13 4d0c a67e a933ebb0b0ae id f5c7d344 d1c...

Page 46: ...subject feature instances classifier instance classifier definition id 4250ab32 e8b8 445a aebb e1bd2cdd291f name http dest parameter value name type string value TCP int value 80 name destport classifier definition id 4250ab32 e8b8 445a aebb e1bd2cdd291f name http src parameter value name type string value TCP int value 80 name sourceport classifier definition id 79c6fdb2 1e1a 4832 af57 c65baf5c23...

Page 47: ...85ec8b92b3c mac address 00 00 00 00 35 04 ofoverlay node connector id openflow 2 1 ofoverlay node id openflow 2 tenant f5c7d344 d1c7 4208 8531 2c2693657e12 POST http 10 160 31 238 8080 restconf operations endpoint register endpoint input endpoint group 1eaf9a67 a171 42a8 9282 71cf702f61dd l2 context 70aeb9ea 4ca1 4fb9 9780 22b04b84a0d6 l3 address ip address 10 0 35 5 l3 context f2311f52 890f 4095 ...

Page 48: ...verlay node id openflow 2 tenant f5c7d344 d1c7 4208 8531 2c2693657e12 Starting CLI mininet Verifying In the default test we have a total of 2 hosts on each switch in each of 2 endpoint groups for a total of eight hosts The endpoints are in two different subnets so communicating across the two endpoint groups requires routing There is a contract set up that allows HTTP from EG1 to EG2 and ICMP in b...

Page 49: ...ms 10 0 35 5 ping statistics 1 packets transmitted 1 received 0 packet loss time 0ms rtt min avg max mdev 2 597 2 597 2 597 0 000 ms mininet h35_2 ping c1 10 0 36 4 PING 10 0 36 4 10 0 36 4 56 84 bytes of data 64 bytes from 10 0 36 4 icmp_seq 1 ttl 62 time 2 64 ms 10 0 36 4 ping statistics 1 packets transmitted 1 received 0 packet loss time 0ms rtt min avg max mdev 2 641 2 641 2 641 0 000 ms minin...

Page 50: ...r from h35_4 on host 2 because it s in the same endpoint group mininet h35_4 curl http 10 0 35 2 Total Received Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 488 100 488 0 0 55625 0 61000 DOCTYPE html PUBLIC W3C DTD HTML 3 2 Final EN html title Directory listing for title body h2 Directory listing for h2 hr ul li a href config py config py a li a href config py...

Page 51: ... 0 curl 28 Connection timed out after 3001 milliseconds Contact Information Mailing List groupbasedpolicy users lists opendaylight org IRC freenode net opendaylight group policy Repository https git opendaylight org gerrit groupbasedpolicy ...

Page 52: ...oject Run the distribution To run the base distribution you can use the following command distribution base target distributions l2switch base 0 1 0 SNAPSHOT osgipackage opendaylight run sh If you need additional resources you can use these command line arguments Xms1024m Xmx2048m XX PermSize 512m XX MaxPermSize 1024m To run the karaf distribution you can use the following command distribution kar...

Page 53: ...d will cause host1 h1 to ping host2 h2 pingall pingall will cause each host to ping every other host Checking Address Observations Address Observations are added to the Inventory data tree The Address Observations on a Node Connector can be checked through a browser or a REST Client http 10 194 126 91 8080 restconf operational opendaylight inventory nodes node openflow 1 node connector openflow 1 ...

Page 54: ... 1 Figure 8 2 Hosts Checking STP status of each link STP Status information is added to the Inventory data tree A status of forwarding means the link is active and packets are flowing on it A status of discarding means the link is inactive and packets are not sent over it The STP status of a link can be checked through a browser or a REST Client http 10 194 126 91 8080 restconf operational openday...

Page 55: ...een switch1 s1 and switch2 s2 up link s1 h1 down This will bring the link between switch1 s1 and host1 h1 down Components of the L2Switch Packet Handler Decodes the packets coming to the controller and dispatches them appropriately Loop Remover Removes loops in the network Arp Handler Handles the decoded ARP packets Address Tracker Learns the Addresses MAC and IP of entities in the network ...

Page 56: ...l LLDP packets to the controller will be installed on each switch false means this flow will not be installed lldp flow table id The LLDP flow will be installed on the specified flow table of each switch This field is only relevant when is install lldp flow is set to true lldp flow priority The LLDP flow will be installed with the specified priority This field is only relevant when is install lldp...

Page 57: ...se packets are flooded to the network Disadvantage A lot of network traffic is generated false means the previously mentioned flood flows will not be installed Instead an ARP flow will be installed on each switch that sends all ARP packets to the controller Advantage Less network traffic is generated Disadvantage The controller handles more packets ARP requests replies and the ARP process takes lo...

Page 58: ...hard timeout The ARP flow will timeout removed from the switch after arp flow hard timeout seconds regardless of how many packets it is forwarding This field is only relevant when is proactive flood mode is set to false Address Tracker 56 addresstracker xml timestamp update interval A last seen timestamp is associated with each address This last seen timestamp will only be updated after timestamp ...

Page 59: ...s forwarding This field is only relevant when is install dropall flow is set to true is learning only mode true means that the L2Switch will only be learning addresses No additional flows to optimize network traffic will be installed false means that the L2Switch will react to network traffic and install flows on the switches to optimize traffic Currently MAC to MAC flows are installed reactive fl...

Page 60: ...reactive flow hard timeout The reactive flow will timeout removed from the switch after x seconds regardless of how many packets it is forwarding This field is only relevant when is learning only mode is set to false ...

Page 61: ...User Guide 56 9 ODL SDNi The User Guide for ODL SDNi can be found on the OpenDaylight wiki here https wiki opendaylight org view ODL SDNiApp User_Guide ...

Page 62: ...pacity The Cable Modem which resides on the client side and connects the client s network to the cable system PacketCable Multimedia defines a service delivery framework that provides general purpose QoS event based accounting and security functionality founded upon the mechanisms defined in PacketCable 1 x However due to the broader spectrum of applications and services addressed by this initiati...

Page 63: ...latform as for the Application Manager and parts of the Policy Server and leverage the as many existing components offered by the platform The initial southbound transport has been written to the following version of the specification http www cablelabs com wp content uploads specdocs PKT SP MM I05 091029 pdf Architecture Figure 10 1 Architecture Overview The OpenDaylight Packetcable PCMM includes...

Page 64: ...vice flows RESTCONF APIs for provisioning CMTS network elements HTML Provisioning Interface and some Python examples RESTCONF APIs for provisioning Service Flow values and types RESTCONF APIs for provisioning QoS or metering parameters SAL extensions for DOCSIS specific data model and configuration APIs PCMM COPS protocol transport plugin Install opendaylight user root feature install odl packetca...

Page 65: ... 60 11 Plugin for OpenContrail The User Guide for the Plugin for OpenContrail can be found on the OpenDaylight wiki here https wiki opendaylight org view Southbound_Plugin_to_the_OpenContrail_Platform User_Guide ...

Page 66: ...User Guide 61 12 TCP MD5 The User Guide for TCP MD5 can be found on the OpenDaylight wiki here https wiki opendaylight org view TCPMD5 Helium_User_Guide ...

Reviews: