blob: 0f7bec9c2e1cc8f672a1fea710cdcd9519efd37f [file] [log] [blame]
paul718e3742002-12-13 20:15:29 +00001@node Basic commands
paul718e3742002-12-13 20:15:29 +00002@chapter Basic commands
3
4There are five routing daemons in use, and there is one manager daemon.
5These daemons may be located on separate machines from the manager
6daemon. Each of these daemons will listen on a particular port for
7incoming VTY connections. The routing daemons are:
8
9@itemize @bullet
10@item @command{ripd}, @command{ripngd}, @command{ospfd}, @command{ospf6d}, @command{bgpd}
11@item @command{zebra}
12@end itemize
13
14The following sections discuss commands common to all the routing
15daemons.
16
17@menu
18* Config Commands:: Commands used in config files
David Lamparterf16195c2014-11-28 08:40:58 +010019* Terminal Mode Commands:: Common commands used in a VTY
paul718e3742002-12-13 20:15:29 +000020* Common Invocation Options:: Starting the daemons
ajs274a4a42004-12-07 15:39:31 +000021* Virtual Terminal Interfaces:: Interacting with the daemons
paul718e3742002-12-13 20:15:29 +000022@end menu
23
24
25
paul76b89b42004-11-06 17:13:09 +000026@node Config Commands
paul718e3742002-12-13 20:15:29 +000027@section Config Commands
28
29@cindex Configuration files for running the software
30@c A -not configuration files for installing the software
31@cindex Files for running configurations
32@cindex Modifying the herd's behavior
33@cindex Getting the herd running
34
35
36@menu
37* Basic Config Commands:: Some of the generic config commands
38* Sample Config File:: An example config file
39@end menu
40
41
42In a config file, you can write the debugging options, a vty's password,
43routing daemon configurations, a log file name, and so forth. This
44information forms the initial command set for a routing beast as it is
45starting.
46
47Config files are generally found in:
48
Paul Jakmaa20a4062012-03-08 16:42:31 +000049@itemize @w{}
paul718e3742002-12-13 20:15:29 +000050@item @file{@value{INSTALL_PREFIX_ETC}/*.conf}
51@end itemize
52
53Each of the daemons has its own
54config file. For example, zebra's default config file name is:
55
Paul Jakmaa20a4062012-03-08 16:42:31 +000056@itemize @w{}
paul718e3742002-12-13 20:15:29 +000057@item @file{@value{INSTALL_PREFIX_ETC}/zebra.conf}
58@end itemize
59
60The daemon name plus @file{.conf} is the default config file name. You
61can specify a config file using the @kbd{-f} or @kbd{--config-file}
62options when starting the daemon.
63
64
65
paul76b89b42004-11-06 17:13:09 +000066@node Basic Config Commands
paul718e3742002-12-13 20:15:29 +000067@subsection Basic Config Commands
68
69@deffn Command {hostname @var{hostname}} {}
70Set hostname of the router.
71@end deffn
72
73@deffn Command {password @var{password}} {}
74Set password for vty interface. If there is no password, a vty won't
75accept connections.
76@end deffn
77
78@deffn Command {enable password @var{password}} {}
79Set enable password.
80@end deffn
81
ajs274a4a42004-12-07 15:39:31 +000082@deffn Command {log trap @var{level}} {}
83@deffnx Command {no log trap} {}
84These commands are deprecated and are present only for historical compatibility.
85The log trap command sets the current logging level for all enabled
86logging destinations, and it sets the default for all future logging commands
87that do not specify a level. The normal default
88logging level is debugging. The @code{no} form of the command resets
89the default level for future logging commands to debugging, but it does
90not change the logging level of existing logging destinations.
91@end deffn
92
93
paul718e3742002-12-13 20:15:29 +000094@deffn Command {log stdout} {}
ajs274a4a42004-12-07 15:39:31 +000095@deffnx Command {log stdout @var{level}} {}
paul718e3742002-12-13 20:15:29 +000096@deffnx Command {no log stdout} {}
ajs274a4a42004-12-07 15:39:31 +000097Enable logging output to stdout.
98If the optional second argument specifying the
99logging level is not present, the default logging level (typically debugging,
100but can be changed using the deprecated @code{log trap} command) will be used.
101The @code{no} form of the command disables logging to stdout.
102The @code{level} argument must have one of these values:
103emergencies, alerts, critical, errors, warnings, notifications, informational, or debugging. Note that the existing code logs its most important messages
104with severity @code{errors}.
paul718e3742002-12-13 20:15:29 +0000105@end deffn
106
107@deffn Command {log file @var{filename}} {}
ajs274a4a42004-12-07 15:39:31 +0000108@deffnx Command {log file @var{filename} @var{level}} {}
109@deffnx Command {no log file} {}
110If you want to log into a file, please specify @code{filename} as
111in this example:
paul718e3742002-12-13 20:15:29 +0000112@example
ajs274a4a42004-12-07 15:39:31 +0000113log file /var/log/quagga/bgpd.log informational
paul718e3742002-12-13 20:15:29 +0000114@end example
ajs274a4a42004-12-07 15:39:31 +0000115If the optional second argument specifying the
116logging level is not present, the default logging level (typically debugging,
117but can be changed using the deprecated @code{log trap} command) will be used.
118The @code{no} form of the command disables logging to a file.
ajsc70257d2005-02-03 17:12:01 +0000119
120Note: if you do not configure any file logging, and a daemon crashes due
121to a signal or an assertion failure, it will attempt to save the crash
122information in a file named /var/tmp/quagga.<daemon name>.crashlog.
123For security reasons, this will not happen if the file exists already, so
124it is important to delete the file after reporting the crash information.
paul718e3742002-12-13 20:15:29 +0000125@end deffn
126
127@deffn Command {log syslog} {}
ajs274a4a42004-12-07 15:39:31 +0000128@deffnx Command {log syslog @var{level}} {}
paul718e3742002-12-13 20:15:29 +0000129@deffnx Command {no log syslog} {}
ajs274a4a42004-12-07 15:39:31 +0000130Enable logging output to syslog.
131If the optional second argument specifying the
132logging level is not present, the default logging level (typically debugging,
133but can be changed using the deprecated @code{log trap} command) will be used.
134The @code{no} form of the command disables logging to syslog.
paul718e3742002-12-13 20:15:29 +0000135@end deffn
136
ajs274a4a42004-12-07 15:39:31 +0000137@deffn Command {log monitor} {}
138@deffnx Command {log monitor @var{level}} {}
139@deffnx Command {no log monitor} {}
140Enable logging output to vty terminals that have enabled logging
141using the @code{terminal monitor} command.
142By default, monitor logging is enabled at the debugging level, but this
143command (or the deprecated @code{log trap} command) can be used to change
144the monitor logging level.
145If the optional second argument specifying the
146logging level is not present, the default logging level (typically debugging,
147but can be changed using the deprecated @code{log trap} command) will be used.
148The @code{no} form of the command disables logging to terminal monitors.
paul718e3742002-12-13 20:15:29 +0000149@end deffn
150
ajs274a4a42004-12-07 15:39:31 +0000151@deffn Command {log facility @var{facility}} {}
152@deffnx Command {no log facility} {}
153This command changes the facility used in syslog messages. The default
154facility is @code{daemon}. The @code{no} form of the command resets
155the facility to the default @code{daemon} facility.
paul718e3742002-12-13 20:15:29 +0000156@end deffn
157
ajs274a4a42004-12-07 15:39:31 +0000158@deffn Command {log record-priority} {}
159@deffnx Command {no log record-priority} {}
160To include the severity in all messages logged to a file, to stdout, or to
161a terminal monitor (i.e. anything except syslog),
162use the @code{log record-priority} global configuration command.
163To disable this option, use the @code{no} form of the command. By default,
164the severity level is not included in logged messages. Note: some
165versions of syslogd (including Solaris) can be configured to include
166the facility and level in the messages emitted.
paul718e3742002-12-13 20:15:29 +0000167@end deffn
168
Andrew J. Schorrd3d7e232007-04-29 15:24:15 +0000169@deffn Command {log timestamp precision @var{<0-6>}} {}
170@deffnx Command {no log timestamp precision} {}
171This command sets the precision of log message timestamps to the
172given number of digits after the decimal point. Currently,
173the value must be in the range 0 to 6 (i.e. the maximum precision
174is microseconds).
175To restore the default behavior (1-second accuracy), use the
176@code{no} form of the command, or set the precision explicitly to 0.
177
178@example
179@group
180log timestamp precision 3
181@end group
182@end example
183
184In this example, the precision is set to provide timestamps with
185millisecond accuracy.
186@end deffn
187
paul718e3742002-12-13 20:15:29 +0000188@deffn Command {service password-encryption} {}
189Encrypt password.
190@end deffn
191
192@deffn Command {service advanced-vty} {}
193Enable advanced mode VTY.
194@end deffn
195
196@deffn Command {service terminal-length @var{<0-512>}} {}
197Set system wide line configuration. This configuration command applies
198to all VTY interfaces.
199@end deffn
200
paul718e3742002-12-13 20:15:29 +0000201@deffn Command {line vty} {}
202Enter vty configuration mode.
203@end deffn
204
205@deffn Command {banner motd default} {}
206Set default motd string.
207@end deffn
208
209@deffn Command {no banner motd} {}
210No motd banner string will be printed.
211@end deffn
212
213@deffn {Line Command} {exec-timeout @var{minute}} {}
214@deffnx {Line Command} {exec-timeout @var{minute} @var{second}} {}
215Set VTY connection timeout value. When only one argument is specified
216it is used for timeout value in minutes. Optional second argument is
217used for timeout value in seconds. Default timeout value is 10 minutes.
218When timeout value is zero, it means no timeout.
219@end deffn
220
221@deffn {Line Command} {no exec-timeout} {}
222Do not perform timeout at all. This command is as same as
223@command{exec-timeout 0 0}.
224@end deffn
225
226@deffn {Line Command} {access-class @var{access-list}} {}
227Restrict vty connections with an access list.
228@end deffn
229
paul76b89b42004-11-06 17:13:09 +0000230@node Sample Config File
paul718e3742002-12-13 20:15:29 +0000231@subsection Sample Config File
232
233
234Below is a sample configuration file for the zebra daemon.
235
236@example
237@group
238!
239! Zebra configuration file
240!
241hostname Router
242password zebra
243enable password zebra
244!
245log stdout
246!
247!
248@end group
249@end example
250
251'!' and '#' are comment characters. If the first character of the word
252is one of the comment characters then from the rest of the line forward
253will be ignored as a comment.
254
255@example
256password zebra!password
257@end example
258
259If a comment character is not the first character of the word, it's a
260normal character. So in the above example '!' will not be regarded as a
261comment and the password is set to 'zebra!password'.
262
263
264
ajs274a4a42004-12-07 15:39:31 +0000265@node Terminal Mode Commands
266@section Terminal Mode Commands
267
268@deffn Command {write terminal} {}
269Displays the current configuration to the vty interface.
270@end deffn
271
272@deffn Command {write file} {}
273Write current configuration to configuration file.
274@end deffn
275
276@deffn Command {configure terminal} {}
277Change to configuration mode. This command is the first step to
278configuration.
279@end deffn
280
281@deffn Command {terminal length @var{<0-512>}} {}
282Set terminal display length to @var{<0-512>}. If length is 0, no
283display control is performed.
284@end deffn
285
286@deffn Command {who} {}
287Show a list of currently connected vty sessions.
288@end deffn
289
290@deffn Command {list} {}
291List all available commands.
292@end deffn
293
294@deffn Command {show version} {}
295Show the current version of @value{PACKAGE_NAME} and its build host information.
296@end deffn
297
298@deffn Command {show logging} {}
299Shows the current configuration of the logging system. This includes
300the status of all logging destinations.
301@end deffn
302
303@deffn Command {logmsg @var{level} @var{message}} {}
304Send a message to all logging destinations that are enabled for messages
305of the given severity.
306@end deffn
307
308
309
310
paul76b89b42004-11-06 17:13:09 +0000311@node Common Invocation Options
paul718e3742002-12-13 20:15:29 +0000312@section Common Invocation Options
313@c COMMON_OPTIONS
314@c OPTIONS section of the man page
315
paul76b89b42004-11-06 17:13:09 +0000316These options apply to all @value{PACKAGE_NAME} daemons.
paul718e3742002-12-13 20:15:29 +0000317
318@table @samp
319
320@item -d
321@itemx --daemon
322Runs in daemon mode.
323
324@item -f @var{file}
325@itemx --config_file=@var{file}
326Set configuration file name.
327
328@item -h
329@itemx --help
330Display this help and exit.
331
332@item -i @var{file}
333@itemx --pid_file=@var{file}
334
335Upon startup the process identifier of the daemon is written to a file,
336typically in @file{/var/run}. This file can be used by the init system
337to implement commands such as @command{@dots{}/init.d/zebra status},
338@command{@dots{}/init.d/zebra restart} or @command{@dots{}/init.d/zebra
339stop}.
340
341The file name is an run-time option rather than a configure-time option
342so that multiple routing daemons can be run simultaneously. This is
paul76b89b42004-11-06 17:13:09 +0000343useful when using @value{PACKAGE_NAME} to implement a routing looking glass. One
paul718e3742002-12-13 20:15:29 +0000344machine can be used to collect differing routing views from differing
345points in the network.
346
paul971a4492003-06-20 01:18:07 +0000347@item -A @var{address}
348@itemx --vty_addr=@var{address}
349Set the VTY local address to bind to. If set, the VTY socket will only
350be bound to this address.
351
paul718e3742002-12-13 20:15:29 +0000352@item -P @var{port}
353@itemx --vty_port=@var{port}
paul971a4492003-06-20 01:18:07 +0000354Set the VTY TCP port number. If set to 0 then the TCP VTY sockets will not
355be opened.
356
357@item -u @var{user}
358@itemx --vty_addr=@var{user}
359Set the user and group to run as.
paul718e3742002-12-13 20:15:29 +0000360
361@item -v
362@itemx --version
363Print program version.
364
365@end table
366
367
368
paul76b89b42004-11-06 17:13:09 +0000369@node Virtual Terminal Interfaces
paul718e3742002-12-13 20:15:29 +0000370@section Virtual Terminal Interfaces
371
372VTY -- Virtual Terminal [aka TeletYpe] Interface is a command line
373interface (CLI) for user interaction with the routing daemon.
374
375@menu
376* VTY Overview:: Basics about VTYs
377* VTY Modes:: View, Enable, and Other VTY modes
378* VTY CLI Commands:: Commands for movement, edition, and management
379@end menu
380
381
382
paul76b89b42004-11-06 17:13:09 +0000383@node VTY Overview
paul718e3742002-12-13 20:15:29 +0000384@subsection VTY Overview
385
386
387VTY stands for Virtual TeletYpe interface. It means you can connect to
388the daemon via the telnet protocol.
389
390To enable a VTY interface, you have to setup a VTY password. If there
391is no VTY password, one cannot connect to the VTY interface at all.
392
393@example
394@group
395% telnet localhost 2601
396Trying 127.0.0.1...
397Connected to localhost.
398Escape character is '^]'.
399
paul76b89b42004-11-06 17:13:09 +0000400Hello, this is @value{PACKAGE_NAME} (version @value{VERSION})
401@value{COPYRIGHT_STR}
paul718e3742002-12-13 20:15:29 +0000402
403User Access Verification
404
405Password: XXXXX
406Router> ?
407 enable Turn on privileged commands
408 exit Exit current mode and down to previous mode
409 help Description of the interactive help system
410 list Print command list
411 show Show running system information
412 who Display who is on a vty
413Router> enable
414Password: XXXXX
415Router# configure terminal
416Router(config)# interface eth0
417Router(config-if)# ip address 10.0.0.1/8
418Router(config-if)# ^Z
419Router#
420@end group
421@end example
422
423'?' is very useful for looking up commands.
424
paul76b89b42004-11-06 17:13:09 +0000425@node VTY Modes
paul718e3742002-12-13 20:15:29 +0000426@subsection VTY Modes
427
paul718e3742002-12-13 20:15:29 +0000428There are three basic VTY modes:
429
430@menu
431* VTY View Mode:: Mode for read-only interaction
432* VTY Enable Mode:: Mode for read-write interaction
433* VTY Other Modes:: Special modes (tftp, etc)
434@end menu
435
436There are commands that may be restricted to specific VTY modes.
437
paul76b89b42004-11-06 17:13:09 +0000438@node VTY View Mode
paul718e3742002-12-13 20:15:29 +0000439@subsubsection VTY View Mode
440@c to be written (gpoul)
441
442
443This mode is for read-only access to the CLI. One may exit the mode by
444leaving the system, or by entering @code{enable} mode.
445
paul76b89b42004-11-06 17:13:09 +0000446@node VTY Enable Mode
paul718e3742002-12-13 20:15:29 +0000447@subsubsection VTY Enable Mode
448
paul718e3742002-12-13 20:15:29 +0000449@c to be written (gpoul)
450This mode is for read-write access to the CLI. One may exit the mode by
451leaving the system, or by escaping to view mode.
452
paul76b89b42004-11-06 17:13:09 +0000453@node VTY Other Modes
paul718e3742002-12-13 20:15:29 +0000454@subsubsection VTY Other Modes
455
456
457@c to be written (gpoul)
458This page is for describing other modes.
459
paul76b89b42004-11-06 17:13:09 +0000460@node VTY CLI Commands
paul718e3742002-12-13 20:15:29 +0000461@subsection VTY CLI Commands
462
paul76b89b42004-11-06 17:13:09 +0000463Commands that you may use at the command-line are described in the following
464three subsubsections.
paul718e3742002-12-13 20:15:29 +0000465
466@menu
467* CLI Movement Commands:: Commands for moving the cursor about
468* CLI Editing Commands:: Commands for changing text
469* CLI Advanced Commands:: Other commands, session management and so on
470@end menu
471
paul76b89b42004-11-06 17:13:09 +0000472@node CLI Movement Commands
paul718e3742002-12-13 20:15:29 +0000473@subsubsection CLI Movement Commands
474
paul718e3742002-12-13 20:15:29 +0000475These commands are used for moving the CLI cursor. The @key{C} character
476means press the Control Key.
477
478@table @kbd
479
480@item C-f
481@itemx @key{RIGHT}
482@kindex C-f
483@kindex @key{RIGHT}
484Move forward one character.
485
486@item C-b
487@itemx @key{LEFT}
488@kindex C-b
489@kindex @key{LEFT}
490Move backward one character.
491
492@item M-f
493@kindex M-f
494Move forward one word.
495
496@item M-b
497@kindex M-b
498Move backward one word.
499
500@item C-a
501@kindex C-a
502Move to the beginning of the line.
503
504@item C-e
505@kindex C-e
506Move to the end of the line.
507
508@end table
509
paul76b89b42004-11-06 17:13:09 +0000510@node CLI Editing Commands
paul718e3742002-12-13 20:15:29 +0000511@subsubsection CLI Editing Commands
512
paul718e3742002-12-13 20:15:29 +0000513These commands are used for editing text on a line. The @key{C}
514character means press the Control Key.
515
516@table @kbd
517
518@item C-h
519@itemx @key{DEL}
520@kindex C-h
521@kindex @key{DEL}
522Delete the character before point.
523
524@item C-d
525@kindex C-d
526Delete the character after point.
527
528@item M-d
529@kindex M-d
530Forward kill word.
531
532@item C-w
533@kindex C-w
534Backward kill word.
535
536@item C-k
537@kindex C-k
538Kill to the end of the line.
539
540@item C-u
541@kindex C-u
542Kill line from the beginning, erasing input.
543
544@item C-t
545@kindex C-t
546Transpose character.
547
548@end table
549
paul76b89b42004-11-06 17:13:09 +0000550@node CLI Advanced Commands
paul718e3742002-12-13 20:15:29 +0000551@subsubsection CLI Advanced Commands
552
paul718e3742002-12-13 20:15:29 +0000553There are several additional CLI commands for command line completions,
554insta-help, and VTY session management.
555
556@table @kbd
557
558@item C-c
559@kindex C-c
560Interrupt current input and moves to the next line.
561
562@item C-z
563@kindex C-z
564End current configuration session and move to top node.
565
566
567@item C-n
568@itemx @key{DOWN}
569@kindex C-n
570@kindex @key{DOWN}
571Move down to next line in the history buffer.
572
573@item C-p
574@itemx @key{UP}
575@kindex C-p
576@kindex @key{UP}
577Move up to previous line in the history buffer.
578
579@item TAB
580@kindex @key{TAB}
581Use command line completion by typing @key{TAB}.
582
David Lamparterf16195c2014-11-28 08:40:58 +0100583@item ?
584@kindex @key{?}
paul718e3742002-12-13 20:15:29 +0000585You can use command line help by typing @code{help} at the beginning of
586the line. Typing @kbd{?} at any point in the line will show possible
587completions.
588
589@end table