@node Basic commands @comment node-name, next, previous, up @chapter Basic commands There are five routing daemons in use, and there is one manager daemon. These daemons may be located on separate machines from the manager daemon. Each of these daemons will listen on a particular port for incoming VTY connections. The routing daemons are: @itemize @bullet @item @command{ripd}, @command{ripngd}, @command{ospfd}, @command{ospf6d}, @command{bgpd} @item @command{zebra} @end itemize The following sections discuss commands common to all the routing daemons. @menu * Config Commands:: Commands used in config files * Common Invocation Options:: Starting the daemons * Virtual Terminal Interfaces:: Interacting with the daemons @end menu @node Config Commands, Common Invocation Options, Basic commands, Basic commands @comment node-name, next, previous, up @section Config Commands @cindex Configuration files for running the software @c A -not configuration files for installing the software @cindex Files for running configurations @cindex Modifying the herd's behavior @cindex Getting the herd running @menu * Basic Config Commands:: Some of the generic config commands * Sample Config File:: An example config file @end menu In a config file, you can write the debugging options, a vty's password, routing daemon configurations, a log file name, and so forth. This information forms the initial command set for a routing beast as it is starting. Config files are generally found in: @itemize @asis @item @file{@value{INSTALL_PREFIX_ETC}/*.conf} @end itemize Each of the daemons has its own config file. For example, zebra's default config file name is: @itemize @asis @item @file{@value{INSTALL_PREFIX_ETC}/zebra.conf} @end itemize The daemon name plus @file{.conf} is the default config file name. You can specify a config file using the @kbd{-f} or @kbd{--config-file} options when starting the daemon. @node Basic Config Commands, Sample Config File, Config Commands, Config Commands @comment node-name, next, previous, up @subsection Basic Config Commands @deffn Command {hostname @var{hostname}} {} Set hostname of the router. @end deffn @deffn Command {password @var{password}} {} Set password for vty interface. If there is no password, a vty won't accept connections. @end deffn @deffn Command {enable password @var{password}} {} Set enable password. @end deffn @deffn Command {log stdout} {} @deffnx Command {no log stdout} {} Set logging output to stdout. @end deffn @deffn Command {log file @var{filename}} {} If you want to log into a file please specify @code{filename} as follows. @example log file /usr/local/etc/bgpd.log @end example @end deffn @deffn Command {log syslog} {} @deffnx Command {no log syslog} {} Set logging output to syslog. @end deffn @deffn Command {write terminal} {} Displays the current configuration to the vty interface. @end deffn @deffn Command {write file} {} Write current configuration to configuration file. @end deffn @deffn Command {configure terminal} {} Change to configuration mode. This command is the first step to configuration. @end deffn @deffn Command {terminal length @var{<0-512>}} {} Set terminal display length to @var{<0-512>}. If length is 0, no display control is performed. @end deffn @deffn Command {who} {} @end deffn @deffn Command {list} {} List commands. @end deffn @deffn Command {service password-encryption} {} Encrypt password. @end deffn @deffn Command {service advanced-vty} {} Enable advanced mode VTY. @end deffn @deffn Command {service terminal-length @var{<0-512>}} {} Set system wide line configuration. This configuration command applies to all VTY interfaces. @end deffn @deffn Command {show version} {} Show the current version of the Quagga and its build host information. @end deffn @deffn Command {line vty} {} Enter vty configuration mode. @end deffn @deffn Command {banner motd default} {} Set default motd string. @end deffn @deffn Command {no banner motd} {} No motd banner string will be printed. @end deffn @deffn {Line Command} {exec-timeout @var{minute}} {} @deffnx {Line Command} {exec-timeout @var{minute} @var{second}} {} Set VTY connection timeout value. When only one argument is specified it is used for timeout value in minutes. Optional second argument is used for timeout value in seconds. Default timeout value is 10 minutes. When timeout value is zero, it means no timeout. @end deffn @deffn {Line Command} {no exec-timeout} {} Do not perform timeout at all. This command is as same as @command{exec-timeout 0 0}. @end deffn @deffn {Line Command} {access-class @var{access-list}} {} Restrict vty connections with an access list. @end deffn @node Sample Config File, , Basic Config Commands, Config Commands @comment node-name, next, previous, up @subsection Sample Config File Below is a sample configuration file for the zebra daemon. @example @group ! ! Zebra configuration file ! hostname Router password zebra enable password zebra ! log stdout ! ! @end group @end example '!' and '#' are comment characters. If the first character of the word is one of the comment characters then from the rest of the line forward will be ignored as a comment. @example password zebra!password @end example If a comment character is not the first character of the word, it's a normal character. So in the above example '!' will not be regarded as a comment and the password is set to 'zebra!password'. @node Common Invocation Options, Virtual Terminal Interfaces, Config Commands, Basic commands @comment node-name, next, previous, up @section Common Invocation Options @c COMMON_OPTIONS @c OPTIONS section of the man page These options apply to all Quagga daemons. @table @samp @item -d @itemx --daemon Runs in daemon mode. @item -f @var{file} @itemx --config_file=@var{file} Set configuration file name. @item -h @itemx --help Display this help and exit. @item -i @var{file} @itemx --pid_file=@var{file} Upon startup the process identifier of the daemon is written to a file, typically in @file{/var/run}. This file can be used by the init system to implement commands such as @command{@dots{}/init.d/zebra status}, @command{@dots{}/init.d/zebra restart} or @command{@dots{}/init.d/zebra stop}. The file name is an run-time option rather than a configure-time option so that multiple routing daemons can be run simultaneously. This is useful when using Quagga to implement a routing looking glass. One machine can be used to collect differing routing views from differing points in the network. @item -A @var{address} @itemx --vty_addr=@var{address} Set the VTY local address to bind to. If set, the VTY socket will only be bound to this address. @item -P @var{port} @itemx --vty_port=@var{port} Set the VTY TCP port number. If set to 0 then the TCP VTY sockets will not be opened. @item -u @var{user} @itemx --vty_addr=@var{user} Set the user and group to run as. @item -v @itemx --version Print program version. @end table @node Virtual Terminal Interfaces, , Common Invocation Options, Basic commands @comment node-name, next, previous, up @section Virtual Terminal Interfaces VTY -- Virtual Terminal [aka TeletYpe] Interface is a command line interface (CLI) for user interaction with the routing daemon. @menu * VTY Overview:: Basics about VTYs * VTY Modes:: View, Enable, and Other VTY modes * VTY CLI Commands:: Commands for movement, edition, and management @end menu @node VTY Overview, VTY Modes, Virtual Terminal Interfaces, Virtual Terminal Interfaces @comment node-name, next, previous, up @subsection VTY Overview VTY stands for Virtual TeletYpe interface. It means you can connect to the daemon via the telnet protocol. To enable a VTY interface, you have to setup a VTY password. If there is no VTY password, one cannot connect to the VTY interface at all. @example @group % telnet localhost 2601 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Hello, this is zebra (version @value{VERSION}) Copyright 1997-2000 Kunihiro Ishiguro User Access Verification Password: XXXXX Router> ? enable Turn on privileged commands exit Exit current mode and down to previous mode help Description of the interactive help system list Print command list show Show running system information who Display who is on a vty Router> enable Password: XXXXX Router# configure terminal Router(config)# interface eth0 Router(config-if)# ip address 10.0.0.1/8 Router(config-if)# ^Z Router# @end group @end example '?' is very useful for looking up commands. @node VTY Modes, VTY CLI Commands, VTY Overview, Virtual Terminal Interfaces @comment node-name, next, previous, up @subsection VTY Modes There are three basic VTY modes: @menu * VTY View Mode:: Mode for read-only interaction * VTY Enable Mode:: Mode for read-write interaction * VTY Other Modes:: Special modes (tftp, etc) @end menu There are commands that may be restricted to specific VTY modes. @node VTY View Mode, VTY Enable Mode, VTY Modes, VTY Modes @comment node-name, next, previous, up @subsubsection VTY View Mode @c to be written (gpoul) This mode is for read-only access to the CLI. One may exit the mode by leaving the system, or by entering @code{enable} mode. @node VTY Enable Mode, VTY Other Modes, VTY View Mode, VTY Modes @comment node-name, next, previous, up @subsubsection VTY Enable Mode @c to be written (gpoul) This mode is for read-write access to the CLI. One may exit the mode by leaving the system, or by escaping to view mode. @node VTY Other Modes, , VTY Enable Mode, VTY Modes @comment node-name, next, previous, up @subsubsection VTY Other Modes @c to be written (gpoul) This page is for describing other modes. @node VTY CLI Commands, , VTY Modes, Virtual Terminal Interfaces @comment node-name, next, previous, up @subsection VTY CLI Commands Commands that you may use at the command-line are described in the following three subsubsections. @menu * CLI Movement Commands:: Commands for moving the cursor about * CLI Editing Commands:: Commands for changing text * CLI Advanced Commands:: Other commands, session management and so on @end menu @node CLI Movement Commands, CLI Editing Commands, VTY CLI Commands, VTY CLI Commands @comment node-name, next, previous, up @subsubsection CLI Movement Commands These commands are used for moving the CLI cursor. The @key{C} character means press the Control Key. @table @kbd @item C-f @itemx @key{RIGHT} @kindex C-f @kindex @key{RIGHT} Move forward one character. @item C-b @itemx @key{LEFT} @kindex C-b @kindex @key{LEFT} Move backward one character. @item M-f @kindex M-f Move forward one word. @item M-b @kindex M-b Move backward one word. @item C-a @kindex C-a Move to the beginning of the line. @item C-e @kindex C-e Move to the end of the line. @end table @node CLI Editing Commands, CLI Advanced Commands, CLI Movement Commands, VTY CLI Commands @comment node-name, next, previous, up @subsubsection CLI Editing Commands These commands are used for editing text on a line. The @key{C} character means press the Control Key. @table @kbd @item C-h @itemx @key{DEL} @kindex C-h @kindex @key{DEL} Delete the character before point. @item C-d @kindex C-d Delete the character after point. @item M-d @kindex M-d Forward kill word. @item C-w @kindex C-w Backward kill word. @item C-k @kindex C-k Kill to the end of the line. @item C-u @kindex C-u Kill line from the beginning, erasing input. @item C-t @kindex C-t Transpose character. @end table @node CLI Advanced Commands, , CLI Editing Commands, VTY CLI Commands @comment node-name, next, previous, up @subsubsection CLI Advanced Commands There are several additional CLI commands for command line completions, insta-help, and VTY session management. @table @kbd @item C-c @kindex C-c Interrupt current input and moves to the next line. @item C-z @kindex C-z End current configuration session and move to top node. @item C-n @itemx @key{DOWN} @kindex C-n @kindex @key{DOWN} Move down to next line in the history buffer. @item C-p @itemx @key{UP} @kindex C-p @kindex @key{UP} Move up to previous line in the history buffer. @item TAB @kindex @key{TAB} Use command line completion by typing @key{TAB}. @item @kindex ? You can use command line help by typing @code{help} at the beginning of the line. Typing @kbd{?} at any point in the line will show possible completions. @end table