diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/.cvsignore | 1 | ||||
| -rw-r--r-- | doc/ChangeLog | 7 | ||||
| -rw-r--r-- | doc/quagga.info | 7227 | 
3 files changed, 8 insertions, 7227 deletions
diff --git a/doc/.cvsignore b/doc/.cvsignore index 5c3c752a..43987b24 100644 --- a/doc/.cvsignore +++ b/doc/.cvsignore @@ -7,6 +7,7 @@ zebra.html  defines.texi  version.texi  quagga.html +quagga.info  *.pdf  *.eps  quagga.ps diff --git a/doc/ChangeLog b/doc/ChangeLog index 3b5e45bb..c811cb31 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,10 @@ +2006-07-04 Paul Jakma <paul.jakma@sun.com> + +	* quagga.info: remove auto-generated file. It will still be +	  present in dist tarballs, so shouldn't affect anyone but +	  direct users of CVS. Required texinfo version should be +	  widely available. +  2006-06-28 Erik Muller <erikm@internap.com>  	* ospfd.texi: Document new ospf router subcommand diff --git a/doc/quagga.info b/doc/quagga.info deleted file mode 100644 index 1fe6be10..00000000 --- a/doc/quagga.info +++ /dev/null @@ -1,7227 +0,0 @@ -This is quagga.info, produced by makeinfo version 4.8 from quagga.texi. - -   Copyright (C) 1999-2005 Kunihiro Ishiguro, et al. - -     Permission is granted to make and distribute verbatim copies of -     this manual provided the copyright notice and this permission -     notice are preserved on all copies. - -     Permission is granted to copy and distribute modified versions of -     this manual under the conditions for verbatim copying, provided -     that the entire resulting derived work is distributed under the -     terms of a permission notice identical to this one. - -     Permission is granted to copy and distribute translations of this -     manual into another language, under the above conditions for -     modified versions, except that this permission notice may be -     stated in a translation approved by Kunihiro Ishiguro. - -INFO-DIR-SECTION Routing Software: -START-INFO-DIR-ENTRY -* Quagga: (quagga).		The Quagga Software Routing Suite -END-INFO-DIR-ENTRY - -   This file documents the Quagga Software Routing Suite which manages -common TCP/IP routing protocols. - -   This is Edition 0.99.4, last updated 10 September 2005 of `The -Quagga Manual', for Quagga Version 0.99.4. - -   Copyright (C) 1999-2005 Kunihiro Ishiguro, et al. - -     Permission is granted to make and distribute verbatim copies of -     this manual provided the copyright notice and this permission -     notice are preserved on all copies. - -     Permission is granted to copy and distribute modified versions of -     this manual under the conditions for verbatim copying, provided -     that the entire resulting derived work is distributed under the -     terms of a permission notice identical to this one. - -     Permission is granted to copy and distribute translations of this -     manual into another language, under the above conditions for -     modified versions, except that this permission notice may be -     stated in a translation approved by Kunihiro Ishiguro. - - -File: quagga.info,  Node: Top,  Next: Overview,  Up: (dir) - -Quagga -****** - -Quagga is an advanced routing software package that provides a suite of -TCP/IP based routing protocols.  This is the Manual for Quagga 0.99.4. -Quagga is a fork of GNU Zebra. - -   Copyright (C) 1999-2005 Kunihiro Ishiguro, et al. - -     Permission is granted to make and distribute verbatim copies of -     this manual provided the copyright notice and this permission -     notice are preserved on all copies. - -     Permission is granted to copy and distribute modified versions of -     this manual under the conditions for verbatim copying, provided -     that the entire resulting derived work is distributed under the -     terms of a permission notice identical to this one. - -     Permission is granted to copy and distribute translations of this -     manual into another language, under the above conditions for -     modified versions, except that this permission notice may be -     stated in a translation approved by Kunihiro Ishiguro. - -* Menu: - -* Overview:: -* Installation:: -* Basic commands:: -* Zebra:: -* RIP:: -* RIPng:: -* OSPFv2:: -* OSPFv3:: -* BGP:: -* Configuring Quagga as a Route Server:: -* VTY shell:: -* Filtering:: -* Route Map:: -* IPv6 Support:: -* Kernel Interface:: -* SNMP Support:: -* Zebra Protocol:: -* Packet Binary Dump Format:: -* Command Index:: -* VTY Key Index:: -    - -File: quagga.info,  Node: Overview,  Next: Installation,  Prev: Top,  Up: Top - -1 Overview -********** - -Quagga is a routing software package that provides TCP/IP based routing -services with routing protocols support such as RIPv1, RIPv2, RIPng, -OSPFv2, OSPFv3, BGP-4, and BGP-4+ (*note Supported RFC::). Quagga also -supports special BGP Route Reflector and Route Server behavior.  In -addition to traditional IPv4 routing protocols, Quagga also supports -IPv6 routing protocols.  With SNMP daemon which supports SMUX protocol, -Quagga provides routing protocol MIBs (*note SNMP Support::). - -   Quagga uses an advanced software architecture to provide you with a -high quality, multi server routing engine. Quagga has an interactive -user interface for each routing protocol and supports common client -commands.  Due to this design, you can add new protocol daemons to -Quagga easily.  You can use Quagga library as your program's client -user interface. - -   Quagga is distributed under the GNU General Public License. - -* Menu: - -* About Quagga::                Basic information about Quagga -* System Architecture::         The Quagga system architecture -* Supported Platforms::         Supported platforms and future plans -* Supported RFC::               Supported RFCs -* How to get Quagga:: -* Mailing List::                Mailing list information -* Bug Reports::                 Mail address for bug data - - -File: quagga.info,  Node: About Quagga,  Next: System Architecture,  Up: Overview - -1.1 About Quagga -================ - -Today, TCP/IP networks are covering all of the world.  The Internet has -been deployed in many countries, companies, and to the home.  When you -connect to the Internet your packet will pass many routers which have -TCP/IP routing functionality. - -   A system with Quagga installed acts as a dedicated router.  With -Quagga, your machine exchanges routing information with other routers -using routing protocols.  Quagga uses this information to update the -kernel routing table so that the right data goes to the right place. -You can dynamically change the configuration and you may view routing -table information from the Quagga terminal interface. - -   Adding to routing protocol support, Quagga can setup interface's -flags, interface's address, static routes and so on.  If you have a -small network, or a stub network, or xDSL connection, configuring the -Quagga routing software is very easy.  The only thing you have to do is -to set up the interfaces and put a few commands about static routes -and/or default routes.  If the network is rather large, or if the -network structure changes frequently, you will want to take advantage -of Quagga's dynamic routing protocol support for protocols such as RIP, -OSPF or BGP. - -   Traditionally, UNIX based router configuration is done by `ifconfig' -and `route' commands.  Status of routing table is displayed by -`netstat' utility.  Almost of these commands work only if the user has -root privileges.  Quagga has a different system administration method. -There are two user modes in Quagga.  One is normal mode, the other is -enable mode.  Normal mode user can only view system status, enable mode -user can change system configuration.  This UNIX account independent -feature will be great help to the router administrator. - -   Currently, Quagga supports common unicast routing protocols. -Multicast routing protocols such as BGMP, PIM-SM, PIM-DM may be -supported in Quagga 2.0.  MPLS support is going on.  In the future, -TCP/IP filtering control, QoS control, diffserv configuration will be -added to Quagga. Quagga project's final goal is making a productive, -quality, free TCP/IP routing software. - - -File: quagga.info,  Node: System Architecture,  Next: Supported Platforms,  Prev: About Quagga,  Up: Overview - -1.2 System Architecture -======================= - -Traditional routing software is made as a one process program which -provides all of the routing protocol functionalities.  Quagga takes a -different approach.  It is made from a collection of several daemons -that work together to build the routing table.  There may be several -protocol-specific routing daemons and zebra the kernel routing manager. - -   The `ripd' daemon handles the RIP protocol, while `ospfd' is a -daemon which supports OSPF version 2.  `bgpd' supports the BGP-4 -protocol.  For changing the kernel routing table and for redistribution -of routes between different routing protocols, there is a kernel -routing table manager `zebra' daemon.  It is easy to add a new routing -protocol daemons to the entire routing system without affecting any -other software.  You need to run only the protocol daemon associated -with routing protocols in use.  Thus, user may run a specific daemon -and send routing reports to a central routing console. - -   There is no need for these daemons to be running on the same -machine. You can even run several same protocol daemons on the same -machine.  This architecture creates new possibilities for the routing -system. - -     +----+  +----+  +-----+  +-----+ -     |bgpd|  |ripd|  |ospfd|  |zebra| -     +----+  +----+  +-----+  +-----+ -                                 | -     +---------------------------|--+ -     |                           v  | -     |  UNIX Kernel  routing table  | -     |                              | -     +------------------------------+ - -         Quagga System Architecture - -   Multi-process architecture brings extensibility, modularity and -maintainability.  At the same time it also brings many configuration -files and terminal interfaces.  Each daemon has it's own configuration -file and terminal interface.  When you configure a static route, it -must be done in `zebra' configuration file.  When you configure BGP -network it must be done in `bgpd' configuration file.  This can be a -very annoying thing.  To resolve the problem, Quagga provides -integrated user interface shell called `vtysh'.  `vtysh' connects to -each daemon with UNIX domain socket and then works as a proxy for user -input. - -   Quagga was planned to use multi-threaded mechanism when it runs with -a kernel that supports multi-threads.  But at the moment, the thread -library which comes with GNU/Linux or FreeBSD has some problems with -running reliable services such as routing software, so we don't use -threads at all.  Instead we use the `select(2)' system call for -multiplexing the events. - - -File: quagga.info,  Node: Supported Platforms,  Next: Supported RFC,  Prev: System Architecture,  Up: Overview - -1.3 Supported Platforms -======================= - -Currently Quagga supports GNU/Linux, BSD and Solaris. Porting Quagga to -other platforms is not too difficult as platform dependent code should -most be limited to the `zebra' daemon.  Protocol daemons are mostly -platform independent. Please let us know when you find out Quagga runs -on a platform which is not listed below. - -   The list of officially supported platforms are listed below. Note -that Quagga may run correctly on other platforms, and may run with -partial functionality on further platforms. - - -   * GNU/Linux 2.2.x and higher - -   * FreeBSD 4.x and higher - -   * NetBSD 1.6 and higher - -   * OpenBSD 2.5 and higher - -   * Solaris 2.6 and higher (IPv6 support requires a patch at moment) - - -   Some IPv6 stacks are in development.  Quagga supports following IPv6 -stacks.  For BSD, we recommend KAME IPv6 stack.  Solaris IPv6 stack is -not yet supported. - -   * Linux IPv6 stack for GNU/Linux 2.2.x and higher. - -   * KAME IPv6 stack for BSD. - -   * INRIA IPv6 stack for BSD. - - -File: quagga.info,  Node: Supported RFC,  Next: How to get Quagga,  Prev: Supported Platforms,  Up: Overview - -1.4 Supported RFC -================= - -Below is the list of currently supported RFC's. - -RFC1058 -     `Routing Information Protocol. C.L. Hedrick. Jun-01-1988.' - -RF2082 -     `RIP-2 MD5 Authentication. F. Baker, R. Atkinson. January 1997.' - -RFC2453 -     `RIP Version 2. G. Malkin. November 1998.' - -RFC2080 -     `RIPng for IPv6. G. Malkin, R. Minnear. January 1997.' - -RFC2328 -     `OSPF Version 2. J. Moy. April 1998.' - -RFC2370 -     `The OSPF Opaque LSA Option R. Coltun. July 1998.' - -RFC3101 -     `The OSPF Not-So-Stubby Area (NSSA) Option P. Murphy. January -     2003.' - -RFC2740 -     `OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999.' - -RFC1771 -     `A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March -     1995.' - -RFC1965 -     `Autonomous System Confederations for BGP. P. Traina. June 1996.' - -RFC1997 -     `BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August -     1996.' - -RFC2545 -     `Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain -     Routing. P. Marques, F. Dupont. March 1999.' - -RFC2796 -     `BGP Route Reflection An alternative to full mesh IBGP. T. Bates & -     R. Chandrasekeran. June 1996.' - -RFC2858 -     `Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. -     Chandra, D. Katz. June 2000.' - -RFC2842 -     `Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder. -     May 2000.' - -RFC3137 -     `OSPF Stub Router Advertisement, A. Retana, L. Nguyen, R. White, -     A. Zinin, D. McPherson. June 2001' - -   When SNMP support is enabled, below RFC is also supported. - -RFC1227 -     `SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.' - -RFC1657 -     `Definitions of Managed Objects for the Fourth Version of the -     Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J. Burruss, -     J. Chu, Editor. July 1994.' - -RFC1724 -     `RIP Version 2 MIB Extension. G. Malkin & F. Baker. November 1994.' - -RFC1850 -     `OSPF Version 2 Management Information Base. F. Baker, R. Coltun. -     November 1995.' - - - -File: quagga.info,  Node: How to get Quagga,  Next: Mailing List,  Prev: Supported RFC,  Up: Overview - -1.5 How to get Quagga -===================== - -Quagga is still beta software and there is no officially released -version. - -   Zebra's official web page is located at: - -   `http://www.gnu.org/software/zebra/zebra.html'. - -   The original Zebra web site is located at: - -   `http://www.zebra.org/'. - -   As of this writing, development by zebra.org on Zebra has slowed -down. Some work is being done by third-parties to try maintain -bug-fixes and enhancements to the current Zebra code-base, which has -resulted in a fork of Zebra called Quagga, see: - -   `http://www.quagga.net/' - -   for further information, as well as links to additional zebra -resources. - - -File: quagga.info,  Node: Mailing List,  Next: Bug Reports,  Prev: How to get Quagga,  Up: Overview - -1.6 Mailing List -================ - -There is a mailing list for discussions about Quagga.  If you have any -comments or suggestions to Quagga, please subscribe to: - -   `http://lists.quagga.net/mailman/listinfo/quagga-users'. - -   The Quagga site has further information on the available mailing -lists, see: - -   	`http://www.quagga.net/lists.php' - - -File: quagga.info,  Node: Bug Reports,  Prev: Mailing List,  Up: Overview - -1.7 Bug Reports -=============== - -If you think you have found a bug, please send a bug report to: - -   `http://bugzilla.quagga.net' - -   When you send a bug report, please be careful about the points below. - -   * Please note what kind of OS you are using.  If you use the IPv6 -     stack please note that as well. - -   * Please show us the results of `netstat -rn' and `ifconfig -a'. -     Information from zebra's VTY command `show ip route' will also be -     helpful. - -   * Please send your configuration file with the report.  If you -     specify arguments to the configure script please note that too. - -   Bug reports are very important for us to improve the quality of -Quagga.  Quagga is still in the development stage, but please don't -hesitate to send a bug report to `http://bugzilla.quagga.net'. - - -File: quagga.info,  Node: Installation,  Next: Basic commands,  Prev: Overview,  Up: Top - -2 Installation -************** - -There are three steps for installing the software: configuration, -compilation, and installation. - -* Menu: - -* Configure the Software:: -* Build the Software:: -* Install the Software:: - -   The easiest way to get Quagga running is to issue the following -commands: - -     % configure -     % make -     % make install - - -File: quagga.info,  Node: Configure the Software,  Next: Build the Software,  Up: Installation - -2.1 Configure the Software -========================== - -* Menu: - -* The Configure script and its options:: -* Least-Privilege support:: -* Linux notes:: - - -File: quagga.info,  Node: The Configure script and its options,  Next: Least-Privilege support,  Up: Configure the Software - -2.1.1 The Configure script and its options ------------------------------------------- - -Quagga has an excellent configure script which automatically detects -most host configurations.  There are several additional configure -options you can use to turn off IPv6 support, to disable the -compilation of specific daemons, and to enable SNMP support. - -`--enable-guile' -     Turn on compilation of the zebra-guile interpreter.  You will need -     the guile library to make this.  zebra-guile implementation is not -     yet finished.  So this option is only useful for zebra-guile -     developers. - -`--disable-ipv6' -     Turn off IPv6 related features and daemons.  Quagga configure -     script automatically detects IPv6 stack.  But sometimes you might -     want to disable IPv6 support of Quagga. - -`--disable-zebra' -     Do not build zebra daemon. - -`--disable-ripd' -     Do not build ripd. - -`--disable-ripngd' -     Do not build ripngd. - -`--disable-ospfd' -     Do not build ospfd. - -`--disable-ospf6d' -     Do not build ospf6d. - -`--disable-bgpd' -     Do not build bgpd. - -`--disable-bgp-announce' -     Make `bgpd' which does not make bgp announcements at all.  This -     feature is good for using `bgpd' as a BGP announcement listener. - -`--enable-netlink' -     Force to enable GNU/Linux netlink interface.  Quagga configure -     script detects netlink interface by checking a header file.  When -     the header file does not match to the current running kernel, -     configure script will not turn on netlink support. - -`--enable-snmp' -     Enable SNMP support.  By default, SNMP support is disabled. - -`--enable-opaque-lsa' -     Enable support for Opaque LSAs (RFC2370) in ospfd. - -`--disable-ospfapi' -     Disable support for OSPF-API, an API to interface directly with -     ospfd.  OSPF-API is enabled if -enable-opaque-lsa is set. - -`--disable-ospfclient' -     Disable building of the example OSPF-API client. - -`--enable-ospf-te' -     Enable support for OSPF Traffic Engineering Extension -     (internet-draft) this requires support for Opaque LSAs. - -`--enable-multipath=ARG' -     Enable support for Equal Cost Multipath. ARG is the maximum number -     of ECMP paths to allow, set to 0 to allow unlimited number of -     paths. - -`--enable-rtadv' -     Enable support IPV6 router advertisement in zebra. - -   You may specify any combination of the above options to the configure -script.  By default, the executables are placed in `/usr/local/sbin' -and the configuration files in `/usr/local/etc'. The `/usr/local/' -installation prefix and other directories may be changed using the -following options to the configuration script. - -`--prefix=PREFIX' -     Install architecture-independent files in PREFIX [/usr/local]. - -`--sysconfdir=DIR' -     Look for configuration files in DIR [PREFIX/etc]. Note that sample -     configuration files will be installed here. - -`--localstatedir=DIR' -     Configure zebra to use DIR for local state files, such as pid -     files and unix sockets. - -     % ./configure --disable-ipv6 - -   This command will configure zebra and the routing daemons. - - -File: quagga.info,  Node: Least-Privilege support,  Next: Linux notes,  Prev: The Configure script and its options,  Up: Configure the Software - -2.1.2 Least-Privilege support ------------------------------ - -Additionally, you may configure zebra to drop its elevated privileges -shortly after startup and switch to another user. The configure script -will automatically try to configure this support. There are three -configure options to control the behaviour of Quagga daemons. - -`--enable-user=USER' -     Switch to user ARG shortly after startup, and run as user ARG in -     normal operation. - -`--enable-group=GROUP' -     Switch real and effective group to GROUP shortly after startup. - -`--enable-vty-group=GROUP' -     Create Unix Vty sockets (for use with vtysh) with group owndership -     set to GROUP. This allows one to create a seperate group which is -     restricted to accessing only the Vty sockets, hence allowing one to -     delegate this group to individual users, or to run vtysh setgid to -     this group. - -   The default user and group which will be configured is 'quagga' if -no user or group is specified. Note that this user or group requires -write access to the local state directory (see -localstatedir) and -requires at least read access, and write access if you wish to allow -daemons to write out their configuration, to the configuration -directory (see -sysconfdir). - -   On systems which have the 'libcap' capabilities manipulation library -(currently only linux), the quagga system will retain only minimal -capabilities required, further it will only raise these capabilities for -brief periods. On systems without libcap, quagga will run as the user -specified and only raise its uid back to uid 0 for brief periods. - - -File: quagga.info,  Node: Linux notes,  Prev: Least-Privilege support,  Up: Configure the Software - -2.1.3 Linux Notes ------------------ - -There are several options available only to GNU/Linux systems: (1).  If -you use GNU/Linux, make sure that the current kernel configuration is -what you want.  Quagga will run with any kernel configuration but some -recommendations do exist. - -CONFIG_NETLINK -     Kernel/User netlink socket. This is a brand new feature which -     enables an advanced interface between the Linux kernel and zebra -     (*note Kernel Interface::). - -CONFIG_RTNETLINK -     Routing messages.  This makes it possible to receive netlink -     routing messages.  If you specify this option, `zebra' can detect -     routing information updates directly from the kernel (*note Kernel -     Interface::). - -CONFIG_IP_MULTICAST -     IP: multicasting.  This option should be specified when you use -     `ripd' (*note RIP::) or `ospfd' (*note OSPFv2::) because these -     protocols use multicast. - - -   IPv6 support has been added in GNU/Linux kernel version 2.2.  If you -try to use the Quagga IPv6 feature on a GNU/Linux kernel, please make -sure the following libraries have been installed.  Please note that -these libraries will not be needed when you uses GNU C library 2.1 or -upper. - -`inet6-apps' -     The `inet6-apps' package includes basic IPv6 related libraries such -     as `inet_ntop' and `inet_pton'.  Some basic IPv6 programs such as -     `ping', `ftp', and `inetd' are also included. The `inet-apps' can -     be found at `ftp://ftp.inner.net/pub/ipv6/'. - -`net-tools' -     The `net-tools' package provides an IPv6 enabled interface and -     routing utility.  It contains `ifconfig', `route', `netstat', and -     other tools.  `net-tools' may be found at -     `http://www.tazenda.demon.co.uk/phil/net-tools/'. - - -   ---------- Footnotes ---------- - -   (1) GNU/Linux has very flexible kernel configuration features - - -File: quagga.info,  Node: Build the Software,  Next: Install the Software,  Prev: Configure the Software,  Up: Installation - -2.2 Build the Software -====================== - -After configuring the software, you will need to compile it for your -system. Simply issue the command `make' in the root of the source -directory and the software will be compiled. If you have *any* problems -at this stage, be certain to send a bug report *Note Bug Reports::. - -     % ./configure -     . -     . -     . -     ./configure output -     . -     . -     . -     % make - - -File: quagga.info,  Node: Install the Software,  Prev: Build the Software,  Up: Installation - -2.3 Install the Software -======================== - -Installing the software to your system consists of copying the compiled -programs and supporting files to a standard location. After the -installation process has completed, these files have been copied from -your work directory to `/usr/local/bin', and `/usr/local/etc'. - -   To install the Quagga suite, issue the following command at your -shell prompt: `make install'. - -     % -     % make install -     % - -   Quagga daemons have their own terminal interface or VTY.  After -installation, you have to setup each beast's port number to connect to -them.  Please add the following entries to `/etc/services'. - -     zebrasrv      2600/tcp		  # zebra service -     zebra         2601/tcp		  # zebra vty -     ripd          2602/tcp		  # RIPd vty -     ripngd        2603/tcp		  # RIPngd vty -     ospfd         2604/tcp		  # OSPFd vty -     bgpd          2605/tcp		  # BGPd vty -     ospf6d        2606/tcp		  # OSPF6d vty -     ospfapi       2607/tcp		  # ospfapi -     isisd         2608/tcp		  # ISISd vty - -   If you use a FreeBSD newer than 2.2.8, the above entries are already -added to `/etc/services' so there is no need to add it. If you specify -a port number when starting the daemon, these entries may not be needed. - -   You may need to make changes to the config files in -`/etc/quagga/*.conf'. *Note Config Commands::. - - -File: quagga.info,  Node: Basic commands,  Next: Zebra,  Prev: Installation,  Up: Top - -3 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: - -   * `ripd', `ripngd', `ospfd', `ospf6d', `bgpd' - -   * `zebra' - -   The following sections discuss commands common to all the routing -daemons. - -* Menu: - -* Terminal Mode Commands::      Common commands used in a VTY -* Config Commands::             Commands used in config files -* Common Invocation Options::   Starting the daemons -* Virtual Terminal Interfaces:: Interacting with the daemons - - -File: quagga.info,  Node: Config Commands,  Next: Common Invocation Options,  Prev: Terminal Mode Commands,  Up: Basic commands - -3.1 Config Commands -=================== - -* Menu: - -* Basic Config Commands::       Some of the generic config commands -* Sample Config File::          An example config file - -   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: - -     `/etc/quagga/*.conf' - -   Each of the daemons has its own config file.  For example, zebra's -default config file name is: - -     `/etc/quagga/zebra.conf' - -   The daemon name plus `.conf' is the default config file name. You -can specify a config file using the `-f' or `--config-file' options -when starting the daemon. - - -File: quagga.info,  Node: Basic Config Commands,  Next: Sample Config File,  Up: Config Commands - -3.1.1 Basic Config Commands ---------------------------- - - -- Command: hostname HOSTNAME -     Set hostname of the router. - - -- Command: password PASSWORD -     Set password for vty interface.  If there is no password, a vty -     won't accept connections. - - -- Command: enable password PASSWORD -     Set enable password. - - -- Command: log trap LEVEL - -- Command: no log trap -     These commands are deprecated and are present only for historical -     compatibility.  The log trap command sets the current logging -     level for all enabled logging destinations, and it sets the -     default for all future logging commands that do not specify a -     level.  The normal default logging level is debugging.  The `no' -     form of the command resets the default level for future logging -     commands to debugging, but it does not change the logging level of -     existing logging destinations. - - -- Command: log stdout - -- Command: log stdout LEVEL - -- Command: no log stdout -     Enable logging output to stdout.  If the optional second argument -     specifying the logging level is not present, the default logging -     level (typically debugging, but can be changed using the -     deprecated `log trap' command) will be used.  The `no' form of the -     command disables logging to stdout.  The `level' argument must -     have one of these values: emergencies, alerts, critical, errors, -     warnings, notifications, informational, or debugging.  Note that -     the existing code logs its most important messages with severity -     `errors'. - - -- Command: log file FILENAME - -- Command: log file FILENAME LEVEL - -- Command: no log file -     If you want to log into a file, please specify `filename' as in -     this example: -          log file /var/log/quagga/bgpd.log informational -     If the optional second argument specifying the logging level is -     not present, the default logging level (typically debugging, but -     can be changed using the deprecated `log trap' command) will be -     used.  The `no' form of the command disables logging to a file. - -     Note: if you do not configure any file logging, and a daemon -     crashes due to a signal or an assertion failure, it will attempt -     to save the crash information in a file named -     /var/tmp/quagga.<daemon name>.crashlog.  For security reasons, -     this will not happen if the file exists already, so it is -     important to delete the file after reporting the crash information. - - -- Command: log syslog - -- Command: log syslog LEVEL - -- Command: no log syslog -     Enable logging output to syslog.  If the optional second argument -     specifying the logging level is not present, the default logging -     level (typically debugging, but can be changed using the -     deprecated `log trap' command) will be used.  The `no' form of the -     command disables logging to syslog. - - -- Command: log monitor - -- Command: log monitor LEVEL - -- Command: no log monitor -     Enable logging output to vty terminals that have enabled logging -     using the `terminal monitor' command.  By default, monitor logging -     is enabled at the debugging level, but this command (or the -     deprecated `log trap' command) can be used to change the monitor -     logging level.  If the optional second argument specifying the -     logging level is not present, the default logging level (typically -     debugging, but can be changed using the deprecated `log trap' -     command) will be used.  The `no' form of the command disables -     logging to terminal monitors. - - -- Command: log facility FACILITY - -- Command: no log facility -     This command changes the facility used in syslog messages.  The -     default facility is `daemon'.  The `no' form of the command resets -     the facility to the default `daemon' facility. - - -- Command: log record-priority - -- Command: no log record-priority -     To include the severity in all messages logged to a file, to -     stdout, or to a terminal monitor (i.e. anything except syslog), -     use the `log record-priority' global configuration command.  To -     disable this option, use the `no' form of the command.  By default, -     the severity level is not included in logged messages.  Note: some -     versions of syslogd (including Solaris) can be configured to -     include the facility and level in the messages emitted. - - -- Command: service password-encryption -     Encrypt password. - - -- Command: service advanced-vty -     Enable advanced mode VTY. - - -- Command: service terminal-length <0-512> -     Set system wide line configuration.  This configuration command -     applies to all VTY interfaces. - - -- Command: line vty -     Enter vty configuration mode. - - -- Command: banner motd default -     Set default motd string. - - -- Command: no banner motd -     No motd banner string will be printed. - - -- Line Command: exec-timeout MINUTE - -- Line Command: exec-timeout MINUTE 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. - - -- Line Command: no exec-timeout -     Do not perform timeout at all.  This command is as same as -     `exec-timeout 0 0'. - - -- Line Command: access-class ACCESS-LIST -     Restrict vty connections with an access list. - - -File: quagga.info,  Node: Sample Config File,  Prev: Basic Config Commands,  Up: Config Commands - -3.1.2 Sample Config File ------------------------- - -Below is a sample configuration file for the zebra daemon. - -     ! -     ! Zebra configuration file -     ! -     hostname Router -     password zebra -     enable password zebra -     ! -     log stdout -     ! -     ! - -   '!' 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. - -     password zebra!password - -   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'. - - -File: quagga.info,  Node: Terminal Mode Commands,  Next: Config Commands,  Up: Basic commands - -3.2 Terminal Mode Commands -========================== - - -- Command: write terminal -     Displays the current configuration to the vty interface. - - -- Command: write file -     Write current configuration to configuration file. - - -- Command: configure terminal -     Change to configuration mode.  This command is the first step to -     configuration. - - -- Command: terminal length <0-512> -     Set terminal display length to <0-512>.  If length is 0, no -     display control is performed. - - -- Command: who -     Show a list of currently connected vty sessions. - - -- Command: list -     List all available commands. - - -- Command: show version -     Show the current version of Quagga and its build host information. - - -- Command: show logging -     Shows the current configuration of the logging system.  This -     includes the status of all logging destinations. - - -- Command: logmsg LEVEL MESSAGE -     Send a message to all logging destinations that are enabled for -     messages of the given severity. - - -File: quagga.info,  Node: Common Invocation Options,  Next: Virtual Terminal Interfaces,  Prev: Config Commands,  Up: Basic commands - -3.3 Common Invocation Options -============================= - -These options apply to all Quagga daemons. - -`-d' -`--daemon' -     Runs in daemon mode. - -`-f FILE' -`--config_file=FILE' -     Set configuration file name. - -`-h' -`--help' -     Display this help and exit. - -`-i FILE' -`--pid_file=FILE' -     Upon startup the process identifier of the daemon is written to a -     file, typically in `/var/run'.  This file can be used by the init -     system to implement commands such as `.../init.d/zebra status', -     `.../init.d/zebra restart' or `.../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. - -`-A ADDRESS' -`--vty_addr=ADDRESS' -     Set the VTY local address to bind to. If set, the VTY socket will -     only be bound to this address. - -`-P PORT' -`--vty_port=PORT' -     Set the VTY TCP port number. If set to 0 then the TCP VTY sockets -     will not be opened. - -`-u USER' -`--vty_addr=USER' -     Set the user and group to run as. - -`-v' -`--version' -     Print program version. - - - -File: quagga.info,  Node: Virtual Terminal Interfaces,  Prev: Common Invocation Options,  Up: Basic commands - -3.4 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 - - -File: quagga.info,  Node: VTY Overview,  Next: VTY Modes,  Up: Virtual Terminal Interfaces - -3.4.1 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. - -     % telnet localhost 2601 -     Trying 127.0.0.1... -     Connected to localhost. -     Escape character is '^]'. - -     Hello, this is Quagga (version 0.99.4) -     Copyright (C) 1999-2005 Kunihiro Ishiguro, et al. - -     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# - -   '?' is very useful for looking up commands. - - -File: quagga.info,  Node: VTY Modes,  Next: VTY CLI Commands,  Prev: VTY Overview,  Up: Virtual Terminal Interfaces - -3.4.2 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) - -   There are commands that may be restricted to specific VTY modes. - - -File: quagga.info,  Node: VTY View Mode,  Next: VTY Enable Mode,  Up: VTY Modes - -3.4.2.1 VTY View Mode -..................... - -This mode is for read-only access to the CLI. One may exit the mode by -leaving the system, or by entering `enable' mode. - - -File: quagga.info,  Node: VTY Enable Mode,  Next: VTY Other Modes,  Prev: VTY View Mode,  Up: VTY Modes - -3.4.2.2 VTY Enable Mode -....................... - -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. - - -File: quagga.info,  Node: VTY Other Modes,  Prev: VTY Enable Mode,  Up: VTY Modes - -3.4.2.3 VTY Other Modes -....................... - -This page is for describing other modes. - - -File: quagga.info,  Node: VTY CLI Commands,  Prev: VTY Modes,  Up: Virtual Terminal Interfaces - -3.4.3 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 - - -File: quagga.info,  Node: CLI Movement Commands,  Next: CLI Editing Commands,  Up: VTY CLI Commands - -3.4.3.1 CLI Movement Commands -............................. - -These commands are used for moving the CLI cursor. The <C> character -means press the Control Key. - -`C-f' -`<RIGHT>' -     Move forward one character. - -`C-b' -`<LEFT>' -     Move backward one character. - -`M-f' -     Move forward one word. - -`M-b' -     Move backward one word. - -`C-a' -     Move to the beginning of the line. - -`C-e' -     Move to the end of the line. - - - -File: quagga.info,  Node: CLI Editing Commands,  Next: CLI Advanced Commands,  Prev: CLI Movement Commands,  Up: VTY CLI Commands - -3.4.3.2 CLI Editing Commands -............................ - -These commands are used for editing text on a line. The <C> character -means press the Control Key. - -`C-h' -`<DEL>' -     Delete the character before point. - -`C-d' -     Delete the character after point. - -`M-d' -     Forward kill word. - -`C-w' -     Backward kill word. - -`C-k' -     Kill to the end of the line. - -`C-u' -     Kill line from the beginning, erasing input. - -`C-t' -     Transpose character. - - - -File: quagga.info,  Node: CLI Advanced Commands,  Prev: CLI Editing Commands,  Up: VTY CLI Commands - -3.4.3.3 CLI Advanced Commands -............................. - -There are several additional CLI commands for command line completions, -insta-help, and VTY session management. - -`C-c' -     Interrupt current input and moves to the next line. - -`C-z' -     End current configuration session and move to top node. - -`C-n' -`<DOWN>' -     Move down to next line in the history buffer. - -`C-p' -`<UP>' -     Move up to previous line in the history buffer. - -`TAB' -     Use command line completion by typing <TAB>. - -`' -     You can use command line help by typing `help' at the beginning of -     the line.  Typing `?' at any point in the line will show possible -     completions. - - - -File: quagga.info,  Node: Zebra,  Next: RIP,  Prev: Basic commands,  Up: Top - -4 Zebra -******* - -`zebra' is an IP routing manager.  It provides kernel routing table -updates, interface lookups, and redistribution of routes between -different routing protocols. - -* Menu: - -* Invoking zebra::              Running the program -* Interface Commands::          Commands for zebra interfaces -* Static Route Commands::       Commands for adding static routes -* zebra Terminal Mode Commands::  Commands for zebra's VTY - - -File: quagga.info,  Node: Invoking zebra,  Next: Interface Commands,  Up: Zebra - -4.1 Invoking zebra -================== - -Besides the common invocation options (*note Common Invocation -Options::), the `zebra' specific invocation options are listed below. - -`-b' -`--batch' -     Runs in batch mode.  `zebra' parses configuration file and -     terminates immediately. - -`-k' -`--keep_kernel' -     When zebra starts up, don't delete old self inserted routes. - -`-r' -`--retain' -     When program terminates, retain routes added by zebra. - - - -File: quagga.info,  Node: Interface Commands,  Next: Static Route Commands,  Prev: Invoking zebra,  Up: Zebra - -4.2 Interface Commands -====================== - - -- Command: interface IFNAME - - -- Interface Command: shutdown - -- Interface Command: no shutdown -     Up or down the current interface. - - -- Interface Command: ip address ADDRESS/PREFIX - -- Interface Command: ip6 address ADDRESS/PREFIX - -- Interface Command: no ip address ADDRESS/PREFIX - -- Interface Command: no ip6 address ADDRESS/PREFIX -     Set the IPv4 or IPv6 address/prefix for the interface. - - -- Interface Command: ip address ADDRESS/PREFIX secondary - -- Interface Command: no ip address ADDRESS/PREFIX secondary -     Set the secondary flag for this address. This causes ospfd to not -     treat the address as a distinct subnet. - - -- Interface Command: description DESCRIPTION ... -     Set description for the interface. - - -- Interface Command: multicast - -- Interface Command: no multicast -     Enable or disables multicast flag for the interface. - - -- Interface Command: bandwidth <1-10000000> - -- Interface Command: no bandwidth <1-10000000> -     Set bandwidth value of the interface in kilobits/sec.  This is for -     calculating OSPF cost. This command does not affect the actual -     device configuration. - - -- Interface Command: link-detect - -- Interface Command: no link-detect -     Enable/disable link-detect on platforms which support this. -     Currently only linux and with certain drivers - those which -     properly support the IFF_RUNNING flag. - - -File: quagga.info,  Node: Static Route Commands,  Next: zebra Terminal Mode Commands,  Prev: Interface Commands,  Up: Zebra - -4.3 Static Route Commands -========================= - -Static routing is a very fundamental feature of routing technology.  It -defines static prefix and gateway. - - -- Command: ip route NETWORK GATEWAY -     NETWORK is destination prefix with format of A.B.C.D/M.  GATEWAY -     is gateway for the prefix.  When GATEWAY is A.B.C.D format.  It is -     taken as a IPv4 address gateway.  Otherwise it is treated as an -     interface name. If the interface name is NULL0 then zebra installs -     a blackhole route. - -          ip route 10.0.0.0/8 10.0.0.2 -          ip route 10.0.0.0/8 ppp0 -          ip route 10.0.0.0/8 null0 - -     First example defines 10.0.0.0/8 static route with gateway -     10.0.0.2.  Second one defines the same prefix but with gateway to -     interface ppp0. The third install a blackhole route. - - -- Command: ip route NETWORK NETMASK GATEWAY -     This is alternate version of above command.  When NETWORK is -     A.B.C.D format, user must define NETMASK value with A.B.C.D -     format.  GATEWAY is same option as above command - -          ip route 10.0.0.0 255.255.255.0 10.0.0.2 -          ip route 10.0.0.0 255.255.255.0 ppp0 -          ip route 10.0.0.0 255.255.255.0 null0 - -     These statements are equivalent to those in the previous example. - - -- Command: ip route NETWORK GATEWAY DISTANCE -     Installs the route with the specified distance. - -   Multiple nexthop static route - -     ip route 10.0.0.1/32 10.0.0.2 -     ip route 10.0.0.1/32 10.0.0.3 -     ip route 10.0.0.1/32 eth0 - -   If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0 is -reachable, then the last route is installed into the kernel. - -   If zebra has been compiled with multipath support, and both 10.0.0.2 -and 10.0.0.3 are reachable, zebra will install a multipath route via -both nexthops, if the platform supports this. - -     zebra> show ip route -     S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive -                           via 10.0.0.3 inactive -       *                   is directly connected, eth0 - -     ip route 10.0.0.0/8 10.0.0.2 -     ip route 10.0.0.0/8 10.0.0.3 -     ip route 10.0.0.0/8 null0 255 - -   This will install a multihop route via the specified next-hops if -they are reachable, as well as a high-metric blackhole route, which can -be useful to prevent traffic destined for a prefix to match -less-specific routes (eg default) should the specified gateways not be -reachable. Eg: - -     zebra> show ip route 10.0.0.0/8 -     Routing entry for 10.0.0.0/8 -       Known via "static", distance 1, metric 0 -         10.0.0.2 inactive -         10.0.0.3 inactive - -     Routing entry for 10.0.0.0/8 -       Known via "static", distance 255, metric 0 -         directly connected, Null0 - - -- Command: ipv6 route NETWORK GATEWAY - -- Command: ipv6 route NETWORK GATEWAY DISTANCE -     These behave similarly to their ipv4 counterparts. - - -- Command: table TABLENO -     Select the primary kernel routing table to be used.  This only -     works for kernels supporting multiple routing tables (like -     GNU/Linux 2.2.x and later).  After setting TABLENO with this -     command, static routes defined after this are added to the -     specified table. - - -File: quagga.info,  Node: zebra Terminal Mode Commands,  Prev: Static Route Commands,  Up: Zebra - -4.4 zebra Terminal Mode Commands -================================ - - -- Command: show ip route -     Display current routes which zebra holds in its database. - -          Router# show ip route -          Codes: K - kernel route, C - connected, S - static, R - RIP, -                 B - BGP * - FIB route. - -          K* 0.0.0.0/0              203.181.89.241 -          S  0.0.0.0/0              203.181.89.1 -          C* 127.0.0.0/8            lo -          C* 203.181.89.240/28      eth0 - - -- Command: show ipv6 route - - -- Command: show interface - - -- Command: show ipforward -     Display whether the host's IP forwarding function is enabled or -     not.  Almost any UNIX kernel can be configured with IP forwarding -     disabled.  If so, the box can't work as a router. - - -- Command: show ipv6forward -     Display whether the host's IP v6 forwarding is enabled or not. - - -File: quagga.info,  Node: RIP,  Next: RIPng,  Prev: Zebra,  Up: Top - -5 RIP -***** - -RIP - Routing Information Protocol is widely deployed interior gateway -protocol.  RIP was developed in the 1970s at Xerox Labs as part of the -XNS routing protocol.  RIP is a "distance-vector" protocol and is based -on the "Bellman-Ford" algorithms.  As a distance-vector protocol, RIP -router send updates to its neighbors periodically, thus allowing the -convergence to a known topology.  In each update, the distance to any -given network will be broadcasted to its neighboring router. - -   `ripd' supports RIP version 2 as described in RFC2453 and RIP -version 1 as described in RFC1058. - -* Menu: - -* Starting and Stopping ripd:: -* RIP Configuration:: -* RIP Version Control:: -* How to Announce RIP route:: -* Filtering RIP Routes:: -* RIP Metric Manipulation:: -* RIP distance:: -* RIP route-map:: -* RIP Authentication:: -* RIP Timers:: -* Show RIP Information:: -* RIP Debug Commands:: - - -File: quagga.info,  Node: Starting and Stopping ripd,  Next: RIP Configuration,  Up: RIP - -5.1 Starting and Stopping ripd -============================== - -The default configuration file name of `ripd''s is `ripd.conf'.  When -invocation `ripd' searches directory /etc/quagga.  If `ripd.conf' is -not there next search current directory. - -   RIP uses UDP port 520 to send and receive RIP packets.  So the user -must have the capability to bind the port, generally this means that -the user must have superuser privileges.  RIP protocol requires -interface information maintained by `zebra' daemon.  So running `zebra' -is mandatory to run `ripd'.  Thus minimum sequence for running RIP is -like below: - -     # zebra -d -     # ripd -d - -   Please note that `zebra' must be invoked before `ripd'. - -   To stop `ripd'.  Please use `kill `cat /var/run/ripd.pid`'.  Certain -signals have special meaningss to `ripd'. - -`SIGHUP' -     Reload configuration file `ripd.conf'.  All configurations are -     reseted.  All routes learned so far are cleared and removed from -     routing table. - -`SIGUSR1' -     Rotate `ripd' logfile. - -`SIGINT' -`SIGTERM' -     `ripd' sweeps all installed RIP routes then terminates properly. - -   `ripd' invocation options.  Common options that can be specified -(*note Common Invocation Options::). - -`-r' -`--retain' -     When the program terminates, retain routes added by `ripd'. - -* Menu: - -* RIP netmask:: - - -File: quagga.info,  Node: RIP netmask,  Up: Starting and Stopping ripd - -5.1.1 RIP netmask ------------------ - -The netmask features of `ripd' support both version 1 and version 2 of -RIP.  Version 1 of RIP originally contained no netmask information.  In -RIP version 1, network classes were originally used to determine the -size of the netmask.  Class A networks use 8 bits of mask, Class B -networks use 16 bits of masks, while Class C networks use 24 bits of -mask.  Today, the most widely used method of a network mask is assigned -to the packet on the basis of the interface that received the packet. -Version 2 of RIP supports a variable length subnet mask (VLSM).  By -extending the subnet mask, the mask can be divided and reused.  Each -subnet can be used for different purposes such as large to middle size -LANs and WAN links.  Quagga `ripd' does not support the non-sequential -netmasks that are included in RIP Version 2. - -   In a case of similar information with the same prefix and metric, the -old information will be suppressed.  Ripd does not currently support -equal cost multipath routing. - - -File: quagga.info,  Node: RIP Configuration,  Next: RIP Version Control,  Prev: Starting and Stopping ripd,  Up: RIP - -5.2 RIP Configuration -===================== - - -- Command: router rip -     The `router rip' command is necessary to enable RIP.  To disable -     RIP, use the `no router rip' command.  RIP must be enabled before -     carrying out any of the RIP commands. - - -- Command: no router rip -     Disable RIP. - - -- RIP Command: network NETWORK - -- RIP Command: no network NETWORK -     Set the RIP enable interface by NETWORK.  The interfaces which -     have addresses matching with NETWORK are enabled. - -     This group of commands either enables or disables RIP interfaces -     between certain numbers of a specified network address.  For -     example, if the network for 10.0.0.0/24 is RIP enabled, this would -     result in all the addresses from 10.0.0.0 to 10.0.0.255 being -     enabled for RIP.  The `no network' command will disable RIP for -     the specified network. - - -- RIP Command: network IFNAME - -- RIP Command: no network IFNAME -     Set a RIP enabled interface by IFNAME.  Both the sending and -     receiving of RIP packets will be enabled on the port specified in -     the `network ifname' command.  The `no network ifname' command -     will disable RIP on the specified interface. - - -- RIP Command: neighbor A.B.C.D - -- RIP Command: no neighbor A.B.C.D -     Specify RIP neighbor.  When a neighbor doesn't understand -     multicast, this command is used to specify neighbors.  In some -     cases, not all routers will be able to understand multicasting, -     where packets are sent to a network or a group of addresses.  In a -     situation where a neighbor cannot process multicast packets, it is -     necessary to establish a direct link between routers.  The -     neighbor command allows the network administrator to specify a -     router as a RIP neighbor.  The `no neighbor a.b.c.d' command will -     disable the RIP neighbor. - -   Below is very simple RIP configuration.  Interface `eth0' and -interface which address match to `10.0.0.0/8' are RIP enabled. - -     ! -     router rip -      network 10.0.0.0/8 -      network eth0 -     ! - -   Passive interface - - -- RIP command: passive-interface (IFNAME|default) - -- RIP command: no passive-interface IFNAME -     This command sets the specified interface to passive mode.  On -     passive mode interface, all receiving packets are processed as -     normal and ripd does not send either multicast or unicast RIP -     packets except to RIP neighbors specified with `neighbor' command. -     The interface may be specified as DEFAULT to make ripd default to -     passive on all interfaces. - -     The default is to be passive on all interfaces. - -   RIP split-horizon - - -- Interface command: ip split-horizon - -- Interface command: no ip split-horizon -     Control split-horizon on the interface.  Default is `ip -     split-horizon'.  If you don't perform split-horizon on the -     interface, please specify `no ip split-horizon'. - - -File: quagga.info,  Node: RIP Version Control,  Next: How to Announce RIP route,  Prev: RIP Configuration,  Up: RIP - -5.3 RIP Version Control -======================= - -RIP can be configured to send either Version 1 or Version 2 packets. -The default is to send RIPv2 while accepting both RIPv1 and RIPv2 (and -replying with packets of the appropriate version for REQUESTS / -triggered updates). The version to receive and send can be specified -globally, and further overriden on a per-interface basis if needs be -for send and receive seperately (see below). - -   It is important to note that RIPv1 can not be authenticated. Further, -if RIPv1 is enabled then RIP will reply to REQUEST packets, sending the -state of its RIP routing table to any remote routers that ask on -demand. For a more detailed discussion on the security implications of -RIPv1 see *Note RIP Authentication::. - - -- RIP Command: version VERSION -     Set RIP version to accept for reads and send.  VERSION can be -     either `1" or `2". - -     Disabling RIPv1 by specifying version 2 is STRONGLY encouraged, -     *Note RIP Authentication::. This may become the default in a future -     release. - -     Default: Send Version 2, and accept either version. - - -- RIP Command: no version -     Reset the global version setting back to the default. - - -- Interface command: ip rip send version VERSION -     VERSION can be `1', `2' or `1 2'. - -     This interface command overrides the global rip version setting, -     and selects which version of RIP to send packets with, for this -     interface specifically. Choice of RIP Version 1, RIP Version 2, or -     both versions.  In the latter case, where `1 2' is specified, -     packets will be both broadcast and multicast. - -     Default: Send packets according to the global version (version 2) - - -- Interface command: ip rip receive version VERSION -     VERSION can be `1', `2' or `1 2'. - -     This interface command overrides the global rip version setting, -     and selects which versions of RIP packets will be accepted on this -     interface. Choice of RIP Version 1, RIP Version 2, or both. - -     Default: Accept packets according to the global setting (both 1 -     and 2). - - -File: quagga.info,  Node: How to Announce RIP route,  Next: Filtering RIP Routes,  Prev: RIP Version Control,  Up: RIP - -5.4 How to Announce RIP route -============================= - - -- RIP command: redistribute kernel - -- RIP command: redistribute kernel metric <0-16> - -- RIP command: redistribute kernel route-map ROUTE-MAP - -- RIP command: no redistribute kernel -     `redistribute kernel' redistributes routing information from -     kernel route entries into the RIP tables. `no redistribute kernel' -     disables the routes. - - -- RIP command: redistribute static - -- RIP command: redistribute static metric <0-16> - -- RIP command: redistribute static route-map ROUTE-MAP - -- RIP command: no redistribute static -     `redistribute static' redistributes routing information from -     static route entries into the RIP tables. `no redistribute static' -     disables the routes. - - -- RIP command: redistribute connected - -- RIP command: redistribute connected metric <0-16> - -- RIP command: redistribute connected route-map ROUTE-MAP - -- RIP command: no redistribute connected -     Redistribute connected routes into the RIP tables.  `no -     redistribute connected' disables the connected routes in the RIP -     tables.  This command redistribute connected of the interface -     which RIP disabled.  The connected route on RIP enabled interface -     is announced by default. - - -- RIP command: redistribute ospf - -- RIP command: redistribute ospf metric <0-16> - -- RIP command: redistribute ospf route-map ROUTE-MAP - -- RIP command: no redistribute ospf -     `redistribute ospf' redistributes routing information from ospf -     route entries into the RIP tables. `no redistribute ospf' disables -     the routes. - - -- RIP command: redistribute bgp - -- RIP command: redistribute bgp metric <0-16> - -- RIP command: redistribute bgp route-map ROUTE-MAP - -- RIP command: no redistribute bgp -     `redistribute bgp' redistributes routing information from bgp -     route entries into the RIP tables. `no redistribute bgp' disables -     the routes. - -   If you want to specify RIP only static routes: - - -- RIP command: default-information originate - - -- RIP command: route A.B.C.D/M - -- RIP command: no route A.B.C.D/M -     This command is specific to Quagga.  The `route' command makes a -     static route only inside RIP. This command should be used only by -     advanced users who are particularly knowledgeable about the RIP -     protocol.  In most cases, we recommend creating a static route in -     Quagga and redistributing it in RIP using `redistribute static'. - - -File: quagga.info,  Node: Filtering RIP Routes,  Next: RIP Metric Manipulation,  Prev: How to Announce RIP route,  Up: RIP - -5.5 Filtering RIP Routes -======================== - -RIP routes can be filtered by a distribute-list. - - -- Command: distribute-list ACCESS_LIST DIRECT IFNAME -     You can apply access lists to the interface with a -     `distribute-list' command.  ACCESS_LIST is the access list name. -     DIRECT is `in' or `out'.  If DIRECT is `in' the access list is -     applied to input packets. - -     The `distribute-list' command can be used to filter the RIP path. -     `distribute-list' can apply access-lists to a chosen interface. -     First, one should specify the access-list.  Next, the name of the -     access-list is used in the distribute-list command.  For example, -     in the following configuration `eth0' will permit only the paths -     that match the route 10.0.0.0/8 - -          ! -          router rip -           distribute-list private in eth0 -          ! -          access-list private permit 10 10.0.0.0/8 -          access-list private deny any -          ! - -   `distribute-list' can be applied to both incoming and outgoing data. - - -- Command: distribute-list prefix PREFIX_LIST (in|out) IFNAME -     You can apply prefix lists to the interface with a -     `distribute-list' command.  PREFIX_LIST is the prefix list name. -     Next is the direction of `in' or `out'.  If DIRECT is `in' the -     access list is applied to input packets. - - -File: quagga.info,  Node: RIP Metric Manipulation,  Next: RIP distance,  Prev: Filtering RIP Routes,  Up: RIP - -5.6 RIP Metric Manipulation -=========================== - -RIP metric is a value for distance for the network.  Usually `ripd' -increment the metric when the network information is received. -Redistributed routes' metric is set to 1. - - -- RIP command: default-metric <1-16> - -- RIP command: no default-metric <1-16> -     This command modifies the default metric value for redistributed -     routes.  The default value is 1.  This command does not affect -     connected route even if it is redistributed by `redistribute -     connected'.  To modify connected route's metric value, please use -     `redistribute connected metric' or `route-map'.  `offset-list' also -     affects connected routes. - - -- RIP command: offset-list ACCESS-LIST (in|out) - -- RIP command: offset-list ACCESS-LIST (in|out) IFNAME - - -File: quagga.info,  Node: RIP distance,  Next: RIP route-map,  Prev: RIP Metric Manipulation,  Up: RIP - -5.7 RIP distance -================ - -Distance value is used in zebra daemon.  Default RIP distance is 120. - - -- RIP command: distance <1-255> - -- RIP command: no distance <1-255> -     Set default RIP distance to specified value. - - -- RIP command: distance <1-255> A.B.C.D/M - -- RIP command: no distance <1-255> A.B.C.D/M -     Set default RIP distance to specified value when the route's -     source IP address matches the specified prefix. - - -- RIP command: distance <1-255> A.B.C.D/M ACCESS-LIST - -- RIP command: no distance <1-255> A.B.C.D/M ACCESS-LIST -     Set default RIP distance to specified value when the route's -     source IP address matches the specified prefix and the specified -     access-list. - - -File: quagga.info,  Node: RIP route-map,  Next: RIP Authentication,  Prev: RIP distance,  Up: RIP - -5.8 RIP route-map -================= - -Usage of `ripd''s route-map support. - -   Optional argument route-map MAP_NAME can be added to each -`redistribute' statement. - -     redistribute static [route-map MAP_NAME] -     redistribute connected [route-map MAP_NAME] -     ..... - -   Cisco applies route-map _before_ routes will exported to rip route -table.  In current Quagga's test implementation, `ripd' applies -route-map after routes are listed in the route table and before routes -will be announced to an interface (something like output filter). I -think it is not so clear, but it is draft and it may be changed at -future. - -   Route-map statement (*note Route Map::) is needed to use route-map -functionality. - - -- Route Map: match interface WORD -     This command match to incoming interface.  Notation of this match -     is different from Cisco. Cisco uses a list of interfaces - NAME1 -     NAME2 ... NAMEN.  Ripd allows only one name (maybe will change in -     the future).  Next - Cisco means interface which includes next-hop -     of routes (it is somewhat similar to "ip next-hop" statement). -     Ripd means interface where this route will be sent. This -     difference is because "next-hop" of same routes which sends to -     different interfaces must be different. Maybe it'd be better to -     made new matches - say "match interface-out NAME" or something -     like that. - - -- Route Map: match ip address WORD - -- Route Map: match ip address prefix-list WORD -     Match if route destination is permitted by access-list. - - -- Route Map: match ip next-hop A.B.C.D -     Cisco uses here <access-list>, `ripd' IPv4 address. Match if route -     has this next-hop (meaning next-hop listed in the rip route table -     - "show ip rip") - - -- Route Map: match metric <0-4294967295> -     This command match to the metric value of RIP updates.  For other -     protocol compatibility metric range is shown as <0-4294967295>. -     But for RIP protocol only the value range <0-16> make sense. - - -- Route Map: set ip next-hop A.B.C.D -     This command set next hop value in RIPv2 protocol.  This command -     does not affect RIPv1 because there is no next hop field in the -     packet. - - -- Route Map: set metric <0-4294967295> -     Set a metric for matched route when sending announcement.  The -     metric value range is very large for compatibility with other -     protocols.  For RIP, valid metric values are from 1 to 16. - - -File: quagga.info,  Node: RIP Authentication,  Next: RIP Timers,  Prev: RIP route-map,  Up: RIP - -5.9 RIP Authentication -====================== - -RIPv2 allows packets to be authenticated via either an insecure plain -text password, included with the packet, or via a more secure MD5 based -HMAC (keyed-Hashing for Message AuthentiCation), RIPv1 can not be -authenticated at all, thus when authentication is configured `ripd' -will discard routing updates received via RIPv1 packets. - -   However, unless RIPv1 reception is disabled entirely, *Note RIP -Version Control::, RIPv1 REQUEST packets which are received, which -query the router for routing information, will still be honoured by -`ripd', and `ripd' WILL reply to such packets. This allows `ripd' to -honour such REQUESTs (which sometimes is used by old equipment and very -simple devices to bootstrap their default route), while still providing -security for route updates which are received. - -   In short: Enabling authentication prevents routes being updated by -unauthenticated remote routers, but still can allow routes (I.e. the -entire RIP routing table) to be queried remotely, potentially by anyone -on the internet, via RIPv1. - -   To prevent such unauthenticated querying of routes disable RIPv1, -*Note RIP Version Control::. - - -- Interface command: ip rip authentication mode md5 - -- Interface command: no ip rip authentication mode md5 -     Set the interface with RIPv2 MD5 authentication. - - -- Interface command: ip rip authentication mode text - -- Interface command: no ip rip authentication mode text -     Set the interface with RIPv2 simple password authentication. - - -- Interface command: ip rip authentication string STRING - -- Interface command: no ip rip authentication string STRING -     RIP version 2 has simple text authentication.  This command sets -     authentication string.  The string must be shorter than 16 -     characters. - - -- Interface command: ip rip authentication key-chain KEY-CHAIN - -- Interface command: no ip rip authentication key-chain KEY-CHAIN -     Specifiy Keyed MD5 chain. - -     ! -     key chain test -      key 1 -       key-string test -     ! -     interface eth1 -      ip rip authentication mode md5 -      ip rip authentication key-chain test -     ! - - -File: quagga.info,  Node: RIP Timers,  Next: Show RIP Information,  Prev: RIP Authentication,  Up: RIP - -5.10 RIP Timers -=============== - - -- RIP command: timers basic UPDATE TIMEOUT GARBAGE -     RIP protocol has several timers.  User can configure those timers' -     values by `timers basic' command. - -     The default settings for the timers are as follows: - -        * The update timer is 30 seconds. Every update timer seconds, -          the RIP process is awakened to send an unsolicited Response -          message containing the complete routing table to all -          neighboring RIP routers. - -        * The timeout timer is 180 seconds. Upon expiration of the -          timeout, the route is no longer valid; however, it is -          retained in the routing table for a short time so that -          neighbors can be notified that the route has been dropped. - -        * The garbage collect timer is 120 seconds.  Upon expiration of -          the garbage-collection timer, the route is finally removed -          from the routing table. - - -     The `timers basic' command allows the the default values of the -     timers listed above to be changed. - - -- RIP command: no timers basic -     The `no timers basic' command will reset the timers to the default -     settings listed above. - - -File: quagga.info,  Node: Show RIP Information,  Next: RIP Debug Commands,  Prev: RIP Timers,  Up: RIP - -5.11 Show RIP Information -========================= - -To display RIP routes. - - -- Command: show ip rip -     Show RIP routes. - -   The command displays all RIP routes. For routes that are received -through RIP, this command will display the time the packet was sent and -the tag information.  This command will also display this information -for routes redistributed into RIP. - - -- Command: show ip protocols -     The command displays current RIP status.  It includes RIP timer, -     filtering, version, RIP enabled interface and RIP peer inforation. - -     ripd> show ip protocols -     Routing Protocol is "rip" -       Sending updates every 30 seconds with +/-50%, next due in 35 seconds -       Timeout after 180 seconds, garbage collect after 120 seconds -       Outgoing update filter list for all interface is not set -       Incoming update filter list for all interface is not set -       Default redistribution metric is 1 -       Redistributing: kernel connected -       Default version control: send version 2, receive version 2 -         Interface        Send  Recv -       Routing for Networks: -         eth0 -         eth1 -         1.1.1.1 -         203.181.89.241 -       Routing Information Sources: -         Gateway          BadPackets BadRoutes  Distance Last Update - - -File: quagga.info,  Node: RIP Debug Commands,  Prev: Show RIP Information,  Up: RIP - -5.12 RIP Debug Commands -======================= - -Debug for RIP protocol. - - -- Command: debug rip events -     Debug rip events. - -   `debug rip' will show RIP events.  Sending and receiving packets, -timers, and changes in interfaces are events shown with `ripd'. - - -- Command: debug rip packet -     Debug rip packet. - -   `debug rip packet' will display detailed information about the RIP -packets.  The origin and port number of the packet as well as a packet -dump is shown. - - -- Command: debug rip zebra -     Debug rip between zebra communication. - -   This command will show the communication between `ripd' and `zebra'. -The main information will include addition and deletion of paths to -the kernel and the sending and receiving of interface information. - - -- Command: show debugging rip -     Display `ripd''s debugging option. - -   `show debugging rip' will show all information currently set for ripd -debug. - - -File: quagga.info,  Node: RIPng,  Next: OSPFv2,  Prev: RIP,  Up: Top - -6 RIPng -******* - -`ripngd' supports the RIPng protocol as described in RFC2080.  It's an -IPv6 reincarnation of the RIP protocol. - -* Menu: - -* Invoking ripngd:: -* ripngd Configuration:: -* ripngd Terminal Mode Commands:: -* ripngd Filtering Commands:: - - -File: quagga.info,  Node: Invoking ripngd,  Next: ripngd Configuration,  Up: RIPng - -6.1 Invoking ripngd -=================== - -There are no `ripngd' specific invocation options.  Common options can -be specified (*note Common Invocation Options::). - - -File: quagga.info,  Node: ripngd Configuration,  Next: ripngd Terminal Mode Commands,  Prev: Invoking ripngd,  Up: RIPng - -6.2 ripngd Configuration -======================== - -Currently ripngd supports the following commands: - - -- Command: router ripng -     Enable RIPng. - - -- RIPng Command: flush_timer TIME -     Set flush timer. - - -- RIPng Command: network NETWORK -     Set RIPng enabled interface by NETWORK - - -- RIPng Command: network IFNAME -     Set RIPng enabled interface by IFNAME - - -- RIPng Command: route NETWORK -     Set RIPng static routing announcement of NETWORK. - - -- Command: router zebra -     This command is the default and does not appear in the -     configuration.  With this statement, RIPng routes go to the -     `zebra' daemon. - - -File: quagga.info,  Node: ripngd Terminal Mode Commands,  Next: ripngd Filtering Commands,  Prev: ripngd Configuration,  Up: RIPng - -6.3 ripngd Terminal Mode Commands -================================= - - -- Command: show ip ripng - - -- Command: show debugging ripng - - -- Command: debug ripng events - - -- Command: debug ripng packet - - -- Command: debug ripng zebra - - -File: quagga.info,  Node: ripngd Filtering Commands,  Prev: ripngd Terminal Mode Commands,  Up: RIPng - -6.4 ripngd Filtering Commands -============================= - - -- Command: distribute-list ACCESS_LIST (in|out) IFNAME -     You can apply an access-list to the interface using the -     `distribute-list' command.  ACCESS_LIST is an access-list name. -     DIRECT is `in' or `out'.  If DIRECT is `in', the access-list is -     applied only to incoming packets. - -          distribute-list local-only out sit1 - - -File: quagga.info,  Node: OSPFv2,  Next: OSPFv3,  Prev: RIPng,  Up: Top - -7 OSPFv2 -******** - -OSPF (Open Shortest Path First) version 2 is a routing protocol which -is described in `RFC2328, OSPF Version 2'.  OSPF is an IGP (Interior -Gateway Protocol)..  Compared with RIP, OSPF can provide scalable -network support and faster convergence times.  OSPF is widely used in -large networks such as ISP (Internet Service Provider) backbone and -enterprise networks. - -* Menu: - -* Configuring ospfd:: -* OSPF router:: -* OSPF area:: -* OSPF interface:: -* Redistribute routes to OSPF:: -* Showing OSPF information:: -* Debugging OSPF:: -* OSPF Configuration Examples:: - - -File: quagga.info,  Node: Configuring ospfd,  Next: OSPF router,  Up: OSPFv2 - -7.1 Configuring ospfd -===================== - -There are no `ospfd' specific options.  Common options can be specified -(*note Common Invocation Options::) to `ospfd'.  `ospfd' needs to -acquire interface information from `zebra' in order to function. -Therefore `zebra' must be running before invoking `ospfd'. Also, if -`zebra' is restarted then `ospfd' must be too. - -   Like other daemons, `ospfd' configuration is done in OSPF specific -configuration file `ospfd.conf'. - - -File: quagga.info,  Node: OSPF router,  Next: OSPF area,  Prev: Configuring ospfd,  Up: OSPFv2 - -7.2 OSPF router -=============== - -To start OSPF process you have to specify the OSPF router.  As of this -writing, `ospfd' does not support multiple OSPF processes. - - -- Command: router ospf - -- Command: no router ospf -     Enable or disable the OSPF process.  `ospfd' does not yet support -     multiple OSPF processes.  So you can not specify an OSPF process -     number. - - -- OSPF Command: ospf router-id A.B.C.D - -- OSPF Command: no ospf router-id -     This sets the router-ID of the OSPF process. The router-ID may be -     an IP address of the router, but need not be - it can be any -     arbitrary 32bit number. However it MUST be unique within the -     entire OSPF domain to the OSPF speaker - bad things will happen if -     multiple OSPF speakers are configured with the same router-ID! If -     one is not specified then `ospfd' will obtain a router-ID -     automatically from `zebra'. - - -- OSPF Command: ospf abr-type TYPE - -- OSPF Command: no ospf abr-type TYPE -     TYPE can be cisco|ibm|shortcut|standard. - -     More information regarding the behaviour controlled by this -     command can be found in `RFC 3509, Alternative Implementations of -     OSPF Area Border Routers', and -     `draft-ietf-ospf-shortcut-abr-02.txt'. - -     Quote: "Though the definition of the ABR (Area Border Router) in -     the OSPF specification does not require a router with multiple -     attached areas to have a backbone connection, it is actually -     necessary to provide successful routing to the inter-area and -     external destinations. If this requirement is not met, all traffic -     destined for the areas not connected to such an ABR or out of the -     OSPF domain, is dropped.  This document describes alternative ABR -     behaviors implemented in Cisco and IBM routers." - -     The default ABR type is 'Cisco', allowing an ABR to consider -     summaries from non-backbone areas if, and only if, it has lost its -     link(s) to the backbone area. - - -- OSPF Command: ospf rfc1583compatibility - -- OSPF Command: no ospf rfc1583compatibility -     This `RFC2328', the sucessor to `RFC1583', suggests according to -     section G.2 (changes) in section 16.4 a change to the path -     preference algorithm that prevents possible routing loops that were -     possible in the old version of OSPFv2. More specifically it demands -     that inter-area paths and intra-area path are now of equal -     preference but still both preferred to external paths. - -     This command should NOT be set normally. - - -- OSPF Command: passive interface INTERFACE - -- OSPF Command: no passive interface INTERFACE -     Do not speak OSPF interface on the given interface, but do -     advertise the interface as a stub link in the router-LSA (Link -     State Advertisement) for this router. This allows one to advertise -     addresses on such connected interfaces without having to originate -     AS-External/Type-5 LSAs (which have global flooding scope) - as -     would occur if connected addresses were redistributed into OSPF, -     *Note Redistribute routes to OSPF::. - - - -- OSPF Command: timers throttle spf DELAY INITIAL-HOLDTIME -MAX-HOLDTIME - -- OSPF Command: no timers throttle spf -     This command sets the initial DELAY, the INITIAL-HOLDTIME and the -     MAXIMUM-HOLDTIME between when SPF is calculated and the event -     which triggered the calculation. The times are specified in -     milliseconds and must be in the range of 0 to 600000 milliseconds. - -     The DELAY specifies the minimum amount of time to delay SPF -     calculation (hence it affects how long SPF calculation is delayed -     after an event which occurs outside of the holdtime of any -     previous SPF calculation, and also serves as a minimum holdtime). - -     Consecutive SPF calculations will always be seperated by at least -     'hold-time' milliseconds. The hold-time is adaptive and initially -     is set to the INITIAL-HOLDTIME configured with the above command. -     Events which occur within the holdtime of the previous SPF -     calculation will cause the holdtime to be increased by -     INITIAL-HOLDTIME, bounded by the MAXIMUM-HOLDTIME configured with -     this command. If the adaptive hold-time elapses without any -     SPF-triggering event occuring then the current holdtime is reset -     to the INITIAL-HOLDTIME. The current holdtime can be viewed with -     *Note show ip ospf::, where it is expressed as a multiplier of the -     INITIAL-HOLDTIME. - -          router ospf -           timers throttle spf 200 400 10000 - -     In this example, the DELAY is set to 200ms, the INITIAL HOLDTIME -     is set to 400ms and the MAXIMUM HOLDTIME to 10s. Hence there will -     always be at least 200ms between an event which requires SPF -     calculation and the actual SPF calculation. Further consecutive SPF -     calculations will always be seperated by between 400ms to 10s, the -     hold-time increasing by 400ms each time an SPF-triggering event -     occurs within the hold-time of the previous SPF calculation. - -     This command supercedes the `timers spf' command in previous Quagga -     releases. - - -- OSPF Command: max-metric router-lsa [on-startup|on-shutdown] -<5-86400> - -- OSPF Command: max-metric router-lsa administrative - -- OSPF Command: no max-metric router-lsa -[on-startup|on-shutdown|administrative] -     This enables `RFC3137, OSPF Stub Router Advertisement' support, -     where the OSPF process describes its transit links in its -     router-LSA as having infinite distance so that other routers will -     avoid calculating transit paths through the router while still -     being able to reach networks through the router. - -     This support may be enabled administratively (and indefinitely) or -     conditionally. Conditional enabling of max-metric router-lsas can -     be for a period of seconds after startup and/or for a period of -     seconds prior to shutdown. - -     Enabling this for a period after startup allows OSPF to converge -     fully first without affecting any existing routes used by other -     routers, while still allowing any connected stub links and/or -     redistributed routes to be reachable. Enabling this for a period -     of time in advance of shutdown allows the router to gracefully -     excuse itself from the OSPF domain. - -     Enabling this feature administratively allows for administrative -     intervention for whatever reason, for an indefinite period of time. -     Note that if the configuration is written to file, this -     administrative form of the stub-router command will also be -     written to file. If `ospfd' is restarted later, the command will -     then take effect until manually deconfigured. - -     Configured state of this feature as well as current status, such -     as the number of second remaining till on-startup or on-shutdown -     ends, can be viewed with the *Note show ip ospf:: command. - - -- OSPF Command: auto-cost reference-bandwidth <1-4294967> - -- OSPF Command: no auto-cost reference-bandwidth -     This sets the reference bandwidth for cost calculations, where this -     bandwidth is considered equivalent to an OSPF cost of 1, specified -     in Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth -     100Mbit/s or higher will have a cost of 1. Cost of lower bandwidth -     links will be scaled with reference to this cost). - -     This configuration setting MUST be consistent across all routers -     within the OSPF domain. - - -- OSPF Command: network A.B.C.D/M area A.B.C.D - -- OSPF Command: network A.B.C.D/M area <0-4294967295> - -- OSPF Command: no network A.B.C.D/M area A.B.C.D - -- OSPF Command: no network A.B.C.D/M area <0-4294967295> -     This command specifies the OSPF enabled interface(s).  If the -     interface has an address from range 192.168.1.0/24 then the -     command below enables ospf on this interface so router can provide -     network information to the other ospf routers via this interface. - -          router ospf -           network 192.168.1.0/24 area 0.0.0.0 - -     Prefix length in interface must be equal or bigger (ie. smaller -     network) than prefix length in network statement. For example -     statement above doesn't enable ospf on interface with address -     192.168.1.1/23, but it does on interface with address -     192.168.1.129/25. - - -File: quagga.info,  Node: OSPF area,  Next: OSPF interface,  Prev: OSPF router,  Up: OSPFv2 - -7.3 OSPF area -============= - - -- OSPF Command: area A.B.C.D range A.B.C.D/M - -- OSPF Command: area <0-4294967295> range A.B.C.D/M - -- OSPF Command: no area A.B.C.D range A.B.C.D/M - -- OSPF Command: no area <0-4294967295> range A.B.C.D/M -     Summarize intra area paths from specified area into one Type-3 -     summary-LSA announced to other areas. This command can be used -     only in ABR and ONLY router-LSAs (Type-1) and network-LSAs -     (Type-2) (ie. LSAs with scope area) can be summarized. Type-5 -     AS-external-LSAs can't be summarized - their scope is AS. -     Summarizing Type-7 AS-external-LSAs isn't supported yet by Quagga. - -          router ospf -           network 192.168.1.0/24 area 0.0.0.0 -           network 10.0.0.0/8 area 0.0.0.10 -           area 0.0.0.10 range 10.0.0.0/8 - -     With configuration above one Type-3 Summary-LSA with routing info -     10.0.0.0/8 is announced into backbone area if area 0.0.0.10 -     contains at least one intra-area network (ie. described with -     router or network LSA) from this range. - - -- OSPF Command: area A.B.C.D range IPV4_PREFIX not-advertise - -- OSPF Command: no area A.B.C.D range IPV4_PREFIX not-advertise -     Instead of summarizing intra area paths filter them - ie. intra -     area paths from this range are not advertised into other areas. -     This command makes sense in ABR only. - - -- OSPF Command: area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX - -- OSPF Command: no area A.B.C.D range IPV4_PREFIX substitute -IPV4_PREFIX -     Substitute summarized prefix with another prefix. - -          router ospf -           network 192.168.1.0/24 area 0.0.0.0 -           network 10.0.0.0/8 area 0.0.0.10 -           area 0.0.0.10 range 10.0.0.0/8 substitute 11.0.0.0/8 - -     One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced -     into backbone area if area 0.0.0.10 contains at least one -     intra-area network (ie. described with router-LSA or network-LSA) -     from range 10.0.0.0/8.  This command makes sense in ABR only. - - -- OSPF Command: area A.B.C.D virtual-link A.B.C.D - -- OSPF Command: area <0-4294967295> virtual-link A.B.C.D - -- OSPF Command: no area A.B.C.D virtual-link A.B.C.D - -- OSPF Command: no area <0-4294967295> virtual-link A.B.C.D - - -- OSPF Command: area A.B.C.D shortcut - -- OSPF Command: area <0-4294967295> shortcut - -- OSPF Command: no area A.B.C.D shortcut - -- OSPF Command: no area <0-4294967295> shortcut -     Configure th area as Shortcut capable. See `RFC3509'. This requires -     that the 'abr-type' be set to 'shortcut'. - - -- OSPF Command: area A.B.C.D stub - -- OSPF Command: area <0-4294967295> stub - -- OSPF Command: no area A.B.C.D stub - -- OSPF Command: no area <0-4294967295> stub -     Configure the area to be a stub area. That is, an area where no -     router originates routes external to OSPF and hence an area where -     all external routes are via the ABR(s). Hence, ABRs for such an -     area do not need to pass AS-External LSAs (type-5s) or -     ASBR-Summary LSAs (type-4) into the area. They need only pass -     Network-Summary (type-3) LSAs into such an area, just a default -     summary. - - -- OSPF Command: area A.B.C.D stub no-summary - -- OSPF Command: area <0-4294967295> stub no-summary - -- OSPF Command: no area A.B.C.D stub no-summary - -- OSPF Command: no area <0-4294967295> stub no-summary -     Prevents an `ospfd' ABR from injecting inter-area summaries into -     the specified stub area. - - -- OSPF Command: area A.B.C.D default-cost <0-16777215> - -- OSPF Command: no area A.B.C.D default-cost <0-16777215> -     Set the cost of default-summary LSAs announced to stubby areas. - - -- OSPF Command: area A.B.C.D export-list NAME - -- OSPF Command: area <0-4294967295> export-list NAME - -- OSPF Command: no area A.B.C.D export-list NAME - -- OSPF Command: no area <0-4294967295> export-list NAME -     Filter Type-3 summary-LSAs announced to other areas originated -     from intra- area paths from specified area. - -          router ospf -           network 192.168.1.0/24 area 0.0.0.0 -           network 10.0.0.0/8 area 0.0.0.10 -           area 0.0.0.10 export-list foo -          ! -          access-list foo permit 10.10.0.0/16 -          access-list foo deny any - -     With example above any intra-area paths from area 0.0.0.10 and -     from range 10.10.0.0/16 (for example 10.10.1.0/24 and -     10.10.2.128/30) are announced into other areas as Type-3 -     summary-LSA's, but any others (for example 10.11.0.0/16 or -     10.128.30.16/30) aren't. - -     This command is only relevant if the router is an ABR for the -     specified area. - - -- OSPF Command: area A.B.C.D import-list NAME - -- OSPF Command: area <0-4294967295> import-list NAME - -- OSPF Command: no area A.B.C.D import-list NAME - -- OSPF Command: no area <0-4294967295> import-list NAME -     Same as export-list, but it applies to paths announced into -     specified area as Type-3 summary-LSAs. - - -- OSPF Command: area A.B.C.D filter-list prefix NAME in - -- OSPF Command: area A.B.C.D filter-list prefix NAME out - -- OSPF Command: area <0-4294967295> filter-list prefix NAME in - -- OSPF Command: area <0-4294967295> filter-list prefix NAME out - -- OSPF Command: no area A.B.C.D filter-list prefix NAME in - -- OSPF Command: no area A.B.C.D filter-list prefix NAME out - -- OSPF Command: no area <0-4294967295> filter-list prefix NAME in - -- OSPF Command: no area <0-4294967295> filter-list prefix NAME out -     Filtering Type-3 summary-LSAs to/from area using prefix lists. -     This command makes sense in ABR only. - - -- OSPF Command: area A.B.C.D authentication - -- OSPF Command: area <0-4294967295> authentication - -- OSPF Command: no area A.B.C.D authentication - -- OSPF Command: no area <0-4294967295> authentication -     Specify that simple password authentication should be used for the -     given area. - - -- OSPF Command: area A.B.C.D authentication message-digest - -- OSPF Command: area <0-4294967295> authentication message-digest -     Specify that OSPF packets should be authenticated with MD5 HMACs -     for the given area. - - -File: quagga.info,  Node: OSPF interface,  Next: Redistribute routes to OSPF,  Prev: OSPF area,  Up: OSPFv2 - -7.4 OSPF interface -================== - - -- Interface Command: ip ospf authentication-key AUTH_KEY - -- Interface Command: no ip ospf authentication-key -     Set OSPF authentication key to a simple password.  After setting -     AUTH_KEY, all OSPF packets are authenticated. AUTH_KEY has length -     up to 8 chars. - - -- Interface Command: ip ospf message-digest-key KEYID md5 KEY - -- Interface Command: no ip ospf message-digest-key -     Set OSPF authentication key to a cryptographic password.  The -     cryptographic algorithm is MD5.  KEYID identifies secret key used -     to create the message digest.  KEY is the actual message digest -     key up to 16 chars. - -     Note that OSPF MD5 authentication requires that time never go -     backwards (correct time is NOT important, only that it never goes -     backwards), even across resets, if ospfd is to be able to promptly -     reestabish adjacencies with its neighbours after restarts/reboots. -     The host should have system time be set at boot from an external -     source (eg battery backed clock, NTP, etc.) or else the system -     clock should be periodically saved to non-volative storage and -     restored at boot if MD5 authentication is to be expected to work -     reliably. - - -- Interface Command: ip ospf cost <1-65535> - -- Interface Command: no ip ospf cost -     Set link cost for the specified interface.  The cost value is set -     to router-LSA's metric field and used for SPF calculation. - - -- Interface Command: ip ospf dead-interval <1-65535> - -- Interface Command: ip ospf dead-interval minimal hello-multiplier -<2-20> - -- Interface Command: no ip ospf dead-interval -     Set number of seconds for RouterDeadInterval timer value used for -     Wait Timer and Inactivity Timer.  This value must be the same for -     all routers attached to a common network.  The default value is 40 -     seconds. - -     If 'minimal' is specified instead, then the dead-interval is set -     to 1 second and one must specify a hello-multiplier. The -     hello-multiplier specifies how many Hellos to send per second, -     from 2 (every 500ms) to 20 (every 50ms). Thus one can have 1s -     convergence time for OSPF. If this form is specified, then the -     hello-interval advertised in Hello packets is set to 0 and the -     hello-interval on received Hello packets is not checked, thus the -     hello-multiplier need NOT be the same across multiple routers on a -     common link. - - -- Interface Command: ip ospf hello-interval <1-65535> - -- Interface Command: no ip ospf hello-interval -     Set number of seconds for HelloInterval timer value.  Setting this -     value, Hello packet will be sent every timer value seconds on the -     specified interface.  This value must be the same for all routers -     attached to a common network.  The default value is 10 seconds. - -     This command has no effect if *Note ip ospf dead-interval -     minimal:: is also specified for the interface. - - -- Interface Command: ip ospf network -(broadcast|non-broadcast|point-to-multipoint|point-to-point) - -- Interface Command: no ip ospf network -     Set explicitly network type for specifed interface. - - -- Interface Command: ip ospf priority <0-255> - -- Interface Command: no ip ospf priority -     Set RouterPriority integer value.  Setting higher value, router -     will be more eligible to become Designated Router.  Setting the -     value to 0, router is no longer eligible to Designated Router. -     The default value is 1. - - -- Interface Command: ip ospf retransmit-interval <1-65535> - -- Interface Command: no ip ospf retransmit interval -     Set number of seconds for RxmtInterval timer value.  This value is -     used when retransmitting Database Description and Link State -     Request packets.  The default value is 5 seconds. - - -- Interface Command: ip ospf transmit-delay - -- Interface Command: no ip ospf transmit-delay -     Set number of seconds for InfTransDelay value.  LSAs' age should be -     incremented by this value when transmitting.  The default value is -     1 seconds. - - -File: quagga.info,  Node: Redistribute routes to OSPF,  Next: Showing OSPF information,  Prev: OSPF interface,  Up: OSPFv2 - -7.5 Redistribute routes to OSPF -=============================== - - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) -ROUTE-MAP - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) -metric-type (1|2) - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) -metric-type (1|2) route-map WORD - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) metric -<0-16777214> - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) metric -<0-16777214> route-map WORD - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) -metric-type (1|2) metric <0-16777214> - -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) -metric-type (1|2) metric <0-16777214> route-map WORD - -- OSPF Command: no redistribute (kernel|connected|static|rip|bgp) -     Redistribute routes of the specified protocol or kind into OSPF, -     with the metric type and metric set if specified, filtering the -     routes using the given route-map if specified. - - -- OSPF Command: default-information originate - -- OSPF Command: default-information originate metric <0-16777214> - -- OSPF Command: default-information originate metric <0-16777214> -metric-type (1|2) - -- OSPF Command: default-information originate metric <0-16777214> -metric-type (1|2) route-map WORD - -- OSPF Command: default-information originate always - -- OSPF Command: default-information originate always metric -<0-16777214> - -- OSPF Command: default-information originate always metric -<0-16777214> metric-type (1|2) - -- OSPF Command: default-information originate always metric -<0-16777214> metric-type (1|2) route-map WORD - -- OSPF Command: no default-information originate -     Originate an AS-External (type-5) LSA describing a default route -     into all external-routing capable areas, of the specified metric -     and metric type. If the 'always' keyword is given then the default -     is always advertised, even when there is no default present in the -     routing table. - - -- OSPF Command: distribute-list NAME out -(kernel|connected|static|rip|ospf - -- OSPF Command: no distribute-list NAME out -(kernel|connected|static|rip|ospf - - -- OSPF Command: default-metric <0-16777214> - -- OSPF Command: no default-metric - - -- OSPF Command: distance <1-255> - -- OSPF Command: no distance <1-255> - - -- OSPF Command: distance ospf (intra-area|inter-area|external) -          <1-255> - -- OSPF Command: no distance ospf - - -- Command: router zebra - -- Command: no router zebra - - -File: quagga.info,  Node: Showing OSPF information,  Next: Debugging OSPF,  Prev: Redistribute routes to OSPF,  Up: OSPFv2 - -7.6 Showing OSPF information -============================ - - -- Command: show ip ospf -     Show information on a variety of general OSPF and area state and -     configuration information. - - -- Command: show ip ospf interface [INTERFACE] -     Show state and configuration of OSPF the specified interface, or -     all interfaces if no interface is given. - - -- Command: show ip ospf neighbor - -- Command: show ip ospf neighbor INTERFACE - -- Command: show ip ospf neighbor detail - -- Command: show ip ospf neighbor INTERFACE detail - - -- Command: show ip ospf database - - -- Command: show ip ospf database -(asbr-summary|external|network|router|summary) - -- Command: show ip ospf database -(asbr-summary|external|network|router|summary) LINK-STATE-ID - -- Command: show ip ospf database -(asbr-summary|external|network|router|summary) LINK-STATE-ID adv-router -ADV-ROUTER - -- Command: show ip ospf database -(asbr-summary|external|network|router|summary) adv-router ADV-ROUTER - -- Command: show ip ospf database -(asbr-summary|external|network|router|summary) LINK-STATE-ID -self-originate - -- Command: show ip ospf database -(asbr-summary|external|network|router|summary) self-originate - - -- Command: show ip ospf database max-age - - -- Command: show ip ospf database self-originate - - -- Command: show ip ospf route -     Show the OSPF routing table, as determined by the most recent SPF -     calculation. - - -File: quagga.info,  Node: Debugging OSPF,  Next: OSPF Configuration Examples,  Prev: Showing OSPF information,  Up: OSPFv2 - -7.7 Debugging OSPF -================== - - -- Command: debug ospf packet -(hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail] - -- Command: no debug ospf packet -(hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail] - - -- Command: debug ospf ism - -- Command: debug ospf ism (status|events|timers) - -- Command: no debug ospf ism - -- Command: no debug ospf ism (status|events|timers) - - -- Command: debug ospf nsm - -- Command: debug ospf nsm (status|events|timers) - -- Command: no debug ospf nsm - -- Command: no debug ospf nsm (status|events|timers) - - -- Command: debug ospf lsa - -- Command: debug ospf lsa (generate|flooding|refresh) - -- Command: no debug ospf lsa - -- Command: no debug ospf lsa (generate|flooding|refresh) - - -- Command: debug ospf zebra - -- Command: debug ospf zebra (interface|redistribute) - -- Command: no debug ospf zebra - -- Command: no debug ospf zebra (interface|redistribute) - - -- Command: show debugging ospf - - -File: quagga.info,  Node: OSPF Configuration Examples,  Prev: Debugging OSPF,  Up: OSPFv2 - -7.8 OSPF Configuration Examples -=============================== - -A simple example, with MD5 authentication enabled: - -     ! -     interface bge0 -      ip ospf authentication message-digest -      ip ospf message-digest-key 1 md5 ABCDEFGHIJK -     ! -     router ospf -      network 192.168.0.0/16 area 0.0.0.1 -      area 0.0.0.1 authentication message-digest - -   An ABR router, with MD5 authentication and performing summarisation -of networks between the areas: - -     ! -     password ABCDEF -     log file /var/log/quagga/ospfd.log -     service advanced-vty -     ! -     interface eth0 -      ip ospf authentication message-digest -      ip ospf message-digest-key 1 md5 ABCDEFGHIJK -     ! -     interface ppp0 -     ! -     interface br0 -      ip ospf authentication message-digest -      ip ospf message-digest-key 2 md5 XYZ12345 -     ! -     router ospf -      ospf router-id 192.168.0.1 -      redistribute connected -      passive interface ppp0 -      network 192.168.0.0/24 area 0.0.0.0 -      network 10.0.0.0/16 area 0.0.0.0 -      network 192.168.1.0/24 area 0.0.0.1 -      area 0.0.0.0 authentication message-digest -      area 0.0.0.0 range 10.0.0.0/16 -      area 0.0.0.0 range 192.168.0.0/24 -      area 0.0.0.1 authentication message-digest -      area 0.0.0.1 range 10.2.0.0/16 -     ! - - -File: quagga.info,  Node: OSPFv3,  Next: BGP,  Prev: OSPFv2,  Up: Top - -8 OSPFv3 -******** - -`ospf6d' is a daemon support OSPF version 3 for IPv6 network.  OSPF for -IPv6 is described in RFC2740. - -* Menu: - -* OSPF6 router:: -* OSPF6 area:: -* OSPF6 interface:: -* Redistribute routes to OSPF6:: -* Showing OSPF6 information:: -* OSPF6 Configuration Examples:: - - -File: quagga.info,  Node: OSPF6 router,  Next: OSPF6 area,  Up: OSPFv3 - -8.1 OSPF6 router -================ - - -- Command: router ospf6 - - -- OSPF6 Command: router-id A.B.C.D -     Set router's Router-ID. - - -- OSPF6 Command: interface IFNAME area AREA -     Bind interface to specified area, and start sending OSPF packets. -     AREA can be specified as 0. - - -File: quagga.info,  Node: OSPF6 area,  Next: OSPF6 interface,  Prev: OSPF6 router,  Up: OSPFv3 - -8.2 OSPF6 area -============== - -Area support for OSPFv3 is not yet implemented. - - -File: quagga.info,  Node: OSPF6 interface,  Next: Redistribute routes to OSPF6,  Prev: OSPF6 area,  Up: OSPFv3 - -8.3 OSPF6 interface -=================== - - -- Interface Command: ipv6 ospf6 cost COST -     Sets interface's output cost.  Default value is 1. - - -- Interface Command: ipv6 ospf6 hello-interval HELLOINTERVAL -     Sets interface's Hello Interval.  Default 40 - - -- Interface Command: ipv6 ospf6 dead-interval DEADINTERVAL -     Sets interface's Router Dead Interval.  Default value is 40. - - -- Interface Command: ipv6 ospf6 retransmit-interval -          RETRANSMITINTERVAL -     Sets interface's Rxmt Interval.  Default value is 5. - - -- Interface Command: ipv6 ospf6 priority PRIORITY -     Sets interface's Router Priority.  Default value is 1. - - -- Interface Command: ipv6 ospf6 transmit-delay TRANSMITDELAY -     Sets interface's Inf-Trans-Delay.  Default value is 1. - - -File: quagga.info,  Node: Redistribute routes to OSPF6,  Next: Showing OSPF6 information,  Prev: OSPF6 interface,  Up: OSPFv3 - -8.4 Redistribute routes to OSPF6 -================================ - - -- OSPF6 Command: redistribute static - -- OSPF6 Command: redistribute connected - -- OSPF6 Command: redistribute ripng - - -File: quagga.info,  Node: Showing OSPF6 information,  Next: OSPF6 Configuration Examples,  Prev: Redistribute routes to OSPF6,  Up: OSPFv3 - -8.5 Showing OSPF6 information -============================= - - -- Command: show ipv6 ospf6 [INSTANCE_ID] -     INSTANCE_ID is an optional OSPF instance ID. To see router ID and -     OSPF instance ID, simply type "show ipv6 ospf6 <cr>". - - -- Command: show ipv6 ospf6 database -     This command shows LSA database summary.  You can specify the type -     of LSA. - - -- Command: show ipv6 ospf6 interface -     To see OSPF interface configuration like costs. - - -- Command: show ipv6 ospf6 neighbor -     Shows state and chosen (Backup) DR of neighbor. - - -- Command: show ipv6 ospf6 request-list A.B.C.D -     Shows requestlist of neighbor. - - -- Command: show ipv6 route ospf6 -     This command shows internal routing table. - - -File: quagga.info,  Node: OSPF6 Configuration Examples,  Prev: Showing OSPF6 information,  Up: OSPFv3 - -8.6 OSPF6 Configuration Examples -================================ - -Example of ospf6d configured on one interface and area: - -     interface eth0 -      ipv6 ospf6 instance-id 0 -     ! -     router ospf6 -      router-id 212.17.55.53 -      area 0.0.0.0 range 2001:770:105:2::/64 -      interface eth0 area 0.0.0.0 -     ! - - -File: quagga.info,  Node: BGP,  Next: Configuring Quagga as a Route Server,  Prev: OSPFv3,  Up: Top - -9 BGP -***** - -BGP stands for a Border Gateway Protocol.  The lastest BGP version is -4.  It is referred as BGP-4.  BGP-4 is one of the Exterior Gateway -Protocols and de-fact standard of Inter Domain routing protocol.  BGP-4 -is described in `RFC1771, A Border Gateway Protocol 4 (BGP-4)'. - -   Many extensions have been added to `RFC1771'.  `RFC2858, -Multiprotocol Extensions for BGP-4' provides multiprotocol support to -BGP-4. - -* Menu: - -* Starting BGP:: -* BGP router:: -* BGP network:: -* BGP Peer:: -* BGP Peer Group:: -* BGP Address Family:: -* Autonomous System:: -* BGP Communities Attribute:: -* BGP Extended Communities Attribute:: -* Displaying BGP routes:: -* Capability Negotiation:: -* Route Reflector:: -* Route Server:: -* How to set up a 6-Bone connection:: -* Dump BGP packets and table:: -* BGP Configuration Examples:: - - -File: quagga.info,  Node: Starting BGP,  Next: BGP router,  Up: BGP - -9.1 Starting BGP -================ - -Default configuration file of `bgpd' is `bgpd.conf'.  `bgpd' searches -the current directory first then /etc/quagga/bgpd.conf.  All of bgpd's -command must be configured in `bgpd.conf'. - -   `bgpd' specific invocation options are described below.  Common -options may also be specified (*note Common Invocation Options::). - -`-p PORT' -`--bgp_port=PORT' -     Set the bgp protocol's port number. - -`-r' -`--retain' -     When program terminates, retain BGP routes added by zebra. - - -File: quagga.info,  Node: BGP router,  Next: BGP network,  Prev: Starting BGP,  Up: BGP - -9.2 BGP router -============== - -First of all you must configure BGP router with `router bgp' command. -To configure BGP router, you need AS number.  AS number is an -identification of autonomous system.  BGP protocol uses the AS number -for detecting whether the BGP connection is internal one or external -one. - - -- Command: router bgp ASN -     Enable a BGP protocol process with the specified ASN.  After this -     statement you can input any `BGP Commands'.  You can not create -     different BGP process under different ASN without specifying -     `multiple-instance' (*note Multiple instance::). - - -- Command: no router bgp ASN -     Destroy a BGP protocol process with the specified ASN. - - -- BGP: bgp router-id A.B.C.D -     This command specifies the router-ID.  If `bgpd' connects to -     `zebra' it gets interface and address information.  In that case -     default router ID value is selected as the largest IP Address of -     the interfaces.  When `router zebra' is not enabled `bgpd' can't -     get interface information so `router-id' is set to 0.0.0.0.  So -     please set router-id by hand. - -* Menu: - -* BGP distance:: -* BGP decision process:: - - -File: quagga.info,  Node: BGP distance,  Next: BGP decision process,  Up: BGP router - -9.2.1 BGP distance ------------------- - - -- BGP: distance bgp <1-255> <1-255> <1-255> -     This command change distance value of BGP.  Each argument is -     distance value for external routes, internal routes and local -     routes. - - -- BGP: distance <1-255> A.B.C.D/M - -- BGP: distance <1-255> A.B.C.D/M WORD -     This command set distance value to - - -File: quagga.info,  Node: BGP decision process,  Prev: BGP distance,  Up: BGP router - -9.2.2 BGP decision process --------------------------- - -1. Weight check - -2. Local preference check. - -3. Local route check. - -4. AS path length check. - -5. Origin check. - -6. MED check. - - -- BGP: bgp bestpath as-path confed -     This command specifies that the length of confederation path sets -     and sequences should should be taken into account during the BGP -     best path decision process. - - -File: quagga.info,  Node: BGP network,  Next: BGP Peer,  Prev: BGP router,  Up: BGP - -9.3 BGP network -=============== - -* Menu: - -* BGP route:: -* Route Aggregation:: -* Redistribute to BGP:: - - -File: quagga.info,  Node: BGP route,  Next: Route Aggregation,  Up: BGP network - -9.3.1 BGP route ---------------- - - -- BGP: network A.B.C.D/M -     This command adds the announcement network. -          router bgp 1 -           network 10.0.0.0/8 -     This configuration example says that network 10.0.0.0/8 will -     be announced to all neighbors.  Some vendors' routers don't -     advertise routes if they aren't present in their IGP routing -     tables; `bgp' doesn't care about IGP routes when announcing its -     routes. - - -- BGP: no network A.B.C.D/M - - -File: quagga.info,  Node: Route Aggregation,  Next: Redistribute to BGP,  Prev: BGP route,  Up: BGP network - -9.3.2 Route Aggregation ------------------------ - - -- BGP: aggregate-address A.B.C.D/M -     This command specifies an aggregate address. - - -- BGP: aggregate-address A.B.C.D/M as-set -     This command specifies an aggregate address.  Resulting routes -     inlucde AS set. - - -- BGP: aggregate-address A.B.C.D/M summary-only -     This command specifies an aggregate address.  Aggreated routes will -     not be announce. - - -- BGP: no aggregate-address A.B.C.D/M - - -File: quagga.info,  Node: Redistribute to BGP,  Prev: Route Aggregation,  Up: BGP network - -9.3.3 Redistribute to BGP -------------------------- - - -- BGP: redistribute kernel -     Redistribute kernel route to BGP process. - - -- BGP: redistribute static -     Redistribute static route to BGP process. - - -- BGP: redistribute connected -     Redistribute connected route to BGP process. - - -- BGP: redistribute rip -     Redistribute RIP route to BGP process. - - -- BGP: redistribute ospf -     Redistribute OSPF route to BGP process. - - -File: quagga.info,  Node: BGP Peer,  Next: BGP Peer Group,  Prev: BGP network,  Up: BGP - -9.4 BGP Peer -============ - -* Menu: - -* Defining Peer:: -* BGP Peer commands:: -* Peer filtering:: - - -File: quagga.info,  Node: Defining Peer,  Next: BGP Peer commands,  Up: BGP Peer - -9.4.1 Defining Peer -------------------- - - -- BGP: neighbor PEER remote-as ASN -     Creates a new neighbor whose remote-as is ASN.  PEER can be an -     IPv4 address or an IPv6 address. -          router bgp 1 -           neighbor 10.0.0.1 remote-as 2 -     In this case my router, in AS-1, is trying to peer with AS-2 -     at 10.0.0.1. - -     This command must be the first command used when configuring a -     neighbor.  If the remote-as is not specified, `bgpd' will complain -     like this: -          can't find neighbor 10.0.0.1 - - -File: quagga.info,  Node: BGP Peer commands,  Next: Peer filtering,  Prev: Defining Peer,  Up: BGP Peer - -9.4.2 BGP Peer commands ------------------------ - -In a `router bgp' clause there are neighbor specific configurations -required. - - -- BGP: neighbor PEER shutdown - -- BGP: no neighbor PEER shutdown -     Shutdown the peer.  We can delete the neighbor's configuration by -     `no neighbor PEER remote-as AS-NUMBER' but all configuration of -     the neighbor will be deleted.  When you want to preserve the -     configuration, but want to drop the BGP peer, use this syntax. - - -- BGP: neighbor PEER ebgp-multihop - -- BGP: no neighbor PEER ebgp-multihop - - -- BGP: neighbor PEER description ... - -- BGP: no neighbor PEER description ... -     Set description of the peer. - - -- BGP: neighbor PEER version VERSION -     Set up the neighbor's BGP version.  VERSION can be 4, 4+ or 4-. -     BGP version 4 is the default value used for BGP peering.  BGP -     version 4+ means that the neighbor supports Multiprotocol -     Extensions for BGP-4.  BGP version 4- is similar but the neighbor -     speaks the old Internet-Draft revision 00's Multiprotocol -     Extensions for BGP-4.  Some routing software is still using this -     version. - - -- BGP: neighbor PEER interface IFNAME - -- BGP: no neighbor PEER interface IFNAME -     When you connect to a BGP peer over an IPv6 link-local address, -     you have to specify the IFNAME of the interface used for the -     connection. - - -- BGP: neighbor PEER next-hop-self - -- BGP: no neighbor PEER next-hop-self -     This command specifies an announced route's nexthop as being -     equivalent to the address of the bgp router. - - -- BGP: neighbor PEER update-source - -- BGP: no neighbor PEER update-source - - -- BGP: neighbor PEER default-originate - -- BGP: no neighbor PEER default-originate -     `bgpd''s default is to not announce the default route (0.0.0.0/0) -     even it is in routing table.  When you want to announce default -     routes to the peer, use this command. - - -- BGP: neighbor PEER port PORT - -- BGP: neighbor PEER port PORT - - -- BGP: neighbor PEER send-community - -- BGP: neighbor PEER send-community - - -- BGP: neighbor PEER weight WEIGHT - -- BGP: no neighbor PEER weight WEIGHT -     This command specifies a default WEIGHT value for the neighbor's -     routes. - - -- BGP: neighbor PEER maximum-prefix NUMBER - -- BGP: no neighbor PEER maximum-prefix NUMBER - - -File: quagga.info,  Node: Peer filtering,  Prev: BGP Peer commands,  Up: BGP Peer - -9.4.3 Peer filtering --------------------- - - -- BGP: neighbor PEER distribute-list NAME [in|out] -     This command specifies a distribute-list for the peer.  DIRECT is -     `in' or `out'. - - -- BGP command: neighbor PEER prefix-list NAME [in|out] - - -- BGP command: neighbor PEER filter-list NAME [in|out] - - -- BGP: neighbor PEER route-map NAME [in|out] -     Apply a route-map on the neighbor.  DIRECT must be `in' or `out'. - - -File: quagga.info,  Node: BGP Peer Group,  Next: BGP Address Family,  Prev: BGP Peer,  Up: BGP - -9.5 BGP Peer Group -================== - - -- BGP: neighbor WORD peer-group -     This command defines a new peer group. - - -- BGP: neighbor PEER peer-group WORD -     This command bind specific peer to peer group WORD. - - -File: quagga.info,  Node: BGP Address Family,  Next: Autonomous System,  Prev: BGP Peer Group,  Up: BGP - -9.6 BGP Address Family -====================== - - -File: quagga.info,  Node: Autonomous System,  Next: BGP Communities Attribute,  Prev: BGP Address Family,  Up: BGP - -9.7 Autonomous System -===================== - -The AS (Autonomous System) number is one of the essential element of -BGP.  BGP is a distance vector routing protocol, and the AS-Path -framework provides distance vector metric and loop detection to BGP. -`RFC1930, Guidelines for creation, selection, and registration of an -Autonomous System (AS)' provides some background on the concepts of an -AS. - -   The AS number is a two octet value, ranging in value from 1 to 65535. -The AS numbers 64512 through 65535 are defined as private AS numbers. -Private AS numbers must not to be advertised in the global Internet. - -* Menu: - -* AS Path Regular Expression:: -* Display BGP Routes by AS Path:: -* AS Path Access List:: -* Using AS Path in Route Map:: -* Private AS Numbers:: - - -File: quagga.info,  Node: AS Path Regular Expression,  Next: Display BGP Routes by AS Path,  Up: Autonomous System - -9.7.1 AS Path Regular Expression --------------------------------- - -AS path regular expression can be used for displaying BGP routes and AS -path access list.  AS path regular expression is based on `POSIX -1003.2' regular expressions.  Following description is just a subset of -`POSIX' regular expression.  User can use full `POSIX' regular -expression.  Adding to that special character '_' is added for AS path -regular expression. - -`.' -     Matches any single character. - -`*' -     Matches 0 or more occurrences of pattern. - -`+' -     Matches 1 or more occurrences of pattern. - -`?' -     Match 0 or 1 occurrences of pattern. - -`^' -     Matches the beginning of the line. - -`$' -     Matches the end of the line. - -`_' -     Character `_' has special meanings in AS path regular expression. -     It matches to space and comma , and AS set delimiter { and } and AS -     confederation delimiter `(' and `)'.  And it also matches to the -     beginning of the line and the end of the line.  So `_' can be used -     for AS value boundaries match.  `show ip bgp regexp _7675_' -     matches to all of BGP routes which as AS number include 7675. - - -File: quagga.info,  Node: Display BGP Routes by AS Path,  Next: AS Path Access List,  Prev: AS Path Regular Expression,  Up: Autonomous System - -9.7.2 Display BGP Routes by AS Path ------------------------------------ - -To show BGP routes which has specific AS path information `show ip bgp' -command can be used. - - -- Command: show ip bgp regexp LINE -     This commands display BGP routes that matches AS path regular -     expression LINE. - - -File: quagga.info,  Node: AS Path Access List,  Next: Using AS Path in Route Map,  Prev: Display BGP Routes by AS Path,  Up: Autonomous System - -9.7.3 AS Path Access List -------------------------- - -AS path access list is user defined AS path. - - -- Command: ip as-path access-list WORD {permit|deny} LINE -     This command defines a new AS path access list. - - -- Command: no ip as-path access-list WORD - -- Command: no ip as-path access-list WORD {permit|deny} LINE - - -File: quagga.info,  Node: Using AS Path in Route Map,  Next: Private AS Numbers,  Prev: AS Path Access List,  Up: Autonomous System - -9.7.4 Using AS Path in Route Map --------------------------------- - - -- Route Map: match as-path WORD - - -- Route Map: set as-path prepend AS-PATH - - -File: quagga.info,  Node: Private AS Numbers,  Prev: Using AS Path in Route Map,  Up: Autonomous System - -9.7.5 Private AS Numbers ------------------------- - - -File: quagga.info,  Node: BGP Communities Attribute,  Next: BGP Extended Communities Attribute,  Prev: Autonomous System,  Up: BGP - -9.8 BGP Communities Attribute -============================= - -BGP communities attribute is widely used for implementing policy -routing.  Network operators can manipulate BGP communities attribute -based on their network policy.  BGP communities attribute is defined in -`RFC1997, BGP Communities Attribute' and `RFC1998, An Application of -the BGP Community Attribute in Multi-home Routing'.  It is an optional -transitive attribute, therefore local policy can travel through -different autonomous system. - -   Communities attribute is a set of communities values.  Each -communities value is 4 octet long.  The following format is used to -define communities value. - -`AS:VAL' -     This format represents 4 octet communities value.  `AS' is high -     order 2 octet in digit format.  `VAL' is low order 2 octet in -     digit format.  This format is useful to define AS oriented policy -     value.  For example, `7675:80' can be used when AS 7675 wants to -     pass local policy value 80 to neighboring peer. - -`internet' -     `internet' represents well-known communities value 0. - -`no-export' -     `no-export' represents well-known communities value `NO_EXPORT' -     (0xFFFFFF01).  All routes carry this value must not be advertised -     to outside a BGP confederation boundary.  If neighboring BGP peer -     is part of BGP confederation, the peer is considered as inside a -     BGP confederation boundary, so the route will be announced to the -     peer. - -`no-advertise' -     `no-advertise' represents well-known communities value -     `NO_ADVERTISE' -     (0xFFFFFF02).  All routes carry this value must not be advertise -     to other BGP peers. - -`local-AS' -     `local-AS' represents well-known communities value -     `NO_EXPORT_SUBCONFED' (0xFFFFFF03).  All routes carry this value -     must not be advertised to external BGP peers.  Even if the -     neighboring router is part of confederation, it is considered as -     external BGP peer, so the route will not be announced to the peer. - -   When BGP communities attribute is received, duplicated communities -value in the communities attribute is ignored and each communities -values are sorted in numerical order. - -* Menu: - -* BGP Community Lists:: -* Numbered BGP Community Lists:: -* BGP Community in Route Map:: -* Display BGP Routes by Community:: -* Using BGP Communities Attribute:: - - -File: quagga.info,  Node: BGP Community Lists,  Next: Numbered BGP Community Lists,  Up: BGP Communities Attribute - -9.8.1 BGP Community Lists -------------------------- - -BGP community list is a user defined BGP communites attribute list. -BGP community list can be used for matching or manipulating BGP -communities attribute in updates. - -   There are two types of community list.  One is standard community -list and another is expanded community list.  Standard community list -defines communities attribute.  Expanded community list defines -communities attribute string with regular expression.  Standard -community list is compiled into binary format when user define it. -Standard community list will be directly compared to BGP communities -attribute in BGP updates.  Therefore the comparison is faster than -expanded community list. - - -- Command: ip community-list standard NAME {permit|deny} COMMUNITY -     This command defines a new standard community list.  COMMUNITY is -     communities value.  The COMMUNITY is compiled into community -     structure.  We can define multiple community list under same name. -     In that case match will happen user defined order.  Once the -     community list matches to communities attribute in BGP updates it -     return permit or deny by the community list definition.  When -     there is no matched entry, deny will be returned.  When COMMUNITY -     is empty it matches to any routes. - - -- Command: ip community-list expanded NAME {permit|deny} LINE -     This command defines a new expanded community list.  LINE is a -     string expression of communities attribute.  LINE can include -     regular expression to match communities attribute in BGP updates. - - -- Command: no ip community-list NAME - -- Command: no ip community-list standard NAME - -- Command: no ip community-list expanded NAME -     These commands delete community lists specified by NAME.  All of -     community lists shares a single name space.  So community lists -     can be removed simpley specifying community lists name. - - -- Command: show ip community-list - -- Command: show ip community-list NAME -     This command display current community list information.  When -     NAME is specified the specified community list's information is -     shown. - -          # show ip community-list -          Named Community standard list CLIST -              permit 7675:80 7675:100 no-export -              deny internet -          Named Community expanded list EXPAND -              permit : - -          # show ip community-list CLIST -          Named Community standard list CLIST -              permit 7675:80 7675:100 no-export -              deny internet - - -File: quagga.info,  Node: Numbered BGP Community Lists,  Next: BGP Community in Route Map,  Prev: BGP Community Lists,  Up: BGP Communities Attribute - -9.8.2 Numbered BGP Community Lists ----------------------------------- - -When number is used for BGP community list name, the number has special -meanings.  Community list number in the range from 1 and 99 is standard -community list.  Community list number in the range from 100 to 199 is -expanded community list.  These community lists are called as numbered -community lists.  On the other hand normal community lists is called as -named community lists. - - -- Command: ip community-list <1-99> {permit|deny} COMMUNITY -     This command defines a new community list.  <1-99> is standard -     community list number.  Community list name within this range -     defines standard community list.  When COMMUNITY is empty it -     matches to any routes. - - -- Command: ip community-list <100-199> {permit|deny} COMMUNITY -     This command defines a new community list.  <100-199> is expanded -     community list number.  Community list name within this range -     defines expanded community list. - - -- Command: ip community-list NAME {permit|deny} COMMUNITY -     When community list type is not specifed, the community list type -     is automatically detected.  If COMMUNITY can be compiled into -     communities attribute, the community list is defined as a standard -     community list.  Otherwise it is defined as an expanded community -     list.  This feature is left for backward compability.  Use of this -     feature is not recommended. - - -File: quagga.info,  Node: BGP Community in Route Map,  Next: Display BGP Routes by Community,  Prev: Numbered BGP Community Lists,  Up: BGP Communities Attribute - -9.8.3 BGP Community in Route Map --------------------------------- - -In Route Map (*note Route Map::), we can match or set BGP communities -attribute.  Using this feature network operator can implement their -network policy based on BGP communities attribute. - -   Following commands can be used in Route Map. - - -- Route Map: match community WORD - -- Route Map: match community WORD exact-match -     This command perform match to BGP updates using community list -     WORD.  When the one of BGP communities value match to the one of -     communities value in community list, it is match.  When -     `exact-match' keyword is spcified, match happen only when BGP -     updates have completely same communities value specified in the -     community list. - - -- Route Map: set community none - -- Route Map: set community COMMUNITY - -- Route Map: set community COMMUNITY additive -     This command manipulate communities value in BGP updates.  When -     `none' is specified as communities value, it removes entire -     communities attribute from BGP updates.  When COMMUNITY is not -     `none', specified communities value is set to BGP updates.  If BGP -     updates already has BGP communities value, the existing BGP -     communities value is replaced with specified COMMUNITY value. -     When `additive' keyword is specified, COMMUNITY is appended to the -     existing communities value. - - -- Route Map: set comm-list WORD delete -     This command remove communities value from BGP communities -     attribute.  The WORD is community list name.  When BGP route's -     communities value matches to the community list WORD, the -     communities value is removed.  When all of communities value is -     removed eventually, the BGP update's communities attribute is -     completely removed. - - -File: quagga.info,  Node: Display BGP Routes by Community,  Next: Using BGP Communities Attribute,  Prev: BGP Community in Route Map,  Up: BGP Communities Attribute - -9.8.4 Display BGP Routes by Community -------------------------------------- - -To show BGP routes which has specific BGP communities attribute, `show -ip bgp' command can be used.  The COMMUNITY value and community list -can be used for `show ip bgp' command. - - -- Command: show ip bgp community - -- Command: show ip bgp community COMMUNITY - -- Command: show ip bgp community COMMUNITY exact-match -     `show ip bgp community' displays BGP routes which has communities -     attribute.  When COMMUNITY is specified, BGP routes that matches -     COMMUNITY value is displayed.  For this command, `internet' -     keyword can't be used for COMMUNITY value.  When `exact-match' is -     specified, it display only routes that have an exact match. - - -- Command: show ip bgp community-list WORD - -- Command: show ip bgp community-list WORD exact-match -     This commands display BGP routes that matches community list WORD. -     When `exact-match' is specified, display only routes that have an -     exact match. - - -File: quagga.info,  Node: Using BGP Communities Attribute,  Prev: Display BGP Routes by Community,  Up: BGP Communities Attribute - -9.8.5 Using BGP Communities Attribute -------------------------------------- - -Following configuration is the most typical usage of BGP communities -attribute.  AS 7675 provides upstream Internet connection to AS 100. -When following configuration exists in AS 7675, AS 100 networks -operator can set local preference in AS 7675 network by setting BGP -communities attribute to the updates. - -     router bgp 7675 -      neighbor 192.168.0.1 remote-as 100 -      neighbor 192.168.0.1 route-map RMAP in -     ! -     ip community-list 70 permit 7675:70 -     ip community-list 70 deny -     ip community-list 80 permit 7675:80 -     ip community-list 80 deny -     ip community-list 90 permit 7675:90 -     ip community-list 90 deny -     ! -     route-map RMAP permit 10 -      match community 70 -      set local-preference 70 -     ! -     route-map RMAP permit 20 -      match community 80 -      set local-preference 80 -     ! -     route-map RMAP permit 30 -      match community 90 -      set local-preference 90 - -   Following configuration announce 10.0.0.0/8 from AS 100 to AS 7675. -The route has communities value 7675:80 so when above configuration -exists in AS 7675, announced route's local preference will be set to -value 80. - -     router bgp 100 -      network 10.0.0.0/8 -      neighbor 192.168.0.2 remote-as 7675 -      neighbor 192.168.0.2 route-map RMAP out -     ! -     ip prefix-list PLIST permit 10.0.0.0/8 -     ! -     route-map RMAP permit 10 -      match ip address prefix-list PLIST -      set community 7675:80 - -   Following configuration is an example of BGP route filtering using -communities attribute.  This configuration only permit BGP routes which -has BGP communities value 0:80 or 0:90.  Network operator can put -special internal communities value at BGP border router, then limit the -BGP routes announcement into the internal network. - -     router bgp 7675 -      neighbor 192.168.0.1 remote-as 100 -      neighbor 192.168.0.1 route-map RMAP in -     ! -     ip community-list 1 permit 0:80 0:90 -     ! -     route-map RMAP permit in -      match community 1 - -   Following exmaple filter BGP routes which has communities value 1:1. -When there is no match community-list returns deny.  To avoid filtering -all of routes, we need to define permit any at last. - -     router bgp 7675 -      neighbor 192.168.0.1 remote-as 100 -      neighbor 192.168.0.1 route-map RMAP in -     ! -     ip community-list standard FILTER deny 1:1 -     ip community-list standard FILTER permit -     ! -     route-map RMAP permit 10 -      match community FILTER - -   Communities value keyword `internet' has special meanings in -standard community lists.  In below example `internet' act as match -any.  It matches all of BGP routes even if the route does not have -communities attribute at all.  So community list `INTERNET' is same as -above example's `FILTER'. - -     ip community-list standard INTERNET deny 1:1 -     ip community-list standard INTERNET permit internet - -   Following configuration is an example of communities value deletion. -With this configuration communities value 100:1 and 100:2 is removed -from BGP updates.  For communities value deletion, only `permit' -community-list is used.  `deny' community-list is ignored. - -     router bgp 7675 -      neighbor 192.168.0.1 remote-as 100 -      neighbor 192.168.0.1 route-map RMAP in -     ! -     ip community-list standard DEL permit 100:1 100:2 -     ! -     route-map RMAP permit 10 -      set comm-list DEL delete - - -File: quagga.info,  Node: BGP Extended Communities Attribute,  Next: Displaying BGP routes,  Prev: BGP Communities Attribute,  Up: BGP - -9.9 BGP Extended Communities Attribute -====================================== - -BGP extended communities attribute is introduced with MPLS VPN/BGP -technology.  MPLS VPN/BGP expands capability of network infrastructure -to provide VPN functionality.  At the same time it requires a new -framework for policy routing.  With BGP Extended Communities Attribute -we can use Route Target or Site of Origin for implementing network -policy for MPLS VPN/BGP. - -   BGP Extended Communities Attribute is similar to BGP Communities -Attribute.  It is an optional transitive attribute.  BGP Extended -Communities Attribute can carry multiple Extended Community value. -Each Extended Community value is eight octet length. - -   BGP Extended Communities Attribute provides an extended range -compared with BGP Communities Attribute.  Adding to that there is a -type field in each value to provides community space structure. - -   There are two format to define Extended Community value.  One is AS -based format the other is IP address based format. - -`AS:VAL' -     This is a format to define AS based Extended Community value. -     `AS' part is 2 octets Global Administrator subfield in Extended -     Community value.  `VAL' part is 4 octets Local Administrator -     subfield.  `7675:100' represents AS 7675 policy value 100. - -`IP-Address:VAL' -     This is a format to define IP address based Extended Community -     value.  `IP-Address' part is 4 octets Global Administrator -     subfield.  `VAL' part is 2 octets Local Administrator subfield. -     `10.0.0.1:100' represents - -* Menu: - -* BGP Extended Community Lists:: -* BGP Extended Communities in Route Map:: - - -File: quagga.info,  Node: BGP Extended Community Lists,  Next: BGP Extended Communities in Route Map,  Up: BGP Extended Communities Attribute - -9.9.1 BGP Extended Community Lists ----------------------------------- - -Expanded Community Lists is a user defined BGP Expanded Community Lists. - - -- Command: ip extcommunity-list standard NAME {permit|deny} -EXTCOMMUNITY -     This command defines a new standard extcommunity-list. -     EXTCOMMUNITY is extended communities value.  The EXTCOMMUNITY is -     compiled into extended community structure.  We can define -     multiple extcommunity-list under same name.  In that case match -     will happen user defined order.  Once the extcommunity-list -     matches to extended communities attribute in BGP updates it return -     permit or deny based upon the extcommunity-list definition.  When -     there is no matched entry, deny will be returned.  When -     EXTCOMMUNITY is empty it matches to any routes. - - -- Command: ip extcommunity-list expanded NAME {permit|deny} LINE -     This command defines a new expanded extcommunity-list.  LINE is a -     string expression of extended communities attribute.  LINE can -     include regular expression to match extended communities attribute -     in BGP updates. - - -- Command: no ip extcommunity-list NAME - -- Command: no ip extcommunity-list standard NAME - -- Command: no ip extcommunity-list expanded NAME -     These commands delete extended community lists specified by NAME. -     All of extended community lists shares a single name space.  So -     extended community lists can be removed simpley specifying the -     name. - - -- Command: show ip extcommunity-list - -- Command: show ip extcommunity-list NAME -     This command display current extcommunity-list information.  When -     NAME is specified the community list's information is shown. - -          # show ip extcommunity-list - - -File: quagga.info,  Node: BGP Extended Communities in Route Map,  Prev: BGP Extended Community Lists,  Up: BGP Extended Communities Attribute - -9.9.2 BGP Extended Communities in Route Map -------------------------------------------- - - -- Route Map: match extcommunity WORD - - -- Route Map: set extcommunity rt EXTCOMMUNITY -     This command set Route Target value. - - -- Route Map: set extcommunity soo EXTCOMMUNITY -     This command set Site of Origin value. - - -File: quagga.info,  Node: Displaying BGP routes,  Next: Capability Negotiation,  Prev: BGP Extended Communities Attribute,  Up: BGP - -9.10 Displaying BGP Routes -========================== - -* Menu: - -* Show IP BGP:: -* More Show IP BGP:: - - -File: quagga.info,  Node: Show IP BGP,  Next: More Show IP BGP,  Up: Displaying BGP routes - -9.10.1 Show IP BGP ------------------- - - -- Command: show ip bgp - -- Command: show ip bgp A.B.C.D - -- Command: show ip bgp X:X::X:X -     This command displays BGP routes.  When no route is specified it -     display all of IPv4 BGP routes. - -     BGP table version is 0, local router ID is 10.1.1.1 -     Status codes: s suppressed, d damped, h history, * valid, > best, i - internal -     Origin codes: i - IGP, e - EGP, ? - incomplete - -        Network          Next Hop            Metric LocPrf Weight Path -     *> 1.1.1.1/32       0.0.0.0                  0         32768 i - -     Total number of prefixes 1 - - -File: quagga.info,  Node: More Show IP BGP,  Prev: Show IP BGP,  Up: Displaying BGP routes - -9.10.2 More Show IP BGP ------------------------ - - -- Command: show ip bgp regexp LINE -     This command display BGP routes using AS path regular expression -     (*note Display BGP Routes by AS Path::). - - -- Command: show ip bgp community COMMUNITY - -- Command: show ip bgp community COMMUNITY exact-match -     This command display BGP routes using COMMUNITY (*note Display BGP -     Routes by Community::). - - -- Command: show ip bgp community-list WORD - -- Command: show ip bgp community-list WORD exact-match -     This command display BGP routes using community list (*note -     Display BGP Routes by Community::). - - -- Command: show ip bgp summary - - -- Command: show ip bgp neighbor [PEER] - - -- Command: clear ip bgp PEER -     Clear peers which have addresses of X.X.X.X - - -- Command: clear ip bgp PEER soft in -     Clear peer using soft reconfiguration. - - -- Command: show debug - - -- Command: debug event - - -- Command: debug update - - -- Command: debug keepalive - - -- Command: no debug event - - -- Command: no debug update - - -- Command: no debug keepalive - - -File: quagga.info,  Node: Capability Negotiation,  Next: Route Reflector,  Prev: Displaying BGP routes,  Up: BGP - -9.11 Capability Negotiation -=========================== - -When adding IPv6 routing information exchange feature to BGP.  There -were some proposals.  IETF (Internet Engineering Task Force) IDR (Inter -Domain Routing) WG (Working group) adopted a proposal called -Multiprotocol Extension for BGP.  The specification is described in -`RFC2283'.  The protocol does not define new protocols.  It defines new -attributes to existing BGP.  When it is used exchanging IPv6 routing -information it is called BGP-4+.  When it is used for exchanging -multicast routing information it is called MBGP. - -   `bgpd' supports Multiprotocol Extension for BGP.  So if remote peer -supports the protocol, `bgpd' can exchange IPv6 and/or multicast -routing information. - -   Traditional BGP did not have the feature to detect remote peer's -capabilities, e.g. whether it can handle prefix types other than IPv4 -unicast routes.  This was a big problem using Multiprotocol Extension -for BGP to operational network.  `RFC2842, Capabilities Advertisement -with BGP-4' adopted a feature called Capability Negotiation. `bgpd' use -this Capability Negotiation to detect the remote peer's capabilities. -If the peer is only configured as IPv4 unicast neighbor, `bgpd' does -not send these Capability Negotiation packets (at least not unless -other optional BGP features require capability negotation). - -   By default, Quagga will bring up peering with minimal common -capability for the both sides.  For example, local router has unicast -and multicast capabilitie and remote router has unicast capability.  In -this case, the local router will establish the connection with unicast -only capability. When there are no common capabilities, Quagga sends -Unsupported Capability error and then resets the connection. - -   If you want to completely match capabilities with remote peer. -Please use `strict-capability-match' command. - - -- BGP: neighbor PEER strict-capability-match - -- BGP: no neighbor PEER strict-capability-match -     Strictly compares remote capabilities and local capabilities.  If -     capabilities are different, send Unsupported Capability error then -     reset connection. - -   You may want to disable sending Capability Negotiation OPEN message -optional parameter to the peer when remote peer does not implement -Capability Negotiation.  Please use `dont-capability-negotiate' command -to disable the feature. - - -- BGP: neighbor PEER dont-capability-negotiate - -- BGP: no neighbor PEER dont-capability-negotiate -     Suppress sending Capability Negotiation as OPEN message optional -     parameter to the peer.  This command only affects the peer is -     configured other than IPv4 unicast configuration. - -   When remote peer does not have capability negotiation feature, remote -peer will not send any capabilities at all.  In that case, bgp -configures the peer with configured capabilities. - -   You may prefer locally configured capabilities more than the -negotiated capabilities even though remote peer sends capabilities.  If -the peer is configured by `override-capability', `bgpd' ignores -received capabilities then override negotiated capabilities with -configured values. - - -- BGP: neighbor PEER override-capability - -- BGP: no neighbor PEER override-capability -     Override the result of Capability Negotiation with local -     configuration.  Ignore remote peer's capability value. - - -File: quagga.info,  Node: Route Reflector,  Next: Route Server,  Prev: Capability Negotiation,  Up: BGP - -9.12 Route Reflector -==================== - - -- BGP: bgp cluster-id A.B.C.D - - -- BGP: neighbor PEER route-reflector-client - -- BGP: no neighbor PEER route-reflector-client - - -File: quagga.info,  Node: Route Server,  Next: How to set up a 6-Bone connection,  Prev: Route Reflector,  Up: BGP - -9.13 Route Server -================= - -At an Internet Exchange point, many ISPs are connected to each other by -external BGP peering.  Normally these external BGP connection are done -by `full mesh' method.  As with internal BGP full mesh formation, this -method has a scaling problem. - -   This scaling problem is well known.  Route Server is a method to -resolve the problem.  Each ISP's BGP router only peers to Route Server. -Route Server serves as BGP information exchange to other BGP routers. -By applying this method, numbers of BGP connections is reduced from -O(n*(n-1)/2) to O(n). - -   Unlike normal BGP router, Route Server must have several routing -tables for managing different routing policies for each BGP speaker. -We call the routing tables as different `view's.  `bgpd' can work as -normal BGP router or Route Server or both at the same time. - -* Menu: - -* Multiple instance:: -* BGP instance and view:: -* Routing policy:: -* Viewing the view:: - - -File: quagga.info,  Node: Multiple instance,  Next: BGP instance and view,  Up: Route Server - -9.13.1 Multiple instance ------------------------- - -To enable multiple view function of `bgpd', you must turn on multiple -instance feature beforehand. - - -- Command: bgp multiple-instance -     Enable BGP multiple instance feature.  After this feature is -     enabled, you can make multiple BGP instances or multiple BGP views. - - -- Command: no bgp multiple-instance -     Disable BGP multiple instance feature.  You can not disable this -     feature when BGP multiple instances or views exist. - -   When you want to make configuration more Cisco like one, - - -- Command: bgp config-type cisco -     Cisco compatible BGP configuration output. - -   When bgp config-type cisco is specified, - -   "no synchronization" is displayed.  "no auto-summary" is desplayed. - -   "network" and "aggregate-address" argument is displayed as "A.B.C.D -M.M.M.M" - -   Quagga: network 10.0.0.0/8 Cisco: network 10.0.0.0 - -   Quagga: aggregate-address 192.168.0.0/24 Cisco: aggregate-address -192.168.0.0 255.255.255.0 - -   Community attribute handling is also different.  If there is no -configuration is specified community attribute and extended community -attribute are sent to neighbor.  When user manually disable the feature -community attribute is not sent to the neighbor.  In case of `bgp -config-type cisco' is specified, community attribute is not sent to the -neighbor by default.  To send community attribute user has to specify -`neighbor A.B.C.D send-community' command. - -     ! -     router bgp 1 -      neighbor 10.0.0.1 remote-as 1 -      no neighbor 10.0.0.1 send-community -     ! -     router bgp 1 -      neighbor 10.0.0.1 remote-as 1 -      neighbor 10.0.0.1 send-community -     ! - - -- Command: bgp config-type zebra -     Quagga style BGP configuration.  This is default. - - -File: quagga.info,  Node: BGP instance and view,  Next: Routing policy,  Prev: Multiple instance,  Up: Route Server - -9.13.2 BGP instance and view ----------------------------- - -BGP instance is a normal BGP process.  The result of route selection -goes to the kernel routing table.  You can setup different AS at the -same time when BGP multiple instance feature is enabled. - - -- Command: router bgp AS-NUMBER -     Make a new BGP instance.  You can use arbitrary word for the NAME. - -     bgp multiple-instance -     ! -     router bgp 1 -      neighbor 10.0.0.1 remote-as 2 -      neighbor 10.0.0.2 remote-as 3 -     ! -     router bgp 2 -      neighbor 10.0.0.3 remote-as 4 -      neighbor 10.0.0.4 remote-as 5 - -   BGP view is almost same as normal BGP process. The result of route -selection does not go to the kernel routing table.  BGP view is only -for exchanging BGP routing information. - - -- Command: router bgp AS-NUMBER view NAME -     Make a new BGP view.  You can use arbitrary word for the NAME. -     This view's route selection result does not go to the kernel -     routing table. - -   With this command, you can setup Route Server like below. - -     bgp multiple-instance -     ! -     router bgp 1 view 1 -      neighbor 10.0.0.1 remote-as 2 -      neighbor 10.0.0.2 remote-as 3 -     ! -     router bgp 2 view 2 -      neighbor 10.0.0.3 remote-as 4 -      neighbor 10.0.0.4 remote-as 5 - - -File: quagga.info,  Node: Routing policy,  Next: Viewing the view,  Prev: BGP instance and view,  Up: Route Server - -9.13.3 Routing policy ---------------------- - -You can set different routing policy for a peer.  For example, you can -set different filter for a peer. - -     bgp multiple-instance -     ! -     router bgp 1 view 1 -      neighbor 10.0.0.1 remote-as 2 -      neighbor 10.0.0.1 distribute-list 1 in -     ! -     router bgp 1 view 2 -      neighbor 10.0.0.1 remote-as 2 -      neighbor 10.0.0.1 distribute-list 2 in - -   This means BGP update from a peer 10.0.0.1 goes to both BGP view 1 -and view 2.  When the update is inserted into view 1, distribute-list 1 -is applied.  On the other hand, when the update is inserted into view 2, -distribute-list 2 is applied. - - -File: quagga.info,  Node: Viewing the view,  Prev: Routing policy,  Up: Route Server - -9.13.4 Viewing the view ------------------------ - -To display routing table of BGP view, you must specify view name. - - -- Command: show ip bgp view NAME -     Display routing table of BGP view NAME. - - -File: quagga.info,  Node: How to set up a 6-Bone connection,  Next: Dump BGP packets and table,  Prev: Route Server,  Up: BGP - -9.14 How to set up a 6-Bone connection -====================================== - -     zebra configuration -     =================== -     ! -     ! Actually there is no need to configure zebra -     ! - -     bgpd configuration -     ================== -     ! -     ! This means that routes go through zebra and into the kernel. -     ! -     router zebra -     ! -     ! MP-BGP configuration -     ! -     router bgp 7675 -      bgp router-id 10.0.0.1 -      neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 remote-as AS-NUMBER -     ! -      address-family ipv6 -      network 3ffe:506::/32 -      neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 activate -      neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 route-map set-nexthop out -      neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 remote-as AS-NUMBER -      neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 route-map set-nexthop out -      exit-address-family -     ! -     ipv6 access-list all permit any -     ! -     ! Set output nexthop address. -     ! -     route-map set-nexthop permit 10 -      match ipv6 address all -      set ipv6 nexthop global 3ffe:1cfa:0:2:2c0:4fff:fe68:a225 -      set ipv6 nexthop local fe80::2c0:4fff:fe68:a225 -     ! -     ! logfile FILENAME is obsolete.  Please use log file FILENAME - -     log file bgpd.log -     ! - - -File: quagga.info,  Node: Dump BGP packets and table,  Next: BGP Configuration Examples,  Prev: How to set up a 6-Bone connection,  Up: BGP - -9.15 Dump BGP packets and table -=============================== - - -- Command: dump bgp all PATH - -- Command: dump bgp all PATH INTERVAL -     Dump all BGP packet and events to PATH file. - - -- Command: dump bgp updates PATH - -- Command: dump bgp updates PATH INTERVAL -     Dump BGP updates to PATH file. - - -- Command: dump bgp routes PATH - -- Command: dump bgp routes PATH -     Dump whole BGP routing table to PATH.  This is heavy process. - - -File: quagga.info,  Node: BGP Configuration Examples,  Prev: Dump BGP packets and table,  Up: BGP - -9.16 BGP Configuration Examples -=============================== - -Example of a session to an upstream, advertising only one prefix to it. - -     router bgp 64512 -      bgp router-id 10.236.87.1 -      network 10.236.87.0/24 -      neighbor upstream peer-group -      neighbor upstream remote-as 64515 -      neighbor upstream capability dynamic -      neighbor upstream prefix-list pl-allowed-adv out -      neighbor 10.1.1.1 peer-group upstream -      neighbor 10.1.1.1 description ACME ISP -     ! -     ip prefix-list pl-allowed-adv seq 5 permit 82.195.133.0/25 -     ip prefix-list pl-allowed-adv seq 10 deny any - -   A more complex example. With upstream, peer and customer sessions. -Advertising global prefixes and NO_EXPORT prefixes and providing -actions for customer routes based on community values. Extensive use of -route-maps and the 'call' feature to support selective advertising of -prefixes. This example is intended as guidance only, it has NOT been -tested and almost certainly containts silly mistakes, if not serious -flaws. - -     router bgp 64512 -      bgp router-id 10.236.87.1 -      network 10.123.456.0/24 -      network 10.123.456.128/25 route-map rm-no-export -      neighbor upstream capability dynamic -      neighbor upstream route-map rm-upstream-out out -      neighbor cust capability dynamic -      neighbor cust route-map rm-cust-in in -      neighbor cust route-map rm-cust-out out -      neighbor cust send-community both -      neighbor peer capability dynamic -      neighbor peer route-map rm-peer-in in -      neighbor peer route-map rm-peer-out out -      neighbor peer send-community both -      neighbor 10.1.1.1 remote-as 64515 -      neighbor 10.1.1.1 peer-group upstream -      neighbor 10.2.1.1 remote-as 64516 -      neighbor 10.2.1.1 peer-group upstream -      neighbor 10.3.1.1 remote-as 64517 -      neighbor 10.3.1.1 peer-group cust-default -      neighbor 10.3.1.1 description customer1 -      neighbor 10.3.1.1 prefix-list pl-cust1-network in -      neighbor 10.4.1.1 remote-as 64518 -      neighbor 10.4.1.1 peer-group cust -      neighbor 10.4.1.1 prefix-list pl-cust2-network in -      neighbor 10.4.1.1 description customer2 -      neighbor 10.5.1.1 remote-as 64519 -      neighbor 10.5.1.1 peer-group peer -      neighbor 10.5.1.1 prefix-list pl-peer1-network in -      neighbor 10.5.1.1 description peer AS 1 -      neighbor 10.6.1.1 remote-as 64520 -      neighbor 10.6.1.1 peer-group peer -      neighbor 10.6.1.1 prefix-list pl-peer2-network in -      neighbor 10.6.1.1 description peer AS 2 -     ! -     ip prefix-list pl-default permit 0.0.0.0/0 -     ! -     ip prefix-list pl-upstream-peers permit 10.1.1.1/32 -     ip prefix-list pl-upstream-peers permit 10.2.1.1/32 -     ! -     ip prefix-list pl-cust1-network permit 10.3.1.0/24 -     ip prefix-list pl-cust1-network permit 10.3.2.0/24 -     ! -     ip prefix-list pl-cust2-network permit 10.4.1.0/24 -     ! -     ip prefix-list pl-peer1-network permit 10.5.1.0/24 -     ip prefix-list pl-peer1-network permit 10.5.2.0/24 -     ip prefix-list pl-peer1-network permit 192.168.0.0/24 -     ! -     ip prefix-list pl-peer2-network permit 10.6.1.0/24 -     ip prefix-list pl-peer2-network permit 10.6.2.0/24 -     ip prefix-list pl-peer2-network permit 192.168.1.0/24 -     ip prefix-list pl-peer2-network permit 192.168.2.0/24 -     ip prefix-list pl-peer2-network permit 172.16.1/24 -     ! -     ip as-path access-list asp-own-as permit ^$ -     ip as-path access-list asp-own-as permit _64512_ -     ! -     ! ################################################################# -     ! Match communities we provide actions for, on routes receives from -     ! customers. Communities values of <our-ASN>:X, with X, have actions: -     ! -     ! 100 - blackhole the prefix -     ! 200 - set no_export -     ! 300 - advertise only to other customers -     ! 400 - advertise only to upstreams -     ! 500 - set no_export when advertising to upstreams -     ! 2X00 - set local_preference to X00 -     ! -     ! blackhole the prefix of the route -     ip community-list standard cm-blackhole permit 64512:100 -     ! -     ! set no-export community before advertising -     ip community-list standard cm-set-no-export permit 64512:200 -     ! -     ! advertise only to other customers -     ip community-list standard cm-cust-only permit 64512:300 -     ! -     ! advertise only to upstreams -     ip community-list standard cm-upstream-only permit 64512:400 -     ! -     ! advertise to upstreams with no-export -     ip community-list standard cm-upstream-noexport permit 64512:500 -     ! -     ! set local-pref to least significant 3 digits of the community -     ip community-list standard cm-prefmod-100 permit 64512:2100 -     ip community-list standard cm-prefmod-200 permit 64512:2200 -     ip community-list standard cm-prefmod-300 permit 64512:2300 -     ip community-list standard cm-prefmod-400 permit 64512:2400 -     ip community-list expanded cme-prefmod-range permit 64512:2... -     ! -     ! Informational communities -     ! -     ! 3000 - learned from upstream -     ! 3100 - learned from customer -     ! 3200 - learned from peer -     ! -     ip community-list standard cm-learnt-upstream permit 64512:3000 -     ip community-list standard cm-learnt-cust permit 64512:3100 -     ip community-list standard cm-learnt-peer permit 64512:3200 -     ! -     ! ################################################################### -     ! Utility route-maps -     ! -     ! These utility route-maps generally should not used to permit/deny -     ! routes, i.e. they do not have meaning as filters, and hence probably -     ! should be used with 'on-match next'. These all finish with an empty -     ! permit entry so as not interfere with processing in the caller. -     ! -     route-map rm-no-export permit 10 -      set community additive no-export -     route-map rm-no-export permit 20 -     ! -     route-map rm-blackhole permit 10 -      description blackhole, up-pref and ensure it cant escape this AS -      set ip next-hop 127.0.0.1 -      set local-preference 10 -      set community additive no-export -     route-map rm-blackhole permit 20 -     ! -     ! Set local-pref as requested -     route-map rm-prefmod permit 10 -      match community cm-prefmod-100 -      set local-preference 100 -     route-map rm-prefmod permit 20 -      match community cm-prefmod-200 -      set local-preference 200 -     route-map rm-prefmod permit 30 -      match community cm-prefmod-300 -      set local-preference 300 -     route-map rm-prefmod permit 40 -      match community cm-prefmod-400 -      set local-preference 400 -     route-map rm-prefmod permit 50 -     ! -     ! Community actions to take on receipt of route. -     route-map rm-community-in permit 10 -      description check for blackholing, no point continuing if it matches. -      match community cm-blackhole -      call rm-blackhole -     route-map rm-community-in permit 20 -      match community cm-set-no-export -      call rm-no-export -      on-match next -     route-map rm-community-in permit 30 -      match community cme-prefmod-range -      call rm-prefmod -     route-map rm-community-in permit 40 -     ! -     ! ##################################################################### -     ! Community actions to take when advertising a route. -     ! These are filtering route-maps, -     ! -     ! Deny customer routes to upstream with cust-only set. -     route-map rm-community-filt-to-upstream deny 10 -      match community cm-learnt-cust -      match community cm-cust-only -     route-map rm-community-filt-to-upstream permit 20 -     ! -     ! Deny customer routes to other customers with upstream-only set. -     route-map rm-community-filt-to-cust deny 10 -      match community cm-learnt-cust -      match community cm-upstream-only -     route-map rm-community-filt-to-cust permit 20 -     ! -     ! ################################################################### -     ! The top-level route-maps applied to sessions. Further entries could -     ! be added obviously.. -     ! -     ! Customers -     route-map rm-cust-in permit 10 -      call rm-community-in -      on-match next -     route-map rm-cust-in permit 20 -      set community additive 64512:3100 -     route-map rm-cust-in permit 30 -     ! -     route-map rm-cust-out permit 10 -      call rm-community-filt-to-cust -      on-match next -     route-map rm-cust-out permit 20 -     ! -     ! Upstream transit ASes -     route-map rm-upstream-out permit 10 -      description filter customer prefixes which are marked cust-only -      call rm-community-filt-to-upstream -      on-match next -     route-map rm-upstream-out permit 20 -      description only customer routes are provided to upstreams/peers -      match community cm-learnt-cust -     ! -     ! Peer ASes -     ! outbound policy is same as for upstream -     route-map rm-peer-out permit 10 -      call rm-upstream-out -     ! -     route-map rm-peer-in permit 10 -      set community additive 64512:3200 - - -File: quagga.info,  Node: Configuring Quagga as a Route Server,  Next: VTY shell,  Prev: BGP,  Up: Top - -10 Configuring Quagga as a Route Server -*************************************** - -The purpose of a Route Server is to centralize the peerings between BGP -speakers. For example if we have an exchange point scenario with four -BGP speakers, each of which maintaining a BGP peering with the other -three (*note fig:full-mesh::), we can convert it into a centralized -scenario where each of the four establishes a single BGP peering -against the Route Server (*note fig:route-server::). - -   We will first describe briefly the Route Server model implemented by -Quagga.  We will explain the commands that have been added for -configuring that model. And finally we will show a full example of -Quagga configured as Route Server. - -* Menu: - -* Description of the Route Server model:: -* Commands for configuring a Route Server:: -* Example of Route Server Configuration:: - - -File: quagga.info,  Node: Description of the Route Server model,  Next: Commands for configuring a Route Server,  Up: Configuring Quagga as a Route Server - -10.1 Description of the Route Server model -========================================== - -First we are going to describe the normal processing that BGP -announcements suffer inside a standard BGP speaker, as shown in *Note -fig:normal-processing::, it consists of three steps: - -   * When an announcement is received from some peer, the `In' filters -     configured for that peer are applied to the announcement. These -     filters can reject the announcement, accept it unmodified, or -     accept it with some of its attributes modified. - -   * The announcements that pass the `In' filters go into the Best Path -     Selection process, where they are compared to other announcements -     referred to the same destination that have been received from -     different peers (in case such other announcements exist). For each -     different destination, the announcement which is selected as the -     best is inserted into the BGP speaker's Loc-RIB. - -   * The routes which are inserted in the Loc-RIB are considered for -     announcement to all the peers (except the one from which the route -     came). This is done by passing the routes in the Loc-RIB through -     the `Out' filters corresponding to each peer. These filters can -     reject the route, accept it unmodified, or accept it with some of -     its attributes modified. Those routes which are accepted by the -     `Out' filters of a peer are announced to that peer. - - -                  _______________________________ -                 /    _________     _________    \ -From Peer A --->|(A)-|Best     |   |         |-[A]|--->To Peer A -From Peer B --->|(B)-|Path     |-->|Local-RIB|-[B]|--->To Peer B -From Peer C --->|(C)-|Selection|   |         |-[C]|--->To Peer C -From Peer D --->|(D)-|_________|   |_________|-[D]|--->To Peer D -                 \_______________________________/ - -Key:  (X) - 'In'  Filter applied to Peer X's announcements -      [X] - 'Out' Filter applied to announcements to Peer X - -Figure 10.1: Announcement processing inside a "normal" BGP speaker - -(RF1)--(RF2) -  | \  / | -  |  \/  | -  |  /\  | -  | /  \ | -(RF3)--(RF4) - -Figure 10.2: Full Mesh - -(RF1)  (RF2) -    \  / -    [RS] -    /  \ -(RF3)  (RF4) - -Figure 10.3: Route Server and clients - -   Of course we want that the routing tables obtained in each of the -routers are the same when using the route server than when not. But as -a consequence of having a single BGP peering (against the route -server), the BGP speakers can no longer distinguish from/to which peer -each announce comes/goes.  This means that the routers connected to the -route server are not able to apply by themselves the same input/output -filters as in the full mesh scenario, so they have to delegate those -functions to the route server. - -   Even more, the "best path" selection must be also performed inside -the route server on behalf of its clients. The reason is that if, after -applying the filters of the announcer and the (potential) receiver, the -route server decides to send to some client two or more different -announcements referred to the same destination, the client will only -retain the last one, considering it as an implicit withdrawal of the -previous announcements for the same destination. This is the expected -behavior of a BGP speaker as defined in `RFC1771', and even though -there are some proposals of mechanisms that permit multiple paths for -the same destination to be sent through a single BGP peering, none are -currently supported by most existing BGP implementations. - -   As a consequence a route server must maintain additional information -and perform additional tasks for a RS-client that those necessary for -common BGP peerings. Essentially a route server must: - -   * Maintain a separated Routing Information Base (Loc-RIB) for each -     peer configured as RS-client, containing the routes selected as a -     result of the "Best Path Selection" process that is performed on -     behalf of that RS-client. - -   * Whenever it receives an announcement from a RS-client, it must -     consider it for the Loc-RIBs of the other RS-clients. - -        * This means that for each of them the route server must pass -          the announcement through the appropriate `Out' filter of the -          announcer. - -        * Then through the  appropriate `In' filter of the potential -          receiver. - -        * Only if the announcement is accepted by both filters it will -          be passed to the "Best Path Selection" process. - -        * Finally, it might go into the Loc-RIB of the receiver. - -   When we talk about the "appropriate" filter, both the announcer and -the receiver of the route must be taken into account. Suppose that the -route server receives an announcement from client A, and the route -server is considering it for the Loc-RIB of client B. The filters that -should be applied are the same that would be used in the full mesh -scenario, i.e., first the `Out' filter of router A for announcements -going to router B, and then the `In' filter of router B for -announcements coming from router A. - -   We call "Export Policy" of a RS-client to the set of `Out' filters -that the client would use if there was no route server. The same -applies for the "Import Policy" of a RS-client and the set of `In' -filters of the client if there was no route server. - -   It is also common to demand from a route server that it does not -modify some BGP attributes (next-hop, as-path and MED) that are usually -modified by standard BGP speakers before announcing a route. - -   The announcement processing model implemented by Quagga is shown in -*Note fig:rs-processing::. The figure shows a mixture of RS-clients (B, -C and D) with normal BGP peers (A). There are some details that worth -additional comments: - -   * Announcements coming from a normal BGP peer are also considered -     for the Loc-RIBs of all the RS-clients. But logically they do not -     pass through any export policy. - -   * Those peers that are configured as RS-clients do not receive any -     announce from the `Main' Loc-RIB. - -   * Apart from import and export policies, `In' and `Out' filters can -     also be set for RS-clients. `In' filters might be useful when the -     route server has also normal BGP peers. On the other hand, `Out' -     filters for RS-clients are probably unnecessary, but we decided -     not to remove them as they do not hurt anybody (they can always be -     left empty). - - - | From RS-Client B - |  | From RS-Client C - |  |  | From RS-Client D - |  |  |  | - |  |  |  |           Main / Normal RIB - |  |  |  |      ________________________________ - |  |  |  |     /    _________     _________     \\ - |  |  |  +--->|(D)-|Best     |   | Main    |     | - |  |  +--|--->|(C)-|Path     |-->|Local-RIB|->[A]|--->To Peer A - |  +--|--|--->|(B)-|Selection|   |         |     | - +--|--|--|--->|(A)-|_________|   |_________|     | - |  |  |  |     \\________________________________/ - |  |  |  | - |  |  |  |          ________________________________ - |  |  |  |          /    _________     _________     \\ - |  |  |  +--->*D*->|{B}-|Best     |   |RS-Client|     | - |  |  +--|--->*C*->|{B}-|Path     |-->|Local-RIB|->[B]|--->To RS-Client B - |  |  |  |         |    |Selection|   |  for B  |     | - +--|--|--|-------->|{B}-|_________|   |_________|     | - |  |  |  |          \\________________________________/ - |  |  |  | - |  |  |  |          ________________________________ - |  |  |  |          /    _________     _________     \\ - |  |  |  +--->*D*->|{C}-|Best     |   |RS-Client|     | - |  |  |  |         |    |Path     |-->|Local-RIB|->[C]|--->To RS-Client C - |  +--|--|--->*B*->|{C}-|Selection|   |  for C  |     | - +--|--|--|-------->|{C}-|_________|   |_________|     | - |  |  |             \\________________________________/ - |  |  | - |  |  |              ________________________________ - |  |  |             /    _________     _________     \\ - |  |  |            |    |Best     |   |RS-Client|     | - |  |  +------>*C*->|{D}-|Path     |-->|Local-RIB|->[D]|--->To RS-Client D - |  +--------->*B*->|{D}-|Selection|   |  for D  |     | - +----------------->|{D}-|_________|   |_________|     | -                     \\________________________________/ - - -Key:  (X) - 'In'  Filter applied to Peer X's announcements before -            considering announcement for the normal main Local-RIB -      [X] - 'Out' Filter applied to announcements to Peer X -      *X* - 'Export' Filter of RS-Client X, to apply X's policies -	    before its routes may be considered for other RS-Clients -            RIBs. -      {X} - 'Import' Filter of RS-Client X, to apply X's policies -            on routes before allowing them into X's RIB. -" - -Figure 10.4: Announcement processing model implemented by the Route Server - - -File: quagga.info,  Node: Commands for configuring a Route Server,  Next: Example of Route Server Configuration,  Prev: Description of the Route Server model,  Up: Configuring Quagga as a Route Server - -10.2 Commands for configuring a Route Server -============================================ - -Now we will describe the commands that have been added to quagga in -order to support the route server features. - - -- Route-Server: neighbor PEER-GROUP route-server-client - -- Route-Server: neighbor A.B.C.D route-server-client - -- Route-Server: neighbor X:X::X:X route-server-client -     This command configures the peer given by PEER, A.B.C.D or -     X:X::X:X as an RS-client. - -     Actually this command is not new, it already existed in standard -     Quagga. It enables the transparent mode for the specified peer. -     This means that some BGP attributes (as-path, next-hop and MED) of -     the routes announced to that peer are not modified. - -     With the route server patch, this command, apart from setting the -     transparent mode, creates a new Loc-RIB dedicated to the specified -     peer (those named `Loc-RIB for X' in *Note Figure 10.4: -     fig:rs-processing.). Starting from that moment, every announcement -     received by the route server will be also considered for the new -     Loc-RIB. - - -- Route-Server: neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD -{import|export} -     This set of commands can be used to specify the route-map that -     represents the Import or Export policy of a peer which is -     configured as a RS-client (with the previous command). - - -- Route-Server: match peer {A.B.C.D|X:X::X:X} -     This is a new _match_ statement for use in route-maps, enabling -     them to describe import/export policies. As we said before, an -     import/export policy represents a set of input/output filters of -     the RS-client. This statement makes possible that a single -     route-map represents the full set of filters that a BGP speaker -     would use for its different peers in a non-RS scenario. - -     The _match peer_ statement has different semantics whether it is -     used inside an import or an export route-map. In the first case -     the statement matches if the address of the peer who sends the -     announce is the same that the address specified by -     {A.B.C.D|X:X::X:X}. For export route-maps it matches when -     {A.B.C.D|X:X::X:X} is the address of the RS-Client into whose -     Loc-RIB the announce is going to be inserted (how the same export -     policy is applied before different Loc-RIBs is shown in *Note -     Figure 10.4: fig:rs-processing.). - - -- Route-map Command: call WORD -     This command (also used inside a route-map) jumps into a different -     route-map, whose name is specified by WORD. When the called -     route-map finishes, depending on its result the original route-map -     continues or not. Apart from being useful for making import/export -     route-maps easier to write, this command can also be used inside -     any normal (in or out) route-map. - - -File: quagga.info,  Node: Example of Route Server Configuration,  Prev: Commands for configuring a Route Server,  Up: Configuring Quagga as a Route Server - -10.3 Example of Route Server Configuration -========================================== - -Finally we are going to show how to configure a Quagga daemon to act as -a Route Server. For this purpose we are going to present a scenario -without route server, and then we will show how to use the -configurations of the BGP routers to generate the configuration of the -route server. - -   All the configuration files shown in this section have been taken -from scenarios which were tested using the VNUML tool VNUML -(http://www.dit.upm.es/vnuml). - -* Menu: - -* Configuration of the BGP routers without Route Server:: -* Configuration of the BGP routers with Route Server:: -* Configuration of the Route Server itself:: -* Further considerations about Import and Export route-maps:: - - -File: quagga.info,  Node: Configuration of the BGP routers without Route Server,  Next: Configuration of the BGP routers with Route Server,  Up: Example of Route Server Configuration - -10.3.1 Configuration of the BGP routers without Route Server ------------------------------------------------------------- - -We will suppose that our initial scenario is an exchange point with -three BGP capable routers, named RA, RB and RC. Each of the BGP -speakers generates some routes (with the NETWORK command), and -establishes BGP peerings against the other two routers. These peerings -have In and Out route-maps configured, named like "PEER-X-IN" or -"PEER-X-OUT". For example the configuration file for router RA could be -the following: - -     #Configuration for router 'RA' -     ! -     hostname RA -     password **** -     ! -     router bgp 65001 -       no bgp default ipv4-unicast -       neighbor 2001:0DB8::B remote-as 65002 -       neighbor 2001:0DB8::C remote-as 65003 -     ! -       address-family ipv6 -         network 2001:0DB8:AAAA:1::/64 -         network 2001:0DB8:AAAA:2::/64 -         network 2001:0DB8:0000:1::/64 -         network 2001:0DB8:0000:2::/64 - -         neighbor 2001:0DB8::B activate -         neighbor 2001:0DB8::B soft-reconfiguration inbound -         neighbor 2001:0DB8::B route-map PEER-B-IN in -         neighbor 2001:0DB8::B route-map PEER-B-OUT out - -         neighbor 2001:0DB8::C activate -         neighbor 2001:0DB8::C soft-reconfiguration inbound -         neighbor 2001:0DB8::C route-map PEER-C-IN in -         neighbor 2001:0DB8::C route-map PEER-C-OUT out -       exit-address-family -     ! -     ipv6 prefix-list COMMON-PREFIXES seq  5 permit 2001:0DB8:0000::/48 ge 64 le 64 -     ipv6 prefix-list COMMON-PREFIXES seq 10 deny any -     ! -     ipv6 prefix-list PEER-A-PREFIXES seq  5 permit 2001:0DB8:AAAA::/48 ge 64 le 64 -     ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any -     ! -     ipv6 prefix-list PEER-B-PREFIXES seq  5 permit 2001:0DB8:BBBB::/48 ge 64 le 64 -     ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any -     ! -     ipv6 prefix-list PEER-C-PREFIXES seq  5 permit 2001:0DB8:CCCC::/48 ge 64 le 64 -     ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any -     ! -     route-map PEER-B-IN permit 10 -       match ipv6 address prefix-list COMMON-PREFIXES -       set metric 100 -     route-map PEER-B-IN permit 20 -       match ipv6 address prefix-list PEER-B-PREFIXES -       set community 65001:11111 -     ! -     route-map PEER-C-IN permit 10 -       match ipv6 address prefix-list COMMON-PREFIXES -       set metric 200 -     route-map PEER-C-IN permit 20 -       match ipv6 address prefix-list PEER-C-PREFIXES -       set community 65001:22222 -     ! -     route-map PEER-B-OUT permit 10 -       match ipv6 address prefix-list PEER-A-PREFIXES -     ! -     route-map PEER-C-OUT permit 10 -       match ipv6 address prefix-list PEER-A-PREFIXES -     ! -     line vty -     ! - - -File: quagga.info,  Node: Configuration of the BGP routers with Route Server,  Next: Configuration of the Route Server itself,  Prev: Configuration of the BGP routers without Route Server,  Up: Example of Route Server Configuration - -10.3.2 Configuration of the BGP routers with Route Server ---------------------------------------------------------- - -To convert the initial scenario into one with route server, first we -must modify the configuration of routers RA, RB and RC. Now they must -not peer between them, but only with the route server. For example, RA's -configuration would turn into: - -     # Configuration for router 'RA' -     ! -     hostname RA -     password **** -     ! -     router bgp 65001 -       no bgp default ipv4-unicast -       neighbor 2001:0DB8::FFFF remote-as 65000 -     ! -       address-family ipv6 -         network 2001:0DB8:AAAA:1::/64 -         network 2001:0DB8:AAAA:2::/64 -         network 2001:0DB8:0000:1::/64 -         network 2001:0DB8:0000:2::/64 - -         neighbor 2001:0DB8::FFFF activate -         neighbor 2001:0DB8::FFFF soft-reconfiguration inbound -       exit-address-family -     ! -     line vty -     ! - -   Which is logically much simpler than its initial configuration, as -it now maintains only one BGP peering and all the filters (route-maps) -have disappeared. - - -File: quagga.info,  Node: Configuration of the Route Server itself,  Next: Further considerations about Import and Export route-maps,  Prev: Configuration of the BGP routers with Route Server,  Up: Example of Route Server Configuration - -10.3.3 Configuration of the Route Server itself ------------------------------------------------ - -As we said when we described the functions of a route server (*note -Description of the Route Server model::), it is in charge of all the -route filtering. To achieve that, the In and Out filters from the RA, -RB and RC configurations must be converted into Import and Export -policies in the route server. - -   This is a fragment of the route server configuration (we only show -the policies for client RA): - -     # Configuration for Route Server ('RS') -     ! -     hostname RS -     password ix -     ! -     bgp multiple-instance -     ! -     router bgp 65000 view RS -       no bgp default ipv4-unicast -       neighbor 2001:0DB8::A  remote-as 65001 -       neighbor 2001:0DB8::B  remote-as 65002 -       neighbor 2001:0DB8::C  remote-as 65003 -     ! -       address-family ipv6 -         neighbor 2001:0DB8::A activate -         neighbor 2001:0DB8::A route-server-client -         neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import -         neighbor 2001:0DB8::A route-map RSCLIENT-A-EXPORT export -         neighbor 2001:0DB8::A soft-reconfiguration inbound - -         neighbor 2001:0DB8::B activate -         neighbor 2001:0DB8::B route-server-client -         neighbor 2001:0DB8::B route-map RSCLIENT-B-IMPORT import -         neighbor 2001:0DB8::B route-map RSCLIENT-B-EXPORT export -         neighbor 2001:0DB8::B soft-reconfiguration inbound - -         neighbor 2001:0DB8::C activate -         neighbor 2001:0DB8::C route-server-client -         neighbor 2001:0DB8::C route-map RSCLIENT-C-IMPORT import -         neighbor 2001:0DB8::C route-map RSCLIENT-C-EXPORT export -         neighbor 2001:0DB8::C soft-reconfiguration inbound -       exit-address-family -     ! -     ipv6 prefix-list COMMON-PREFIXES seq  5 permit 2001:0DB8:0000::/48 ge 64 le 64 -     ipv6 prefix-list COMMON-PREFIXES seq 10 deny any -     ! -     ipv6 prefix-list PEER-A-PREFIXES seq  5 permit 2001:0DB8:AAAA::/48 ge 64 le 64 -     ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any -     ! -     ipv6 prefix-list PEER-B-PREFIXES seq  5 permit 2001:0DB8:BBBB::/48 ge 64 le 64 -     ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any -     ! -     ipv6 prefix-list PEER-C-PREFIXES seq  5 permit 2001:0DB8:CCCC::/48 ge 64 le 64 -     ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any -     ! -     route-map RSCLIENT-A-IMPORT permit 10 -       match peer 2001:0DB8::B -       call A-IMPORT-FROM-B -     route-map RSCLIENT-A-IMPORT permit 20 -       match peer 2001:0DB8::C -       call A-IMPORT-FROM-C -     ! -     route-map A-IMPORT-FROM-B permit 10 -       match ipv6 address prefix-list COMMON-PREFIXES -       set metric 100 -     route-map A-IMPORT-FROM-B permit 20 -       match ipv6 address prefix-list PEER-B-PREFIXES -       set community 65001:11111 -     ! -     route-map A-IMPORT-FROM-C permit 10 -       match ipv6 address prefix-list COMMON-PREFIXES -       set metric 200 -     route-map A-IMPORT-FROM-C permit 20 -       match ipv6 address prefix-list PEER-C-PREFIXES -       set community 65001:22222 -     ! -     route-map RSCLIENT-A-EXPORT permit 10 -       match peer 2001:0DB8::B -       match ipv6 address prefix-list PEER-A-PREFIXES -     route-map RSCLIENT-A-EXPORT permit 20 -       match peer 2001:0DB8::C -       match ipv6 address prefix-list PEER-A-PREFIXES -     ! -     ... -     ... -     ... - -   If you compare the initial configuration of RA with the route server -configuration above, you can see how easy it is to generate the Import -and Export policies for RA from the In and Out route-maps of RA's -original configuration. - -   When there was no route server, RA maintained two peerings, one with -RB and another with RC. Each of this peerings had an In route-map -configured. To build the Import route-map for client RA in the route -server, simply add route-map entries following this scheme: - -     route-map <NAME> permit 10 -         match peer <Peer Address> -         call <In Route-Map for this Peer> -     route-map <NAME> permit 20 -         match peer <Another Peer Address> -         call <In Route-Map for this Peer> - -   This is exactly the process that has been followed to generate the -route-map RSCLIENT-A-IMPORT. The route-maps that are called inside it -(A-IMPORT-FROM-B and A-IMPORT-FROM-C) are exactly the same than the In -route-maps from the original configuration of RA (PEER-B-IN and -PEER-C-IN), only the name is different. - -   The same could have been done to create the Export policy for RA -(route-map RSCLIENT-A-EXPORT), but in this case the original Out -route-maps where so simple that we decided not to use the CALL WORD -commands, and we integrated all in a single route-map -(RSCLIENT-A-EXPORT). - -   The Import and Export policies for RB and RC are not shown, but the -process would be identical. - - -File: quagga.info,  Node: Further considerations about Import and Export route-maps,  Prev: Configuration of the Route Server itself,  Up: Example of Route Server Configuration - -10.3.4 Further considerations about Import and Export route-maps ----------------------------------------------------------------- - -The current version of the route server patch only allows to specify a -route-map for import and export policies, while in a standard BGP -speaker apart from route-maps there are other tools for performing -input and output filtering (access-lists, community-lists, ...). But -this does not represent any limitation, as all kinds of filters can be -included in import/export route-maps. For example suppose that in the -non-route-server scenario peer RA had the following filters configured -for input from peer B: - -         neighbor 2001:0DB8::B prefix-list LIST-1 in -         neighbor 2001:0DB8::B filter-list LIST-2 in -         neighbor 2001:0DB8::B route-map PEER-B-IN in -         ... -         ... -     route-map PEER-B-IN permit 10 -       match ipv6 address prefix-list COMMON-PREFIXES -       set local-preference 100 -     route-map PEER-B-IN permit 20 -       match ipv6 address prefix-list PEER-B-PREFIXES -       set community 65001:11111 - -   It is posible to write a single route-map which is equivalent to the -three filters (the community-list, the prefix-list and the route-map). -That route-map can then be used inside the Import policy in the route -server. Lets see how to do it: - -         neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import -         ... -     ! -     ... -     route-map RSCLIENT-A-IMPORT permit 10 -       match peer 2001:0DB8::B -       call A-IMPORT-FROM-B -     ... -     ... -     ! -     route-map A-IMPORT-FROM-B permit 1 -       match ipv6 address prefix-list LIST-1 -       match as-path LIST-2 -       on-match goto 10 -     route-map A-IMPORT-FROM-B deny 2 -     route-map A-IMPORT-FROM-B permit 10 -       match ipv6 address prefix-list COMMON-PREFIXES -       set local-preference 100 -     route-map A-IMPORT-FROM-B permit 20 -       match ipv6 address prefix-list PEER-B-PREFIXES -       set community 65001:11111 -     ! -     ... -     ... - -   The route-map A-IMPORT-FROM-B is equivalent to the three filters -(LIST-1, LIST-2 and PEER-B-IN). The first entry of route-map -A-IMPORT-FROM-B (sequence number 1) matches if and only if both the -prefix-list LIST-1 and the filter-list LIST-2 match. If that happens, -due to the "on-match goto 10" statement the next route-map entry to be -processed will be number 10, and as of that point route-map -A-IMPORT-FROM-B is identical to PEER-B-IN. If the first entry does not -match, `on-match goto 10" will be ignored and the next processed entry -will be number 2, which will deny the route. - -   Thus, the result is the same that with the three original filters, -i.e., if either LIST-1 or LIST-2 rejects the route, it does not reach -the route-map PEER-B-IN. In case both LIST-1 and LIST-2 accept the -route, it passes to PEER-B-IN, which can reject, accept or modify the -route. - - -File: quagga.info,  Node: VTY shell,  Next: Filtering,  Prev: Configuring Quagga as a Route Server,  Up: Top - -11 VTY shell -************ - -`vtysh' is integrated shell of Quagga software. - -   To use vtysh please specify --enable-vtysh to configure script.  To -use PAM for authentication use --with-libpam option to configure script. - -   vtysh only searches /etc/quagga path for vtysh.conf which is the -vtysh configuration file.  Vtysh does not search current directory for -configuration file because the file includes user authentication -settings. - -   Currently, vtysh.conf has only two commands. - -* Menu: - -* VTY shell username:: -* VTY shell integrated configuration:: - - -File: quagga.info,  Node: VTY shell username,  Next: VTY shell integrated configuration,  Up: VTY shell - -11.1 VTY shell username -======================= - - -- Command: username USERNAME nopassword -     With this set, user foo does not need password authentication for -     user vtysh.  With PAM vtysh uses PAM authentication mechanism. - -     If vtysh is compiled without PAM authentication, every user can -     use vtysh without authentication. vtysh requires read/write -     permission to the various daemons vty sockets, this can be -     accomplished through use of unix groups and the -enable-vty-group -     configure option. - - - -File: quagga.info,  Node: VTY shell integrated configuration,  Prev: VTY shell username,  Up: VTY shell - -11.2 VTY shell integrated configuration -======================================= - - -- Command: service integrated-vtysh-config -     Write out integrated Quagga.conf file when 'write file' is issued. - -     This command controls the behaviour of vtysh when it is told to -     write out the configuration.  Per default, vtysh will instruct -     each daemon to write out their own config files when `write file' -     is issued.  However, if `service integrated-vtysh-config' is set, -     when `write file' is issued, vtysh will instruct the daemons will -     write out a Quagga.conf with all daemons' commands integrated into -     it. - -     Vtysh per default behaves as if `write-conf daemon' is set. Note -     that both may be set at same time if one wishes to have both -     Quagga.conf and daemon specific files written out. Further, note -     that the daemons are hard-coded to first look for the integrated -     Quagga.conf file before looking for their own file. - -     We recommend you do not mix the use of the two types of files. -     Further, it is better not to use the integrated Quagga.conf file, -     as any syntax error in it can lead to /all/ of your daemons being -     unable to start up. Per daemon files are more robust as impact of -     errors in configuration are limited to the daemon in whose file -     the error is made. - - - -File: quagga.info,  Node: Filtering,  Next: Route Map,  Prev: VTY shell,  Up: Top - -12 Filtering -************ - -Quagga provides many very flexible filtering features.  Filtering is -used for both input and output of the routing information.  Once -filtering is defined, it can be applied in any direction. - -* Menu: - -* IP Access List:: -* IP Prefix List:: - - -File: quagga.info,  Node: IP Access List,  Next: IP Prefix List,  Up: Filtering - -12.1 IP Access List -=================== - - -- Command: access-list NAME permit IPV4-NETWORK - -- Command: access-list NAME deny IPV4-NETWORK - -   Basic filtering is done by `access-list' as shown in the following -example. - -     access-list filter deny 10.0.0.0/9 -     access-list filter permit 10.0.0.0/8 - - -File: quagga.info,  Node: IP Prefix List,  Prev: IP Access List,  Up: Filtering - -12.2 IP Prefix List -=================== - -`ip prefix-list' provides the most powerful prefix based filtering -mechanism.  In addition to `access-list' functionality, `ip -prefix-list' has prefix length range specification and sequential -number specification.  You can add or delete prefix based filters to -arbitrary points of prefix-list using sequential number specification. - -   If no ip prefix-list is specified, it acts as permit.  If `ip -prefix-list' is defined, and no match is found, default deny is applied. - - -- Command: ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN] - -- Command: ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le -LEN] [ge LEN] -     You can create `ip prefix-list' using above commands. - -    seq -          seq NUMBER can be set either automatically or manually.  In -          the case that sequential numbers are set manually, the user -          may pick any number less than 4294967295.  In the case that -          sequential number are set automatically, the sequential -          number will increase by a unit of five (5) per list.  If a -          list with no specified sequential number is created after a -          list with a specified sequential number, the list will -          automatically pick the next multiple of five (5) as the list -          number.  For example, if a list with number 2 already exists -          and a new list with no specified number is created, the next -          list will be numbered 5.  If lists 2 and 7 already exist and -          a new list with no specified number is created, the new list -          will be numbered 10. - -    le -          `le' command specifies prefix length.  The prefix list will be -          applied if the prefix length is less than or equal to the le -          prefix length. - -    ge -          `ge' command specifies prefix length.  The prefix list will be -          applied if the prefix length is greater than or equal to the -          ge prefix length. - - - -   Less than or equal to prefix numbers and greater than or equal to -prefix numbers can be used together.  The order of the le and ge -commands does not matter. - -   If a prefix list with a different sequential number but with the -exact same rules as a previous list is created, an error will result. -However, in the case that the sequential number and the rules are -exactly similar, no error will result. - -   If a list with the same sequential number as a previous list is -created, the new list will overwrite the old list. - -   Matching of IP Prefix is performed from the smaller sequential -number to the larger.  The matching will stop once any rule has been -applied. - -   In the case of no le or ge command, the prefix length must match -exactly the length specified in the prefix list. - - -- Command: no ip prefix-list NAME - -* Menu: - -* ip prefix-list description:: -* ip prefix-list sequential number control:: -* Showing ip prefix-list:: -* Clear counter of ip prefix-list:: - - -File: quagga.info,  Node: ip prefix-list description,  Next: ip prefix-list sequential number control,  Up: IP Prefix List - -12.2.1 ip prefix-list description ---------------------------------- - - -- Command: ip prefix-list NAME description DESC -     Descriptions may be added to prefix lists.  This command adds a -     description to the prefix list. - - -- Command: no ip prefix-list NAME description [DESC] -     Deletes the description from a prefix list.  It is possible to use -     the command without the full description. - - -File: quagga.info,  Node: ip prefix-list sequential number control,  Next: Showing ip prefix-list,  Prev: ip prefix-list description,  Up: IP Prefix List - -12.2.2 ip prefix-list sequential number control ------------------------------------------------ - - -- Command: ip prefix-list sequence-number -     With this command, the IP prefix list sequential number is -     displayed.  This is the default behavior. - - -- Command: no ip prefix-list sequence-number -     With this command, the IP prefix list sequential number is not -     displayed. - - -File: quagga.info,  Node: Showing ip prefix-list,  Next: Clear counter of ip prefix-list,  Prev: ip prefix-list sequential number control,  Up: IP Prefix List - -12.2.3 Showing ip prefix-list ------------------------------ - - -- Command: show ip prefix-list -     Display all IP prefix lists. - - -- Command: show ip prefix-list NAME -     Show IP prefix list can be used with a prefix list name. - - -- Command: show ip prefix-list NAME seq NUM -     Show IP prefix list can be used with a prefix list name and -     sequential number. - - -- Command: show ip prefix-list NAME A.B.C.D/M -     If the command longer is used, all prefix lists with prefix -     lengths equal to or longer than the specified length will be -     displayed.  If the command first match is used, the first prefix -     length match will be displayed. - - -- Command: show ip prefix-list NAME A.B.C.D/M longer - - -- Command: show ip prefix-list NAME A.B.C.D/M first-match - - -- Command: show ip prefix-list summary - - -- Command: show ip prefix-list summary NAME - - -- Command: show ip prefix-list detail - - -- Command: show ip prefix-list detail NAME - - -File: quagga.info,  Node: Clear counter of ip prefix-list,  Prev: Showing ip prefix-list,  Up: IP Prefix List - -12.2.4 Clear counter of ip prefix-list --------------------------------------- - - -- Command: clear ip prefix-list -     Clears the counters of all IP prefix lists.  Clear IP Prefix List -     can be used with a specified name and prefix. - - -- Command: clear ip prefix-list NAME - - -- Command: clear ip prefix-list NAME A.B.C.D/M - - -File: quagga.info,  Node: Route Map,  Next: IPv6 Support,  Prev: Filtering,  Up: Top - -13 Route Map -************ - -Route maps provide a means to both filter and/or apply actions to -route, hence allowing policy to be applied to routes. - -* Menu: - -* Route Map Command:: -* Route Map Match Command:: -* Route Map Set Command:: -* Route Map Call Command:: -* Route Map Exit Action Command:: -* Route Map Examples:: - -   Route-maps are an ordered list of route-map entries. Each entry may -specify up to four distincts sets of clauses: - -`Matching Policy' -     This specifies the policy implied if the `Matching Conditions' are -     met or not met, and which actions of the route-map are to be -     taken, if any. The two possibilities are: - -        - `permit': If the entry matches, then carry out the `Set -          Actions'. Then finish processing the route-map, permitting -          the route, unless an `Exit Action' indicates otherwise. - -        - `deny': If the entry matches, then finish processing the -          route-map and deny the route (return `deny'). - -     The `Matching Policy' is specified as part of the command which -     defines the ordered entry in the route-map. See below. - -`Matching Conditions' -     A route-map entry may, optionally, specify one or more conditions -     which must be matched if the entry is to be considered further, as -     governed by the Match Policy. If a route-map entry does not -     explicitely specify any matching conditions, then it always -     matches. - -`Set Actions' -     A route-map entry may, optionally, specify one or more `Set -     Actions' to set or modify attributes of the route. - -`Call Action' -     Call to another route-map, after any `Set Actions' have been -     carried out. If the route-map called returns `deny' then -     processing of the route-map finishes and the route is denied, -     regardless of the `Matching Policy' or the `Exit Policy'. If the -     called route-map returns `permit', then `Matching Policy' and -     `Exit Policy' govern further behaviour, as normal. - -`Exit Policy' -     An entry may, optionally, specify an alternative `Exit Policy' to -     take if the entry matched, rather than the normal policy of -     exiting the route-map and permitting the route. The two -     possibilities are: - -        - `next': Continue on with processing of the route-map entries. - -        - `goto N': Jump ahead to the first route-map entry whose order -          in the route-map is >= N. Jumping to a previous entry is not -          permitted. - -   The default action of a route-map, if no entries match, is to deny. -I.e. a route-map essentially has as its last entry an empty `deny' -entry, which matches all routes. To change this behaviour, one must -specify an empty `permit' entry as the last entry in the route-map. - -   To summarise the above: - -         Match    No Match ------------------------------  -_Permit_ action   cont -_Deny_   deny     cont - -`action' -        - Apply _set_ statements - -        - If _call_ is present, call given route-map. If that returns a -          `deny', finish processing and return `deny'. - -        - If `Exit Policy' is _next_, goto next route-map entry - -        - If `Exit Policy' is _goto_, goto first entry whose order in -          the list is >= the given order. - -        - Finish processing the route-map and permit the route. - -`deny' -        - The route is denied by the route-map (return `deny'). - -`cont' -        - goto next route-map entry - - -File: quagga.info,  Node: Route Map Command,  Next: Route Map Match Command,  Up: Route Map - -13.1 Route Map Command -====================== - - -- Command: route-map ROUTE-MAP-NAME (permit|deny) ORDER -     Configure the ORDER'th entry in ROUTE-MAP-NAME with `Match Policy' -     of either _permit_ or _deny_. - - - -File: quagga.info,  Node: Route Map Match Command,  Next: Route Map Set Command,  Prev: Route Map Command,  Up: Route Map - -13.2 Route Map Match Command -============================ - - -- Route-map Command: match ip address ACCESS_LIST -     Matches the specified ACCESS_LIST - - -- Route-map Command: match ip next-hop IPV4_ADDR -     Matches the specified IPV4_ADDR. - - -- Route-map Command: match aspath AS_PATH -     Matches the specified AS_PATH. - - -- Route-map Command: match metric METRIC -     Matches the specified METRIC. - - -- Route-map Command: match community COMMUNITY_LIST -     Matches the specified  COMMUNITY_LIST - - -File: quagga.info,  Node: Route Map Set Command,  Next: Route Map Call Command,  Prev: Route Map Match Command,  Up: Route Map - -13.3 Route Map Set Command -========================== - - -- Route-map Command: set ip next-hop IPV4_ADDRESS -     Set the BGP nexthop address. - - -- Route-map Command: set local-preference LOCAL_PREF -     Set the BGP local preference. - - -- Route-map Command: set weight WEIGHT -     Set the route's weight. - - -- Route-map Command: set metric METRIC -     Set the BGP attribute MED. - - -- Route-map Command: set as-path prepend AS_PATH -     Set the BGP AS path to prepend. - - -- Route-map Command: set community COMMUNITY -     Set the BGP community attribute. - - -- Route-map Command: set ipv6 next-hop global IPV6_ADDRESS -     Set the BGP-4+ global IPv6 nexthop address. - - -- Route-map Command: set ipv6 next-hop local IPV6_ADDRESS -     Set the BGP-4+ link local IPv6 nexthop address. - - -File: quagga.info,  Node: Route Map Call Command,  Next: Route Map Exit Action Command,  Prev: Route Map Set Command,  Up: Route Map - -13.4 Route Map Call Command -=========================== - - -- Route-map Command: call NAME -     Call route-map NAME. If it returns deny, deny the route and finish -     processing the route-map. - - -File: quagga.info,  Node: Route Map Exit Action Command,  Next: Route Map Examples,  Prev: Route Map Call Command,  Up: Route Map - -13.5 Route Map Exit Action Command -================================== - - -- Route-map Command: on-match next - -- Route-map Command: continue -     Proceed on to the next entry in the route-map. - - -- Route-map Command: on-match goto N - -- Route-map Command: continue N -     Proceed processing the route-map at the first entry whose order is -     >= N - - -File: quagga.info,  Node: Route Map Examples,  Prev: Route Map Exit Action Command,  Up: Route Map - -13.6 Route Map Examples -======================= - -A simple example of a route-map: - -     route-map test permit 10 -      match ip address 10 -      set local-preference 200 - -   This means that if a route matches ip access-list number 10 it's -local-preference value is set to 200. - -   See *Note BGP Configuration Examples:: for examples of more -sophisticated useage of route-maps, including of the `call' action. - - -File: quagga.info,  Node: IPv6 Support,  Next: Kernel Interface,  Prev: Route Map,  Up: Top - -14 IPv6 Support -*************** - -Quagga fully supports IPv6 routing.  As described so far, Quagga -supports RIPng, OSPFv3 and BGP-4+.  You can give IPv6 addresses to an -interface and configure static IPv6 routing information.  Quagga IPv6 -also provides automatic address configuration via a feature called -`address auto configuration'.  To do it, the router must send router -advertisement messages to the all nodes that exist on the network. - -* Menu: - -* Router Advertisement:: - - -File: quagga.info,  Node: Router Advertisement,  Up: IPv6 Support - -14.1 Router Advertisement -========================= - - -- Interface Command: no ipv6 nd suppress-ra -     Send router advertisment messages. - - -- Interface Command: ipv6 nd suppress-ra -     Don't send router advertisment messages. - - -- Interface Command: ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME] -[PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address] -     Configuring the IPv6 prefix to include in router advertisements. -     Several prefix specific optional parameters and flags may follow: -        * VALID-LIFETIME - the length of time in seconds during what -          the prefix is valid for the purpose of on-link determination. -          Value INFINITE represents infinity (i.e. a value of all one -          bits (`0xffffffff')). - -          Range: `<0-4294967295>'  Default: `2592000' - -        * PREFERRED-LIFETIME - the length of time in seconds during -          what addresses generated from the prefix remain preferred. -          Value INFINITE represents infinity. - -          Range: `<0-4294967295>'  Default: `604800' - -        * OFF-LINK - indicates that advertisement makes no statement -          about on-link or off-link properties of the prefix. - -          Default: not set, i.e. this prefix can be used for on-link -          determination. - -        * NO-AUTOCONFIG - indicates to hosts on the local link that the -          specified prefix cannot be used for IPv6 autoconfiguration. - -          Default: not set, i.e. prefix can be used for -          autoconfiguration. - -        * ROUTER-ADDRESS - indicates to hosts on the local link that -          the specified prefix contains a complete IP address by -          setting R flag. - -          Default: not set, i.e. hosts do not assume a complete IP -          address is placed. - - -- Interface Command: ipv6 nd ra-interval SECONDS - -- Interface Command: no ipv6 nd ra-interval -     The  maximum  time allowed between sending unsolicited multicast -     router advertisements from the interface, in seconds. Must be no -     less than 3 seconds. - -     Default: `600' - - -- Interface Command: ipv6 nd ra-interval msec MILLISECONDS - -- Interface Command: no ipv6 nd ra-interval msec -     The  maximum  time allowed between sending unsolicited multicast -     router advertisements from the interface, in milliseconds. Must be -     no less than 30 milliseconds. - -     Default: `600000' - - -- Interface Command: ipv6 nd ra-lifetime SECONDS - -- Interface Command: no ipv6 nd ra-lifetime -     The value to be placed in the Router Lifetime field of router -     advertisements sent from the interface, in seconds. Indicates the -     usefulness of the router as a default router on this interface. -     Setting the value to zero indicates that the router should not be -     considered a default router on this interface.  Must be either -     zero or between value specified with IPV6 ND RA-INTERVAL (or -     default) and 9000 seconds. - -     Default: `1800' - - -- Interface Command: ipv6 nd reachable-time MILLISECONDS - -- Interface Command: no ipv6 nd reachable-time -     The value to be placed in the Reachable Time field in the Router -     Advertisement messages sent by the router, in milliseconds. The -     configured time enables the router to detect unavailable -     neighbors. The value zero means unspecified (by this router). Must -     be no greater than `3,600,000' milliseconds (1 hour). - -     Default: `0' - - -- Interface Command: ipv6 nd managed-config-flag - -- Interface Command: no ipv6 nd managed-config-flag -     Set/unset flag in IPv6 router advertisements which indicates to -     hosts that they should use managed (stateful) protocol for -     addresses autoconfiguration in addition to any addresses -     autoconfigured using stateless address autoconfiguration. - -     Default: not set - - -- Interface Command: ipv6 nd other-config-flag - -- Interface Command: no ipv6 nd other-config-flag -     Set/unset flag in IPv6 router advertisements which indicates to -     hosts that they should use administered (stateful) protocol to -     obtain autoconfiguration information other than addresses. - -     Default: not set - - -- Interface Command: ipv6 nd home-agent-config-flag - -- Interface Command: no ipv6 nd home-agent-config-flag -     Set/unset flag in IPv6 router advertisements which indicates to -     hosts that the router acts as a Home Agent and includes a Home -     Agent Option. - -     Default: not set - - -- Interface Command: ipv6 nd home-agent-preference - -- Interface Command: no ipv6 nd home-agent-preference -     The value to be placed in Home Agent Option, when Home Agent -     config flag is set, which indicates to hosts Home Agent preference. - -     Default: 0 - - -- Interface Command: ipv6 nd home-agent-lifetime - -- Interface Command: no ipv6 nd home-agent-lifetime -     The value to be placed in Home Agent Option, when Home Agent -     config flag is set, which indicates to hosts Home Agent Lifetime. -     A value of 0 means to place Router Lifetime value. - -     Default: 0 - - -- Interface Command: ipv6 nd adv-interval-option - -- Interface Command: no ipv6 nd adv-interval-option -     Include an Advertisement Interval option which indicates to hosts -     the maximum time, in milliseconds, between successive unsolicited -     Router Advertisements. - -     Default: not set - -     interface eth0 -      no ipv6 nd suppress-ra -      ipv6 nd prefix 2001:0DB8:5009::/64 - -   For more information see `RFC2462 (IPv6 Stateless Address -Autoconfiguration)' , `RFC2461 (Neighbor Discovery for IP Version 6 -(IPv6))' and `RFC3775 (Mobility Support in IPv6 (Mobile IPv6))'. - - -File: quagga.info,  Node: Kernel Interface,  Next: SNMP Support,  Prev: IPv6 Support,  Up: Top - -15 Kernel Interface -******************* - -There are several different methods for reading kernel routing table -information, updating kernel routing tables, and for looking up -interfaces. - -`ioctl' -     The `ioctl' method is a very traditional way for reading or writing -     kernel information.  `ioctl' can be used for looking up interfaces -     and for modifying interface addresses, flags, mtu settings and -     other types of information.  Also, `ioctl' can insert and delete -     kernel routing table entries.  It will soon be available on almost -     any platform which zebra supports, but it is a little bit ugly -     thus far, so if a better method is supported by the kernel, zebra -     will use that. - -`sysctl' -     `sysctl' can lookup kernel information using MIB (Management -     Information Base) syntax.  Normally, it only provides a way of -     getting information from the kernel.  So one would usually want to -     change kernel information using another method such as `ioctl'. - -`proc filesystem' -     `proc filesystem' provides an easy way of getting kernel -     information. - -`routing socket' - -`netlink' -     On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user -     communication support called `netlink'.  It makes asynchronous -     communication between kernel and Quagga possible, similar to a -     routing socket on BSD systems. - -     Before you use this feature, be sure to select (in kernel -     configuration) the kernel/netlink support option 'Kernel/User -     network link driver' and 'Routing messages'. - -     Today, the /dev/route special device file is obsolete.  Netlink -     communication is done by reading/writing over netlink socket. - -     After the kernel configuration, please reconfigure and rebuild -     Quagga.  You can use netlink as a dynamic routing update channel -     between Quagga and the kernel. - - -File: quagga.info,  Node: SNMP Support,  Next: Zebra Protocol,  Prev: Kernel Interface,  Up: Top - -16 SNMP Support -*************** - -SNMP (Simple Network Managing Protocol) is a widely implemented feature -for collecting network information from router and/or host.  Quagga -itself does not support SNMP agent (server daemon) functionality but is -able to connect to a SNMP agent using the SMUX protocol (`RFC1227') and -make the routing protocol MIBs available through it. - -* Menu: - -* Getting and installing an SNMP agent:: -* SMUX configuration:: -* MIB and command reference:: -* Handling SNMP Traps:: - - -File: quagga.info,  Node: Getting and installing an SNMP agent,  Next: SMUX configuration,  Up: SNMP Support - -16.1 Getting and installing an SNMP agent -========================================= - -There are several SNMP agent which support SMUX. We recommend to use -the latest version of `net-snmp' which was formerly known as `ucd-snmp'. -It is free and open software and available at `http://www.net-snmp.org/' -and as binary package for most Linux distributions.  `net-snmp' has to -be compiled with `--with-mib-modules=smux' to be able to accept -connections from Quagga. - - -File: quagga.info,  Node: SMUX configuration,  Next: MIB and command reference,  Prev: Getting and installing an SNMP agent,  Up: SNMP Support - -16.2 SMUX configuration -======================= - -To enable SMUX protocol support, Quagga must have been build with the -`--enable-snmp' option. - -   A separate connection has then to be established between between the -SNMP agent (snmpd) and each of the Quagga daemons. This connections -each use different OID numbers and passwords. Be aware that this OID -number is not the one that is used in queries by clients, it is solely -used for the intercommunication of the daemons. - -   In the following example the ospfd daemon will be connected to the -snmpd daemon using the password "quagga_ospfd". For testing it is -recommending to take exactly the below snmpd.conf as wrong access -restrictions can be hard to debug. - -     /etc/snmp/snmpd.conf: -     	# -     	# example access restrictions setup -     	# -     	com2sec readonly default public -     	group MyROGroup v1 readonly -     	view all included .1 80 -     	access MyROGroup "" any noauth exact all none none -     	# -     	# the following line is relevant for Quagga -     	# -     	smuxpeer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd - -     /etc/quagga/ospf: -     	! ... the rest of ospfd.conf has been omitted for clarity ... -     	! -     	smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd -     	! - -   After restarting snmpd and quagga, a successful connection can be -verified in the syslog and by querying the SNMP daemon: - -     snmpd[12300]: [smux_accept] accepted fd 12 from 127.0.0.1:36255 -     snmpd[12300]: accepted smux peer: \ -     	oid GNOME-PRODUCT-ZEBRA-MIB::ospfd, quagga-0.96.5 - -     # snmpwalk -c public -v1 localhost .1.3.6.1.2.1.14.1.1 -     OSPF-MIB::ospfRouterId.0 = IpAddress: 192.168.42.109 - -   Be warned that the current version (5.1.1) of the Net-SNMP daemon -writes a line for every SNMP connect to the syslog which can lead to -enormous log file sizes.  If that is a problem you should consider to -patch snmpd and comment out the troublesome `snmp_log()' line in the -function `netsnmp_agent_check_packet()' in `agent/snmp_agent.c'. - - -File: quagga.info,  Node: MIB and command reference,  Next: Handling SNMP Traps,  Prev: SMUX configuration,  Up: SNMP Support - -16.3 MIB and command reference -============================== - -The following OID numbers are used for the interprocess communication -of snmpd and the Quagga daemons. Sadly, SNMP has not been implemented -in all daemons yet. -                 (OIDs below .iso.org.dod.internet.private.enterprises) -     zebra	.1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv -     bgpd	.1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd -     ripd	.1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd -     ospfd	.1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zebra.ospfd -     ospf6d	.1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d - -   The following OID numbers are used for querying the SNMP daemon by a -client: -     zebra	.1.3.6.1.2.1.4.24   .iso.org.dot.internet.mgmt.mib-2.ip.ipForward -     ospfd	.1.3.6.1.2.1.14	    .iso.org.dot.internet.mgmt.mib-2.ospf -     bgpd	.1.3.6.1.2.1.15	    .iso.org.dot.internet.mgmt.mib-2.bgp -     ripd	.1.3.6.1.2.1.23	    .iso.org.dot.internet.mgmt.mib-2.rip2 -     ospf6d	.1.3.6.1.3.102	    .iso.org.dod.internet.experimental.ospfv3 - -   The following syntax is understood by the Quagga daemons for -configuring SNMP: - - -- Command: smux peer OID - -- Command: no smux peer OID - - -- Command: smux peer OID PASSWORD - -- Command: no smux peer OID PASSWORD - - -File: quagga.info,  Node: Handling SNMP Traps,  Prev: MIB and command reference,  Up: SNMP Support - -16.4 Handling SNMP Traps -======================== - -To handle snmp traps make sure your snmp setup of quagga works -correctly as described in the quagga documentation in *Note SNMP -Support::. - -   The BGP4 mib will send traps on peer up/down events. These should be -visible in your snmp logs with a message similar to: - -   `snmpd[13733]: Got trap from peer on fd 14' - -   To react on these traps they should be handled by a trapsink. -Configure your trapsink by adding the following lines to -`/etc/snmpd/snmpd.conf': - -       # send traps to the snmptrapd on localhost -       trapsink localhost - -   This will send all traps to an snmptrapd running on localhost. You -can of course also use a dedicated management station to catch traps. -Configure the snmptrapd daemon by adding the following line to -`/etc/snmpd/snmptrapd.conf': - -       traphandle .1.3.6.1.4.1.3317.1.2.2 /etc/snmp/snmptrap_handle.sh - -   This will use the bash script `/etc/snmp/snmptrap_handle.sh' to -handle the BGP4 traps. To add traps for other protocol daemons, lookup -their appropriate OID from their mib. (For additional information about -which traps are supported by your mib, lookup the mib on -`http://www.oidview.com/mibs/detail.html'). - -   Make sure snmptrapd is started. - -   The snmptrap_handle.sh script I personally use for handling BGP4 -traps is below. You can of course do all sorts of things when handling -traps, like sound a siren, have your display flash, etc., be creative -;). - - -  #!/bin/bash - -  # routers name -  ROUTER=`hostname -s` - -  #email address use to sent out notification -  EMAILADDR="john@doe.com" -  #email address used (allongside above) where warnings should be sent -  EMAILADDR_WARN="sms-john@doe.com" - -  # type of notification -  TYPE="Notice" - -  # local snmp community for getting AS belonging to peer -  COMMUNITY="<community>" - -  # if a peer address is in $WARN_PEERS a warning should be sent -  WARN_PEERS="192.0.2.1" - - -  # get stdin -  INPUT=`cat -` - -  # get some vars from stdin -  uptime=`echo $INPUT | cut -d' ' -f5` -  peer=`echo $INPUT | cut -d' ' -f8 | sed -e 's/SNMPv2-SMI::mib-2.15.3.1.14.//g'` -  peerstate=`echo $INPUT | cut -d' ' -f13` -  errorcode=`echo $INPUT | cut -d' ' -f9 | sed -e 's/\"//g'` -  suberrorcode=`echo $INPUT | cut -d' ' -f10 | sed -e 's/\"//g'` -  remoteas=`snmpget -v2c -c $COMMUNITY localhost SNMPv2-SMI::mib-2.15.3.1.9.$peer | cut -d' ' -f4` - -  WHOISINFO=`whois -h whois.ripe.net " -r AS$remoteas" | egrep '(as-name|descr)'` -  asname=`echo "$WHOISINFO" | grep "^as-name:" | sed -e 's/^as-name://g' -e 's/  //g' -e 's/^ //g' | uniq` -  asdescr=`echo "$WHOISINFO" | grep "^descr:" | sed -e 's/^descr://g' -e 's/  //g' -e 's/^ //g' | uniq` - -  # if peer address is in $WARN_PEER, the email should also -  # be sent to $EMAILADDR_WARN -  for ip in $WARN_PEERS; do -    if [ "x$ip" == "x$peer" ]; then -      EMAILADDR="$EMAILADDR,$EMAILADDR_WARN" -      TYPE="WARNING" -      break -    fi -  done - - -  # convert peer state -  case "$peerstate" in -    1) peerstate="Idle" ;; -    2) peerstate="Connect" ;; -    3) peerstate="Active" ;; -    4) peerstate="Opensent" ;; -    5) peerstate="Openconfirm" ;; -    6) peerstate="Established" ;; -    *) peerstate="Unknown" ;; -  esac - -  # get textual messages for errors -  case "$errorcode" in -    00) -      error="No error" -      suberror="" -      ;; -    01) -      error="Message Header Error" -      case "$suberrorcode" in -        01) suberror="Connection Not Synchronized" ;; -        02) suberror="Bad Message Length" ;; -        03) suberror="Bad Message Type" ;; -        *) suberror="Unknown" ;; -      esac -      ;; -    02) -      error="OPEN Message Error" -      case "$suberrorcode" in -        01) suberror="Unsupported Version Number" ;; -        02) suberror="Bad Peer AS" ;; -        03) suberror="Bad BGP Identifier" ;; -        04) suberror="Unsupported Optional Parameter" ;; -        05) suberror="Authentication Failure" ;; -        06) suberror="Unacceptable Hold Time" ;; -        *) suberror="Unknown" ;; -      esac -      ;; -    03) -      error="UPDATE Message Error" -      case "$suberrorcode" in -        01) suberror="Malformed Attribute List" ;; -        02) suberror="Unrecognized Well-known Attribute" ;; -        03) suberror="Missing Well-known Attribute" ;; -        04) suberror="Attribute Flags Error" ;; -        05) suberror="Attribute Length Error" ;; -        06) suberror="Invalid ORIGIN Attribute" ;; -        07) suberror="AS Routing Loop" ;; -        08) suberror="Invalid NEXT_HOP Attribute" ;; -        09) suberror="Optional Attribute Error" ;; -        10) suberror="Invalid Network Field" ;; -        11) suberror="Malformed AS_PATH" ;; -        *) suberror="Unknown" ;; -      esac -      ;; -    04) -      error="Hold Timer Expired" -      suberror="" -      ;; -    05) -      error="Finite State Machine Error" -      suberror="" -      ;; -    06) -      error="Cease" -      case "$suberrorcode" in -        01) suberror="Maximum Number of Prefixes Reached" ;; -        02) suberror="Administratively Shutdown" ;; -        03) suberror="Peer Unconfigured" ;; -        04) suberror="Administratively Reset" ;; -        05) suberror="Connection Rejected" ;; -        06) suberror="Other Configuration Change" ;; -        07) suberror="Connection collision resolution" ;; -        08) suberror="Out of Resource" ;; -        09) suberror="MAX" ;; -        *) suberror="Unknown" ;; -      esac -      ;; -    *) -      error="Unknown" -      suberror="" -      ;; -  esac - -  # create textual message from errorcodes -  if [ "x$suberror" == "x" ]; then -    NOTIFY="$errorcode ($error)" -  else -    NOTIFY="$errorcode/$suberrorcode ($error/$suberror)" -  fi - - -  # form a decent subject -  SUBJECT="$TYPE: $ROUTER [bgp] $peer is $peerstate: $NOTIFY" -  # create the email body -  MAIL=`cat << EOF -  BGP notification on router $ROUTER. - -  Peer: $peer -  AS: $remoteas -  New state: $peerstate -  Notification: $NOTIFY - -  Info: -  $asname -  $asdescr - -  Snmpd uptime: $uptime -  EOF` - -  # mail the notification -  echo "$MAIL" | mail -s "$SUBJECT" $EMAILADDR - - -File: quagga.info,  Node: Zebra Protocol,  Next: Packet Binary Dump Format,  Prev: SNMP Support,  Up: Top - -Appendix A Zebra Protocol -************************* - -A.1 Overview of the Zebra Protocol -================================== - -Zebra Protocol is used by protocol daemons to communicate with the -zebra daemon. - -   Each protocol daemon may request and send information to and from the -zebra daemon such as interface states, routing state, -nexthop-validation, and so on. Protocol daemons may also install routes -with zebra. The zebra daemon manages which route is installed into the -forwarding table with the kernel. - -   Zebra Protocol is a streaming protocol, with a common header. Two -versions of the header are in use. Version 0 is implicitely versioned. -Version 1 has an explicit version field. Version 0 can be distinguished -from all other versions by examining the 3rd byte of the header, which -contains a marker value for all versions bar version 0. The marker byte -corresponds to the command field in version 0, and the marker value is -a reserved command in version 0. - -   We do not anticipate there will be further versions of the header for -the foreseeable future, as the command field in version 1 is wide -enough to allow for future extensions to done compatibly through -seperate commands. - -   Version 0 is used by all versions of GNU Zebra as of this writing, -and versions of Quagga up to and including Quagga 0.98. Version 1 will -be used as of Quagga 1.0. - -A.2 Zebra Protocol Definition -============================= - -A.2.1 Zebra Protocol Header (version 0) ---------------------------------------- - -     0                   1                   2                   3 -     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-------------------------------+---------------+ -     |           Length (2)          |   Command (1) | -     +-------------------------------+---------------+ - -A.2.2 Zebra Protocol Common Header (version 1) ----------------------------------------------- - -     0                   1                   2                   3 -     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-------------------------------+---------------+-------------+ -     |           Length (2)          |   Marker (1)  | Version (1) | -     +-------------------------------+---------------+-------------+ -     |          Command (2)          | -     +-------------------------------+ - -A.2.3 Zebra Protocol Header Field Definitions ---------------------------------------------- - -`Length' -     Total packet length including this header. The minimum length is 3 -     bytes for version 0 messages and 6 bytes for version 1 messages. - -`Marker' -     Static marker with a value of 255 always. This is to allow version -     0 Zserv headers (which do not include version explicitely) to be -     distinguished from versioned headers. Not present in version 0 -     messages. - -`Version' -     Version number of the Zserv message. Clients should not continue -     processing messages past the version field for versions they do not -     recognise. Not present in version 0 messages. - -`Command' -     The Zebra Protocol command. - -A.2.4 Zebra Protocol Commands ------------------------------ - -Command                                      Value ------------------------------------------------------  -ZEBRA_INTERFACE_ADD                          1 -ZEBRA_INTERFACE_DELETE                       2 -ZEBRA_INTERFACE_ADDRESS_ADD                  3 -ZEBRA_INTERFACE_ADDRESS_DELETE               4 -ZEBRA_INTERFACE_UP                           5 -ZEBRA_INTERFACE_DOWN                         6 -ZEBRA_IPV4_ROUTE_ADD                         7 -ZEBRA_IPV4_ROUTE_DELETE                      8 -ZEBRA_IPV6_ROUTE_ADD                         9 -ZEBRA_IPV6_ROUTE_DELETE                      10 -ZEBRA_REDISTRIBUTE_ADD                       11 -ZEBRA_REDISTRIBUTE_DELETE                    12 -ZEBRA_REDISTRIBUTE_DEFAULT_ADD               13 -ZEBRA_REDISTRIBUTE_DEFAULT_DELETE            14 -ZEBRA_IPV4_NEXTHOP_LOOKUP                    15 -ZEBRA_IPV6_NEXTHOP_LOOKUP                    16 - - -File: quagga.info,  Node: Packet Binary Dump Format,  Next: Command Index,  Prev: Zebra Protocol,  Up: Top - -Appendix B Packet Binary Dump Format -************************************ - -Quagga can dump routing protocol packet into file with a binary format -(*note Dump BGP packets and table::). - -   It seems to be better that we share the MRT's header format for -backward compatibility with MRT's dump logs. We should also define the -binary format excluding the header, because we must support both IP v4 -and v6 addresses as socket addresses and / or routing entries. - -   In the last meeting, we discussed to have a version field in the -header. But Masaki told us that we can define new `type' value rather -than having a `version' field, and it seems to be better because we -don't need to change header format. - -   Here is the common header format. This is same as that of MRT. - -     0                   1                   2                   3 -     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                              Time                             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |             Type              |            Subtype            | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                             Length                            | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and -Address Family == IP (version 4) - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Source AS number       |     Destination AS number     | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Interface Index        |      Address Family           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address                      | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address                    | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |            Old State          |           New State           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   Where State is the value defined in RFC1771. - -   If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and -Address Family == IP version 6 - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Source AS number       |     Destination AS number     | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Interface Index        |      Address Family           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address                      | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address (Cont'd)             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address (Cont'd)             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address (Cont'd)             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address                    | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address (Cont'd)           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address (Cont'd)           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address (Cont'd)           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |            Old State          |           New State           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and -Address Family == IP (version 4) - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Source AS number       |     Destination AS number     | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Interface Index        |      Address Family           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address                      | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address                    | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                       BGP Message Packet                      | -     |                                                               | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   Where BGP Message Packet is the whole contents of the BGP4 message -including header portion. - -   If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and -Address Family == IP version 6 - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Source AS number       |     Destination AS number     | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |        Interface Index        |      Address Family           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address                      | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address (Cont'd)             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address (Cont'd)             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Source IP address (Cont'd)             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address                    | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address (Cont'd)           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address (Cont'd)           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                     Destination IP address (Cont'd)           | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                       BGP Message Packet                      | -     |                                                               | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address -Family == IP (version 4) - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |            View #             |            Status             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Time Last Change                       | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |       Address Family          |    SAFI       | Next-Hop-Len  | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Next Hop Address                       | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     | Prefix Length |             Address Prefix [variable]         | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |       Attribute Length        | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |      BGP Attribute [variable length]    			| -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address -Family == IP version 6 - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |            View #             |            Status             | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Time Last Change                       | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |       Address Family          |    SAFI       | Next-Hop-Len  | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Next Hop Address                       | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Next Hop Address (Cont'd)              | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Next Hop Address (Cont'd)              | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |                        Next Hop Address (Cont'd)              | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     | Prefix Length |             Address Prefix [variable]         | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |     Address Prefix (cont'd) [variable]        | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |       Attribute Length        | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |      BGP Attribute [variable length]    			    | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   	BGP4 Attribute must not contain MP_UNREACH_NLRI.  	If BGP Attribute -has MP_REACH_NLRI field, it must has 	zero length NLRI, e.g., -MP_REACH_NLRI has only Address 	Family, SAFI and next-hop values. - -   If `type' is PROTOCOL_BGP4MP and `subtype' is BGP4MP_SNAPSHOT, - -      0                   1                   2                   3 -      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -     |           View #              |       File Name [variable]    | -     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -   The file specified in "File Name" contains all routing entries, -which are in the format of "subtype == BGP4MP_ENTRY". - -     Constants: -       /* type value */ -       #define MSG_PROTOCOL_BGP4MP 16 -       /* subtype value */ -       #define BGP4MP_STATE_CHANGE 0 -       #define BGP4MP_MESSAGE 1 -       #define BGP4MP_ENTRY 2 -       #define BGP4MP_SNAPSHOT 3 - - -File: quagga.info,  Node: Command Index,  Next: VTY Key Index,  Prev: Packet Binary Dump Format,  Up: Top - -Command Index -************* - - -* Menu: - -* access-class ACCESS-LIST:              Basic Config Commands. -                                                              (line 128) -* access-list NAME deny IPV4-NETWORK:    IP Access List.      (line   8) -* access-list NAME permit IPV4-NETWORK:  IP Access List.      (line   7) -* aggregate-address A.B.C.D/M:           Route Aggregation.   (line   7) -* aggregate-address A.B.C.D/M as-set:    Route Aggregation.   (line  10) -* aggregate-address A.B.C.D/M summary-only: Route Aggregation. -                                                              (line  14) -* area <0-4294967295> authentication:    OSPF area.           (line 127) -* area <0-4294967295> authentication message-digest: OSPF area. -                                                              (line 134) -* area <0-4294967295> export-list NAME:  OSPF area.           (line  85) -* area <0-4294967295> filter-list prefix NAME in: OSPF area.  (line 117) -* area <0-4294967295> filter-list prefix NAME out: OSPF area. (line 118) -* area <0-4294967295> import-list NAME:  OSPF area.           (line 109) -* area <0-4294967295> range A.B.C.D/M:   OSPF area.           (line   8) -* area <0-4294967295> shortcut:          OSPF area.           (line  55) -* area <0-4294967295> stub:              OSPF area.           (line  62) -* area <0-4294967295> stub no-summary:   OSPF area.           (line  74) -* area <0-4294967295> virtual-link A.B.C.D: OSPF area.        (line  50) -* area A.B.C.D authentication:           OSPF area.           (line 126) -* area A.B.C.D authentication message-digest: OSPF area.      (line 133) -* area A.B.C.D default-cost <0-16777215>: OSPF area.          (line  80) -* area A.B.C.D export-list NAME:         OSPF area.           (line  84) -* area A.B.C.D filter-list prefix NAME in: OSPF area.         (line 115) -* area A.B.C.D filter-list prefix NAME out: OSPF area.        (line 116) -* area A.B.C.D import-list NAME:         OSPF area.           (line 108) -* area A.B.C.D range A.B.C.D/M:          OSPF area.           (line   7) -* area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area.    (line  28) -* area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area. -                                                              (line  34) -* area A.B.C.D shortcut:                 OSPF area.           (line  54) -* area A.B.C.D stub:                     OSPF area.           (line  61) -* area A.B.C.D stub no-summary:          OSPF area.           (line  73) -* area A.B.C.D virtual-link A.B.C.D:     OSPF area.           (line  49) -* auto-cost reference-bandwidth <1-4294967>: OSPF router.     (line 143) -* bandwidth <1-10000000>:                Interface Commands.  (line  31) -* banner motd default:                   Basic Config Commands. -                                                              (line 110) -* bgp bestpath as-path confed:           BGP decision process. -                                                              (line  19) -* bgp cluster-id A.B.C.D:                Route Reflector.     (line   7) -* bgp config-type cisco:                 Multiple instance.   (line  20) -* bgp config-type zebra:                 Multiple instance.   (line  53) -* bgp multiple-instance:                 Multiple instance.   (line  10) -* bgp router-id A.B.C.D:                 BGP router.          (line  22) -* call NAME:                             Route Map Call Command. -                                                              (line   7) -* call WORD:                             Commands for configuring a Route Server. -                                                              (line  52) -* clear ip bgp PEER:                     More Show IP BGP.    (line  25) -* clear ip bgp PEER soft in:             More Show IP BGP.    (line  28) -* clear ip prefix-list:                  Clear counter of ip prefix-list. -                                                              (line   7) -* clear ip prefix-list NAME:             Clear counter of ip prefix-list. -                                                              (line  11) -* clear ip prefix-list NAME A.B.C.D/M:   Clear counter of ip prefix-list. -                                                              (line  13) -* configure terminal:                    Terminal Mode Commands. -                                                              (line  13) -* continue:                              Route Map Exit Action Command. -                                                              (line   8) -* continue N:                            Route Map Exit Action Command. -                                                              (line  12) -* debug event:                           More Show IP BGP.    (line  33) -* debug keepalive:                       More Show IP BGP.    (line  37) -* debug ospf ism:                        Debugging OSPF.      (line  12) -* debug ospf ism (status|events|timers): Debugging OSPF.      (line  13) -* debug ospf lsa:                        Debugging OSPF.      (line  22) -* debug ospf lsa (generate|flooding|refresh): Debugging OSPF. (line  23) -* debug ospf nsm:                        Debugging OSPF.      (line  17) -* debug ospf nsm (status|events|timers): Debugging OSPF.      (line  18) -* debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF. -                                                              (line   8) -* debug ospf zebra:                      Debugging OSPF.      (line  27) -* debug ospf zebra (interface|redistribute): Debugging OSPF.  (line  28) -* debug rip events:                      RIP Debug Commands.  (line   9) -* debug rip packet:                      RIP Debug Commands.  (line  15) -* debug rip zebra:                       RIP Debug Commands.  (line  22) -* debug ripng events:                    ripngd Terminal Mode Commands. -                                                              (line  11) -* debug ripng packet:                    ripngd Terminal Mode Commands. -                                                              (line  13) -* debug ripng zebra:                     ripngd Terminal Mode Commands. -                                                              (line  15) -* debug update:                          More Show IP BGP.    (line  35) -* default-information originate <1>:     Redistribute routes to OSPF. -                                                              (line  27) -* default-information originate:         How to Announce RIP route. -                                                              (line  51) -* default-information originate always:  Redistribute routes to OSPF. -                                                              (line  33) -* default-information originate always metric <0-16777214>: Redistribute routes to OSPF. -                                                              (line  35) -* default-information originate always metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF. -                                                              (line  37) -* default-information originate always metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF. -                                                              (line  39) -* default-information originate metric <0-16777214>: Redistribute routes to OSPF. -                                                              (line  28) -* default-information originate metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF. -                                                              (line  30) -* default-information originate metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF. -                                                              (line  32) -* default-metric <0-16777214>:           Redistribute routes to OSPF. -                                                              (line  52) -* default-metric <1-16>:                 RIP Metric Manipulation. -                                                              (line  11) -* description DESCRIPTION ...:           Interface Commands.  (line  24) -* distance <1-255> <1>:                  Redistribute routes to OSPF. -                                                              (line  55) -* distance <1-255>:                      RIP distance.        (line   9) -* distance <1-255> A.B.C.D/M <1>:        BGP distance.        (line  12) -* distance <1-255> A.B.C.D/M:            RIP distance.        (line  13) -* distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance.       (line  18) -* distance <1-255> A.B.C.D/M WORD:       BGP distance.        (line  13) -* distance bgp <1-255> <1-255> <1-255>:  BGP distance.        (line   7) -* distance ospf (intra-area|inter-area|external) <1-255>: Redistribute routes to OSPF. -                                                              (line  59) -* distribute-list ACCESS_LIST (in|out) IFNAME: ripngd Filtering Commands. -                                                              (line   7) -* distribute-list ACCESS_LIST DIRECT IFNAME: Filtering RIP Routes. -                                                              (line   9) -* distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF. -                                                              (line  48) -* distribute-list prefix PREFIX_LIST (in|out) IFNAME: Filtering RIP Routes. -                                                              (line  32) -* dump bgp all PATH:                     Dump BGP packets and table. -                                                              (line   7) -* dump bgp all PATH INTERVAL:            Dump BGP packets and table. -                                                              (line   8) -* dump bgp routes PATH:                  Dump BGP packets and table. -                                                              (line  15) -* dump bgp updates PATH:                 Dump BGP packets and table. -                                                              (line  11) -* dump bgp updates PATH INTERVAL:        Dump BGP packets and table. -                                                              (line  12) -* enable password PASSWORD:              Basic Config Commands. -                                                              (line  14) -* exec-timeout MINUTE:                   Basic Config Commands. -                                                              (line 116) -* exec-timeout MINUTE SECOND:            Basic Config Commands. -                                                              (line 117) -* flush_timer TIME:                      ripngd Configuration. -                                                              (line  12) -* hostname HOSTNAME:                     Basic Config Commands. -                                                              (line   7) -* interface IFNAME:                      Interface Commands.  (line   7) -* interface IFNAME area AREA:            OSPF6 router.        (line  12) -* ip address ADDRESS/PREFIX:             Interface Commands.  (line  13) -* ip address ADDRESS/PREFIX secondary:   Interface Commands.  (line  19) -* ip as-path access-list WORD {permit|deny} LINE: AS Path Access List. -                                                              (line   9) -* ip community-list <1-99> {permit|deny} COMMUNITY: Numbered BGP Community Lists. -                                                              (line  14) -* ip community-list <100-199> {permit|deny} COMMUNITY: Numbered BGP Community Lists. -                                                              (line  20) -* ip community-list expanded NAME {permit|deny} LINE: BGP Community Lists. -                                                              (line  30) -* ip community-list NAME {permit|deny} COMMUNITY: Numbered BGP Community Lists. -                                                              (line  25) -* ip community-list standard NAME {permit|deny} COMMUNITY: BGP Community Lists. -                                                              (line  20) -* ip extcommunity-list expanded NAME {permit|deny} LINE: BGP Extended Community Lists. -                                                              (line  21) -* ip extcommunity-list standard NAME {permit|deny} EXTCOMMUNITY: BGP Extended Community Lists. -                                                              (line  10) -* ip ospf authentication-key AUTH_KEY:   OSPF interface.      (line   7) -* ip ospf cost <1-65535>:                OSPF interface.      (line  30) -* ip ospf dead-interval <1-65535>:       OSPF interface.      (line  35) -* ip ospf dead-interval minimal hello-multiplier <2-20>: OSPF interface. -                                                              (line  37) -* ip ospf hello-interval <1-65535>:      OSPF interface.      (line  54) -* ip ospf message-digest-key KEYID md5 KEY: OSPF interface.   (line  13) -* ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point): OSPF interface. -                                                              (line  65) -* ip ospf priority <0-255>:              OSPF interface.      (line  69) -* ip ospf retransmit-interval <1-65535>: OSPF interface.      (line  76) -* ip ospf transmit-delay:                OSPF interface.      (line  82) -* ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List. -                                                              (line  16) -* ip prefix-list NAME description DESC:  ip prefix-list description. -                                                              (line   7) -* ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List. -                                                              (line  18) -* ip prefix-list sequence-number:        ip prefix-list sequential number control. -                                                              (line   7) -* ip rip authentication key-chain KEY-CHAIN: RIP Authentication. -                                                              (line  43) -* ip rip authentication mode md5:        RIP Authentication.  (line  29) -* ip rip authentication mode text:       RIP Authentication.  (line  33) -* ip rip authentication string STRING:   RIP Authentication.  (line  37) -* ip rip receive version VERSION:        RIP Version Control. (line  44) -* ip rip send version VERSION:           RIP Version Control. (line  33) -* ip route NETWORK GATEWAY:              Static Route Commands. -                                                              (line  10) -* ip route NETWORK GATEWAY DISTANCE:     Static Route Commands. -                                                              (line  36) -* ip route NETWORK NETMASK GATEWAY:      Static Route Commands. -                                                              (line  25) -* ip split-horizon:                      RIP Configuration.   (line  70) -* ip6 address ADDRESS/PREFIX:            Interface Commands.  (line  14) -* ipv6 nd adv-interval-option:           Router Advertisement. -                                                              (line 127) -* ipv6 nd home-agent-config-flag:        Router Advertisement. -                                                              (line 104) -* ipv6 nd home-agent-lifetime:           Router Advertisement. -                                                              (line 119) -* ipv6 nd home-agent-preference:         Router Advertisement. -                                                              (line 112) -* ipv6 nd managed-config-flag:           Router Advertisement. -                                                              (line  87) -* ipv6 nd other-config-flag:             Router Advertisement. -                                                              (line  96) -* ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME] [PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]: Router Advertisement. -                                                              (line  14) -* ipv6 nd ra-interval msec MILLISECONDS: Router Advertisement. -                                                              (line  57) -* ipv6 nd ra-interval SECONDS:           Router Advertisement. -                                                              (line  49) -* ipv6 nd ra-lifetime SECONDS:           Router Advertisement. -                                                              (line  65) -* ipv6 nd reachable-time MILLISECONDS:   Router Advertisement. -                                                              (line  77) -* ipv6 nd suppress-ra:                   Router Advertisement. -                                                              (line  10) -* ipv6 ospf6 cost COST:                  OSPF6 interface.     (line   7) -* ipv6 ospf6 dead-interval DEADINTERVAL: OSPF6 interface.     (line  13) -* ipv6 ospf6 hello-interval HELLOINTERVAL: OSPF6 interface.   (line  10) -* ipv6 ospf6 priority PRIORITY:          OSPF6 interface.     (line  20) -* ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL: OSPF6 interface. -                                                              (line  17) -* ipv6 ospf6 transmit-delay TRANSMITDELAY: OSPF6 interface.   (line  23) -* ipv6 route NETWORK GATEWAY:            Static Route Commands. -                                                              (line  77) -* ipv6 route NETWORK GATEWAY DISTANCE:   Static Route Commands. -                                                              (line  78) -* line vty:                              Basic Config Commands. -                                                              (line 107) -* link-detect:                           Interface Commands.  (line  37) -* list:                                  Terminal Mode Commands. -                                                              (line  24) -* log facility FACILITY:                 Basic Config Commands. -                                                              (line  81) -* log file FILENAME:                     Basic Config Commands. -                                                              (line  41) -* log file FILENAME LEVEL:               Basic Config Commands. -                                                              (line  42) -* log monitor:                           Basic Config Commands. -                                                              (line  68) -* log monitor LEVEL:                     Basic Config Commands. -                                                              (line  69) -* log record-priority:                   Basic Config Commands. -                                                              (line  87) -* log stdout:                            Basic Config Commands. -                                                              (line  28) -* log stdout LEVEL:                      Basic Config Commands. -                                                              (line  29) -* log syslog:                            Basic Config Commands. -                                                              (line  59) -* log syslog LEVEL:                      Basic Config Commands. -                                                              (line  60) -* log trap LEVEL:                        Basic Config Commands. -                                                              (line  17) -* logmsg LEVEL MESSAGE:                  Terminal Mode Commands. -                                                              (line  34) -* match as-path WORD:                    Using AS Path in Route Map. -                                                              (line   7) -* match aspath AS_PATH:                  Route Map Match Command. -                                                              (line  13) -* match community COMMUNITY_LIST:        Route Map Match Command. -                                                              (line  19) -* match community WORD:                  BGP Community in Route Map. -                                                              (line  13) -* match community WORD exact-match:      BGP Community in Route Map. -                                                              (line  14) -* match extcommunity WORD:               BGP Extended Communities in Route Map. -                                                              (line   7) -* match interface WORD:                  RIP route-map.       (line  26) -* match ip address ACCESS_LIST:          Route Map Match Command. -                                                              (line   7) -* match ip address prefix-list WORD:     RIP route-map.       (line  39) -* match ip address WORD:                 RIP route-map.       (line  38) -* match ip next-hop A.B.C.D:             RIP route-map.       (line  42) -* match ip next-hop IPV4_ADDR:           Route Map Match Command. -                                                              (line  10) -* match metric <0-4294967295>:           RIP route-map.       (line  47) -* match metric METRIC:                   Route Map Match Command. -                                                              (line  16) -* match peer {A.B.C.D|X:X::X:X}:         Commands for configuring a Route Server. -                                                              (line  34) -* max-metric router-lsa [on-startup|on-shutdown] <5-86400>: OSPF router. -                                                              (line 110) -* max-metric router-lsa administrative:  OSPF router.         (line 111) -* multicast:                             Interface Commands.  (line  27) -* neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD {import|export}: Commands for configuring a Route Server. -                                                              (line  29) -* neighbor A.B.C.D:                      RIP Configuration.   (line  34) -* neighbor A.B.C.D route-server-client:  Commands for configuring a Route Server. -                                                              (line  11) -* neighbor PEER default-originate:       BGP Peer commands.   (line  47) -* neighbor PEER description ...:         BGP Peer commands.   (line  20) -* neighbor PEER distribute-list NAME [in|out]: Peer filtering. -                                                              (line   7) -* neighbor PEER dont-capability-negotiate: Capability Negotiation. -                                                              (line  51) -* neighbor PEER ebgp-multihop:           BGP Peer commands.   (line  17) -* neighbor PEER filter-list NAME [in|out]: Peer filtering.    (line  13) -* neighbor PEER interface IFNAME:        BGP Peer commands.   (line  33) -* neighbor PEER maximum-prefix NUMBER:   BGP Peer commands.   (line  64) -* neighbor PEER next-hop-self:           BGP Peer commands.   (line  39) -* neighbor PEER override-capability:     Capability Negotiation. -                                                              (line  67) -* neighbor PEER peer-group WORD:         BGP Peer Group.      (line  10) -* neighbor PEER port PORT:               BGP Peer commands.   (line  53) -* neighbor PEER prefix-list NAME [in|out]: Peer filtering.    (line  11) -* neighbor PEER remote-as ASN:           Defining Peer.       (line   7) -* neighbor PEER route-map NAME [in|out]: Peer filtering.      (line  15) -* neighbor PEER route-reflector-client:  Route Reflector.     (line   9) -* neighbor PEER send-community:          BGP Peer commands.   (line  56) -* neighbor PEER shutdown:                BGP Peer commands.   (line  10) -* neighbor PEER strict-capability-match: Capability Negotiation. -                                                              (line  40) -* neighbor PEER update-source:           BGP Peer commands.   (line  44) -* neighbor PEER version VERSION:         BGP Peer commands.   (line  24) -* neighbor PEER weight WEIGHT:           BGP Peer commands.   (line  59) -* neighbor PEER-GROUP route-server-client: Commands for configuring a Route Server. -                                                              (line  10) -* neighbor WORD peer-group:              BGP Peer Group.      (line   7) -* neighbor X:X::X:X route-server-client: Commands for configuring a Route Server. -                                                              (line  12) -* network A.B.C.D/M:                     BGP route.           (line   7) -* network A.B.C.D/M area <0-4294967295>: OSPF router.         (line 155) -* network A.B.C.D/M area A.B.C.D:        OSPF router.         (line 154) -* network IFNAME <1>:                    ripngd Configuration. -                                                              (line  18) -* network IFNAME:                        RIP Configuration.   (line  27) -* network NETWORK <1>:                   ripngd Configuration. -                                                              (line  15) -* network NETWORK:                       RIP Configuration.   (line  15) -* no aggregate-address A.B.C.D/M:        Route Aggregation.   (line  18) -* no area <0-4294967295> authentication: OSPF area.           (line 129) -* no area <0-4294967295> export-list NAME: OSPF area.         (line  87) -* no area <0-4294967295> filter-list prefix NAME in: OSPF area. -                                                              (line 121) -* no area <0-4294967295> filter-list prefix NAME out: OSPF area. -                                                              (line 122) -* no area <0-4294967295> import-list NAME: OSPF area.         (line 111) -* no area <0-4294967295> range A.B.C.D/M: OSPF area.          (line  10) -* no area <0-4294967295> shortcut:       OSPF area.           (line  57) -* no area <0-4294967295> stub:           OSPF area.           (line  64) -* no area <0-4294967295> stub no-summary: OSPF area.          (line  76) -* no area <0-4294967295> virtual-link A.B.C.D: OSPF area.     (line  52) -* no area A.B.C.D authentication:        OSPF area.           (line 128) -* no area A.B.C.D default-cost <0-16777215>: OSPF area.       (line  81) -* no area A.B.C.D export-list NAME:      OSPF area.           (line  86) -* no area A.B.C.D filter-list prefix NAME in: OSPF area.      (line 119) -* no area A.B.C.D filter-list prefix NAME out: OSPF area.     (line 120) -* no area A.B.C.D import-list NAME:      OSPF area.           (line 110) -* no area A.B.C.D range A.B.C.D/M:       OSPF area.           (line   9) -* no area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area. (line  29) -* no area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area. -                                                              (line  36) -* no area A.B.C.D shortcut:              OSPF area.           (line  56) -* no area A.B.C.D stub:                  OSPF area.           (line  63) -* no area A.B.C.D stub no-summary:       OSPF area.           (line  75) -* no area A.B.C.D virtual-link A.B.C.D:  OSPF area.           (line  51) -* no auto-cost reference-bandwidth:      OSPF router.         (line 144) -* no bandwidth <1-10000000>:             Interface Commands.  (line  32) -* no banner motd:                        Basic Config Commands. -                                                              (line 113) -* no bgp multiple-instance:              Multiple instance.   (line  14) -* no debug event:                        More Show IP BGP.    (line  39) -* no debug keepalive:                    More Show IP BGP.    (line  43) -* no debug ospf ism:                     Debugging OSPF.      (line  14) -* no debug ospf ism (status|events|timers): Debugging OSPF.   (line  15) -* no debug ospf lsa:                     Debugging OSPF.      (line  24) -* no debug ospf lsa (generate|flooding|refresh): Debugging OSPF. -                                                              (line  25) -* no debug ospf nsm:                     Debugging OSPF.      (line  19) -* no debug ospf nsm (status|events|timers): Debugging OSPF.   (line  20) -* no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF. -                                                              (line  10) -* no debug ospf zebra:                   Debugging OSPF.      (line  29) -* no debug ospf zebra (interface|redistribute): Debugging OSPF. -                                                              (line  30) -* no debug update:                       More Show IP BGP.    (line  41) -* no default-information originate:      Redistribute routes to OSPF. -                                                              (line  40) -* no default-metric:                     Redistribute routes to OSPF. -                                                              (line  53) -* no default-metric <1-16>:              RIP Metric Manipulation. -                                                              (line  12) -* no distance <1-255> <1>:               Redistribute routes to OSPF. -                                                              (line  56) -* no distance <1-255>:                   RIP distance.        (line  10) -* no distance <1-255> A.B.C.D/M:         RIP distance.        (line  14) -* no distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance.    (line  19) -* no distance ospf:                      Redistribute routes to OSPF. -                                                              (line  60) -* no distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF. -                                                              (line  50) -* no exec-timeout:                       Basic Config Commands. -                                                              (line 124) -* no ip address ADDRESS/PREFIX:          Interface Commands.  (line  15) -* no ip address ADDRESS/PREFIX secondary: Interface Commands. (line  20) -* no ip as-path access-list WORD:        AS Path Access List. (line  12) -* no ip as-path access-list WORD {permit|deny} LINE: AS Path Access List. -                                                              (line  13) -* no ip community-list expanded NAME:    BGP Community Lists. (line  37) -* no ip community-list NAME:             BGP Community Lists. (line  35) -* no ip community-list standard NAME:    BGP Community Lists. (line  36) -* no ip extcommunity-list expanded NAME: BGP Extended Community Lists. -                                                              (line  29) -* no ip extcommunity-list NAME:          BGP Extended Community Lists. -                                                              (line  27) -* no ip extcommunity-list standard NAME: BGP Extended Community Lists. -                                                              (line  28) -* no ip ospf authentication-key:         OSPF interface.      (line   8) -* no ip ospf cost:                       OSPF interface.      (line  31) -* no ip ospf dead-interval:              OSPF interface.      (line  38) -* no ip ospf hello-interval:             OSPF interface.      (line  55) -* no ip ospf message-digest-key:         OSPF interface.      (line  14) -* no ip ospf network:                    OSPF interface.      (line  66) -* no ip ospf priority:                   OSPF interface.      (line  70) -* no ip ospf retransmit interval:        OSPF interface.      (line  77) -* no ip ospf transmit-delay:             OSPF interface.      (line  83) -* no ip prefix-list NAME:                IP Prefix List.      (line  67) -* no ip prefix-list NAME description [DESC]: ip prefix-list description. -                                                              (line  11) -* no ip prefix-list sequence-number:     ip prefix-list sequential number control. -                                                              (line  11) -* no ip rip authentication key-chain KEY-CHAIN: RIP Authentication. -                                                              (line  44) -* no ip rip authentication mode md5:     RIP Authentication.  (line  30) -* no ip rip authentication mode text:    RIP Authentication.  (line  34) -* no ip rip authentication string STRING: RIP Authentication. (line  38) -* no ip split-horizon:                   RIP Configuration.   (line  71) -* no ip6 address ADDRESS/PREFIX:         Interface Commands.  (line  16) -* no ipv6 nd adv-interval-option:        Router Advertisement. -                                                              (line 128) -* no ipv6 nd home-agent-config-flag:     Router Advertisement. -                                                              (line 105) -* no ipv6 nd home-agent-lifetime:        Router Advertisement. -                                                              (line 120) -* no ipv6 nd home-agent-preference:      Router Advertisement. -                                                              (line 113) -* no ipv6 nd managed-config-flag:        Router Advertisement. -                                                              (line  88) -* no ipv6 nd other-config-flag:          Router Advertisement. -                                                              (line  97) -* no ipv6 nd ra-interval:                Router Advertisement. -                                                              (line  50) -* no ipv6 nd ra-interval msec:           Router Advertisement. -                                                              (line  58) -* no ipv6 nd ra-lifetime:                Router Advertisement. -                                                              (line  66) -* no ipv6 nd reachable-time:             Router Advertisement. -                                                              (line  78) -* no ipv6 nd suppress-ra:                Router Advertisement. -                                                              (line   7) -* no link-detect:                        Interface Commands.  (line  38) -* no log facility:                       Basic Config Commands. -                                                              (line  82) -* no log file:                           Basic Config Commands. -                                                              (line  43) -* no log monitor:                        Basic Config Commands. -                                                              (line  70) -* no log record-priority:                Basic Config Commands. -                                                              (line  88) -* no log stdout:                         Basic Config Commands. -                                                              (line  30) -* no log syslog:                         Basic Config Commands. -                                                              (line  61) -* no log trap:                           Basic Config Commands. -                                                              (line  18) -* no max-metric router-lsa [on-startup|on-shutdown|administrative]: OSPF router. -                                                              (line 113) -* no multicast:                          Interface Commands.  (line  28) -* no neighbor A.B.C.D:                   RIP Configuration.   (line  35) -* no neighbor PEER default-originate:    BGP Peer commands.   (line  48) -* no neighbor PEER description ...:      BGP Peer commands.   (line  21) -* no neighbor PEER dont-capability-negotiate: Capability Negotiation. -                                                              (line  52) -* no neighbor PEER ebgp-multihop:        BGP Peer commands.   (line  18) -* no neighbor PEER interface IFNAME:     BGP Peer commands.   (line  34) -* no neighbor PEER maximum-prefix NUMBER: BGP Peer commands.  (line  65) -* no neighbor PEER next-hop-self:        BGP Peer commands.   (line  40) -* no neighbor PEER override-capability:  Capability Negotiation. -                                                              (line  68) -* no neighbor PEER route-reflector-client: Route Reflector.   (line  10) -* no neighbor PEER shutdown:             BGP Peer commands.   (line  11) -* no neighbor PEER strict-capability-match: Capability Negotiation. -                                                              (line  41) -* no neighbor PEER update-source:        BGP Peer commands.   (line  45) -* no neighbor PEER weight WEIGHT:        BGP Peer commands.   (line  60) -* no network A.B.C.D/M:                  BGP route.           (line  17) -* no network A.B.C.D/M area <0-4294967295>: OSPF router.      (line 157) -* no network A.B.C.D/M area A.B.C.D:     OSPF router.         (line 156) -* no network IFNAME:                     RIP Configuration.   (line  28) -* no network NETWORK:                    RIP Configuration.   (line  16) -* no ospf abr-type TYPE:                 OSPF router.         (line  27) -* no ospf rfc1583compatibility:          OSPF router.         (line  49) -* no ospf router-id:                     OSPF router.         (line  17) -* no passive interface INTERFACE:        OSPF router.         (line  60) -* no passive-interface IFNAME:           RIP Configuration.   (line  58) -* no redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF. -                                                              (line  22) -* no redistribute bgp:                   How to Announce RIP route. -                                                              (line  44) -* no redistribute connected:             How to Announce RIP route. -                                                              (line  26) -* no redistribute kernel:                How to Announce RIP route. -                                                              (line  10) -* no redistribute ospf:                  How to Announce RIP route. -                                                              (line  36) -* no redistribute static:                How to Announce RIP route. -                                                              (line  18) -* no route A.B.C.D/M:                    How to Announce RIP route. -                                                              (line  54) -* no router bgp ASN:                     BGP router.          (line  19) -* no router ospf:                        OSPF router.         (line  11) -* no router rip:                         RIP Configuration.   (line  12) -* no router zebra:                       Redistribute routes to OSPF. -                                                              (line  63) -* no shutdown:                           Interface Commands.  (line  10) -* no smux peer OID:                      MIB and command reference. -                                                              (line  29) -* no smux peer OID PASSWORD:             MIB and command reference. -                                                              (line  32) -* no timers basic:                       RIP Timers.          (line  31) -* no timers throttle spf:                OSPF router.         (line  72) -* no version:                            RIP Version Control. (line  30) -* offset-list ACCESS-LIST (in|out):      RIP Metric Manipulation. -                                                              (line  20) -* offset-list ACCESS-LIST (in|out) IFNAME: RIP Metric Manipulation. -                                                              (line  21) -* on-match goto N:                       Route Map Exit Action Command. -                                                              (line  11) -* on-match next:                         Route Map Exit Action Command. -                                                              (line   7) -* ospf abr-type TYPE:                    OSPF router.         (line  26) -* ospf rfc1583compatibility:             OSPF router.         (line  48) -* ospf router-id A.B.C.D:                OSPF router.         (line  16) -* passive interface INTERFACE:           OSPF router.         (line  59) -* passive-interface (IFNAME|default):    RIP Configuration.   (line  57) -* password PASSWORD:                     Basic Config Commands. -                                                              (line  10) -* redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF. -                                                              (line   7) -* redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>: Redistribute routes to OSPF. -                                                              (line  15) -* redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map WORD: Redistribute routes to OSPF. -                                                              (line  17) -* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2): Redistribute routes to OSPF. -                                                              (line  11) -* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>: Redistribute routes to OSPF. -                                                              (line  19) -* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map WORD: Redistribute routes to OSPF. -                                                              (line  21) -* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map WORD: Redistribute routes to OSPF. -                                                              (line  13) -* redistribute (kernel|connected|static|rip|bgp) ROUTE-MAP: Redistribute routes to OSPF. -                                                              (line   9) -* redistribute bgp:                      How to Announce RIP route. -                                                              (line  41) -* redistribute bgp metric <0-16>:        How to Announce RIP route. -                                                              (line  42) -* redistribute bgp route-map ROUTE-MAP:  How to Announce RIP route. -                                                              (line  43) -* redistribute connected <1>:            Redistribute to BGP. (line  13) -* redistribute connected <2>:            Redistribute routes to OSPF6. -                                                              (line   8) -* redistribute connected:                How to Announce RIP route. -                                                              (line  23) -* redistribute connected metric <0-16>:  How to Announce RIP route. -                                                              (line  24) -* redistribute connected route-map ROUTE-MAP: How to Announce RIP route. -                                                              (line  25) -* redistribute kernel <1>:               Redistribute to BGP. (line   7) -* redistribute kernel:                   How to Announce RIP route. -                                                              (line   7) -* redistribute kernel metric <0-16>:     How to Announce RIP route. -                                                              (line   8) -* redistribute kernel route-map ROUTE-MAP: How to Announce RIP route. -                                                              (line   9) -* redistribute ospf <1>:                 Redistribute to BGP. (line  19) -* redistribute ospf:                     How to Announce RIP route. -                                                              (line  33) -* redistribute ospf metric <0-16>:       How to Announce RIP route. -                                                              (line  34) -* redistribute ospf route-map ROUTE-MAP: How to Announce RIP route. -                                                              (line  35) -* redistribute rip:                      Redistribute to BGP. (line  16) -* redistribute ripng:                    Redistribute routes to OSPF6. -                                                              (line   9) -* redistribute static <1>:               Redistribute to BGP. (line  10) -* redistribute static <2>:               Redistribute routes to OSPF6. -                                                              (line   7) -* redistribute static:                   How to Announce RIP route. -                                                              (line  15) -* redistribute static metric <0-16>:     How to Announce RIP route. -                                                              (line  16) -* redistribute static route-map ROUTE-MAP: How to Announce RIP route. -                                                              (line  17) -* route A.B.C.D/M:                       How to Announce RIP route. -                                                              (line  53) -* route NETWORK:                         ripngd Configuration. -                                                              (line  21) -* route-map ROUTE-MAP-NAME (permit|deny) ORDER: Route Map Command. -                                                              (line   7) -* router bgp AS-NUMBER:                  BGP instance and view. -                                                              (line  11) -* router bgp AS-NUMBER view NAME:        BGP instance and view. -                                                              (line  28) -* router bgp ASN:                        BGP router.          (line  13) -* router ospf:                           OSPF router.         (line  10) -* router ospf6:                          OSPF6 router.        (line   7) -* router rip:                            RIP Configuration.   (line   7) -* router ripng:                          ripngd Configuration. -                                                              (line   9) -* router zebra <1>:                      Redistribute routes to OSPF. -                                                              (line  62) -* router zebra:                          ripngd Configuration. -                                                              (line  24) -* router-id A.B.C.D:                     OSPF6 router.        (line   9) -* service advanced-vty:                  Basic Config Commands. -                                                              (line 100) -* service integrated-vtysh-config:       VTY shell integrated configuration. -                                                              (line   7) -* service password-encryption:           Basic Config Commands. -                                                              (line  97) -* service terminal-length <0-512>:       Basic Config Commands. -                                                              (line 103) -* set as-path prepend AS-PATH:           Using AS Path in Route Map. -                                                              (line   9) -* set as-path prepend AS_PATH:           Route Map Set Command. -                                                              (line  19) -* set comm-list WORD delete:             BGP Community in Route Map. -                                                              (line  34) -* set community COMMUNITY <1>:           Route Map Set Command. -                                                              (line  22) -* set community COMMUNITY:               BGP Community in Route Map. -                                                              (line  23) -* set community COMMUNITY additive:      BGP Community in Route Map. -                                                              (line  24) -* set community none:                    BGP Community in Route Map. -                                                              (line  22) -* set extcommunity rt EXTCOMMUNITY:      BGP Extended Communities in Route Map. -                                                              (line   9) -* set extcommunity soo EXTCOMMUNITY:     BGP Extended Communities in Route Map. -                                                              (line  12) -* set ip next-hop A.B.C.D:               RIP route-map.       (line  52) -* set ip next-hop IPV4_ADDRESS:          Route Map Set Command. -                                                              (line   7) -* set ipv6 next-hop global IPV6_ADDRESS: Route Map Set Command. -                                                              (line  25) -* set ipv6 next-hop local IPV6_ADDRESS:  Route Map Set Command. -                                                              (line  28) -* set local-preference LOCAL_PREF:       Route Map Set Command. -                                                              (line  10) -* set metric <0-4294967295>:             RIP route-map.       (line  57) -* set metric METRIC:                     Route Map Set Command. -                                                              (line  16) -* set weight WEIGHT:                     Route Map Set Command. -                                                              (line  13) -* show debug:                            More Show IP BGP.    (line  31) -* show debugging ospf:                   Debugging OSPF.      (line  32) -* show debugging rip:                    RIP Debug Commands.  (line  29) -* show debugging ripng:                  ripngd Terminal Mode Commands. -                                                              (line   9) -* show interface:                        zebra Terminal Mode Commands. -                                                              (line  21) -* show ip bgp:                           Show IP BGP.         (line   7) -* show ip bgp A.B.C.D:                   Show IP BGP.         (line   8) -* show ip bgp community:                 Display BGP Routes by Community. -                                                              (line  11) -* show ip bgp community COMMUNITY <1>:   More Show IP BGP.    (line  11) -* show ip bgp community COMMUNITY:       Display BGP Routes by Community. -                                                              (line  12) -* show ip bgp community COMMUNITY exact-match <1>: More Show IP BGP. -                                                              (line  12) -* show ip bgp community COMMUNITY exact-match: Display BGP Routes by Community. -                                                              (line  13) -* show ip bgp community-list WORD <1>:   More Show IP BGP.    (line  16) -* show ip bgp community-list WORD:       Display BGP Routes by Community. -                                                              (line  20) -* show ip bgp community-list WORD exact-match <1>: More Show IP BGP. -                                                              (line  17) -* show ip bgp community-list WORD exact-match: Display BGP Routes by Community. -                                                              (line  21) -* show ip bgp neighbor [PEER]:           More Show IP BGP.    (line  23) -* show ip bgp regexp LINE <1>:           More Show IP BGP.    (line   7) -* show ip bgp regexp LINE:               Display BGP Routes by AS Path. -                                                              (line  10) -* show ip bgp summary:                   More Show IP BGP.    (line  21) -* show ip bgp view NAME:                 Viewing the view.    (line   9) -* show ip bgp X:X::X:X:                  Show IP BGP.         (line   9) -* show ip community-list:                BGP Community Lists. (line  42) -* show ip community-list NAME:           BGP Community Lists. (line  43) -* show ip extcommunity-list:             BGP Extended Community Lists. -                                                              (line  35) -* show ip extcommunity-list NAME:        BGP Extended Community Lists. -                                                              (line  36) -* show ip ospf:                          Showing OSPF information. -                                                              (line   7) -* show ip ospf database:                 Showing OSPF information. -                                                              (line  20) -* show ip ospf database (asbr-summary|external|network|router|summary): Showing OSPF information. -                                                              (line  23) -* show ip ospf database (asbr-summary|external|network|router|summary) adv-router ADV-ROUTER: Showing OSPF information. -                                                              (line  30) -* show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID: Showing OSPF information. -                                                              (line  25) -* show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID adv-router ADV-ROUTER: Showing OSPF information. -                                                              (line  28) -* show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID self-originate: Showing OSPF information. -                                                              (line  33) -* show ip ospf database (asbr-summary|external|network|router|summary) self-originate: Showing OSPF information. -                                                              (line  35) -* show ip ospf database max-age:         Showing OSPF information. -                                                              (line  37) -* show ip ospf database self-originate:  Showing OSPF information. -                                                              (line  39) -* show ip ospf interface [INTERFACE]:    Showing OSPF information. -                                                              (line  11) -* show ip ospf neighbor:                 Showing OSPF information. -                                                              (line  15) -* show ip ospf neighbor detail:          Showing OSPF information. -                                                              (line  17) -* show ip ospf neighbor INTERFACE:       Showing OSPF information. -                                                              (line  16) -* show ip ospf neighbor INTERFACE detail: Showing OSPF information. -                                                              (line  18) -* show ip ospf route:                    Showing OSPF information. -                                                              (line  41) -* show ip prefix-list:                   Showing ip prefix-list. -                                                              (line   7) -* show ip prefix-list detail:            Showing ip prefix-list. -                                                              (line  31) -* show ip prefix-list detail NAME:       Showing ip prefix-list. -                                                              (line  33) -* show ip prefix-list NAME:              Showing ip prefix-list. -                                                              (line  10) -* show ip prefix-list NAME A.B.C.D/M:    Showing ip prefix-list. -                                                              (line  17) -* show ip prefix-list NAME A.B.C.D/M first-match: Showing ip prefix-list. -                                                              (line  25) -* show ip prefix-list NAME A.B.C.D/M longer: Showing ip prefix-list. -                                                              (line  23) -* show ip prefix-list NAME seq NUM:      Showing ip prefix-list. -                                                              (line  13) -* show ip prefix-list summary:           Showing ip prefix-list. -                                                              (line  27) -* show ip prefix-list summary NAME:      Showing ip prefix-list. -                                                              (line  29) -* show ip protocols:                     Show RIP Information. -                                                              (line  17) -* show ip rip:                           Show RIP Information. -                                                              (line   9) -* show ip ripng:                         ripngd Terminal Mode Commands. -                                                              (line   7) -* show ip route:                         zebra Terminal Mode Commands. -                                                              (line   7) -* show ipforward:                        zebra Terminal Mode Commands. -                                                              (line  23) -* show ipv6 ospf6 [INSTANCE_ID]:         Showing OSPF6 information. -                                                              (line   7) -* show ipv6 ospf6 database:              Showing OSPF6 information. -                                                              (line  11) -* show ipv6 ospf6 interface:             Showing OSPF6 information. -                                                              (line  15) -* show ipv6 ospf6 neighbor:              Showing OSPF6 information. -                                                              (line  18) -* show ipv6 ospf6 request-list A.B.C.D:  Showing OSPF6 information. -                                                              (line  21) -* show ipv6 route:                       zebra Terminal Mode Commands. -                                                              (line  19) -* show ipv6 route ospf6:                 Showing OSPF6 information. -                                                              (line  24) -* show ipv6forward:                      zebra Terminal Mode Commands. -                                                              (line  28) -* show logging:                          Terminal Mode Commands. -                                                              (line  30) -* show version:                          Terminal Mode Commands. -                                                              (line  27) -* shutdown:                              Interface Commands.  (line   9) -* smux peer OID:                         MIB and command reference. -                                                              (line  28) -* smux peer OID PASSWORD:                MIB and command reference. -                                                              (line  31) -* table TABLENO:                         Static Route Commands. -                                                              (line  81) -* terminal length <0-512>:               Terminal Mode Commands. -                                                              (line  17) -* timers basic UPDATE TIMEOUT GARBAGE:   RIP Timers.          (line   7) -* timers throttle spf DELAY INITIAL-HOLDTIME MAX-HOLDTIME: OSPF router. -                                                              (line  71) -* username USERNAME nopassword:          VTY shell username.  (line   7) -* version VERSION:                       RIP Version Control. (line  20) -* who:                                   Terminal Mode Commands. -                                                              (line  21) -* write file:                            Terminal Mode Commands. -                                                              (line  10) -* write terminal:                        Terminal Mode Commands. -                                                              (line   7) - - -File: quagga.info,  Node: VTY Key Index,  Prev: Command Index,  Up: Top - -VTY Key Index -************* - - -* Menu: - -* <DEL>:                                 CLI Editing Commands. (line 11) -* <DOWN>:                                CLI Advanced Commands. -                                                               (line 17) -* <LEFT>:                                CLI Movement Commands. -                                                               (line 15) -* <RIGHT>:                               CLI Movement Commands. -                                                               (line 11) -* <TAB>:                                 CLI Advanced Commands. -                                                               (line 24) -* <UP>:                                  CLI Advanced Commands. -                                                               (line 21) -* ?:                                     CLI Advanced Commands. -                                                               (line 27) -* C-a:                                   CLI Movement Commands. -                                                               (line 24) -* C-b:                                   CLI Movement Commands. -                                                               (line 15) -* C-c:                                   CLI Advanced Commands. -                                                               (line 10) -* C-d:                                   CLI Editing Commands. (line 14) -* C-e:                                   CLI Movement Commands. -                                                               (line 27) -* C-f:                                   CLI Movement Commands. -                                                               (line 11) -* C-h:                                   CLI Editing Commands. (line 11) -* C-k:                                   CLI Editing Commands. (line 23) -* C-n:                                   CLI Advanced Commands. -                                                               (line 17) -* C-p:                                   CLI Advanced Commands. -                                                               (line 21) -* C-t:                                   CLI Editing Commands. (line 29) -* C-u:                                   CLI Editing Commands. (line 26) -* C-w:                                   CLI Editing Commands. (line 20) -* C-z:                                   CLI Advanced Commands. -                                                               (line 13) -* M-b:                                   CLI Movement Commands. -                                                               (line 21) -* M-d:                                   CLI Editing Commands. (line 17) -* M-f:                                   CLI Movement Commands. -                                                               (line 18) - - - -Tag Table: -Node: Top1971 -Node: Overview3329 -Node: About Quagga4730 -Node: System Architecture6983 -Node: Supported Platforms9673 -Node: Supported RFC10814 -Node: How to get Quagga12896 -Node: Mailing List13650 -Node: Bug Reports14097 -Node: Installation14975 -Node: Configure the Software15409 -Node: The Configure script and its options15657 -Node: Least-Privilege support18845 -Node: Linux notes20581 -Ref: Linux notes-Footnote-122439 -Node: Build the Software22505 -Node: Install the Software23053 -Node: Basic commands24513 -Node: Config Commands25288 -Node: Basic Config Commands26181 -Node: Sample Config File31671 -Node: Terminal Mode Commands32441 -Node: Common Invocation Options33538 -Node: Virtual Terminal Interfaces34945 -Node: VTY Overview35456 -Node: VTY Modes36707 -Node: VTY View Mode37157 -Node: VTY Enable Mode37407 -Node: VTY Other Modes37685 -Node: VTY CLI Commands37861 -Node: CLI Movement Commands38321 -Node: CLI Editing Commands38844 -Node: CLI Advanced Commands39432 -Node: Zebra40198 -Node: Invoking zebra40707 -Node: Interface Commands41238 -Node: Static Route Commands42770 -Node: zebra Terminal Mode Commands46043 -Node: RIP47008 -Node: Starting and Stopping ripd47969 -Node: RIP netmask49382 -Node: RIP Configuration50481 -Node: RIP Version Control53481 -Node: How to Announce RIP route55663 -Node: Filtering RIP Routes58228 -Node: RIP Metric Manipulation59695 -Node: RIP distance60608 -Node: RIP route-map61423 -Node: RIP Authentication63939 -Node: RIP Timers66182 -Node: Show RIP Information67470 -Node: RIP Debug Commands68843 -Node: RIPng69839 -Node: Invoking ripngd70159 -Node: ripngd Configuration70408 -Node: ripngd Terminal Mode Commands71159 -Node: ripngd Filtering Commands71523 -Node: OSPFv272032 -Node: Configuring ospfd72684 -Node: OSPF router73232 -Node: OSPF area81558 -Node: OSPF interface87683 -Ref: ip ospf dead-interval minimal89252 -Node: Redistribute routes to OSPF91824 -Node: Showing OSPF information94482 -Ref: show ip ospf94667 -Node: Debugging OSPF95998 -Node: OSPF Configuration Examples97073 -Node: OSPFv398443 -Node: OSPF6 router98796 -Node: OSPF6 area99150 -Node: OSPF6 interface99328 -Node: Redistribute routes to OSPF6100205 -Node: Showing OSPF6 information100521 -Node: OSPF6 Configuration Examples101378 -Node: BGP101799 -Node: Starting BGP102721 -Node: BGP router103298 -Node: BGP distance104542 -Node: BGP decision process104980 -Node: BGP network105462 -Node: BGP route105652 -Node: Route Aggregation106208 -Node: Redistribute to BGP106777 -Node: BGP Peer107304 -Node: Defining Peer107491 -Node: BGP Peer commands108104 -Node: Peer filtering110508 -Node: BGP Peer Group111016 -Node: BGP Address Family111329 -Node: Autonomous System111483 -Node: AS Path Regular Expression112360 -Node: Display BGP Routes by AS Path113607 -Node: AS Path Access List114047 -Node: Using AS Path in Route Map114514 -Node: Private AS Numbers114795 -Node: BGP Communities Attribute114953 -Node: BGP Community Lists117414 -Node: Numbered BGP Community Lists120068 -Node: BGP Community in Route Map121655 -Node: Display BGP Routes by Community123598 -Node: Using BGP Communities Attribute124767 -Node: BGP Extended Communities Attribute128335 -Node: BGP Extended Community Lists130107 -Node: BGP Extended Communities in Route Map131982 -Node: Displaying BGP routes132441 -Node: Show IP BGP132678 -Node: More Show IP BGP133378 -Node: Capability Negotiation134529 -Node: Route Reflector138001 -Node: Route Server138280 -Node: Multiple instance139346 -Node: BGP instance and view141191 -Node: Routing policy142571 -Node: Viewing the view143339 -Node: How to set up a 6-Bone connection143624 -Node: Dump BGP packets and table144996 -Node: BGP Configuration Examples145578 -Node: Configuring Quagga as a Route Server154529 -Node: Description of the Route Server model155490 -Ref: fig:normal-processing157067 -Ref: fig:full-mesh157669 -Ref: fig:route-server157764 -Ref: filter-delegation158159 -Ref: Route Server tasks159328 -Ref: Route-server path filter process159699 -Ref: fig:rs-processing162013 -Node: Commands for configuring a Route Server164422 -Node: Example of Route Server Configuration167449 -Node: Configuration of the BGP routers without Route Server168370 -Node: Configuration of the BGP routers with Route Server171253 -Node: Configuration of the Route Server itself172554 -Node: Further considerations about Import and Export route-maps177553 -Node: VTY shell180597 -Node: VTY shell username181266 -Node: VTY shell integrated configuration181898 -Node: Filtering183346 -Node: IP Access List183699 -Node: IP Prefix List184085 -Node: ip prefix-list description187104 -Node: ip prefix-list sequential number control187631 -Node: Showing ip prefix-list188173 -Node: Clear counter of ip prefix-list189281 -Node: Route Map189720 -Node: Route Map Command193165 -Node: Route Map Match Command193474 -Node: Route Map Set Command194098 -Node: Route Map Call Command195006 -Node: Route Map Exit Action Command195336 -Node: Route Map Examples195818 -Node: IPv6 Support196330 -Node: Router Advertisement196902 -Node: Kernel Interface202518 -Node: SNMP Support204475 -Node: Getting and installing an SNMP agent205074 -Node: SMUX configuration205647 -Node: MIB and command reference207783 -Node: Handling SNMP Traps209198 -Node: Zebra Protocol215277 -Node: Packet Binary Dump Format219366 -Node: Command Index230976 -Node: VTY Key Index289710 - -End Tag Table  | 
