Presentation is loading. Please wait.

Presentation is loading. Please wait.

Basic Operations Guide

Similar presentations

Presentation on theme: "Basic Operations Guide"— Presentation transcript:

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

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

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 ~ Extract the distribution: unzip distribution-karaf 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

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

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

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

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

Download ppt "Basic Operations Guide"

Similar presentations

Ads by Google