Download presentation
Presentation is loading. Please wait.
1
Basic Operations Guide
Luis Gomez, Principal SW Test Engineer, Brocade #ODSummit
2
Agenda Introduction Installation Requirements
Download and start Controller Install Features Graphical Interface REST Interface and tools Troubleshooting #ODSummit
3
Introduction #ODSummit
4
OpenDaylight Project The OpenDaylight project is a collaborative open source project that aims to accelerate adoption of Software-Defined Networking (SDN) and Network Functions Virtualization (NFV) with a transparent approach that fosters new innovation. Main page: Wiki page:
5
OpenDaylight Controller (Lithium)
DLUX VTN Coordinator OpenStack Neutron SDNI Wrapper Network Applications Orchestrations & Services AAA AuthN Filter OpenDaylight APIs REST/RESTCONF/NETCONF Base Network Functions Network Services Network Services (cont) Network Abstractions (Policy/Intent) Platform Services L2 Switch Service Function Chaining OVSDB Neutron Authentication, Authorization & Accounting Topology Processing Reservation Device Discovery, Identification & Driver Management Controller Platform Services/Applications Stats Manager Virtual Private Network ALTO Protocol Manager Neutron Northbound Switch Manager Virtual Tenant Network Mgr. LISP Service Network Intent Composition Persistence Forwarding Rules Mgr Unified Secure Channel Mgr DOCSIS Abstraction Group Based Policy Service SDN Integration Aggregator Host Tracker Link Aggregation Ctl Protocol SNMP4SDN Time Series Data Repository Service Abstraction Layer/Core Messaging (Notifications / RPCs) Data Store (Config & Operational) OpenFlow OVSDB NETCONF LISP BGP PCEP CAPWAP OPFLEX SXP SNMP USC SNBI HTTP CoAP LACP PCMM/COPS Southbound Interfaces & Protocol Plugins OpenFlow Enabled Devices Open vSwitches Additional Virtual & Physical Devices
6
Installation Requirements
#ODSummit
7
Installation Requirements
System: Software: OS installation: Linux, Mac, Windows Java Virtual Machine 1.7 or 1.8 Requirement Minimum Personal Use Recommended CPU 2 Cores 4 Cores 8 Cores RAM 2 GB 4 GB 8 GB Storage 16 GB 32 GB 64 GB #ODSummit
8
Lab 1: Install tools-vm #ODSummit
9
Lab 1 – Install tools-vm Plug USB stick in your laptop
Install VirtualBox-5.0.0 Import VM image: tools-vm-ubuntu.ova Check VM specs (2 Cores/4 GB RAM) fit in your system Start VM (user:vagrant/pwd:vagrant) #ODSummit
10
Download and Start Controller
#ODSummit
11
Download Controller Released versions and official documentation available in main web: Latest versions available in Nexus: egration/distribution-karaf/ Helium (stable): 0.2.X-SNAPSHOT Lithium (stable): 0.3.X-SNAPSHOT Beryllium (master): 0.4.X-SNAPSHOT Latest documentation available in wiki: #ODSummit
12
Start Controller Controller distribution comes as a pre-built zip or tar.gz file: Use unzip <file> to extract the zip file. Use tar –zxf <file> to extract the tar.gz file. Controller uses Karaf ( ) runtime: cd <distribution-folder> bin/karaf -> starts controller with karaf console bin/start -> starts controller in the background bin/stop -> stops controller bin/client -u karaf -> enter karaf console when controller is running #ODSummit
13
Lab 2: Start Controller #ODSummit
14
Lab 2 – Start Controller Open a terminal window:
Click on the black terminal icon on the left quick launch menu Copy the karaf distribution to user folder: cp controller-lithium/distribution-karaf Lithium.zip ~ Extract the distribution: unzip distribution-karaf Lithium.zip Start the controller: cd distribution-karaf Lithium bin/karaf #ODSummit
15
Install Features #ODSummit
16
Install Features Controller comes with NO features installed.
Features can be installed from karaf console: feature:list (-i) -> lists all (only installed) features in the controller feature:info <feature> -> gets feature information feature:install <feature> -> installs a feature bundle:list –s -> lists loaded software bundles You can also specify startup features in a cfg file before starting the controller: Open the file: <distribution-folder>/etc/org.apache.karaf.features.cfg Add you features to this line: featuresBoot=config,standard,region,package,kar,ssh,management You only need to install a feature once, after it will be automatically installed every time controller starts. #ODSummit
17
Feature Install FAQs How do I know which features to install?
Read project user-guide documentation to know about features to install. Can I install features from different projects? Yes, but before doing that read every individual project documentation. Some features may not be compatible with others. Features can be added at any time but can I uninstall a feature? Feature uninstall is NOT supported. In case you want to clear all features in the controller: Stop controller Delete following folders in <distribution-folder>: data, journal, snapshots Start controller #ODSummit
18
Feature startup configuration
A feature may include one or more startup configuration files: The files are stored in: <distribution-folder>/etc/opendaylight/karaf The files are created the first time a feature is installed. The configuration is applied at controller startup. In case you want to change the startup configuration: Stop controller. Edit config file in <distribution-folder>/etc/opendaylight/karaf Start controller. #ODSummit
19
Lab 3: Install l2swith feature
#ODSummit
20
Lab 3 – Install l2switch feature
Check available and installed features in karaf console: feature:list (-i) Search for l2switch features: feature:list | grep l2switch Get information for an l2switch feature: feature:info odl-l2switch-switch-ui Install l2switch main feature: feature:install odl-l2switch-switch-ui Check the loaded software bundles: bundle:list -s #ODSummit
21
Graphical User Interface
#ODSummit
22
Graphical User Interface
GUI opens at: (note it changed in Lithium!) Features related to GUI: odl-dlux-core -> basic GUI including topology application odl-dlux-node -> node inventory application odl-dlux-yangui -> YangUI application to browse Yang RESTCONF interface odl-dlux-yangvisualizer -> YangVisualizer application to browse yang models Most applications in OpenDaylight bring odl-dlux-core if started with -ui : Example: feature:install odl-l2switch-switch-ui For more information about dlux applications check Lithium User Guides #ODSummit
23
Lab 4: Graphical User Interface
#ODSummit
24
Lab 4 – GUI Open the controller GUI at Default user/pasw is admin/admin. Install all dlux features from controller Karaf console: feature:install odl-dlux-all Check new apps in the GUI. Open a terminal window: Click on the terminal icon on the left menu or open a new tab on existing terminal window. Start mininet simulation and ping all hosts: sudo mn --controller=remote,ip= topo tree,2 mininet> pingall Check topology and nodes in GUI. #ODSummit
25
Lab 4 – GUI #ODSummit
26
REST Interface and Tools
#ODSummit
27
REST Interface The REST interface has direct access to the controller datastore: URL: OpenDaylight applications expose configuration and state in the datastore: /restconf/config/* -> this is where users create/read/update/delete (POST, GET, PUT, DELETE) application configuration. NEW in Lithium: config area is persistent (i.e. survives after restart). /restconf/operational/* -> this is where applications write state and users read it (GET). Most popular databases are topology and inventory: GET GET Projects user-guide documentation includes information and examples of REST calls. #ODSummit
28
REST Example: Flow programming
Flows are normally programmed in the config datastore: Use PUT inventory:nodes/node/openflow:1/table/0/flow/1 (flow configuration is in the REST request body) to add a flow. Use GET inventory:nodes/node/openflow:1/table/0/ to check configured flows (switch 1, table 0). Use DELETE inventory:nodes/node/openflow:1/table/0/flow/1 to delete flow 1. Flows are verified through OpenFlow statistics: Controller sends stats requests to the switches and updates operational datastore with received information. Use GET inventory:nodes/node/openflow:1/table/0/ to check switch flows (switch 1, table 0). Flows can be also programmed via RPC, overpassing the config datastore. #ODSummit
29
REST Tools YangUI application in controller GUI.
Allows to browse controller URLs and methods. Chrome POSTMAN extension. Easy create and share REST collections. cURL command in Linux systems. Easy write shell script. REST libraries are available for most programming languages. IMPORTANT: In all tools set the following headers: Authorization (basic): admin/admin Accept (answer body): application/xml or application/json Content-Type (request body): application/xml or application/json #ODSummit
30
Lab 5: REST Interface #ODSummit
31
Lab 5 – YangUI Open the controller GUI at Click on the YangUI application. Select opendaylight-inventory>operational>nodes in the Yang tree. At the bottom where it says Path select GET method. Click on Send button and browse the answer. #ODSummit
32
Lab 5 – YangUI #ODSummit
33
Lab 5 – POSTMAN Open Chrome POSTMAN extension.
Click on the orange icon on the left quick launch menu. On the left select Collections and click on OpenFlow. Select Get Topology and press Send button on the right. Select Get Inventory and press Send button on the right. Add/Get/Modify/Delete a Flow using POSTMAN Check OpenFlow examples in POSTMAN #ODSummit
34
Lab 5 – POSTMAN #ODSummit
35
Lab 5 – cURL Open a terminal window: cURL format:
Click on the terminal icon on the left menu or open a new tab on existing terminal window. cURL format: curl --user <user>:<password> -H <header 1> -H <header-2> -X <requesttype> <url> -d '<request- body>' Get the topology with cURL: curl --user "admin":"admin" -H "Accept: application/xml" –H "Content-type: application/xml" -X GET #ODSummit
36
Troubleshooting #ODSummit
37
Controller Log Controller log is in: <distribution-folder>/data/log/karaf.log It can be also displayed on karaf console: log:display All applications in OpenDaylight write in the log, so it is normally very “chatty”. For troubleshooting (e.g. l2switch): log:set ERROR -> sets default log level to ERROR. log:set TRACE org.opendaylight.l2switch -> sets l2switch log level to TRACE. bundle:list –s -> to check all modules that can be traced. #ODSummit
38
Troubleshooting Tools
Linux commands: ps -ef | grep java -> to check if controller is running netstat -pa | grep java -> to check which tcp ports controller is listening top -> CPU and memory usage Karaf commands: bundle:list -s | grep -v Active -> to list inactive bundles web:list -> web state Packet capture: wirehark/tshark tcpdump #ODSummit
39
Lab 6: Troubleshooting #ODSummit
40
Lab 6 – Troubleshooting Open a terminal window and check controller process and open ports: ps -ef | grep java netstat -pa | grep java top Go to karaf console and pull bundles, web status and log: bundle:list -s | grep -v Active web:list log:display Open a terminal window and start wireshark: wireshark & #ODSummit
41
Thank You #ODSummit
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.