Link to security considerations in install guide
[docs.git] / docs / getting-started-guide / installing_opendaylight.rst
1 .. _install_odl:
2
3 ***********************
4 Installing OpenDaylight
5 ***********************
6
7 You complete the following steps to install your networking environment, with
8 specific instructions provided in the subsections below.
9
10 Before detailing the instructions for these, we address the following:
11 Java Runtime Environment (JRE) and operating system information
12 Target environment
13 Known issues and limitations
14
15
16 Install OpenDaylight
17 ====================
18
19 Downloading and installing OpenDaylight
20 ---------------------------------------
21
22 The default distribution can be found on the OpenDaylight software
23 download page: http://www.opendaylight.org/software/downloads
24
25 The Karaf distribution has no features enabled by default. However, all
26 of the features are available to be installed.
27
28 .. note:: For compatibility reasons, you cannot enable all the features
29           simultaneously. We try to document known incompatibilities in
30           the `Install the Karaf features`_ section below.
31
32 Running the karaf distribution
33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
34
35 To run the Karaf distribution:
36
37 #. Unzip the zip file.
38 #. Navigate to the directory.
39 #. run ``./bin/karaf``.
40
41 For Example::
42
43    $ ls distribution-karaf-0.5.x-Boron.zip
44    distribution-karaf-0.5.x-Boron.zip
45    $ unzip distribution-karaf-0.5.x-Boron.zip
46    Archive:  distribution-karaf-0.5.x-Boron.zip
47       creating: distribution-karaf-0.5.x-Boron/
48       creating: distribution-karaf-0.5.x-Boron/configuration/
49       creating: distribution-karaf-0.5.x-Boron/data/
50       creating: distribution-karaf-0.5.x-Boron/data/tmp/
51       creating: distribution-karaf-0.5.x-Boron/deploy/
52       creating: distribution-karaf-0.5.x-Boron/etc/
53       creating: distribution-karaf-0.5.x-Boron/externalapps/
54    ...
55      inflating: distribution-karaf-0.5.x-Boron/bin/start.bat
56      inflating: distribution-karaf-0.5.x-Boron/bin/status.bat
57      inflating: distribution-karaf-0.5.x-Boron/bin/stop.bat
58    $ cd distribution-karaf-0.5.x-Boron
59    $ ./bin/karaf
60
61        ________                       ________                .__  .__       .__     __
62        \_____  \ ______   ____   ____ \______ \ _____  ___.__.\|  \| \|__\| ____ \|  \|___/  \|_
63         /   \|   \\____ \_/ __ \ /    \ \|    \|  \\__  \<   \|  \|\|  \| \|  \|/ ___\\|  \|  \   __\
64        /    \|    \  \|_> >  ___/\|   \|  \\|    `   \/ __ \\___  \|\|  \|_\|  / /_/  >   Y  \  \|
65        \_______  /   __/ \___  >___\|  /_______  (____  / ____\|\|____/__\___  /\|___\|  /__\|
66                \/\|__\|        \/     \/        \/     \/\/            /_____/      \/
67
68
69
70 * Press ``tab`` for a list of available commands
71 * Typing ``[cmd] --help`` will show help for a specific command.
72 * Press ``ctrl-d`` or type ``system:shutdown`` or ``logout`` to shutdown OpenDaylight.
73
74 .. note:: Please take a look at the :ref:`security_deployment_recommendations`
75           and following sections under :ref:`security_considerations` if you're
76           planning on running OpenDaylight outside of an isolated test lab
77           environment.
78
79 Install the Karaf features
80 ==========================
81 To install a feature, use the following command, where feature1 is the feature
82 name listed in the table below::
83
84     feature:install <feature1>
85
86 You can install multiple features using the following command::
87
88
89     feature:install <feature1> <feature2> ... <featureN-name>
90
91 .. note:: For compatibility reasons, you cannot enable all Karaf features
92    simultaneously. The table below documents feature installation names and
93    known incompatibilities.Compatibility values indicate the following:
94
95 * **all** - the feature can be run with other features.
96 * **self+all** - the feature can be installed with other features with a value of
97   **all**, but may interact badly with other features that have a value of
98   **self+all**. Not every combination has been tested.
99
100 Uninstalling features
101 ---------------------
102 To uninstall a feature, you must shut down OpenDaylight, delete the data
103 directory, and start OpenDaylight up again.
104
105 .. important:: Uninstalling a feature using the Karaf feature:uninstall command
106    is not supported and can cause unexpected and undesirable behavior.
107
108 Listing available features
109 --------------------------
110 To find the complete list of Karaf features, run the following command::
111
112     feature:list
113
114 To list the installed Karaf features, run the following command::
115
116     feature:list -i
117
118 Features to implement networking functionality provide release notes, which
119 you can find in the :ref:`proj_rel_notes` section.
120
121 Karaf running on Windows 10
122 ---------------------------
123
124 Windows 10 cannot be identify by Karaf (equinox).
125 Issue occurs during installation of karaf features e.g.::
126
127    opendaylight-user@root>feature:install odl-restconf
128    Error executing command: Can't install feature odl-restconf/0.0.0:
129    Could not start bundle mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8-odl in feature(s) odl-akka-leveldb-0.7: The bundle "org.fusesource.leveldbjni.leveldbjni-all_1.8.0 [300]" could not be resolved. Reason: No match found for native code: META-INF/native/windows32/leveldbjni.dll; processor=x86; osname=Win32, META-INF/native/windows64/leveldbjni.dll; processor=x86-64; osname=Win32, META-INF/native/osx/libleveldbjni.jnilib; processor=x86; osname=macosx, META-INF/native/osx/libleveldbjni.jnilib; processor=x86-64; osname=macosx, META-INF/native/linux32/libleveldbjni.so; processor=x86; osname=Linux, META-INF/native/linux64/libleveldbjni.so; processor=x86-64; osname=Linux, META-INF/native/sunos64/amd64/libleveldbjni.so; processor=x86-64; osname=SunOS, META-INF/native/sunos64/sparcv9/libleveldbjni.so; processor=sparcv9; osname=SunOS
130
131 Workaround is to add
132
133    org.osgi.framework.os.name = Win32
134
135 to the karaf file
136
137    etc/system.properties
138
139 The workaround and further info are in this thread:
140 http://stackoverflow.com/questions/35679852/karaf-exception-is-thrown-while-installing-org-fusesource-leveldbjni
141
142
143 Karaf OpenDaylight Features
144 ===========================
145
146 .. list-table:: Karaf OpenDaylight features
147     :widths: 10 25 10 5
148     :header-rows: 1
149
150     * - Feature Name
151       - Feature Description
152       - Karaf feature name
153       - Compatibility
154
155     * - Authentication
156       - Enables authentication with support for federation using Apache Shiro
157       - odl-aaa-shiro
158       - all
159
160     * - BGP
161       - Provides support for Border Gateway Protocol (including Link-State
162         Distribution) as a source of L3 topology information
163       - odl-bgpcep-bgp
164       - all
165
166     * - BMP
167       - Provides support for BGP Monitoring Protocol as a monitoring station
168       - odl-bgpcep-bmp
169       - all
170
171     * - DIDM
172       - Device Identification and Driver Management
173       - odl-didm-all
174       - all
175
176     * - Centinel
177       - Provides interfaces for streaming analytics
178       - odl-centinel-all
179       - all
180
181     * - DLUX
182       - Provides an intuitive graphical user interface for OpenDaylight
183       - odl-dlux-all
184       - all
185     * - Fabric as a Service (Faas)
186       - Creates a common abstraction layer on top of a physical network so
187         northbound APIs or services can be more easiliy mapped onto the
188         physical network as a concrete device configuration
189       - odl-faas-all
190       - all
191
192     * - Group Based Policy
193       - Enables Endpoint Registry and Policy Repository REST APIs and associated
194         functionality for Group Based Policy with the default renderer for
195         OpenFlow renderers
196       - odl-groupbasedpolicy-ofoverlay
197       - all
198
199     * - GBP User Interface
200       - Enables a web-based user interface for Group Based Policy
201       - odl-groupbasedpolicyi-ui
202       - all
203
204     * - GBP FaaS renderer
205       - Enables the Fabric as a Service renderer for Group Based Policy
206       - odl-groupbasedpolicy-faas
207       - self+all
208
209     * - GBP Neutron Support
210       - Provides OpenStack Neutron support using Group Based Policy
211       - odl-groupbasedpolicy-neutronmapper
212       - all
213
214     * - L2 Switch
215       - Provides L2 (Ethernet) forwarding across connected OpenFlow switches and
216         support for host tracking
217       - odl-l2switch-switch-ui
218       - self+all
219
220     * - LACP
221       - Enables support for the Link Aggregation Control Protocol
222       - odl-lacp-ui
223       - self+all
224
225     * - LISP Flow Mapping
226       - Enables LISP control plane services including the mapping system
227         services REST API and LISP protocol SB plugin
228       - odl-lispflowmapping-msmr
229       - all
230
231     * - NEMO CLI
232       - Provides intent mappings and implementation with CLI for legacy devices
233       - odl-nemo-cli-renderer
234       - all
235
236     * - NEMO OpenFlow
237       - Provides intent mapping and implementation for OpenFlow devices
238       - odl-nemo-openflow-renderer
239       - self+all
240
241     * - NetIDE
242       - Enables portabilty and cooperation inside a single network by using a
243         client/server multi-controller architecture
244       - odl-netide-rest
245       - all
246
247     * - NETCONF over SSH
248       - Provides support to manage NETCONF-enabled devices over SSH
249       - odl-netconf-connector-ssh
250       - all
251
252     * - OF-CONFIG
253       - Enables remote configuration of OpenFlow datapaths
254       - odl-of-config-rest
255       - all
256
257     * - OVSDB OpenStack Neutron
258       - OpenStack Network Virtualization using OpenDaylight's OVSDB support
259       - odl-ovsdb-openstack
260       - all
261
262     * - OVSDB Southbound
263       - OVSDB MDSAL southbound plugin for Open_vSwitch schema
264       - odl-ovsdb-southbound-impl-ui
265       - all
266
267     * - OVSDB HWVTEP Southbound
268       - OVSDB MDSAL hwvtep southbound plugin for the hw_vtep schema
269       - odl-ovsdb-hwvtepsouthbound-ui
270       - all
271
272     * - OVSDB NetVirt SFC
273       - OVSDB NetVirt support for SFC
274       - odl-ovsdb-sfc-ui
275       - all
276
277     * - OpenFlow Flow Programming
278       - Enables discovery and control of OpenFlow switches and the topoology
279         between them
280       - odl-openflowplugin-flow-services-ui
281       - all
282
283     * - OpenFlow Table Type Patterns
284       - Allows OpenFlow Table Type Patterns to be manually associated with
285         network elements
286       - odl-ttp-all
287       - all
288
289     * - Packetcable PCMM
290       - Enables flow-based dynamic QoS management of CMTS use in the DOCSIS
291         infrastructure and a policy server
292       - odl-packetcable-policy-server
293       - self+all
294
295     * - PCEP
296       - Enables support for PCEP
297       - odl-bgpcep-pcep
298       - all
299
300     * - RESTCONF API Support
301       - Enables REST API access to the MD-SAL including the data store
302       - odl-restconf
303       - all
304
305     * - SDNinterface
306       - Provides support for interaction and sharing of state between
307         (non-clustered) OpenDaylight instances
308       - odl-sdninterfaceapp-all
309       - all
310
311     * - SFC over L2
312       - Supports implementing Service Function Chaining using Layer 2
313         forwarding
314       - odl-sfcofl2
315       - self+all
316
317     * - SFC over LISP
318       - Supports implementing Service Function Chaining using LISP
319       - odl-sfclisp
320       - all
321
322     * - SFC over REST
323       - Supports implementing Service Function Chaining using REST CRUD
324         operations on network elements
325       - odl-sfc-sb-rest
326       - all
327
328     * - SFC over VXLAN
329       - Supports implementing Service Function Chaining using VXLAN tunnels
330       - odl-sfc-ovs
331       - self+all
332
333     * - SNMP Plugin
334       - Enables monitoring and control of network elements via SNMP
335       - odl-snmp-plugin
336       - all
337
338     * - SNMP4SDN
339       - Enables OpenFlow-like control of network elements via SNMP
340       - odl-snmp4sdn-all
341       - all
342
343     * - SSSD Federated Authentication
344       - Enables support for federated authentication using SSSD
345       - odl-aaa-sssd-plugin
346       - all
347
348     * - Secure tag eXchange Protocol (SXP)
349       - Enables distribution of shared tags to network devices
350       - odl-sxp-controller
351       - all
352
353     * - Time Series Data Repository (TSDR)
354       - Enables support for storing and querying time series data with the
355         default data collector for OpenFlow statistics the default data store
356         for HSQLDB
357       - odl-tsdr-hsqldb-all
358       - all
359
360     * - TSDR Data Collectors
361       - Enables support for various TSDR data sources (collectors) including
362         OpenFlow statistics, NetFlow statistics, NetFlow statistics, SNMP data,
363         Syslog, and OpenDaylight (controller) metrics
364       - odl-tsdr-openflow-statistics-collector,
365         odl-tsdr-netflow-statistics-collector,
366         odl-tsdr-snmp-data-collector,
367         odl-tsdr-syslog-collector,
368         odl-tsdr-controller-metrics-collector
369       - all
370
371     * - TSDR Data Stores
372       - Enables support for TSDR data stores including HSQLDB, HBase, and
373         Cassandra
374       - odl-tsdr-hsqldb, odl-tsdr-hbase, or odl-tsdr-cassandra
375       - all
376
377     * - Topology Processing Framework
378       - Enables merged and filtered views of network topologies
379       - odl-topoprocessing-framework
380       - all
381
382     * - Unified Secure Channel (USC)
383       - Enables support for secure, remote connections to network devices
384       - odl-usc-channel-ui
385       - all
386
387     * - VTN Manager
388       - Enables Virtual Tenant Network support
389       - odl-vtn-manager-rest
390       - self+all
391
392     * - VTN Manager Neutron
393       - Enables OpenStack Neutron support of VTN Manager
394       - odl-vtn-manager-neutron
395       - self+all
396
397
398 Other OpenDaylight features
399 ===========================
400
401 .. list-table:: Other OpenDaylight features
402     :widths: 10 25 10 5
403     :header-rows: 1
404
405     * - Feature Name
406       - Feature Description
407       - Karaf feature name
408       - Compatibility
409
410     * - OpFlex
411       - Provides OpFlex agent for Open vSwitch to enforce network policy, such
412         as GBP, for locally-attached virtual machines or containers
413       - n/a
414       - all
415
416     * - NeXt
417       - Provides a developer toolkit for designing network-centric topology
418         user interfaces
419       - n/a
420       - all
421
422
423 Experimental OpenDaylight Features
424 ==================================
425 The following functionality is labeled as experimental in this OpenDaylight
426 release and should be used accordingly. In general, it is not supposed to be
427 used in production unless its limitations are well understood by those
428 deploying it.
429
430 .. list-table:: Other features
431     :widths: 10 25 10 5
432     :header-rows: 1
433
434     * - Feature Name
435       - Feature Description
436       - Karaf feature name
437       - Compatibility
438
439     * - Authorization
440       - Enables configurable role-based authorization
441       - odl-aaa-authz
442       - all
443
444     * - ALTO
445       - Enables support for Application-Layer Traffic Optimization
446       - odl-alto-core
447       - self+all
448
449     * - CAPWAP
450       - Enables control of supported wireless APs
451       - odl-capwap-ac-rest
452       - all
453
454     * - Clustered Authentication
455       - Enables the use of the MD-SAL clustered data store for the
456         authentication database
457       - odl-aaa-authn-mdsal-cluster
458       - all
459
460     * - Controller Shield
461       - Provides controller security information to northbound applications
462       - odl-usecplugin
463       - all
464
465     * - GBP IO Visor Renderer
466       - Provides support for rendering Group Based Policy to IO Visor
467       - odl-groupbasedpolicy-iovisor
468       - all
469
470     * - Internet of Things Data Management
471       - Enables support for the oneM2M specification
472       - odl-iotdm-onem2m
473       - all
474
475     * - LISP Flow Mapping OpenStack Network Virtualization
476       - Experimental support for OpenStack Neutron virtualization
477       - odl-lispflowmapping-neutron
478       - self+all
479
480     * - Network Intent Composition (NIC)
481       - Provides abstraction layer for communcating network intents (including
482         a distributed intent mapping service REST API) using either Hazelcast
483         or the MD-SAL as the backing data store for intents
484       - odl-nic-core-hazelcast or odl-nic-core-mdsal
485       - all
486
487     * - NIC Console
488       - Provides a Karaf CLI extension for intent CRUD operations and mapping
489         service operations
490       - odl-nic-console
491       - all
492
493     * - NIC VTN renderer
494       - Virtual Tenant Network renderer for Network Intent Composition
495       - odl-nic-renderer-vtn
496       - self+all
497
498     * - NIC GBP renderer
499       - Group Based Policy renderer for Network Intent Composition
500       - odl-nic-renderer-gbp
501       - self+all
502
503     * - NIC OpenFlow renderer
504       - OpenFlow renderer for Network Intent Composition
505       - odl-nic-renderer-of
506       - self+all
507
508     * - NIC NEMO renderer
509       - NEtwork MOdeling renderer for Network Intent Composition
510       - odl-nic-renderer-nemo
511       - self+all
512
513     * - OVSDB NetVirt UI
514       - OVSDB DLUX UI
515       - odl-ovsdb-ui
516       - all
517
518     * - Secure Networking Bootstrap
519       - Defines a SNBi domain and associated white lists of devices to be
520         accommodated to the domain
521       - odl-snbi-all
522       - self+all
523
524     * - UNI Manager
525       - Initiates the development of data models and APIs to facilitate
526         configuration and provisioning connectivity services for OpenDaylight
527         applications and services
528       - odl-unimgr
529       - all
530
531     * - YANG PUBSUB
532       - Allows subscriptions to be placed on targeted subtrees of YANG
533         datastores residing on remote devices to obviate the need for
534         OpenDaylight to make continuous fetch requests
535       - odl-yangpush-rest
536       - all
537
538 Install support for REST APIs
539 =============================
540 Most components that offer REST APIs will automatically load the RESTCONF API
541 Support component, but if for whatever reason they seem to be missing, install
542 the “odl-restconf” feature to activate this support.