File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / doc / quagga.info-1
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 11:53:41 2012 UTC (12 years, 1 month ago) by misho
Branches: quagga, MAIN
CVS tags: v0_99_20_1, HEAD
quagga 0.99.20.1

    1: This is quagga.info, produced by makeinfo version 4.13 from quagga.texi.
    2: 
    3: Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
    4: 
    5:      Permission is granted to make and distribute verbatim copies of
    6:      this manual provided the copyright notice and this permission
    7:      notice are preserved on all copies.
    8: 
    9:      Permission is granted to copy and distribute modified versions of
   10:      this manual under the conditions for verbatim copying, provided
   11:      that the entire resulting derived work is distributed under the
   12:      terms of a permission notice identical to this one.
   13: 
   14:      Permission is granted to copy and distribute translations of this
   15:      manual into another language, under the above conditions for
   16:      modified versions, except that this permission notice may be
   17:      stated in a translation approved by Kunihiro Ishiguro.
   18: 
   19: INFO-DIR-SECTION Routing Software:
   20: START-INFO-DIR-ENTRY
   21: * Quagga: (quagga).		The Quagga Software Routing Suite
   22: END-INFO-DIR-ENTRY
   23: 
   24:    This file documents the Quagga Software Routing Suite which manages
   25: common TCP/IP routing protocols.
   26: 
   27:    This is Edition 0.99.20.1, last updated 12 March 2012 of `The Quagga
   28: Manual', for Quagga Version 0.99.20.1.
   29: 
   30:    Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
   31: 
   32:      Permission is granted to make and distribute verbatim copies of
   33:      this manual provided the copyright notice and this permission
   34:      notice are preserved on all copies.
   35: 
   36:      Permission is granted to copy and distribute modified versions of
   37:      this manual under the conditions for verbatim copying, provided
   38:      that the entire resulting derived work is distributed under the
   39:      terms of a permission notice identical to this one.
   40: 
   41:      Permission is granted to copy and distribute translations of this
   42:      manual into another language, under the above conditions for
   43:      modified versions, except that this permission notice may be
   44:      stated in a translation approved by Kunihiro Ishiguro.
   45: 
   46: 
   47: File: quagga.info,  Node: Top,  Next: Overview,  Up: (dir)
   48: 
   49: Quagga
   50: ******
   51: 
   52: Quagga is an advanced routing software package that provides a suite of
   53: TCP/IP based routing protocols.  This is the Manual for Quagga
   54: 0.99.20.1. Quagga is a fork of GNU Zebra.
   55: 
   56:    Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
   57: 
   58:      Permission is granted to make and distribute verbatim copies of
   59:      this manual provided the copyright notice and this permission
   60:      notice are preserved on all copies.
   61: 
   62:      Permission is granted to copy and distribute modified versions of
   63:      this manual under the conditions for verbatim copying, provided
   64:      that the entire resulting derived work is distributed under the
   65:      terms of a permission notice identical to this one.
   66: 
   67:      Permission is granted to copy and distribute translations of this
   68:      manual into another language, under the above conditions for
   69:      modified versions, except that this permission notice may be
   70:      stated in a translation approved by Kunihiro Ishiguro.
   71: 
   72: * Menu:
   73: 
   74: * Overview::
   75: * Installation::
   76: * Basic commands::
   77: * Zebra::
   78: * RIP::
   79: * RIPng::
   80: * OSPFv2::
   81: * OSPFv3::
   82: * BGP::
   83: * Configuring Quagga as a Route Server::
   84: * VTY shell::
   85: * Filtering::
   86: * Route Map::
   87: * IPv6 Support::
   88: * Kernel Interface::
   89: * SNMP Support::
   90: * Zebra Protocol::
   91: * Packet Binary Dump Format::
   92: * Command Index::
   93: * VTY Key Index::
   94: * Index::
   95:    
   96: 
   97: File: quagga.info,  Node: Overview,  Next: Installation,  Prev: Top,  Up: Top
   98: 
   99: 1 Overview
  100: **********
  101: 
  102: Quagga is a routing software package that provides TCP/IP based routing
  103: services with routing protocols support such as RIPv1, RIPv2, RIPng,
  104: OSPFv2, OSPFv3, BGP-4, and BGP-4+ (*note Supported RFCs::). Quagga also
  105: supports special BGP Route Reflector and Route Server behavior.  In
  106: addition to traditional IPv4 routing protocols, Quagga also supports
  107: IPv6 routing protocols.  With SNMP daemon which supports SMUX protocol,
  108: Quagga provides routing protocol MIBs (*note SNMP Support::).
  109: 
  110:    Quagga uses an advanced software architecture to provide you with a
  111: high quality, multi server routing engine. Quagga has an interactive
  112: user interface for each routing protocol and supports common client
  113: commands.  Due to this design, you can add new protocol daemons to
  114: Quagga easily.  You can use Quagga library as your program's client
  115: user interface.
  116: 
  117:    Quagga is distributed under the GNU General Public License.
  118: 
  119: * Menu:
  120: 
  121: * About Quagga::                Basic information about Quagga
  122: * System Architecture::         The Quagga system architecture
  123: * Supported Platforms::         Supported platforms and future plans
  124: * Supported RFCs::               Supported RFCs
  125: * How to get Quagga::
  126: * Mailing List::                Mailing list information
  127: * Bug Reports::                 Mail address for bug data
  128: 
  129: 
  130: File: quagga.info,  Node: About Quagga,  Next: System Architecture,  Up: Overview
  131: 
  132: 1.1 About Quagga
  133: ================
  134: 
  135: Today, TCP/IP networks are covering all of the world.  The Internet has
  136: been deployed in many countries, companies, and to the home.  When you
  137: connect to the Internet your packet will pass many routers which have
  138: TCP/IP routing functionality.
  139: 
  140:    A system with Quagga installed acts as a dedicated router.  With
  141: Quagga, your machine exchanges routing information with other routers
  142: using routing protocols.  Quagga uses this information to update the
  143: kernel routing table so that the right data goes to the right place.
  144: You can dynamically change the configuration and you may view routing
  145: table information from the Quagga terminal interface.
  146: 
  147:    Adding to routing protocol support, Quagga can setup interface's
  148: flags, interface's address, static routes and so on.  If you have a
  149: small network, or a stub network, or xDSL connection, configuring the
  150: Quagga routing software is very easy.  The only thing you have to do is
  151: to set up the interfaces and put a few commands about static routes
  152: and/or default routes.  If the network is rather large, or if the
  153: network structure changes frequently, you will want to take advantage
  154: of Quagga's dynamic routing protocol support for protocols such as RIP,
  155: OSPF or BGP.
  156: 
  157:    Traditionally, UNIX based router configuration is done by `ifconfig'
  158: and `route' commands.  Status of routing table is displayed by
  159: `netstat' utility.  Almost of these commands work only if the user has
  160: root privileges.  Quagga has a different system administration method.
  161: There are two user modes in Quagga.  One is normal mode, the other is
  162: enable mode.  Normal mode user can only view system status, enable mode
  163: user can change system configuration.  This UNIX account independent
  164: feature will be great help to the router administrator.
  165: 
  166:    Currently, Quagga supports common unicast routing protocols.
  167: Multicast routing protocols such as BGMP, PIM-SM, PIM-DM may be
  168: supported in Quagga 2.0.  MPLS support is going on.  In the future,
  169: TCP/IP filtering control, QoS control, diffserv configuration will be
  170: added to Quagga. Quagga project's final goal is making a productive,
  171: quality, free TCP/IP routing software.
  172: 
  173: 
  174: File: quagga.info,  Node: System Architecture,  Next: Supported Platforms,  Prev: About Quagga,  Up: Overview
  175: 
  176: 1.2 System Architecture
  177: =======================
  178: 
  179: Traditional routing software is made as a one process program which
  180: provides all of the routing protocol functionalities.  Quagga takes a
  181: different approach.  It is made from a collection of several daemons
  182: that work together to build the routing table.  There may be several
  183: protocol-specific routing daemons and zebra the kernel routing manager.
  184: 
  185:    The `ripd' daemon handles the RIP protocol, while `ospfd' is a
  186: daemon which supports OSPF version 2.  `bgpd' supports the BGP-4
  187: protocol.  For changing the kernel routing table and for redistribution
  188: of routes between different routing protocols, there is a kernel
  189: routing table manager `zebra' daemon.  It is easy to add a new routing
  190: protocol daemons to the entire routing system without affecting any
  191: other software.  You need to run only the protocol daemon associated
  192: with routing protocols in use.  Thus, user may run a specific daemon
  193: and send routing reports to a central routing console.
  194: 
  195:    There is no need for these daemons to be running on the same
  196: machine. You can even run several same protocol daemons on the same
  197: machine.  This architecture creates new possibilities for the routing
  198: system.
  199: 
  200:      +----+  +----+  +-----+  +-----+
  201:      |bgpd|  |ripd|  |ospfd|  |zebra|
  202:      +----+  +----+  +-----+  +-----+
  203:                                  |
  204:      +---------------------------|--+
  205:      |                           v  |
  206:      |  UNIX Kernel  routing table  |
  207:      |                              |
  208:      +------------------------------+
  209: 
  210:          Quagga System Architecture
  211: 
  212:    Multi-process architecture brings extensibility, modularity and
  213: maintainability.  At the same time it also brings many configuration
  214: files and terminal interfaces.  Each daemon has it's own configuration
  215: file and terminal interface.  When you configure a static route, it
  216: must be done in `zebra' configuration file.  When you configure BGP
  217: network it must be done in `bgpd' configuration file.  This can be a
  218: very annoying thing.  To resolve the problem, Quagga provides
  219: integrated user interface shell called `vtysh'.  `vtysh' connects to
  220: each daemon with UNIX domain socket and then works as a proxy for user
  221: input.
  222: 
  223:    Quagga was planned to use multi-threaded mechanism when it runs with
  224: a kernel that supports multi-threads.  But at the moment, the thread
  225: library which comes with GNU/Linux or FreeBSD has some problems with
  226: running reliable services such as routing software, so we don't use
  227: threads at all.  Instead we use the `select(2)' system call for
  228: multiplexing the events.
  229: 
  230: 
  231: File: quagga.info,  Node: Supported Platforms,  Next: Supported RFCs,  Prev: System Architecture,  Up: Overview
  232: 
  233: 1.3 Supported Platforms
  234: =======================
  235: 
  236: Currently Quagga supports GNU/Linux, BSD and Solaris. Porting Quagga to
  237: other platforms is not too difficult as platform dependent code should
  238: most be limited to the `zebra' daemon.  Protocol daemons are mostly
  239: platform independent. Please let us know when you find out Quagga runs
  240: on a platform which is not listed below.
  241: 
  242:    The list of officially supported platforms are listed below. Note
  243: that Quagga may run correctly on other platforms, and may run with
  244: partial functionality on further platforms.
  245: 
  246: 
  247:    * GNU/Linux 2.4.x and higher
  248: 
  249:    * FreeBSD 4.x and higher
  250: 
  251:    * NetBSD 1.6 and higher
  252: 
  253:    * OpenBSD 2.5 and higher
  254: 
  255:    * Solaris 8 and higher
  256: 
  257: 
  258: File: quagga.info,  Node: Supported RFCs,  Next: How to get Quagga,  Prev: Supported Platforms,  Up: Overview
  259: 
  260: 1.4 Supported RFCs
  261: ==================
  262: 
  263: Below is the list of currently supported RFC's.
  264: 
  265: RFC1058
  266:      `Routing Information Protocol. C.L. Hedrick. Jun-01-1988.'
  267: 
  268: RF2082
  269:      `RIP-2 MD5 Authentication. F. Baker, R. Atkinson. January 1997.'
  270: 
  271: RFC2453
  272:      `RIP Version 2. G. Malkin. November 1998.'
  273: 
  274: RFC2080
  275:      `RIPng for IPv6. G. Malkin, R. Minnear. January 1997.'
  276: 
  277: RFC2328
  278:      `OSPF Version 2. J. Moy. April 1998.'
  279: 
  280: RFC2370
  281:      `The OSPF Opaque LSA Option R. Coltun. July 1998.'
  282: 
  283: RFC3101
  284:      `The OSPF Not-So-Stubby Area (NSSA) Option P. Murphy. January
  285:      2003.'
  286: 
  287: RFC2740
  288:      `OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999.'
  289: 
  290: RFC1771
  291:      `A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March
  292:      1995.'
  293: 
  294: RFC1965
  295:      `Autonomous System Confederations for BGP. P. Traina. June 1996.'
  296: 
  297: RFC1997
  298:      `BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August
  299:      1996.'
  300: 
  301: RFC2545
  302:      `Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain
  303:      Routing. P. Marques, F. Dupont. March 1999.'
  304: 
  305: RFC2796
  306:      `BGP Route Reflection An alternative to full mesh IBGP. T. Bates &
  307:      R. Chandrasekeran. June 1996.'
  308: 
  309: RFC2858
  310:      `Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R.
  311:      Chandra, D. Katz. June 2000.'
  312: 
  313: RFC2842
  314:      `Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder.
  315:      May 2000.'
  316: 
  317: RFC3137
  318:      `OSPF Stub Router Advertisement, A. Retana, L. Nguyen, R. White,
  319:      A. Zinin, D. McPherson. June 2001'
  320: 
  321:    When SNMP support is enabled, below RFC is also supported.
  322: 
  323: RFC1227
  324:      `SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.'
  325: 
  326: RFC1657
  327:      `Definitions of Managed Objects for the Fourth Version of the
  328:      Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J. Burruss,
  329:      J. Chu, Editor. July 1994.'
  330: 
  331: RFC1724
  332:      `RIP Version 2 MIB Extension. G. Malkin & F. Baker. November 1994.'
  333: 
  334: RFC1850
  335:      `OSPF Version 2 Management Information Base. F. Baker, R. Coltun.
  336:      November 1995.'
  337: 
  338: 
  339: 
  340: File: quagga.info,  Node: How to get Quagga,  Next: Mailing List,  Prev: Supported RFCs,  Up: Overview
  341: 
  342: 1.5 How to get Quagga
  343: =====================
  344: 
  345: The official Quagga web-site is located at:
  346: 
  347:    `http://www.quagga.net/'
  348: 
  349:    and contains further information, as well as links to additional
  350: resources.
  351: 
  352:    Quagga (http://www.quagga.net/) is a fork of GNU Zebra, whose
  353: web-site is located at:
  354: 
  355:    `http://www.zebra.org/'.
  356: 
  357: 
  358: File: quagga.info,  Node: Mailing List,  Next: Bug Reports,  Prev: How to get Quagga,  Up: Overview
  359: 
  360: 1.6 Mailing List
  361: ================
  362: 
  363: There is a mailing list for discussions about Quagga.  If you have any
  364: comments or suggestions to Quagga, please subscribe to:
  365: 
  366:    `http://lists.quagga.net/mailman/listinfo/quagga-users'.
  367: 
  368:    The Quagga site has further information on the available mailing
  369: lists, see:
  370: 
  371:    	`http://www.quagga.net/lists.php'
  372: 
  373: 
  374: File: quagga.info,  Node: Bug Reports,  Prev: Mailing List,  Up: Overview
  375: 
  376: 1.7 Bug Reports
  377: ===============
  378: 
  379: If you think you have found a bug, please send a bug report to:
  380: 
  381:    `http://bugzilla.quagga.net'
  382: 
  383:    When you send a bug report, please be careful about the points below.
  384: 
  385:    * Please note what kind of OS you are using.  If you use the IPv6
  386:      stack please note that as well.
  387: 
  388:    * Please show us the results of `netstat -rn' and `ifconfig -a'.
  389:      Information from zebra's VTY command `show ip route' will also be
  390:      helpful.
  391: 
  392:    * Please send your configuration file with the report.  If you
  393:      specify arguments to the configure script please note that too.
  394: 
  395:    Bug reports are very important for us to improve the quality of
  396: Quagga.  Quagga is still in the development stage, but please don't
  397: hesitate to send a bug report to `http://bugzilla.quagga.net'.
  398: 
  399: 
  400: File: quagga.info,  Node: Installation,  Next: Basic commands,  Prev: Overview,  Up: Top
  401: 
  402: 2 Installation
  403: **************
  404: 
  405: There are three steps for installing the software: configuration,
  406: compilation, and installation.
  407: 
  408: * Menu:
  409: 
  410: * Configure the Software::
  411: * Build the Software::
  412: * Install the Software::
  413: 
  414:    The easiest way to get Quagga running is to issue the following
  415: commands:
  416: 
  417:      % configure
  418:      % make
  419:      % make install
  420: 
  421: 
  422: File: quagga.info,  Node: Configure the Software,  Next: Build the Software,  Up: Installation
  423: 
  424: 2.1 Configure the Software
  425: ==========================
  426: 
  427: * Menu:
  428: 
  429: * The Configure script and its options::
  430: * Least-Privilege support::
  431: * Linux notes::
  432: 
  433: 
  434: File: quagga.info,  Node: The Configure script and its options,  Next: Least-Privilege support,  Up: Configure the Software
  435: 
  436: 2.1.1 The Configure script and its options
  437: ------------------------------------------
  438: 
  439: Quagga has an excellent configure script which automatically detects
  440: most host configurations.  There are several additional configure
  441: options you can use to turn off IPv6 support, to disable the
  442: compilation of specific daemons, and to enable SNMP support.
  443: 
  444: `--enable-guile'
  445:      Turn on compilation of the zebra-guile interpreter.  You will need
  446:      the guile library to make this.  zebra-guile implementation is not
  447:      yet finished.  So this option is only useful for zebra-guile
  448:      developers.
  449: 
  450: `--disable-ipv6'
  451:      Turn off IPv6 related features and daemons.  Quagga configure
  452:      script automatically detects IPv6 stack.  But sometimes you might
  453:      want to disable IPv6 support of Quagga.
  454: 
  455: `--disable-zebra'
  456:      Do not build zebra daemon.
  457: 
  458: `--disable-ripd'
  459:      Do not build ripd.
  460: 
  461: `--disable-ripngd'
  462:      Do not build ripngd.
  463: 
  464: `--disable-ospfd'
  465:      Do not build ospfd.
  466: 
  467: `--disable-ospf6d'
  468:      Do not build ospf6d.
  469: 
  470: `--disable-bgpd'
  471:      Do not build bgpd.
  472: 
  473: `--disable-bgp-announce'
  474:      Make `bgpd' which does not make bgp announcements at all.  This
  475:      feature is good for using `bgpd' as a BGP announcement listener.
  476: 
  477: `--enable-netlink'
  478:      Force to enable GNU/Linux netlink interface.  Quagga configure
  479:      script detects netlink interface by checking a header file.  When
  480:      the header file does not match to the current running kernel,
  481:      configure script will not turn on netlink support.
  482: 
  483: `--enable-snmp'
  484:      Enable SNMP support.  By default, SNMP support is disabled.
  485: 
  486: `--enable-opaque-lsa'
  487:      Enable support for Opaque LSAs (RFC2370) in ospfd.
  488: 
  489: `--disable-ospfapi'
  490:      Disable support for OSPF-API, an API to interface directly with
  491:      ospfd.  OSPF-API is enabled if -enable-opaque-lsa is set.
  492: 
  493: `--disable-ospfclient'
  494:      Disable building of the example OSPF-API client.
  495: 
  496: `--enable-ospf-te'
  497:      Enable support for OSPF Traffic Engineering Extension
  498:      (internet-draft) this requires support for Opaque LSAs.
  499: 
  500: `--enable-multipath=ARG'
  501:      Enable support for Equal Cost Multipath. ARG is the maximum number
  502:      of ECMP paths to allow, set to 0 to allow unlimited number of
  503:      paths.
  504: 
  505: `--enable-rtadv'
  506:      Enable support IPV6 router advertisement in zebra.
  507: 
  508:    You may specify any combination of the above options to the configure
  509: script.  By default, the executables are placed in `/usr/local/sbin'
  510: and the configuration files in `/usr/local/etc'. The `/usr/local/'
  511: installation prefix and other directories may be changed using the
  512: following options to the configuration script.
  513: 
  514: `--prefix=PREFIX'
  515:      Install architecture-independent files in PREFIX [/usr/local].
  516: 
  517: `--sysconfdir=DIR'
  518:      Look for configuration files in DIR [PREFIX/etc]. Note that sample
  519:      configuration files will be installed here.
  520: 
  521: `--localstatedir=DIR'
  522:      Configure zebra to use DIR for local state files, such as pid
  523:      files and unix sockets.
  524: 
  525:      % ./configure --disable-ipv6
  526: 
  527:    This command will configure zebra and the routing daemons.
  528: 
  529: 
  530: File: quagga.info,  Node: Least-Privilege support,  Next: Linux notes,  Prev: The Configure script and its options,  Up: Configure the Software
  531: 
  532: 2.1.2 Least-Privilege support
  533: -----------------------------
  534: 
  535: Additionally, you may configure zebra to drop its elevated privileges
  536: shortly after startup and switch to another user. The configure script
  537: will automatically try to configure this support. There are three
  538: configure options to control the behaviour of Quagga daemons.
  539: 
  540: `--enable-user=USER'
  541:      Switch to user ARG shortly after startup, and run as user ARG in
  542:      normal operation.
  543: 
  544: `--enable-group=GROUP'
  545:      Switch real and effective group to GROUP shortly after startup.
  546: 
  547: `--enable-vty-group=GROUP'
  548:      Create Unix Vty sockets (for use with vtysh) with group owndership
  549:      set to GROUP. This allows one to create a seperate group which is
  550:      restricted to accessing only the Vty sockets, hence allowing one to
  551:      delegate this group to individual users, or to run vtysh setgid to
  552:      this group.
  553: 
  554:    The default user and group which will be configured is 'quagga' if
  555: no user or group is specified. Note that this user or group requires
  556: write access to the local state directory (see -localstatedir) and
  557: requires at least read access, and write access if you wish to allow
  558: daemons to write out their configuration, to the configuration
  559: directory (see -sysconfdir).
  560: 
  561:    On systems which have the 'libcap' capabilities manipulation library
  562: (currently only linux), the quagga system will retain only minimal
  563: capabilities required, further it will only raise these capabilities for
  564: brief periods. On systems without libcap, quagga will run as the user
  565: specified and only raise its uid back to uid 0 for brief periods.
  566: 
  567: 
  568: File: quagga.info,  Node: Linux notes,  Prev: Least-Privilege support,  Up: Configure the Software
  569: 
  570: 2.1.3 Linux Notes
  571: -----------------
  572: 
  573: There are several options available only to GNU/Linux systems: (1).  If
  574: you use GNU/Linux, make sure that the current kernel configuration is
  575: what you want.  Quagga will run with any kernel configuration but some
  576: recommendations do exist.
  577: 
  578: CONFIG_NETLINK
  579:      Kernel/User netlink socket. This is a brand new feature which
  580:      enables an advanced interface between the Linux kernel and zebra
  581:      (*note Kernel Interface::).
  582: 
  583: CONFIG_RTNETLINK
  584:      Routing messages.  This makes it possible to receive netlink
  585:      routing messages.  If you specify this option, `zebra' can detect
  586:      routing information updates directly from the kernel (*note Kernel
  587:      Interface::).
  588: 
  589: CONFIG_IP_MULTICAST
  590:      IP: multicasting.  This option should be specified when you use
  591:      `ripd' (*note RIP::) or `ospfd' (*note OSPFv2::) because these
  592:      protocols use multicast.
  593: 
  594: 
  595:    IPv6 support has been added in GNU/Linux kernel version 2.2.  If you
  596: try to use the Quagga IPv6 feature on a GNU/Linux kernel, please make
  597: sure the following libraries have been installed.  Please note that
  598: these libraries will not be needed when you uses GNU C library 2.1 or
  599: upper.
  600: 
  601: `inet6-apps'
  602:      The `inet6-apps' package includes basic IPv6 related libraries such
  603:      as `inet_ntop' and `inet_pton'.  Some basic IPv6 programs such as
  604:      `ping', `ftp', and `inetd' are also included. The `inet-apps' can
  605:      be found at `ftp://ftp.inner.net/pub/ipv6/'.
  606: 
  607: `net-tools'
  608:      The `net-tools' package provides an IPv6 enabled interface and
  609:      routing utility.  It contains `ifconfig', `route', `netstat', and
  610:      other tools.  `net-tools' may be found at
  611:      `http://www.tazenda.demon.co.uk/phil/net-tools/'.
  612: 
  613: 
  614:    ---------- Footnotes ----------
  615: 
  616:    (1) GNU/Linux has very flexible kernel configuration features
  617: 
  618: 
  619: File: quagga.info,  Node: Build the Software,  Next: Install the Software,  Prev: Configure the Software,  Up: Installation
  620: 
  621: 2.2 Build the Software
  622: ======================
  623: 
  624: After configuring the software, you will need to compile it for your
  625: system. Simply issue the command `make' in the root of the source
  626: directory and the software will be compiled. If you have *any* problems
  627: at this stage, be certain to send a bug report *Note Bug Reports::.
  628: 
  629:      % ./configure
  630:      .
  631:      .
  632:      .
  633:      ./configure output
  634:      .
  635:      .
  636:      .
  637:      % make
  638: 
  639: 
  640: File: quagga.info,  Node: Install the Software,  Prev: Build the Software,  Up: Installation
  641: 
  642: 2.3 Install the Software
  643: ========================
  644: 
  645: Installing the software to your system consists of copying the compiled
  646: programs and supporting files to a standard location. After the
  647: installation process has completed, these files have been copied from
  648: your work directory to `/usr/local/bin', and `/usr/local/etc'.
  649: 
  650:    To install the Quagga suite, issue the following command at your
  651: shell prompt: `make install'.
  652: 
  653:      %
  654:      % make install
  655:      %
  656: 
  657:    Quagga daemons have their own terminal interface or VTY.  After
  658: installation, you have to setup each beast's port number to connect to
  659: them.  Please add the following entries to `/etc/services'.
  660: 
  661:      zebrasrv      2600/tcp		  # zebra service
  662:      zebra         2601/tcp		  # zebra vty
  663:      ripd          2602/tcp		  # RIPd vty
  664:      ripngd        2603/tcp		  # RIPngd vty
  665:      ospfd         2604/tcp		  # OSPFd vty
  666:      bgpd          2605/tcp		  # BGPd vty
  667:      ospf6d        2606/tcp		  # OSPF6d vty
  668:      ospfapi       2607/tcp		  # ospfapi
  669:      isisd         2608/tcp		  # ISISd vty
  670: 
  671:    If you use a FreeBSD newer than 2.2.8, the above entries are already
  672: added to `/etc/services' so there is no need to add it. If you specify
  673: a port number when starting the daemon, these entries may not be needed.
  674: 
  675:    You may need to make changes to the config files in
  676: `/etc/quagga/*.conf'. *Note Config Commands::.
  677: 
  678: 
  679: File: quagga.info,  Node: Basic commands,  Next: Zebra,  Prev: Installation,  Up: Top
  680: 
  681: 3 Basic commands
  682: ****************
  683: 
  684: There are five routing daemons in use, and there is one manager daemon.
  685: These daemons may be located on separate machines from the manager
  686: daemon.  Each of these daemons will listen on a particular port for
  687: incoming VTY connections.  The routing daemons are:
  688: 
  689:    * `ripd', `ripngd', `ospfd', `ospf6d', `bgpd'
  690: 
  691:    * `zebra'
  692: 
  693:    The following sections discuss commands common to all the routing
  694: daemons.
  695: 
  696: * Menu:
  697: 
  698: * Terminal Mode Commands::      Common commands used in a VTY
  699: * Config Commands::             Commands used in config files
  700: * Common Invocation Options::   Starting the daemons
  701: * Virtual Terminal Interfaces:: Interacting with the daemons
  702: 
  703: 
  704: File: quagga.info,  Node: Config Commands,  Next: Common Invocation Options,  Prev: Terminal Mode Commands,  Up: Basic commands
  705: 
  706: 3.1 Config Commands
  707: ===================
  708: 
  709: * Menu:
  710: 
  711: * Basic Config Commands::       Some of the generic config commands
  712: * Sample Config File::          An example config file
  713: 
  714:    In a config file, you can write the debugging options, a vty's
  715: password, routing daemon configurations, a log file name, and so forth.
  716: This information forms the initial command set for a routing beast as
  717: it is starting.
  718: 
  719:    Config files are generally found in:
  720: 
  721:      `/etc/quagga/*.conf'
  722: 
  723:    Each of the daemons has its own config file.  For example, zebra's
  724: default config file name is:
  725: 
  726:      `/etc/quagga/zebra.conf'
  727: 
  728:    The daemon name plus `.conf' is the default config file name. You
  729: can specify a config file using the `-f' or `--config-file' options
  730: when starting the daemon.
  731: 
  732: 
  733: File: quagga.info,  Node: Basic Config Commands,  Next: Sample Config File,  Up: Config Commands
  734: 
  735: 3.1.1 Basic Config Commands
  736: ---------------------------
  737: 
  738:  -- Command: hostname HOSTNAME
  739:      Set hostname of the router.
  740: 
  741:  -- Command: password PASSWORD
  742:      Set password for vty interface.  If there is no password, a vty
  743:      won't accept connections.
  744: 
  745:  -- Command: enable password PASSWORD
  746:      Set enable password.
  747: 
  748:  -- Command: log trap LEVEL
  749:  -- Command: no log trap
  750:      These commands are deprecated and are present only for historical
  751:      compatibility.  The log trap command sets the current logging
  752:      level for all enabled logging destinations, and it sets the
  753:      default for all future logging commands that do not specify a
  754:      level.  The normal default logging level is debugging.  The `no'
  755:      form of the command resets the default level for future logging
  756:      commands to debugging, but it does not change the logging level of
  757:      existing logging destinations.
  758: 
  759:  -- Command: log stdout
  760:  -- Command: log stdout LEVEL
  761:  -- Command: no log stdout
  762:      Enable logging output to stdout.  If the optional second argument
  763:      specifying the logging level is not present, the default logging
  764:      level (typically debugging, but can be changed using the
  765:      deprecated `log trap' command) will be used.  The `no' form of the
  766:      command disables logging to stdout.  The `level' argument must
  767:      have one of these values: emergencies, alerts, critical, errors,
  768:      warnings, notifications, informational, or debugging.  Note that
  769:      the existing code logs its most important messages with severity
  770:      `errors'.
  771: 
  772:  -- Command: log file FILENAME
  773:  -- Command: log file FILENAME LEVEL
  774:  -- Command: no log file
  775:      If you want to log into a file, please specify `filename' as in
  776:      this example:
  777:           log file /var/log/quagga/bgpd.log informational
  778:      If the optional second argument specifying the logging level is
  779:      not present, the default logging level (typically debugging, but
  780:      can be changed using the deprecated `log trap' command) will be
  781:      used.  The `no' form of the command disables logging to a file.
  782: 
  783:      Note: if you do not configure any file logging, and a daemon
  784:      crashes due to a signal or an assertion failure, it will attempt
  785:      to save the crash information in a file named
  786:      /var/tmp/quagga.<daemon name>.crashlog.  For security reasons,
  787:      this will not happen if the file exists already, so it is
  788:      important to delete the file after reporting the crash information.
  789: 
  790:  -- Command: log syslog
  791:  -- Command: log syslog LEVEL
  792:  -- Command: no log syslog
  793:      Enable logging output to syslog.  If the optional second argument
  794:      specifying the logging level is not present, the default logging
  795:      level (typically debugging, but can be changed using the
  796:      deprecated `log trap' command) will be used.  The `no' form of the
  797:      command disables logging to syslog.
  798: 
  799:  -- Command: log monitor
  800:  -- Command: log monitor LEVEL
  801:  -- Command: no log monitor
  802:      Enable logging output to vty terminals that have enabled logging
  803:      using the `terminal monitor' command.  By default, monitor logging
  804:      is enabled at the debugging level, but this command (or the
  805:      deprecated `log trap' command) can be used to change the monitor
  806:      logging level.  If the optional second argument specifying the
  807:      logging level is not present, the default logging level (typically
  808:      debugging, but can be changed using the deprecated `log trap'
  809:      command) will be used.  The `no' form of the command disables
  810:      logging to terminal monitors.
  811: 
  812:  -- Command: log facility FACILITY
  813:  -- Command: no log facility
  814:      This command changes the facility used in syslog messages.  The
  815:      default facility is `daemon'.  The `no' form of the command resets
  816:      the facility to the default `daemon' facility.
  817: 
  818:  -- Command: log record-priority
  819:  -- Command: no log record-priority
  820:      To include the severity in all messages logged to a file, to
  821:      stdout, or to a terminal monitor (i.e. anything except syslog),
  822:      use the `log record-priority' global configuration command.  To
  823:      disable this option, use the `no' form of the command.  By default,
  824:      the severity level is not included in logged messages.  Note: some
  825:      versions of syslogd (including Solaris) can be configured to
  826:      include the facility and level in the messages emitted.
  827: 
  828:  -- Command: log timestamp precision <0-6>
  829:  -- Command: no log timestamp precision
  830:      This command sets the precision of log message timestamps to the
  831:      given number of digits after the decimal point.  Currently, the
  832:      value must be in the range 0 to 6 (i.e. the maximum precision is
  833:      microseconds).  To restore the default behavior (1-second
  834:      accuracy), use the `no' form of the command, or set the precision
  835:      explicitly to 0.
  836: 
  837:           log timestamp precision 3
  838: 
  839:      In this example, the precision is set to provide timestamps with
  840:      millisecond accuracy.
  841: 
  842:  -- Command: service password-encryption
  843:      Encrypt password.
  844: 
  845:  -- Command: service advanced-vty
  846:      Enable advanced mode VTY.
  847: 
  848:  -- Command: service terminal-length <0-512>
  849:      Set system wide line configuration.  This configuration command
  850:      applies to all VTY interfaces.
  851: 
  852:  -- Command: line vty
  853:      Enter vty configuration mode.
  854: 
  855:  -- Command: banner motd default
  856:      Set default motd string.
  857: 
  858:  -- Command: no banner motd
  859:      No motd banner string will be printed.
  860: 
  861:  -- Line Command: exec-timeout MINUTE
  862:  -- Line Command: exec-timeout MINUTE SECOND
  863:      Set VTY connection timeout value.  When only one argument is
  864:      specified it is used for timeout value in minutes.  Optional
  865:      second argument is used for timeout value in seconds. Default
  866:      timeout value is 10 minutes.  When timeout value is zero, it means
  867:      no timeout.
  868: 
  869:  -- Line Command: no exec-timeout
  870:      Do not perform timeout at all.  This command is as same as
  871:      `exec-timeout 0 0'.
  872: 
  873:  -- Line Command: access-class ACCESS-LIST
  874:      Restrict vty connections with an access list.
  875: 
  876: 
  877: File: quagga.info,  Node: Sample Config File,  Prev: Basic Config Commands,  Up: Config Commands
  878: 
  879: 3.1.2 Sample Config File
  880: ------------------------
  881: 
  882: Below is a sample configuration file for the zebra daemon.
  883: 
  884:      !
  885:      ! Zebra configuration file
  886:      !
  887:      hostname Router
  888:      password zebra
  889:      enable password zebra
  890:      !
  891:      log stdout
  892:      !
  893:      !
  894: 
  895:    '!' and '#' are comment characters.  If the first character of the
  896: word is one of the comment characters then from the rest of the line
  897: forward will be ignored as a comment.
  898: 
  899:      password zebra!password
  900: 
  901:    If a comment character is not the first character of the word, it's a
  902: normal character. So in the above example '!' will not be regarded as a
  903: comment and the password is set to 'zebra!password'.
  904: 
  905: 
  906: File: quagga.info,  Node: Terminal Mode Commands,  Next: Config Commands,  Up: Basic commands
  907: 
  908: 3.2 Terminal Mode Commands
  909: ==========================
  910: 
  911:  -- Command: write terminal
  912:      Displays the current configuration to the vty interface.
  913: 
  914:  -- Command: write file
  915:      Write current configuration to configuration file.
  916: 
  917:  -- Command: configure terminal
  918:      Change to configuration mode.  This command is the first step to
  919:      configuration.
  920: 
  921:  -- Command: terminal length <0-512>
  922:      Set terminal display length to <0-512>.  If length is 0, no
  923:      display control is performed.
  924: 
  925:  -- Command: who
  926:      Show a list of currently connected vty sessions.
  927: 
  928:  -- Command: list
  929:      List all available commands.
  930: 
  931:  -- Command: show version
  932:      Show the current version of Quagga and its build host information.
  933: 
  934:  -- Command: show logging
  935:      Shows the current configuration of the logging system.  This
  936:      includes the status of all logging destinations.
  937: 
  938:  -- Command: logmsg LEVEL MESSAGE
  939:      Send a message to all logging destinations that are enabled for
  940:      messages of the given severity.
  941: 
  942: 
  943: File: quagga.info,  Node: Common Invocation Options,  Next: Virtual Terminal Interfaces,  Prev: Config Commands,  Up: Basic commands
  944: 
  945: 3.3 Common Invocation Options
  946: =============================
  947: 
  948: These options apply to all Quagga daemons.
  949: 
  950: `-d'
  951: `--daemon'
  952:      Runs in daemon mode.
  953: 
  954: `-f FILE'
  955: `--config_file=FILE'
  956:      Set configuration file name.
  957: 
  958: `-h'
  959: `--help'
  960:      Display this help and exit.
  961: 
  962: `-i FILE'
  963: `--pid_file=FILE'
  964:      Upon startup the process identifier of the daemon is written to a
  965:      file, typically in `/var/run'.  This file can be used by the init
  966:      system to implement commands such as `.../init.d/zebra status',
  967:      `.../init.d/zebra restart' or `.../init.d/zebra stop'.
  968: 
  969:      The file name is an run-time option rather than a configure-time
  970:      option so that multiple routing daemons can be run simultaneously.
  971:      This is useful when using Quagga to implement a routing looking
  972:      glass.  One machine can be used to collect differing routing views
  973:      from differing points in the network.
  974: 
  975: `-A ADDRESS'
  976: `--vty_addr=ADDRESS'
  977:      Set the VTY local address to bind to. If set, the VTY socket will
  978:      only be bound to this address.
  979: 
  980: `-P PORT'
  981: `--vty_port=PORT'
  982:      Set the VTY TCP port number. If set to 0 then the TCP VTY sockets
  983:      will not be opened.
  984: 
  985: `-u USER'
  986: `--vty_addr=USER'
  987:      Set the user and group to run as.
  988: 
  989: `-v'
  990: `--version'
  991:      Print program version.
  992: 
  993: 
  994: 
  995: File: quagga.info,  Node: Virtual Terminal Interfaces,  Prev: Common Invocation Options,  Up: Basic commands
  996: 
  997: 3.4 Virtual Terminal Interfaces
  998: ===============================
  999: 
 1000: VTY - Virtual Terminal [aka TeletYpe] Interface is a command line
 1001: interface (CLI) for user interaction with the routing daemon.
 1002: 
 1003: * Menu:
 1004: 
 1005: * VTY Overview::                Basics about VTYs
 1006: * VTY Modes::                   View, Enable, and Other VTY modes
 1007: * VTY CLI Commands::            Commands for movement, edition, and management
 1008: 
 1009: 
 1010: File: quagga.info,  Node: VTY Overview,  Next: VTY Modes,  Up: Virtual Terminal Interfaces
 1011: 
 1012: 3.4.1 VTY Overview
 1013: ------------------
 1014: 
 1015: VTY stands for Virtual TeletYpe interface.  It means you can connect to
 1016: the daemon via the telnet protocol.
 1017: 
 1018:    To enable a VTY interface, you have to setup a VTY password.  If
 1019: there is no VTY password, one cannot connect to the VTY interface at
 1020: all.
 1021: 
 1022:      % telnet localhost 2601
 1023:      Trying 127.0.0.1...
 1024:      Connected to localhost.
 1025:      Escape character is '^]'.
 1026: 
 1027:      Hello, this is Quagga (version 0.99.20.1)
 1028:      Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
 1029: 
 1030:      User Access Verification
 1031: 
 1032:      Password: XXXXX
 1033:      Router> ?
 1034:        enable            Turn on privileged commands
 1035:        exit              Exit current mode and down to previous mode
 1036:        help              Description of the interactive help system
 1037:        list              Print command list
 1038:        show              Show running system information
 1039:        who               Display who is on a vty
 1040:      Router> enable
 1041:      Password: XXXXX
 1042:      Router# configure terminal
 1043:      Router(config)# interface eth0
 1044:      Router(config-if)# ip address 10.0.0.1/8
 1045:      Router(config-if)# ^Z
 1046:      Router#
 1047: 
 1048:    '?' is very useful for looking up commands.
 1049: 
 1050: 
 1051: File: quagga.info,  Node: VTY Modes,  Next: VTY CLI Commands,  Prev: VTY Overview,  Up: Virtual Terminal Interfaces
 1052: 
 1053: 3.4.2 VTY Modes
 1054: ---------------
 1055: 
 1056: There are three basic VTY modes:
 1057: 
 1058: * Menu:
 1059: 
 1060: * VTY View Mode::               Mode for read-only interaction
 1061: * VTY Enable Mode::             Mode for read-write interaction
 1062: * VTY Other Modes::             Special modes (tftp, etc)
 1063: 
 1064:    There are commands that may be restricted to specific VTY modes.
 1065: 
 1066: 
 1067: File: quagga.info,  Node: VTY View Mode,  Next: VTY Enable Mode,  Up: VTY Modes
 1068: 
 1069: 3.4.2.1 VTY View Mode
 1070: .....................
 1071: 
 1072: This mode is for read-only access to the CLI. One may exit the mode by
 1073: leaving the system, or by entering `enable' mode.
 1074: 
 1075: 
 1076: File: quagga.info,  Node: VTY Enable Mode,  Next: VTY Other Modes,  Prev: VTY View Mode,  Up: VTY Modes
 1077: 
 1078: 3.4.2.2 VTY Enable Mode
 1079: .......................
 1080: 
 1081: This mode is for read-write access to the CLI. One may exit the mode by
 1082: leaving the system, or by escaping to view mode.
 1083: 
 1084: 
 1085: File: quagga.info,  Node: VTY Other Modes,  Prev: VTY Enable Mode,  Up: VTY Modes
 1086: 
 1087: 3.4.2.3 VTY Other Modes
 1088: .......................
 1089: 
 1090: This page is for describing other modes.
 1091: 
 1092: 
 1093: File: quagga.info,  Node: VTY CLI Commands,  Prev: VTY Modes,  Up: Virtual Terminal Interfaces
 1094: 
 1095: 3.4.3 VTY CLI Commands
 1096: ----------------------
 1097: 
 1098: Commands that you may use at the command-line are described in the
 1099: following three subsubsections.
 1100: 
 1101: * Menu:
 1102: 
 1103: * CLI Movement Commands::       Commands for moving the cursor about
 1104: * CLI Editing Commands::        Commands for changing text
 1105: * CLI Advanced Commands::       Other commands, session management and so on
 1106: 
 1107: 
 1108: File: quagga.info,  Node: CLI Movement Commands,  Next: CLI Editing Commands,  Up: VTY CLI Commands
 1109: 
 1110: 3.4.3.1 CLI Movement Commands
 1111: .............................
 1112: 
 1113: These commands are used for moving the CLI cursor. The <C> character
 1114: means press the Control Key.
 1115: 
 1116: `C-f'
 1117: `<RIGHT>'
 1118:      Move forward one character.
 1119: 
 1120: `C-b'
 1121: `<LEFT>'
 1122:      Move backward one character.
 1123: 
 1124: `M-f'
 1125:      Move forward one word.
 1126: 
 1127: `M-b'
 1128:      Move backward one word.
 1129: 
 1130: `C-a'
 1131:      Move to the beginning of the line.
 1132: 
 1133: `C-e'
 1134:      Move to the end of the line.
 1135: 
 1136: 
 1137: 
 1138: File: quagga.info,  Node: CLI Editing Commands,  Next: CLI Advanced Commands,  Prev: CLI Movement Commands,  Up: VTY CLI Commands
 1139: 
 1140: 3.4.3.2 CLI Editing Commands
 1141: ............................
 1142: 
 1143: These commands are used for editing text on a line. The <C> character
 1144: means press the Control Key.
 1145: 
 1146: `C-h'
 1147: `<DEL>'
 1148:      Delete the character before point.
 1149: 
 1150: `C-d'
 1151:      Delete the character after point.
 1152: 
 1153: `M-d'
 1154:      Forward kill word.
 1155: 
 1156: `C-w'
 1157:      Backward kill word.
 1158: 
 1159: `C-k'
 1160:      Kill to the end of the line.
 1161: 
 1162: `C-u'
 1163:      Kill line from the beginning, erasing input.
 1164: 
 1165: `C-t'
 1166:      Transpose character.
 1167: 
 1168: 
 1169: 
 1170: File: quagga.info,  Node: CLI Advanced Commands,  Prev: CLI Editing Commands,  Up: VTY CLI Commands
 1171: 
 1172: 3.4.3.3 CLI Advanced Commands
 1173: .............................
 1174: 
 1175: There are several additional CLI commands for command line completions,
 1176: insta-help, and VTY session management.
 1177: 
 1178: `C-c'
 1179:      Interrupt current input and moves to the next line.
 1180: 
 1181: `C-z'
 1182:      End current configuration session and move to top node.
 1183: 
 1184: `C-n'
 1185: `<DOWN>'
 1186:      Move down to next line in the history buffer.
 1187: 
 1188: `C-p'
 1189: `<UP>'
 1190:      Move up to previous line in the history buffer.
 1191: 
 1192: `TAB'
 1193:      Use command line completion by typing <TAB>.
 1194: 
 1195: `'
 1196:      You can use command line help by typing `help' at the beginning of
 1197:      the line.  Typing `?' at any point in the line will show possible
 1198:      completions.
 1199: 
 1200: 
 1201: 
 1202: File: quagga.info,  Node: Zebra,  Next: RIP,  Prev: Basic commands,  Up: Top
 1203: 
 1204: 4 Zebra
 1205: *******
 1206: 
 1207: `zebra' is an IP routing manager.  It provides kernel routing table
 1208: updates, interface lookups, and redistribution of routes between
 1209: different routing protocols.
 1210: 
 1211: * Menu:
 1212: 
 1213: * Invoking zebra::              Running the program
 1214: * Interface Commands::          Commands for zebra interfaces
 1215: * Static Route Commands::       Commands for adding static routes
 1216: * zebra Route Filtering::       Commands for zebra route filtering
 1217: * zebra Terminal Mode Commands::  Commands for zebra's VTY
 1218: 
 1219: 
 1220: File: quagga.info,  Node: Invoking zebra,  Next: Interface Commands,  Up: Zebra
 1221: 
 1222: 4.1 Invoking zebra
 1223: ==================
 1224: 
 1225: Besides the common invocation options (*note Common Invocation
 1226: Options::), the `zebra' specific invocation options are listed below.
 1227: 
 1228: `-b'
 1229: `--batch'
 1230:      Runs in batch mode.  `zebra' parses configuration file and
 1231:      terminates immediately.
 1232: 
 1233: `-k'
 1234: `--keep_kernel'
 1235:      When zebra starts up, don't delete old self inserted routes.
 1236: 
 1237: `-r'
 1238: `--retain'
 1239:      When program terminates, retain routes added by zebra.
 1240: 
 1241: 
 1242: 
 1243: File: quagga.info,  Node: Interface Commands,  Next: Static Route Commands,  Prev: Invoking zebra,  Up: Zebra
 1244: 
 1245: 4.2 Interface Commands
 1246: ======================
 1247: 
 1248:  -- Command: interface IFNAME
 1249: 
 1250:  -- Interface Command: shutdown
 1251:  -- Interface Command: no shutdown
 1252:      Up or down the current interface.
 1253: 
 1254:  -- Interface Command: ip address ADDRESS/PREFIX
 1255:  -- Interface Command: ipv6 address ADDRESS/PREFIX
 1256:  -- Interface Command: no ip address ADDRESS/PREFIX
 1257:  -- Interface Command: no ipv6 address ADDRESS/PREFIX
 1258:      Set the IPv4 or IPv6 address/prefix for the interface.
 1259: 
 1260:  -- Interface Command: ip address ADDRESS/PREFIX secondary
 1261:  -- Interface Command: no ip address ADDRESS/PREFIX secondary
 1262:      Set the secondary flag for this address. This causes ospfd to not
 1263:      treat the address as a distinct subnet.
 1264: 
 1265:  -- Interface Command: description DESCRIPTION ...
 1266:      Set description for the interface.
 1267: 
 1268:  -- Interface Command: multicast
 1269:  -- Interface Command: no multicast
 1270:      Enable or disables multicast flag for the interface.
 1271: 
 1272:  -- Interface Command: bandwidth <1-10000000>
 1273:  -- Interface Command: no bandwidth <1-10000000>
 1274:      Set bandwidth value of the interface in kilobits/sec.  This is for
 1275:      calculating OSPF cost. This command does not affect the actual
 1276:      device configuration.
 1277: 
 1278:  -- Interface Command: link-detect
 1279:  -- Interface Command: no link-detect
 1280:      Enable/disable link-detect on platforms which support this.
 1281:      Currently only Linux and Solaris, and only where network interface
 1282:      drivers support reporting link-state via the IFF_RUNNING flag.
 1283: 
 1284: 
 1285: File: quagga.info,  Node: Static Route Commands,  Next: zebra Route Filtering,  Prev: Interface Commands,  Up: Zebra
 1286: 
 1287: 4.3 Static Route Commands
 1288: =========================
 1289: 
 1290: Static routing is a very fundamental feature of routing technology.  It
 1291: defines static prefix and gateway.
 1292: 
 1293:  -- Command: ip route NETWORK GATEWAY
 1294:      NETWORK is destination prefix with format of A.B.C.D/M.  GATEWAY
 1295:      is gateway for the prefix.  When GATEWAY is A.B.C.D format.  It is
 1296:      taken as a IPv4 address gateway.  Otherwise it is treated as an
 1297:      interface name. If the interface name is NULL0 then zebra installs
 1298:      a blackhole route.
 1299: 
 1300:           ip route 10.0.0.0/8 10.0.0.2
 1301:           ip route 10.0.0.0/8 ppp0
 1302:           ip route 10.0.0.0/8 null0
 1303: 
 1304:      First example defines 10.0.0.0/8 static route with gateway
 1305:      10.0.0.2.  Second one defines the same prefix but with gateway to
 1306:      interface ppp0. The third install a blackhole route.
 1307: 
 1308:  -- Command: ip route NETWORK NETMASK GATEWAY
 1309:      This is alternate version of above command.  When NETWORK is
 1310:      A.B.C.D format, user must define NETMASK value with A.B.C.D
 1311:      format.  GATEWAY is same option as above command
 1312: 
 1313:           ip route 10.0.0.0 255.255.255.0 10.0.0.2
 1314:           ip route 10.0.0.0 255.255.255.0 ppp0
 1315:           ip route 10.0.0.0 255.255.255.0 null0
 1316: 
 1317:      These statements are equivalent to those in the previous example.
 1318: 
 1319:  -- Command: ip route NETWORK GATEWAY DISTANCE
 1320:      Installs the route with the specified distance.
 1321: 
 1322:    Multiple nexthop static route
 1323: 
 1324:      ip route 10.0.0.1/32 10.0.0.2
 1325:      ip route 10.0.0.1/32 10.0.0.3
 1326:      ip route 10.0.0.1/32 eth0
 1327: 
 1328:    If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0 is
 1329: reachable, then the last route is installed into the kernel.
 1330: 
 1331:    If zebra has been compiled with multipath support, and both 10.0.0.2
 1332: and 10.0.0.3 are reachable, zebra will install a multipath route via
 1333: both nexthops, if the platform supports this.
 1334: 
 1335:      zebra> show ip route
 1336:      S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive
 1337:                            via 10.0.0.3 inactive
 1338:        *                   is directly connected, eth0
 1339: 
 1340:      ip route 10.0.0.0/8 10.0.0.2
 1341:      ip route 10.0.0.0/8 10.0.0.3
 1342:      ip route 10.0.0.0/8 null0 255
 1343: 
 1344:    This will install a multihop route via the specified next-hops if
 1345: they are reachable, as well as a high-metric blackhole route, which can
 1346: be useful to prevent traffic destined for a prefix to match
 1347: less-specific routes (eg default) should the specified gateways not be
 1348: reachable. Eg:
 1349: 
 1350:      zebra> show ip route 10.0.0.0/8
 1351:      Routing entry for 10.0.0.0/8
 1352:        Known via "static", distance 1, metric 0
 1353:          10.0.0.2 inactive
 1354:          10.0.0.3 inactive
 1355: 
 1356:      Routing entry for 10.0.0.0/8
 1357:        Known via "static", distance 255, metric 0
 1358:          directly connected, Null0
 1359: 
 1360:  -- Command: ipv6 route NETWORK GATEWAY
 1361:  -- Command: ipv6 route NETWORK GATEWAY DISTANCE
 1362:      These behave similarly to their ipv4 counterparts.
 1363: 
 1364:  -- Command: table TABLENO
 1365:      Select the primary kernel routing table to be used.  This only
 1366:      works for kernels supporting multiple routing tables (like
 1367:      GNU/Linux 2.2.x and later).  After setting TABLENO with this
 1368:      command, static routes defined after this are added to the
 1369:      specified table.
 1370: 
 1371: 
 1372: File: quagga.info,  Node: zebra Route Filtering,  Next: zebra Terminal Mode Commands,  Prev: Static Route Commands,  Up: Zebra
 1373: 
 1374: 4.4 zebra Route Filtering
 1375: =========================
 1376: 
 1377: Zebra supports `prefix-list' and `route-map' to match routes received
 1378: from other quagga components.  The `permit'/`deny' facilities provided
 1379: by these commands can be used to filter which routes zebra will install
 1380: in the kernel.
 1381: 
 1382:  -- Command: ip protocol PROTOCOL route-map ROUTEMAP
 1383:      Apply a route-map filter to routes for the specified protocol.
 1384:      PROTOCOL can be any or one of system, kernel, connected, static,
 1385:      rip, ripng, ospf, ospf6, isis, bgp, hsls.
 1386: 
 1387:  -- Route Map: set src ADDRESS
 1388:      Within a route-map, set the preferred source address for matching
 1389:      routes when installing in the kernel.
 1390: 
 1391:      The following creates a prefix-list that matches all addresses, a route-map
 1392:      that sets the preferred source address, and applies the route-map to all
 1393:      `rip' routes.
 1394: 
 1395:      ip prefix-list ANY permit 0.0.0.0/0 le 32
 1396:      route-map RM1 permit 10
 1397:           match ip address prefix-list ANY
 1398:           set src 10.0.0.1
 1399: 
 1400:      ip protocol rip route-map RM1
 1401: 
 1402: 
 1403: File: quagga.info,  Node: zebra Terminal Mode Commands,  Prev: zebra Route Filtering,  Up: Zebra
 1404: 
 1405: 4.5 zebra Terminal Mode Commands
 1406: ================================
 1407: 
 1408:  -- Command: show ip route
 1409:      Display current routes which zebra holds in its database.
 1410: 
 1411:           Router# show ip route
 1412:           Codes: K - kernel route, C - connected, S - static, R - RIP,
 1413:                  B - BGP * - FIB route.
 1414: 
 1415:           K* 0.0.0.0/0              203.181.89.241
 1416:           S  0.0.0.0/0              203.181.89.1
 1417:           C* 127.0.0.0/8            lo
 1418:           C* 203.181.89.240/28      eth0
 1419: 
 1420:  -- Command: show ipv6 route
 1421: 
 1422:  -- Command: show interface
 1423: 
 1424:  -- Command: show ip prefix-list [NAME]
 1425: 
 1426:  -- Command: show route-map [NAME]
 1427: 
 1428:  -- Command: show ip protocol
 1429: 
 1430:  -- Command: show ipforward
 1431:      Display whether the host's IP forwarding function is enabled or
 1432:      not.  Almost any UNIX kernel can be configured with IP forwarding
 1433:      disabled.  If so, the box can't work as a router.
 1434: 
 1435:  -- Command: show ipv6forward
 1436:      Display whether the host's IP v6 forwarding is enabled or not.
 1437: 
 1438: 
 1439: File: quagga.info,  Node: RIP,  Next: RIPng,  Prev: Zebra,  Up: Top
 1440: 
 1441: 5 RIP
 1442: *****
 1443: 
 1444: RIP - Routing Information Protocol is widely deployed interior gateway
 1445: protocol.  RIP was developed in the 1970s at Xerox Labs as part of the
 1446: XNS routing protocol.  RIP is a "distance-vector" protocol and is based
 1447: on the "Bellman-Ford" algorithms.  As a distance-vector protocol, RIP
 1448: router send updates to its neighbors periodically, thus allowing the
 1449: convergence to a known topology.  In each update, the distance to any
 1450: given network will be broadcasted to its neighboring router.
 1451: 
 1452:    `ripd' supports RIP version 2 as described in RFC2453 and RIP
 1453: version 1 as described in RFC1058.
 1454: 
 1455: * Menu:
 1456: 
 1457: * Starting and Stopping ripd::
 1458: * RIP Configuration::
 1459: * RIP Version Control::
 1460: * How to Announce RIP route::
 1461: * Filtering RIP Routes::
 1462: * RIP Metric Manipulation::
 1463: * RIP distance::
 1464: * RIP route-map::
 1465: * RIP Authentication::
 1466: * RIP Timers::
 1467: * Show RIP Information::
 1468: * RIP Debug Commands::
 1469: 
 1470: 
 1471: File: quagga.info,  Node: Starting and Stopping ripd,  Next: RIP Configuration,  Up: RIP
 1472: 
 1473: 5.1 Starting and Stopping ripd
 1474: ==============================
 1475: 
 1476: The default configuration file name of `ripd''s is `ripd.conf'.  When
 1477: invocation `ripd' searches directory /etc/quagga.  If `ripd.conf' is
 1478: not there next search current directory.
 1479: 
 1480:    RIP uses UDP port 520 to send and receive RIP packets.  So the user
 1481: must have the capability to bind the port, generally this means that
 1482: the user must have superuser privileges.  RIP protocol requires
 1483: interface information maintained by `zebra' daemon.  So running `zebra'
 1484: is mandatory to run `ripd'.  Thus minimum sequence for running RIP is
 1485: like below:
 1486: 
 1487:      # zebra -d
 1488:      # ripd -d
 1489: 
 1490:    Please note that `zebra' must be invoked before `ripd'.
 1491: 
 1492:    To stop `ripd'.  Please use `kill `cat /var/run/ripd.pid`'.  Certain
 1493: signals have special meaningss to `ripd'.
 1494: 
 1495: `SIGHUP'
 1496:      Reload configuration file `ripd.conf'.  All configurations are
 1497:      reseted.  All routes learned so far are cleared and removed from
 1498:      routing table.
 1499: 
 1500: `SIGUSR1'
 1501:      Rotate `ripd' logfile.
 1502: 
 1503: `SIGINT'
 1504: `SIGTERM'
 1505:      `ripd' sweeps all installed RIP routes then terminates properly.
 1506: 
 1507:    `ripd' invocation options.  Common options that can be specified
 1508: (*note Common Invocation Options::).
 1509: 
 1510: `-r'
 1511: `--retain'
 1512:      When the program terminates, retain routes added by `ripd'.
 1513: 
 1514: * Menu:
 1515: 
 1516: * RIP netmask::
 1517: 
 1518: 
 1519: File: quagga.info,  Node: RIP netmask,  Up: Starting and Stopping ripd
 1520: 
 1521: 5.1.1 RIP netmask
 1522: -----------------
 1523: 
 1524: The netmask features of `ripd' support both version 1 and version 2 of
 1525: RIP.  Version 1 of RIP originally contained no netmask information.  In
 1526: RIP version 1, network classes were originally used to determine the
 1527: size of the netmask.  Class A networks use 8 bits of mask, Class B
 1528: networks use 16 bits of masks, while Class C networks use 24 bits of
 1529: mask.  Today, the most widely used method of a network mask is assigned
 1530: to the packet on the basis of the interface that received the packet.
 1531: Version 2 of RIP supports a variable length subnet mask (VLSM).  By
 1532: extending the subnet mask, the mask can be divided and reused.  Each
 1533: subnet can be used for different purposes such as large to middle size
 1534: LANs and WAN links.  Quagga `ripd' does not support the non-sequential
 1535: netmasks that are included in RIP Version 2.
 1536: 
 1537:    In a case of similar information with the same prefix and metric, the
 1538: old information will be suppressed.  Ripd does not currently support
 1539: equal cost multipath routing.
 1540: 
 1541: 
 1542: File: quagga.info,  Node: RIP Configuration,  Next: RIP Version Control,  Prev: Starting and Stopping ripd,  Up: RIP
 1543: 
 1544: 5.2 RIP Configuration
 1545: =====================
 1546: 
 1547:  -- Command: router rip
 1548:      The `router rip' command is necessary to enable RIP.  To disable
 1549:      RIP, use the `no router rip' command.  RIP must be enabled before
 1550:      carrying out any of the RIP commands.
 1551: 
 1552:  -- Command: no router rip
 1553:      Disable RIP.
 1554: 
 1555:  -- RIP Command: network NETWORK
 1556:  -- RIP Command: no network NETWORK
 1557:      Set the RIP enable interface by NETWORK.  The interfaces which
 1558:      have addresses matching with NETWORK are enabled.
 1559: 
 1560:      This group of commands either enables or disables RIP interfaces
 1561:      between certain numbers of a specified network address.  For
 1562:      example, if the network for 10.0.0.0/24 is RIP enabled, this would
 1563:      result in all the addresses from 10.0.0.0 to 10.0.0.255 being
 1564:      enabled for RIP.  The `no network' command will disable RIP for
 1565:      the specified network.
 1566: 
 1567:  -- RIP Command: network IFNAME
 1568:  -- RIP Command: no network IFNAME
 1569:      Set a RIP enabled interface by IFNAME.  Both the sending and
 1570:      receiving of RIP packets will be enabled on the port specified in
 1571:      the `network ifname' command.  The `no network ifname' command
 1572:      will disable RIP on the specified interface.
 1573: 
 1574:  -- RIP Command: neighbor A.B.C.D
 1575:  -- RIP Command: no neighbor A.B.C.D
 1576:      Specify RIP neighbor.  When a neighbor doesn't understand
 1577:      multicast, this command is used to specify neighbors.  In some
 1578:      cases, not all routers will be able to understand multicasting,
 1579:      where packets are sent to a network or a group of addresses.  In a
 1580:      situation where a neighbor cannot process multicast packets, it is
 1581:      necessary to establish a direct link between routers.  The
 1582:      neighbor command allows the network administrator to specify a
 1583:      router as a RIP neighbor.  The `no neighbor a.b.c.d' command will
 1584:      disable the RIP neighbor.
 1585: 
 1586:    Below is very simple RIP configuration.  Interface `eth0' and
 1587: interface which address match to `10.0.0.0/8' are RIP enabled.
 1588: 
 1589:      !
 1590:      router rip
 1591:       network 10.0.0.0/8
 1592:       network eth0
 1593:      !
 1594: 
 1595:    Passive interface
 1596: 
 1597:  -- RIP command: passive-interface (IFNAME|default)
 1598:  -- RIP command: no passive-interface IFNAME
 1599:      This command sets the specified interface to passive mode.  On
 1600:      passive mode interface, all receiving packets are processed as
 1601:      normal and ripd does not send either multicast or unicast RIP
 1602:      packets except to RIP neighbors specified with `neighbor' command.
 1603:      The interface may be specified as DEFAULT to make ripd default to
 1604:      passive on all interfaces.
 1605: 
 1606:      The default is to be passive on all interfaces.
 1607: 
 1608:    RIP split-horizon
 1609: 
 1610:  -- Interface command: ip split-horizon
 1611:  -- Interface command: no ip split-horizon
 1612:      Control split-horizon on the interface.  Default is `ip
 1613:      split-horizon'.  If you don't perform split-horizon on the
 1614:      interface, please specify `no ip split-horizon'.
 1615: 
 1616: 
 1617: File: quagga.info,  Node: RIP Version Control,  Next: How to Announce RIP route,  Prev: RIP Configuration,  Up: RIP
 1618: 
 1619: 5.3 RIP Version Control
 1620: =======================
 1621: 
 1622: RIP can be configured to send either Version 1 or Version 2 packets.
 1623: The default is to send RIPv2 while accepting both RIPv1 and RIPv2 (and
 1624: replying with packets of the appropriate version for REQUESTS /
 1625: triggered updates). The version to receive and send can be specified
 1626: globally, and further overriden on a per-interface basis if needs be
 1627: for send and receive seperately (see below).
 1628: 
 1629:    It is important to note that RIPv1 can not be authenticated. Further,
 1630: if RIPv1 is enabled then RIP will reply to REQUEST packets, sending the
 1631: state of its RIP routing table to any remote routers that ask on
 1632: demand. For a more detailed discussion on the security implications of
 1633: RIPv1 see *note RIP Authentication::.
 1634: 
 1635:  -- RIP Command: version VERSION
 1636:      Set RIP version to accept for reads and send.  VERSION can be
 1637:      either `1" or `2".
 1638: 
 1639:      Disabling RIPv1 by specifying version 2 is STRONGLY encouraged,
 1640:      *Note RIP Authentication::. This may become the default in a future
 1641:      release.
 1642: 
 1643:      Default: Send Version 2, and accept either version.
 1644: 
 1645:  -- RIP Command: no version
 1646:      Reset the global version setting back to the default.
 1647: 
 1648:  -- Interface command: ip rip send version VERSION
 1649:      VERSION can be `1', `2' or `1 2'.
 1650: 
 1651:      This interface command overrides the global rip version setting,
 1652:      and selects which version of RIP to send packets with, for this
 1653:      interface specifically. Choice of RIP Version 1, RIP Version 2, or
 1654:      both versions.  In the latter case, where `1 2' is specified,
 1655:      packets will be both broadcast and multicast.
 1656: 
 1657:      Default: Send packets according to the global version (version 2)
 1658: 
 1659:  -- Interface command: ip rip receive version VERSION
 1660:      VERSION can be `1', `2' or `1 2'.
 1661: 
 1662:      This interface command overrides the global rip version setting,
 1663:      and selects which versions of RIP packets will be accepted on this
 1664:      interface. Choice of RIP Version 1, RIP Version 2, or both.
 1665: 
 1666:      Default: Accept packets according to the global setting (both 1
 1667:      and 2).
 1668: 
 1669: 
 1670: File: quagga.info,  Node: How to Announce RIP route,  Next: Filtering RIP Routes,  Prev: RIP Version Control,  Up: RIP
 1671: 
 1672: 5.4 How to Announce RIP route
 1673: =============================
 1674: 
 1675:  -- RIP command: redistribute kernel
 1676:  -- RIP command: redistribute kernel metric <0-16>
 1677:  -- RIP command: redistribute kernel route-map ROUTE-MAP
 1678:  -- RIP command: no redistribute kernel
 1679:      `redistribute kernel' redistributes routing information from
 1680:      kernel route entries into the RIP tables. `no redistribute kernel'
 1681:      disables the routes.
 1682: 
 1683:  -- RIP command: redistribute static
 1684:  -- RIP command: redistribute static metric <0-16>
 1685:  -- RIP command: redistribute static route-map ROUTE-MAP
 1686:  -- RIP command: no redistribute static
 1687:      `redistribute static' redistributes routing information from
 1688:      static route entries into the RIP tables. `no redistribute static'
 1689:      disables the routes.
 1690: 
 1691:  -- RIP command: redistribute connected
 1692:  -- RIP command: redistribute connected metric <0-16>
 1693:  -- RIP command: redistribute connected route-map ROUTE-MAP
 1694:  -- RIP command: no redistribute connected
 1695:      Redistribute connected routes into the RIP tables.  `no
 1696:      redistribute connected' disables the connected routes in the RIP
 1697:      tables.  This command redistribute connected of the interface
 1698:      which RIP disabled.  The connected route on RIP enabled interface
 1699:      is announced by default.
 1700: 
 1701:  -- RIP command: redistribute ospf
 1702:  -- RIP command: redistribute ospf metric <0-16>
 1703:  -- RIP command: redistribute ospf route-map ROUTE-MAP
 1704:  -- RIP command: no redistribute ospf
 1705:      `redistribute ospf' redistributes routing information from ospf
 1706:      route entries into the RIP tables. `no redistribute ospf' disables
 1707:      the routes.
 1708: 
 1709:  -- RIP command: redistribute bgp
 1710:  -- RIP command: redistribute bgp metric <0-16>
 1711:  -- RIP command: redistribute bgp route-map ROUTE-MAP
 1712:  -- RIP command: no redistribute bgp
 1713:      `redistribute bgp' redistributes routing information from bgp
 1714:      route entries into the RIP tables. `no redistribute bgp' disables
 1715:      the routes.
 1716: 
 1717:    If you want to specify RIP only static routes:
 1718: 
 1719:  -- RIP command: default-information originate
 1720: 
 1721:  -- RIP command: route A.B.C.D/M
 1722:  -- RIP command: no route A.B.C.D/M
 1723:      This command is specific to Quagga.  The `route' command makes a
 1724:      static route only inside RIP. This command should be used only by
 1725:      advanced users who are particularly knowledgeable about the RIP
 1726:      protocol.  In most cases, we recommend creating a static route in
 1727:      Quagga and redistributing it in RIP using `redistribute static'.
 1728: 
 1729: 
 1730: File: quagga.info,  Node: Filtering RIP Routes,  Next: RIP Metric Manipulation,  Prev: How to Announce RIP route,  Up: RIP
 1731: 
 1732: 5.5 Filtering RIP Routes
 1733: ========================
 1734: 
 1735: RIP routes can be filtered by a distribute-list.
 1736: 
 1737:  -- Command: distribute-list ACCESS_LIST DIRECT IFNAME
 1738:      You can apply access lists to the interface with a
 1739:      `distribute-list' command.  ACCESS_LIST is the access list name.
 1740:      DIRECT is `in' or `out'.  If DIRECT is `in' the access list is
 1741:      applied to input packets.
 1742: 
 1743:      The `distribute-list' command can be used to filter the RIP path.
 1744:      `distribute-list' can apply access-lists to a chosen interface.
 1745:      First, one should specify the access-list.  Next, the name of the
 1746:      access-list is used in the distribute-list command.  For example,
 1747:      in the following configuration `eth0' will permit only the paths
 1748:      that match the route 10.0.0.0/8
 1749: 
 1750:           !
 1751:           router rip
 1752:            distribute-list private in eth0
 1753:           !
 1754:           access-list private permit 10 10.0.0.0/8
 1755:           access-list private deny any
 1756:           !
 1757: 
 1758:    `distribute-list' can be applied to both incoming and outgoing data.
 1759: 
 1760:  -- Command: distribute-list prefix PREFIX_LIST (in|out) IFNAME
 1761:      You can apply prefix lists to the interface with a
 1762:      `distribute-list' command.  PREFIX_LIST is the prefix list name.
 1763:      Next is the direction of `in' or `out'.  If DIRECT is `in' the
 1764:      access list is applied to input packets.
 1765: 
 1766: 
 1767: File: quagga.info,  Node: RIP Metric Manipulation,  Next: RIP distance,  Prev: Filtering RIP Routes,  Up: RIP
 1768: 
 1769: 5.6 RIP Metric Manipulation
 1770: ===========================
 1771: 
 1772: RIP metric is a value for distance for the network.  Usually `ripd'
 1773: increment the metric when the network information is received.
 1774: Redistributed routes' metric is set to 1.
 1775: 
 1776:  -- RIP command: default-metric <1-16>
 1777:  -- RIP command: no default-metric <1-16>
 1778:      This command modifies the default metric value for redistributed
 1779:      routes.  The default value is 1.  This command does not affect
 1780:      connected route even if it is redistributed by `redistribute
 1781:      connected'.  To modify connected route's metric value, please use
 1782:      `redistribute connected metric' or `route-map'.  `offset-list' also
 1783:      affects connected routes.
 1784: 
 1785:  -- RIP command: offset-list ACCESS-LIST (in|out)
 1786:  -- RIP command: offset-list ACCESS-LIST (in|out) IFNAME
 1787: 
 1788: 
 1789: File: quagga.info,  Node: RIP distance,  Next: RIP route-map,  Prev: RIP Metric Manipulation,  Up: RIP
 1790: 
 1791: 5.7 RIP distance
 1792: ================
 1793: 
 1794: Distance value is used in zebra daemon.  Default RIP distance is 120.
 1795: 
 1796:  -- RIP command: distance <1-255>
 1797:  -- RIP command: no distance <1-255>
 1798:      Set default RIP distance to specified value.
 1799: 
 1800:  -- RIP command: distance <1-255> A.B.C.D/M
 1801:  -- RIP command: no distance <1-255> A.B.C.D/M
 1802:      Set default RIP distance to specified value when the route's
 1803:      source IP address matches the specified prefix.
 1804: 
 1805:  -- RIP command: distance <1-255> A.B.C.D/M ACCESS-LIST
 1806:  -- RIP command: no distance <1-255> A.B.C.D/M ACCESS-LIST
 1807:      Set default RIP distance to specified value when the route's
 1808:      source IP address matches the specified prefix and the specified
 1809:      access-list.
 1810: 
 1811: 
 1812: File: quagga.info,  Node: RIP route-map,  Next: RIP Authentication,  Prev: RIP distance,  Up: RIP
 1813: 
 1814: 5.8 RIP route-map
 1815: =================
 1816: 
 1817: Usage of `ripd''s route-map support.
 1818: 
 1819:    Optional argument route-map MAP_NAME can be added to each
 1820: `redistribute' statement.
 1821: 
 1822:      redistribute static [route-map MAP_NAME]
 1823:      redistribute connected [route-map MAP_NAME]
 1824:      .....
 1825: 
 1826:    Cisco applies route-map _before_ routes will exported to rip route
 1827: table.  In current Quagga's test implementation, `ripd' applies
 1828: route-map after routes are listed in the route table and before routes
 1829: will be announced to an interface (something like output filter). I
 1830: think it is not so clear, but it is draft and it may be changed at
 1831: future.
 1832: 
 1833:    Route-map statement (*note Route Map::) is needed to use route-map
 1834: functionality.
 1835: 
 1836:  -- Route Map: match interface WORD
 1837:      This command match to incoming interface.  Notation of this match
 1838:      is different from Cisco. Cisco uses a list of interfaces - NAME1
 1839:      NAME2 ... NAMEN.  Ripd allows only one name (maybe will change in
 1840:      the future).  Next - Cisco means interface which includes next-hop
 1841:      of routes (it is somewhat similar to "ip next-hop" statement).
 1842:      Ripd means interface where this route will be sent. This
 1843:      difference is because "next-hop" of same routes which sends to
 1844:      different interfaces must be different. Maybe it'd be better to
 1845:      made new matches - say "match interface-out NAME" or something
 1846:      like that.
 1847: 
 1848:  -- Route Map: match ip address WORD
 1849:  -- Route Map: match ip address prefix-list WORD
 1850:      Match if route destination is permitted by access-list.
 1851: 
 1852:  -- Route Map: match ip next-hop A.B.C.D
 1853:      Cisco uses here <access-list>, `ripd' IPv4 address. Match if route
 1854:      has this next-hop (meaning next-hop listed in the rip route table
 1855:      - "show ip rip")
 1856: 
 1857:  -- Route Map: match metric <0-4294967295>
 1858:      This command match to the metric value of RIP updates.  For other
 1859:      protocol compatibility metric range is shown as <0-4294967295>.
 1860:      But for RIP protocol only the value range <0-16> make sense.
 1861: 
 1862:  -- Route Map: set ip next-hop A.B.C.D
 1863:      This command set next hop value in RIPv2 protocol.  This command
 1864:      does not affect RIPv1 because there is no next hop field in the
 1865:      packet.
 1866: 
 1867:  -- Route Map: set metric <0-4294967295>
 1868:      Set a metric for matched route when sending announcement.  The
 1869:      metric value range is very large for compatibility with other
 1870:      protocols.  For RIP, valid metric values are from 1 to 16.
 1871: 
 1872: 
 1873: File: quagga.info,  Node: RIP Authentication,  Next: RIP Timers,  Prev: RIP route-map,  Up: RIP
 1874: 
 1875: 5.9 RIP Authentication
 1876: ======================
 1877: 
 1878: RIPv2 allows packets to be authenticated via either an insecure plain
 1879: text password, included with the packet, or via a more secure MD5 based
 1880: HMAC (keyed-Hashing for Message AuthentiCation), RIPv1 can not be
 1881: authenticated at all, thus when authentication is configured `ripd'
 1882: will discard routing updates received via RIPv1 packets.
 1883: 
 1884:    However, unless RIPv1 reception is disabled entirely, *Note RIP
 1885: Version Control::, RIPv1 REQUEST packets which are received, which
 1886: query the router for routing information, will still be honoured by
 1887: `ripd', and `ripd' WILL reply to such packets. This allows `ripd' to
 1888: honour such REQUESTs (which sometimes is used by old equipment and very
 1889: simple devices to bootstrap their default route), while still providing
 1890: security for route updates which are received.
 1891: 
 1892:    In short: Enabling authentication prevents routes being updated by
 1893: unauthenticated remote routers, but still can allow routes (I.e. the
 1894: entire RIP routing table) to be queried remotely, potentially by anyone
 1895: on the internet, via RIPv1.
 1896: 
 1897:    To prevent such unauthenticated querying of routes disable RIPv1,
 1898: *Note RIP Version Control::.
 1899: 
 1900:  -- Interface command: ip rip authentication mode md5
 1901:  -- Interface command: no ip rip authentication mode md5
 1902:      Set the interface with RIPv2 MD5 authentication.
 1903: 
 1904:  -- Interface command: ip rip authentication mode text
 1905:  -- Interface command: no ip rip authentication mode text
 1906:      Set the interface with RIPv2 simple password authentication.
 1907: 
 1908:  -- Interface command: ip rip authentication string STRING
 1909:  -- Interface command: no ip rip authentication string STRING
 1910:      RIP version 2 has simple text authentication.  This command sets
 1911:      authentication string.  The string must be shorter than 16
 1912:      characters.
 1913: 
 1914:  -- Interface command: ip rip authentication key-chain KEY-CHAIN
 1915:  -- Interface command: no ip rip authentication key-chain KEY-CHAIN
 1916:      Specifiy Keyed MD5 chain.
 1917: 
 1918:      !
 1919:      key chain test
 1920:       key 1
 1921:        key-string test
 1922:      !
 1923:      interface eth1
 1924:       ip rip authentication mode md5
 1925:       ip rip authentication key-chain test
 1926:      !
 1927: 
 1928: 
 1929: File: quagga.info,  Node: RIP Timers,  Next: Show RIP Information,  Prev: RIP Authentication,  Up: RIP
 1930: 
 1931: 5.10 RIP Timers
 1932: ===============
 1933: 
 1934:  -- RIP command: timers basic UPDATE TIMEOUT GARBAGE
 1935:      RIP protocol has several timers.  User can configure those timers'
 1936:      values by `timers basic' command.
 1937: 
 1938:      The default settings for the timers are as follows:
 1939: 
 1940:         * The update timer is 30 seconds. Every update timer seconds,
 1941:           the RIP process is awakened to send an unsolicited Response
 1942:           message containing the complete routing table to all
 1943:           neighboring RIP routers.
 1944: 
 1945:         * The timeout timer is 180 seconds. Upon expiration of the
 1946:           timeout, the route is no longer valid; however, it is
 1947:           retained in the routing table for a short time so that
 1948:           neighbors can be notified that the route has been dropped.
 1949: 
 1950:         * The garbage collect timer is 120 seconds.  Upon expiration of
 1951:           the garbage-collection timer, the route is finally removed
 1952:           from the routing table.
 1953: 
 1954: 
 1955:      The `timers basic' command allows the the default values of the
 1956:      timers listed above to be changed.
 1957: 
 1958:  -- RIP command: no timers basic
 1959:      The `no timers basic' command will reset the timers to the default
 1960:      settings listed above.
 1961: 
 1962: 
 1963: File: quagga.info,  Node: Show RIP Information,  Next: RIP Debug Commands,  Prev: RIP Timers,  Up: RIP
 1964: 
 1965: 5.11 Show RIP Information
 1966: =========================
 1967: 
 1968: To display RIP routes.
 1969: 
 1970:  -- Command: show ip rip
 1971:      Show RIP routes.
 1972: 
 1973:    The command displays all RIP routes. For routes that are received
 1974: through RIP, this command will display the time the packet was sent and
 1975: the tag information.  This command will also display this information
 1976: for routes redistributed into RIP.
 1977: 
 1978:  -- Command: show ip protocols
 1979:      The command displays current RIP status.  It includes RIP timer,
 1980:      filtering, version, RIP enabled interface and RIP peer inforation.
 1981: 
 1982:      ripd> show ip protocols
 1983:      Routing Protocol is "rip"
 1984:        Sending updates every 30 seconds with +/-50%, next due in 35 seconds
 1985:        Timeout after 180 seconds, garbage collect after 120 seconds
 1986:        Outgoing update filter list for all interface is not set
 1987:        Incoming update filter list for all interface is not set
 1988:        Default redistribution metric is 1
 1989:        Redistributing: kernel connected
 1990:        Default version control: send version 2, receive version 2
 1991:          Interface        Send  Recv
 1992:        Routing for Networks:
 1993:          eth0
 1994:          eth1
 1995:          1.1.1.1
 1996:          203.181.89.241
 1997:        Routing Information Sources:
 1998:          Gateway          BadPackets BadRoutes  Distance Last Update
 1999: 
 2000: 
 2001: File: quagga.info,  Node: RIP Debug Commands,  Prev: Show RIP Information,  Up: RIP
 2002: 
 2003: 5.12 RIP Debug Commands
 2004: =======================
 2005: 
 2006: Debug for RIP protocol.
 2007: 
 2008:  -- Command: debug rip events
 2009:      Debug rip events.
 2010: 
 2011:    `debug rip' will show RIP events.  Sending and receiving packets,
 2012: timers, and changes in interfaces are events shown with `ripd'.
 2013: 
 2014:  -- Command: debug rip packet
 2015:      Debug rip packet.
 2016: 
 2017:    `debug rip packet' will display detailed information about the RIP
 2018: packets.  The origin and port number of the packet as well as a packet
 2019: dump is shown.
 2020: 
 2021:  -- Command: debug rip zebra
 2022:      Debug rip between zebra communication.
 2023: 
 2024:    This command will show the communication between `ripd' and `zebra'.
 2025: The main information will include addition and deletion of paths to the
 2026: kernel and the sending and receiving of interface information.
 2027: 
 2028:  -- Command: show debugging rip
 2029:      Display `ripd''s debugging option.
 2030: 
 2031:    `show debugging rip' will show all information currently set for ripd
 2032: debug.
 2033: 
 2034: 
 2035: File: quagga.info,  Node: RIPng,  Next: OSPFv2,  Prev: RIP,  Up: Top
 2036: 
 2037: 6 RIPng
 2038: *******
 2039: 
 2040: `ripngd' supports the RIPng protocol as described in RFC2080.  It's an
 2041: IPv6 reincarnation of the RIP protocol.
 2042: 
 2043: * Menu:
 2044: 
 2045: * Invoking ripngd::
 2046: * ripngd Configuration::
 2047: * ripngd Terminal Mode Commands::
 2048: * ripngd Filtering Commands::
 2049: 
 2050: 
 2051: File: quagga.info,  Node: Invoking ripngd,  Next: ripngd Configuration,  Up: RIPng
 2052: 
 2053: 6.1 Invoking ripngd
 2054: ===================
 2055: 
 2056: There are no `ripngd' specific invocation options.  Common options can
 2057: be specified (*note Common Invocation Options::).
 2058: 
 2059: 
 2060: File: quagga.info,  Node: ripngd Configuration,  Next: ripngd Terminal Mode Commands,  Prev: Invoking ripngd,  Up: RIPng
 2061: 
 2062: 6.2 ripngd Configuration
 2063: ========================
 2064: 
 2065: Currently ripngd supports the following commands:
 2066: 
 2067:  -- Command: router ripng
 2068:      Enable RIPng.
 2069: 
 2070:  -- RIPng Command: flush_timer TIME
 2071:      Set flush timer.
 2072: 
 2073:  -- RIPng Command: network NETWORK
 2074:      Set RIPng enabled interface by NETWORK
 2075: 
 2076:  -- RIPng Command: network IFNAME
 2077:      Set RIPng enabled interface by IFNAME
 2078: 
 2079:  -- RIPng Command: route NETWORK
 2080:      Set RIPng static routing announcement of NETWORK.
 2081: 
 2082:  -- Command: router zebra
 2083:      This command is the default and does not appear in the
 2084:      configuration.  With this statement, RIPng routes go to the
 2085:      `zebra' daemon.
 2086: 
 2087: 
 2088: File: quagga.info,  Node: ripngd Terminal Mode Commands,  Next: ripngd Filtering Commands,  Prev: ripngd Configuration,  Up: RIPng
 2089: 
 2090: 6.3 ripngd Terminal Mode Commands
 2091: =================================
 2092: 
 2093:  -- Command: show ip ripng
 2094: 
 2095:  -- Command: show debugging ripng
 2096: 
 2097:  -- Command: debug ripng events
 2098: 
 2099:  -- Command: debug ripng packet
 2100: 
 2101:  -- Command: debug ripng zebra
 2102: 
 2103: 
 2104: File: quagga.info,  Node: ripngd Filtering Commands,  Prev: ripngd Terminal Mode Commands,  Up: RIPng
 2105: 
 2106: 6.4 ripngd Filtering Commands
 2107: =============================
 2108: 
 2109:  -- Command: distribute-list ACCESS_LIST (in|out) IFNAME
 2110:      You can apply an access-list to the interface using the
 2111:      `distribute-list' command.  ACCESS_LIST is an access-list name.
 2112:      DIRECT is `in' or `out'.  If DIRECT is `in', the access-list is
 2113:      applied only to incoming packets.
 2114: 
 2115:           distribute-list local-only out sit1
 2116: 
 2117: 
 2118: File: quagga.info,  Node: OSPFv2,  Next: OSPFv3,  Prev: RIPng,  Up: Top
 2119: 
 2120: 7 OSPFv2
 2121: ********
 2122: 
 2123: OSPF (Open Shortest Path First) version 2 is a routing protocol which
 2124: is described in `RFC2328, OSPF Version 2'.  OSPF is an IGP (Interior
 2125: Gateway Protocol).  Compared with RIP, OSPF can provide scalable
 2126: network support and faster convergence times.  OSPF is widely used in
 2127: large networks such as ISP (Internet Service Provider) backbone and
 2128: enterprise networks.
 2129: 
 2130: * Menu:
 2131: 
 2132: * Configuring ospfd::
 2133: * OSPF router::
 2134: * OSPF area::
 2135: * OSPF interface::
 2136: * Redistribute routes to OSPF::
 2137: * Showing OSPF information::
 2138: * Debugging OSPF::
 2139: * OSPF Configuration Examples::
 2140: 
 2141: 
 2142: File: quagga.info,  Node: Configuring ospfd,  Next: OSPF router,  Up: OSPFv2
 2143: 
 2144: 7.1 Configuring ospfd
 2145: =====================
 2146: 
 2147: There are no `ospfd' specific options.  Common options can be specified
 2148: (*note Common Invocation Options::) to `ospfd'.  `ospfd' needs to
 2149: acquire interface information from `zebra' in order to function.
 2150: Therefore `zebra' must be running before invoking `ospfd'. Also, if
 2151: `zebra' is restarted then `ospfd' must be too.
 2152: 
 2153:    Like other daemons, `ospfd' configuration is done in OSPF specific
 2154: configuration file `ospfd.conf'.
 2155: 
 2156: 
 2157: File: quagga.info,  Node: OSPF router,  Next: OSPF area,  Prev: Configuring ospfd,  Up: OSPFv2
 2158: 
 2159: 7.2 OSPF router
 2160: ===============
 2161: 
 2162: To start OSPF process you have to specify the OSPF router.  As of this
 2163: writing, `ospfd' does not support multiple OSPF processes.
 2164: 
 2165:  -- Command: router ospf
 2166:  -- Command: no router ospf
 2167:      Enable or disable the OSPF process.  `ospfd' does not yet support
 2168:      multiple OSPF processes.  So you can not specify an OSPF process
 2169:      number.
 2170: 
 2171:  -- OSPF Command: ospf router-id A.B.C.D
 2172:  -- OSPF Command: no ospf router-id
 2173:      This sets the router-ID of the OSPF process. The router-ID may be
 2174:      an IP address of the router, but need not be - it can be any
 2175:      arbitrary 32bit number. However it MUST be unique within the
 2176:      entire OSPF domain to the OSPF speaker - bad things will happen if
 2177:      multiple OSPF speakers are configured with the same router-ID! If
 2178:      one is not specified then `ospfd' will obtain a router-ID
 2179:      automatically from `zebra'.
 2180: 
 2181:  -- OSPF Command: ospf abr-type TYPE
 2182:  -- OSPF Command: no ospf abr-type TYPE
 2183:      TYPE can be cisco|ibm|shortcut|standard. The "Cisco" and "IBM"
 2184:      types are equivalent.
 2185: 
 2186:      The OSPF standard for ABR behaviour does not allow an ABR to
 2187:      consider routes through non-backbone areas when its links to the
 2188:      backbone are down, even when there are other ABRs in attached
 2189:      non-backbone areas which still can reach the backbone - this
 2190:      restriction exists primarily to ensure routing-loops are avoided.
 2191: 
 2192:      With the "Cisco" or "IBM" ABR type, the default in this release of
 2193:      Quagga, this restriction is lifted, allowing an ABR to consider
 2194:      summaries learnt from other ABRs through non-backbone areas, and
 2195:      hence route via non-backbone areas as a last resort when, and only
 2196:      when, backbone links are down.
 2197: 
 2198:      Note that areas with fully-adjacent virtual-links are considered
 2199:      to be "transit capable" and can always be used to route backbone
 2200:      traffic, and hence are unaffected by this setting (*note OSPF
 2201:      virtual-link::).
 2202: 
 2203:      More information regarding the behaviour controlled by this
 2204:      command can be found in `RFC 3509, Alternative Implementations of
 2205:      OSPF Area Border Routers', and
 2206:      `draft-ietf-ospf-shortcut-abr-02.txt'.
 2207: 
 2208:      Quote: "Though the definition of the ABR (Area Border Router) in
 2209:      the OSPF specification does not require a router with multiple
 2210:      attached areas to have a backbone connection, it is actually
 2211:      necessary to provide successful routing to the inter-area and
 2212:      external destinations. If this requirement is not met, all traffic
 2213:      destined for the areas not connected to such an ABR or out of the
 2214:      OSPF domain, is dropped.  This document describes alternative ABR
 2215:      behaviors implemented in Cisco and IBM routers."
 2216: 
 2217:  -- OSPF Command: ospf rfc1583compatibility
 2218:  -- OSPF Command: no ospf rfc1583compatibility
 2219:      `RFC2328', the sucessor to `RFC1583', suggests according to
 2220:      section G.2 (changes) in section 16.4 a change to the path
 2221:      preference algorithm that prevents possible routing loops that were
 2222:      possible in the old version of OSPFv2. More specifically it demands
 2223:      that inter-area paths and intra-area backbone path are now of
 2224:      equal preference but still both preferred to external paths.
 2225: 
 2226:      This command should NOT be set normally.
 2227: 
 2228:  -- OSPF Command: log-adjacency-changes [detail]
 2229:  -- OSPF Command: no log-adjacency-changes [detail]
 2230:      Configures ospfd to log changes in adjacency.  With the optional
 2231:      detail argument, all changes in adjacency status are shown.
 2232:      Without detail, only changes to full or regressions are shown.
 2233: 
 2234:  -- OSPF Command: passive-interface INTERFACE
 2235:  -- OSPF Command: no passive-interface INTERFACE
 2236:      Do not speak OSPF interface on the given interface, but do
 2237:      advertise the interface as a stub link in the router-LSA (Link
 2238:      State Advertisement) for this router. This allows one to advertise
 2239:      addresses on such connected interfaces without having to originate
 2240:      AS-External/Type-5 LSAs (which have global flooding scope) - as
 2241:      would occur if connected addresses were redistributed into OSPF
 2242:      (*note Redistribute routes to OSPF::). This is the only way to
 2243:      advertise non-OSPF links into stub areas.
 2244: 
 2245:  -- OSPF Command: timers throttle spf DELAY INITIAL-HOLDTIME
 2246: MAX-HOLDTIME
 2247:  -- OSPF Command: no timers throttle spf
 2248:      This command sets the initial DELAY, the INITIAL-HOLDTIME and the
 2249:      MAXIMUM-HOLDTIME between when SPF is calculated and the event
 2250:      which triggered the calculation. The times are specified in
 2251:      milliseconds and must be in the range of 0 to 600000 milliseconds.
 2252: 
 2253:      The DELAY specifies the minimum amount of time to delay SPF
 2254:      calculation (hence it affects how long SPF calculation is delayed
 2255:      after an event which occurs outside of the holdtime of any
 2256:      previous SPF calculation, and also serves as a minimum holdtime).
 2257: 
 2258:      Consecutive SPF calculations will always be seperated by at least
 2259:      'hold-time' milliseconds. The hold-time is adaptive and initially
 2260:      is set to the INITIAL-HOLDTIME configured with the above command.
 2261:      Events which occur within the holdtime of the previous SPF
 2262:      calculation will cause the holdtime to be increased by
 2263:      INITIAL-HOLDTIME, bounded by the MAXIMUM-HOLDTIME configured with
 2264:      this command. If the adaptive hold-time elapses without any
 2265:      SPF-triggering event occuring then the current holdtime is reset
 2266:      to the INITIAL-HOLDTIME. The current holdtime can be viewed with
 2267:      *note show ip ospf::, where it is expressed as a multiplier of the
 2268:      INITIAL-HOLDTIME.
 2269: 
 2270:           router ospf
 2271:            timers throttle spf 200 400 10000
 2272: 
 2273:      In this example, the DELAY is set to 200ms, the INITIAL HOLDTIME
 2274:      is set to 400ms and the MAXIMUM HOLDTIME to 10s. Hence there will
 2275:      always be at least 200ms between an event which requires SPF
 2276:      calculation and the actual SPF calculation. Further consecutive SPF
 2277:      calculations will always be seperated by between 400ms to 10s, the
 2278:      hold-time increasing by 400ms each time an SPF-triggering event
 2279:      occurs within the hold-time of the previous SPF calculation.
 2280: 
 2281:      This command supercedes the `timers spf' command in previous Quagga
 2282:      releases.
 2283: 
 2284:  -- OSPF Command: max-metric router-lsa [on-startup|on-shutdown]
 2285: <5-86400>
 2286:  -- OSPF Command: max-metric router-lsa administrative
 2287:  -- OSPF Command: no max-metric router-lsa
 2288: [on-startup|on-shutdown|administrative]
 2289:      This enables `RFC3137, OSPF Stub Router Advertisement' support,
 2290:      where the OSPF process describes its transit links in its
 2291:      router-LSA as having infinite distance so that other routers will
 2292:      avoid calculating transit paths through the router while still
 2293:      being able to reach networks through the router.
 2294: 
 2295:      This support may be enabled administratively (and indefinitely) or
 2296:      conditionally. Conditional enabling of max-metric router-lsas can
 2297:      be for a period of seconds after startup and/or for a period of
 2298:      seconds prior to shutdown.
 2299: 
 2300:      Enabling this for a period after startup allows OSPF to converge
 2301:      fully first without affecting any existing routes used by other
 2302:      routers, while still allowing any connected stub links and/or
 2303:      redistributed routes to be reachable. Enabling this for a period
 2304:      of time in advance of shutdown allows the router to gracefully
 2305:      excuse itself from the OSPF domain.
 2306: 
 2307:      Enabling this feature administratively allows for administrative
 2308:      intervention for whatever reason, for an indefinite period of time.
 2309:      Note that if the configuration is written to file, this
 2310:      administrative form of the stub-router command will also be
 2311:      written to file. If `ospfd' is restarted later, the command will
 2312:      then take effect until manually deconfigured.
 2313: 
 2314:      Configured state of this feature as well as current status, such
 2315:      as the number of second remaining till on-startup or on-shutdown
 2316:      ends, can be viewed with the *note show ip ospf:: command.
 2317: 
 2318:  -- OSPF Command: auto-cost reference-bandwidth <1-4294967>
 2319:  -- OSPF Command: no auto-cost reference-bandwidth
 2320:      This sets the reference bandwidth for cost calculations, where
 2321:      this bandwidth is considered equivalent to an OSPF cost of 1,
 2322:      specified in Mbits/s. The default is 100Mbit/s (i.e. a link of
 2323:      bandwidth 100Mbit/s or higher will have a cost of 1. Cost of lower
 2324:      bandwidth links will be scaled with reference to this cost).
 2325: 
 2326:      This configuration setting MUST be consistent across all routers
 2327:      within the OSPF domain.
 2328: 
 2329:  -- OSPF Command: network A.B.C.D/M area A.B.C.D
 2330:  -- OSPF Command: network A.B.C.D/M area <0-4294967295>
 2331:  -- OSPF Command: no network A.B.C.D/M area A.B.C.D
 2332:  -- OSPF Command: no network A.B.C.D/M area <0-4294967295>
 2333:      This command specifies the OSPF enabled interface(s).  If the
 2334:      interface has an address from range 192.168.1.0/24 then the
 2335:      command below enables ospf on this interface so router can provide
 2336:      network information to the other ospf routers via this interface.
 2337: 
 2338:           router ospf
 2339:            network 192.168.1.0/24 area 0.0.0.0
 2340: 
 2341:      Prefix length in interface must be equal or bigger (ie. smaller
 2342:      network) than prefix length in network statement. For example
 2343:      statement above doesn't enable ospf on interface with address
 2344:      192.168.1.1/23, but it does on interface with address
 2345:      192.168.1.129/25.
 2346: 
 2347:      Note that the behavior when there is a peer address defined on an
 2348:      interface changed after release 0.99.7.  Currently, if a peer
 2349:      prefix has been configured, then we test whether the prefix in the
 2350:      network command contains the destination prefix.  Otherwise, we
 2351:      test whether the network command prefix contains the local address
 2352:      prefix of the interface.
 2353: 
 2354: 
 2355: File: quagga.info,  Node: OSPF area,  Next: OSPF interface,  Prev: OSPF router,  Up: OSPFv2
 2356: 
 2357: 7.3 OSPF area
 2358: =============
 2359: 
 2360:  -- OSPF Command: area A.B.C.D range A.B.C.D/M
 2361:  -- OSPF Command: area <0-4294967295> range A.B.C.D/M
 2362:  -- OSPF Command: no area A.B.C.D range A.B.C.D/M
 2363:  -- OSPF Command: no area <0-4294967295> range A.B.C.D/M
 2364:      Summarize intra area paths from specified area into one Type-3
 2365:      summary-LSA announced to other areas. This command can be used
 2366:      only in ABR and ONLY router-LSAs (Type-1) and network-LSAs
 2367:      (Type-2) (ie. LSAs with scope area) can be summarized. Type-5
 2368:      AS-external-LSAs can't be summarized - their scope is AS.
 2369:      Summarizing Type-7 AS-external-LSAs isn't supported yet by Quagga.
 2370: 
 2371:           router ospf
 2372:            network 192.168.1.0/24 area 0.0.0.0
 2373:            network 10.0.0.0/8 area 0.0.0.10
 2374:            area 0.0.0.10 range 10.0.0.0/8
 2375: 
 2376:      With configuration above one Type-3 Summary-LSA with routing info
 2377:      10.0.0.0/8 is announced into backbone area if area 0.0.0.10
 2378:      contains at least one intra-area network (ie. described with
 2379:      router or network LSA) from this range.
 2380: 
 2381:  -- OSPF Command: area A.B.C.D range IPV4_PREFIX not-advertise
 2382:  -- OSPF Command: no area A.B.C.D range IPV4_PREFIX not-advertise
 2383:      Instead of summarizing intra area paths filter them - ie. intra
 2384:      area paths from this range are not advertised into other areas.
 2385:      This command makes sense in ABR only.
 2386: 
 2387:  -- OSPF Command: area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX
 2388:  -- OSPF Command: no area A.B.C.D range IPV4_PREFIX substitute
 2389: IPV4_PREFIX
 2390:      Substitute summarized prefix with another prefix.
 2391: 
 2392:           router ospf
 2393:            network 192.168.1.0/24 area 0.0.0.0
 2394:            network 10.0.0.0/8 area 0.0.0.10
 2395:            area 0.0.0.10 range 10.0.0.0/8 substitute 11.0.0.0/8
 2396: 
 2397:      One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced
 2398:      into backbone area if area 0.0.0.10 contains at least one
 2399:      intra-area network (ie. described with router-LSA or network-LSA)
 2400:      from range 10.0.0.0/8.  This command makes sense in ABR only.
 2401: 
 2402:  -- OSPF Command: area A.B.C.D virtual-link A.B.C.D
 2403:  -- OSPF Command: area <0-4294967295> virtual-link A.B.C.D
 2404:  -- OSPF Command: no area A.B.C.D virtual-link A.B.C.D
 2405:  -- OSPF Command: no area <0-4294967295> virtual-link A.B.C.D
 2406: 
 2407:  -- OSPF Command: area A.B.C.D shortcut
 2408:  -- OSPF Command: area <0-4294967295> shortcut
 2409:  -- OSPF Command: no area A.B.C.D shortcut
 2410:  -- OSPF Command: no area <0-4294967295> shortcut
 2411:      Configure the area as Shortcut capable. See `RFC3509'. This
 2412:      requires that the 'abr-type' be set to 'shortcut'.
 2413: 
 2414:  -- OSPF Command: area A.B.C.D stub
 2415:  -- OSPF Command: area <0-4294967295> stub
 2416:  -- OSPF Command: no area A.B.C.D stub
 2417:  -- OSPF Command: no area <0-4294967295> stub
 2418:      Configure the area to be a stub area. That is, an area where no
 2419:      router originates routes external to OSPF and hence an area where
 2420:      all external routes are via the ABR(s). Hence, ABRs for such an
 2421:      area do not need to pass AS-External LSAs (type-5s) or
 2422:      ASBR-Summary LSAs (type-4) into the area. They need only pass
 2423:      Network-Summary (type-3) LSAs into such an area, along with a
 2424:      default-route summary.
 2425: 
 2426:  -- OSPF Command: area A.B.C.D stub no-summary
 2427:  -- OSPF Command: area <0-4294967295> stub no-summary
 2428:  -- OSPF Command: no area A.B.C.D stub no-summary
 2429:  -- OSPF Command: no area <0-4294967295> stub no-summary
 2430:      Prevents an `ospfd' ABR from injecting inter-area summaries into
 2431:      the specified stub area.
 2432: 
 2433:  -- OSPF Command: area A.B.C.D default-cost <0-16777215>
 2434:  -- OSPF Command: no area A.B.C.D default-cost <0-16777215>
 2435:      Set the cost of default-summary LSAs announced to stubby areas.
 2436: 
 2437:  -- OSPF Command: area A.B.C.D export-list NAME
 2438:  -- OSPF Command: area <0-4294967295> export-list NAME
 2439:  -- OSPF Command: no area A.B.C.D export-list NAME
 2440:  -- OSPF Command: no area <0-4294967295> export-list NAME
 2441:      Filter Type-3 summary-LSAs announced to other areas originated
 2442:      from intra- area paths from specified area.
 2443: 
 2444:           router ospf
 2445:            network 192.168.1.0/24 area 0.0.0.0
 2446:            network 10.0.0.0/8 area 0.0.0.10
 2447:            area 0.0.0.10 export-list foo
 2448:           !
 2449:           access-list foo permit 10.10.0.0/16
 2450:           access-list foo deny any
 2451: 
 2452:      With example above any intra-area paths from area 0.0.0.10 and
 2453:      from range 10.10.0.0/16 (for example 10.10.1.0/24 and
 2454:      10.10.2.128/30) are announced into other areas as Type-3
 2455:      summary-LSA's, but any others (for example 10.11.0.0/16 or
 2456:      10.128.30.16/30) aren't.
 2457: 
 2458:      This command is only relevant if the router is an ABR for the
 2459:      specified area.
 2460: 
 2461:  -- OSPF Command: area A.B.C.D import-list NAME
 2462:  -- OSPF Command: area <0-4294967295> import-list NAME
 2463:  -- OSPF Command: no area A.B.C.D import-list NAME
 2464:  -- OSPF Command: no area <0-4294967295> import-list NAME
 2465:      Same as export-list, but it applies to paths announced into
 2466:      specified area as Type-3 summary-LSAs.
 2467: 
 2468:  -- OSPF Command: area A.B.C.D filter-list prefix NAME in
 2469:  -- OSPF Command: area A.B.C.D filter-list prefix NAME out
 2470:  -- OSPF Command: area <0-4294967295> filter-list prefix NAME in
 2471:  -- OSPF Command: area <0-4294967295> filter-list prefix NAME out
 2472:  -- OSPF Command: no area A.B.C.D filter-list prefix NAME in
 2473:  -- OSPF Command: no area A.B.C.D filter-list prefix NAME out
 2474:  -- OSPF Command: no area <0-4294967295> filter-list prefix NAME in
 2475:  -- OSPF Command: no area <0-4294967295> filter-list prefix NAME out
 2476:      Filtering Type-3 summary-LSAs to/from area using prefix lists.
 2477:      This command makes sense in ABR only.
 2478: 
 2479:  -- OSPF Command: area A.B.C.D authentication
 2480:  -- OSPF Command: area <0-4294967295> authentication
 2481:  -- OSPF Command: no area A.B.C.D authentication
 2482:  -- OSPF Command: no area <0-4294967295> authentication
 2483:      Specify that simple password authentication should be used for the
 2484:      given area.
 2485: 
 2486:  -- OSPF Command: area A.B.C.D authentication message-digest
 2487:  -- OSPF Command: area <0-4294967295> authentication message-digest
 2488:      Specify that OSPF packets must be authenticated with MD5 HMACs
 2489:      within the given area. Keying material must also be configured on
 2490:      a per-interface basis (*note ip ospf message-digest-key::).
 2491: 
 2492:      MD5 authentication may also be configured on a per-interface basis
 2493:      (*note ip ospf authentication message-digest::). Such per-interface
 2494:      settings will override any per-area authentication setting.
 2495: 
 2496: 
 2497: File: quagga.info,  Node: OSPF interface,  Next: Redistribute routes to OSPF,  Prev: OSPF area,  Up: OSPFv2
 2498: 
 2499: 7.4 OSPF interface
 2500: ==================
 2501: 
 2502:  -- Interface Command: ip ospf authentication-key AUTH_KEY
 2503:  -- Interface Command: no ip ospf authentication-key
 2504:      Set OSPF authentication key to a simple password.  After setting
 2505:      AUTH_KEY, all OSPF packets are authenticated. AUTH_KEY has length
 2506:      up to 8 chars.
 2507: 
 2508:      Simple text password authentication is insecure and deprecated in
 2509:      favour of MD5 HMAC authentication (*note ip ospf authentication
 2510:      message-digest::).
 2511: 
 2512:  -- Interface Command: ip ospf authentication message-digest
 2513:      Specify that MD5 HMAC authentication must be used on this
 2514:      interface. MD5 keying material must also be configured (*note ip
 2515:      ospf message-digest-key::). Overrides any authentication enabled
 2516:      on a per-area basis (*note area authentication message-digest::).
 2517: 
 2518:      Note that OSPF MD5 authentication requires that time never go
 2519:      backwards (correct time is NOT important, only that it never goes
 2520:      backwards), even across resets, if ospfd is to be able to promptly
 2521:      reestabish adjacencies with its neighbours after restarts/reboots.
 2522:      The host should have system time be set at boot from an external
 2523:      or non-volatile source (eg battery backed clock, NTP, etc.) or
 2524:      else the system clock should be periodically saved to non-volative
 2525:      storage and restored at boot if MD5 authentication is to be
 2526:      expected to work reliably.
 2527: 
 2528:  -- Interface Command: ip ospf message-digest-key KEYID md5 KEY
 2529:  -- Interface Command: no ip ospf message-digest-key
 2530:      Set OSPF authentication key to a cryptographic password.  The
 2531:      cryptographic algorithm is MD5.
 2532: 
 2533:      KEYID identifies secret key used to create the message digest.
 2534:      This ID is part of the protocol and must be consistent across
 2535:      routers on a link.
 2536: 
 2537:      KEY is the actual message digest key, of up to 16 chars (larger
 2538:      strings will be truncated), and is associated with the given KEYID.
 2539: 
 2540:  -- Interface Command: ip ospf cost <1-65535>
 2541:  -- Interface Command: no ip ospf cost
 2542:      Set link cost for the specified interface.  The cost value is set
 2543:      to router-LSA's metric field and used for SPF calculation.
 2544: 
 2545:  -- Interface Command: ip ospf dead-interval <1-65535>
 2546:  -- Interface Command: ip ospf dead-interval minimal hello-multiplier
 2547: <2-20>
 2548:  -- Interface Command: no ip ospf dead-interval
 2549:      Set number of seconds for RouterDeadInterval timer value used for
 2550:      Wait Timer and Inactivity Timer.  This value must be the same for
 2551:      all routers attached to a common network.  The default value is 40
 2552:      seconds.
 2553: 
 2554:      If 'minimal' is specified instead, then the dead-interval is set
 2555:      to 1 second and one must specify a hello-multiplier. The
 2556:      hello-multiplier specifies how many Hellos to send per second,
 2557:      from 2 (every 500ms) to 20 (every 50ms). Thus one can have 1s
 2558:      convergence time for OSPF. If this form is specified, then the
 2559:      hello-interval advertised in Hello packets is set to 0 and the
 2560:      hello-interval on received Hello packets is not checked, thus the
 2561:      hello-multiplier need NOT be the same across multiple routers on a
 2562:      common link.
 2563: 
 2564:  -- Interface Command: ip ospf hello-interval <1-65535>
 2565:  -- Interface Command: no ip ospf hello-interval
 2566:      Set number of seconds for HelloInterval timer value.  Setting this
 2567:      value, Hello packet will be sent every timer value seconds on the
 2568:      specified interface.  This value must be the same for all routers
 2569:      attached to a common network.  The default value is 10 seconds.
 2570: 
 2571:      This command has no effect if *note ip ospf dead-interval
 2572:      minimal:: is also specified for the interface.
 2573: 
 2574:  -- Interface Command: ip ospf network
 2575: (broadcast|non-broadcast|point-to-multipoint|point-to-point)
 2576:  -- Interface Command: no ip ospf network
 2577:      Set explicitly network type for specifed interface.
 2578: 
 2579:  -- Interface Command: ip ospf priority <0-255>
 2580:  -- Interface Command: no ip ospf priority
 2581:      Set RouterPriority integer value.  The router with the highest
 2582:      priority will be more eligible to become Designated Router.
 2583:      Setting the value to 0, makes the router ineligible to become
 2584:      Designated Router. The default value is 1.
 2585: 
 2586:  -- Interface Command: ip ospf retransmit-interval <1-65535>
 2587:  -- Interface Command: no ip ospf retransmit interval
 2588:      Set number of seconds for RxmtInterval timer value.  This value is
 2589:      used when retransmitting Database Description and Link State
 2590:      Request packets.  The default value is 5 seconds.
 2591: 
 2592:  -- Interface Command: ip ospf transmit-delay
 2593:  -- Interface Command: no ip ospf transmit-delay
 2594:      Set number of seconds for InfTransDelay value.  LSAs' age should be
 2595:      incremented by this value when transmitting.  The default value is
 2596:      1 seconds.
 2597: 
 2598: 
 2599: File: quagga.info,  Node: Redistribute routes to OSPF,  Next: Showing OSPF information,  Prev: OSPF interface,  Up: OSPFv2
 2600: 
 2601: 7.5 Redistribute routes to OSPF
 2602: ===============================
 2603: 
 2604:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
 2605:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
 2606: ROUTE-MAP
 2607:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
 2608: metric-type (1|2)
 2609:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
 2610: metric-type (1|2) route-map WORD
 2611:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) metric
 2612: <0-16777214>
 2613:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) metric
 2614: <0-16777214> route-map WORD
 2615:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
 2616: metric-type (1|2) metric <0-16777214>
 2617:  -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
 2618: metric-type (1|2) metric <0-16777214> route-map WORD
 2619:  -- OSPF Command: no redistribute (kernel|connected|static|rip|bgp)
 2620:      Redistribute routes of the specified protocol or kind into OSPF,
 2621:      with the metric type and metric set if specified, filtering the
 2622:      routes using the given route-map if specified.  Redistributed
 2623:      routes may also be filtered with distribute-lists, see *note ospf
 2624:      distribute-list::.
 2625: 
 2626:      Redistributed routes are distributed as into OSPF as Type-5
 2627:      External LSAs into links to areas that accept external routes,
 2628:      Type-7 External LSAs for NSSA areas and are not redistributed at
 2629:      all into Stub areas, where external routes are not permitted.
 2630: 
 2631:      Note that for connected routes, one may instead use
 2632:      "passive-interface", see *note OSPF passive-interface::.
 2633: 
 2634:  -- OSPF Command: default-information originate
 2635:  -- OSPF Command: default-information originate metric <0-16777214>
 2636:  -- OSPF Command: default-information originate metric <0-16777214>
 2637: metric-type (1|2)
 2638:  -- OSPF Command: default-information originate metric <0-16777214>
 2639: metric-type (1|2) route-map WORD
 2640:  -- OSPF Command: default-information originate always
 2641:  -- OSPF Command: default-information originate always metric
 2642: <0-16777214>
 2643:  -- OSPF Command: default-information originate always metric
 2644: <0-16777214> metric-type (1|2)
 2645:  -- OSPF Command: default-information originate always metric
 2646: <0-16777214> metric-type (1|2) route-map WORD
 2647:  -- OSPF Command: no default-information originate
 2648:      Originate an AS-External (type-5) LSA describing a default route
 2649:      into all external-routing capable areas, of the specified metric
 2650:      and metric type. If the 'always' keyword is given then the default
 2651:      is always advertised, even when there is no default present in the
 2652:      routing table.
 2653: 
 2654:  -- OSPF Command: distribute-list NAME out
 2655: (kernel|connected|static|rip|ospf
 2656:  -- OSPF Command: no distribute-list NAME out
 2657: (kernel|connected|static|rip|ospf
 2658:      Apply the access-list filter, NAME, to redistributed routes of the
 2659:      given type before allowing the routes to redistributed into OSPF
 2660:      (*note OSPF redistribute::).
 2661: 
 2662:  -- OSPF Command: default-metric <0-16777214>
 2663:  -- OSPF Command: no default-metric
 2664: 
 2665:  -- OSPF Command: distance <1-255>
 2666:  -- OSPF Command: no distance <1-255>
 2667: 
 2668:  -- OSPF Command: distance ospf (intra-area|inter-area|external)
 2669:           <1-255>
 2670:  -- OSPF Command: no distance ospf
 2671: 
 2672:  -- Command: router zebra
 2673:  -- Command: no router zebra
 2674: 
 2675: 
 2676: File: quagga.info,  Node: Showing OSPF information,  Next: Debugging OSPF,  Prev: Redistribute routes to OSPF,  Up: OSPFv2
 2677: 
 2678: 7.6 Showing OSPF information
 2679: ============================
 2680: 
 2681:  -- Command: show ip ospf
 2682:      Show information on a variety of general OSPF and area state and
 2683:      configuration information.
 2684: 
 2685:  -- Command: show ip ospf interface [INTERFACE]
 2686:      Show state and configuration of OSPF the specified interface, or
 2687:      all interfaces if no interface is given.
 2688: 
 2689:  -- Command: show ip ospf neighbor
 2690:  -- Command: show ip ospf neighbor INTERFACE
 2691:  -- Command: show ip ospf neighbor detail
 2692:  -- Command: show ip ospf neighbor INTERFACE detail
 2693: 
 2694:  -- Command: show ip ospf database
 2695: 
 2696:  -- Command: show ip ospf database
 2697: (asbr-summary|external|network|router|summary)
 2698:  -- Command: show ip ospf database
 2699: (asbr-summary|external|network|router|summary) LINK-STATE-ID
 2700:  -- Command: show ip ospf database
 2701: (asbr-summary|external|network|router|summary) LINK-STATE-ID adv-router
 2702: ADV-ROUTER
 2703:  -- Command: show ip ospf database
 2704: (asbr-summary|external|network|router|summary) adv-router ADV-ROUTER
 2705:  -- Command: show ip ospf database
 2706: (asbr-summary|external|network|router|summary) LINK-STATE-ID
 2707: self-originate
 2708:  -- Command: show ip ospf database
 2709: (asbr-summary|external|network|router|summary) self-originate
 2710: 
 2711:  -- Command: show ip ospf database max-age
 2712: 
 2713:  -- Command: show ip ospf database self-originate
 2714: 
 2715:  -- Command: show ip ospf route
 2716:      Show the OSPF routing table, as determined by the most recent SPF
 2717:      calculation.
 2718: 
 2719: 
 2720: File: quagga.info,  Node: Debugging OSPF,  Next: OSPF Configuration Examples,  Prev: Showing OSPF information,  Up: OSPFv2
 2721: 
 2722: 7.7 Debugging OSPF
 2723: ==================
 2724: 
 2725:  -- Command: debug ospf packet
 2726: (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]
 2727:  -- Command: no debug ospf packet
 2728: (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]
 2729: 
 2730:  -- Command: debug ospf ism
 2731:  -- Command: debug ospf ism (status|events|timers)
 2732:  -- Command: no debug ospf ism
 2733:  -- Command: no debug ospf ism (status|events|timers)
 2734: 
 2735:  -- Command: debug ospf nsm
 2736:  -- Command: debug ospf nsm (status|events|timers)
 2737:  -- Command: no debug ospf nsm
 2738:  -- Command: no debug ospf nsm (status|events|timers)
 2739: 
 2740:  -- Command: debug ospf lsa
 2741:  -- Command: debug ospf lsa (generate|flooding|refresh)
 2742:  -- Command: no debug ospf lsa
 2743:  -- Command: no debug ospf lsa (generate|flooding|refresh)
 2744: 
 2745:  -- Command: debug ospf zebra
 2746:  -- Command: debug ospf zebra (interface|redistribute)
 2747:  -- Command: no debug ospf zebra
 2748:  -- Command: no debug ospf zebra (interface|redistribute)
 2749: 
 2750:  -- Command: show debugging ospf
 2751: 
 2752: 
 2753: File: quagga.info,  Node: OSPF Configuration Examples,  Prev: Debugging OSPF,  Up: OSPFv2
 2754: 
 2755: 7.8 OSPF Configuration Examples
 2756: ===============================
 2757: 
 2758: A simple example, with MD5 authentication enabled:
 2759: 
 2760:      !
 2761:      interface bge0
 2762:       ip ospf authentication message-digest
 2763:       ip ospf message-digest-key 1 md5 ABCDEFGHIJK
 2764:      !
 2765:      router ospf
 2766:       network 192.168.0.0/16 area 0.0.0.1
 2767:       area 0.0.0.1 authentication message-digest
 2768: 
 2769:    An ABR router, with MD5 authentication and performing summarisation
 2770: of networks between the areas:
 2771: 
 2772:      !
 2773:      password ABCDEF
 2774:      log file /var/log/quagga/ospfd.log
 2775:      service advanced-vty
 2776:      !
 2777:      interface eth0
 2778:       ip ospf authentication message-digest
 2779:       ip ospf message-digest-key 1 md5 ABCDEFGHIJK
 2780:      !
 2781:      interface ppp0
 2782:      !
 2783:      interface br0
 2784:       ip ospf authentication message-digest
 2785:       ip ospf message-digest-key 2 md5 XYZ12345
 2786:      !
 2787:      router ospf
 2788:       ospf router-id 192.168.0.1
 2789:       redistribute connected
 2790:       passive interface ppp0
 2791:       network 192.168.0.0/24 area 0.0.0.0
 2792:       network 10.0.0.0/16 area 0.0.0.0
 2793:       network 192.168.1.0/24 area 0.0.0.1
 2794:       area 0.0.0.0 authentication message-digest
 2795:       area 0.0.0.0 range 10.0.0.0/16
 2796:       area 0.0.0.0 range 192.168.0.0/24
 2797:       area 0.0.0.1 authentication message-digest
 2798:       area 0.0.0.1 range 10.2.0.0/16
 2799:      !
 2800: 
 2801: 
 2802: File: quagga.info,  Node: OSPFv3,  Next: BGP,  Prev: OSPFv2,  Up: Top
 2803: 
 2804: 8 OSPFv3
 2805: ********
 2806: 
 2807: `ospf6d' is a daemon support OSPF version 3 for IPv6 network.  OSPF for
 2808: IPv6 is described in RFC2740.
 2809: 
 2810: * Menu:
 2811: 
 2812: * OSPF6 router::
 2813: * OSPF6 area::
 2814: * OSPF6 interface::
 2815: * Redistribute routes to OSPF6::
 2816: * Showing OSPF6 information::
 2817: * OSPF6 Configuration Examples::
 2818: 
 2819: 
 2820: File: quagga.info,  Node: OSPF6 router,  Next: OSPF6 area,  Up: OSPFv3
 2821: 
 2822: 8.1 OSPF6 router
 2823: ================
 2824: 
 2825:  -- Command: router ospf6
 2826: 
 2827:  -- OSPF6 Command: router-id A.B.C.D
 2828:      Set router's Router-ID.
 2829: 
 2830:  -- OSPF6 Command: interface IFNAME area AREA
 2831:      Bind interface to specified area, and start sending OSPF packets.
 2832:      AREA can be specified as 0.
 2833: 
 2834: 
 2835: File: quagga.info,  Node: OSPF6 area,  Next: OSPF6 interface,  Prev: OSPF6 router,  Up: OSPFv3
 2836: 
 2837: 8.2 OSPF6 area
 2838: ==============
 2839: 
 2840: Area support for OSPFv3 is not yet implemented.
 2841: 
 2842: 
 2843: File: quagga.info,  Node: OSPF6 interface,  Next: Redistribute routes to OSPF6,  Prev: OSPF6 area,  Up: OSPFv3
 2844: 
 2845: 8.3 OSPF6 interface
 2846: ===================
 2847: 
 2848:  -- Interface Command: ipv6 ospf6 cost COST
 2849:      Sets interface's output cost.  Default value is 1.
 2850: 
 2851:  -- Interface Command: ipv6 ospf6 hello-interval HELLOINTERVAL
 2852:      Sets interface's Hello Interval.  Default 40
 2853: 
 2854:  -- Interface Command: ipv6 ospf6 dead-interval DEADINTERVAL
 2855:      Sets interface's Router Dead Interval.  Default value is 40.
 2856: 
 2857:  -- Interface Command: ipv6 ospf6 retransmit-interval
 2858:           RETRANSMITINTERVAL
 2859:      Sets interface's Rxmt Interval.  Default value is 5.
 2860: 
 2861:  -- Interface Command: ipv6 ospf6 priority PRIORITY
 2862:      Sets interface's Router Priority.  Default value is 1.
 2863: 
 2864:  -- Interface Command: ipv6 ospf6 transmit-delay TRANSMITDELAY
 2865:      Sets interface's Inf-Trans-Delay.  Default value is 1.
 2866: 
 2867: 
 2868: File: quagga.info,  Node: Redistribute routes to OSPF6,  Next: Showing OSPF6 information,  Prev: OSPF6 interface,  Up: OSPFv3
 2869: 
 2870: 8.4 Redistribute routes to OSPF6
 2871: ================================
 2872: 
 2873:  -- OSPF6 Command: redistribute static
 2874:  -- OSPF6 Command: redistribute connected
 2875:  -- OSPF6 Command: redistribute ripng
 2876: 
 2877: 
 2878: File: quagga.info,  Node: Showing OSPF6 information,  Next: OSPF6 Configuration Examples,  Prev: Redistribute routes to OSPF6,  Up: OSPFv3
 2879: 
 2880: 8.5 Showing OSPF6 information
 2881: =============================
 2882: 
 2883:  -- Command: show ipv6 ospf6 [INSTANCE_ID]
 2884:      INSTANCE_ID is an optional OSPF instance ID. To see router ID and
 2885:      OSPF instance ID, simply type "show ipv6 ospf6 <cr>".
 2886: 
 2887:  -- Command: show ipv6 ospf6 database
 2888:      This command shows LSA database summary.  You can specify the type
 2889:      of LSA.
 2890: 
 2891:  -- Command: show ipv6 ospf6 interface
 2892:      To see OSPF interface configuration like costs.
 2893: 
 2894:  -- Command: show ipv6 ospf6 neighbor
 2895:      Shows state and chosen (Backup) DR of neighbor.
 2896: 
 2897:  -- Command: show ipv6 ospf6 request-list A.B.C.D
 2898:      Shows requestlist of neighbor.
 2899: 
 2900:  -- Command: show ipv6 route ospf6
 2901:      This command shows internal routing table.
 2902: 
 2903: 
 2904: File: quagga.info,  Node: OSPF6 Configuration Examples,  Prev: Showing OSPF6 information,  Up: OSPFv3
 2905: 
 2906: 8.6 OSPF6 Configuration Examples
 2907: ================================
 2908: 
 2909: Example of ospf6d configured on one interface and area:
 2910: 
 2911:      interface eth0
 2912:       ipv6 ospf6 instance-id 0
 2913:      !
 2914:      router ospf6
 2915:       router-id 212.17.55.53
 2916:       area 0.0.0.0 range 2001:770:105:2::/64
 2917:       interface eth0 area 0.0.0.0
 2918:      !
 2919: 
 2920: 
 2921: File: quagga.info,  Node: BGP,  Next: Configuring Quagga as a Route Server,  Prev: OSPFv3,  Up: Top
 2922: 
 2923: 9 BGP
 2924: *****
 2925: 
 2926: BGP stands for a Border Gateway Protocol.  The lastest BGP version is
 2927: 4.  It is referred as BGP-4.  BGP-4 is one of the Exterior Gateway
 2928: Protocols and de-fact standard of Inter Domain routing protocol.  BGP-4
 2929: is described in `RFC1771, A Border Gateway Protocol 4 (BGP-4)'.
 2930: 
 2931:    Many extensions have been added to `RFC1771'.  `RFC2858,
 2932: Multiprotocol Extensions for BGP-4' provides multiprotocol support to
 2933: BGP-4.
 2934: 
 2935: * Menu:
 2936: 
 2937: * Starting BGP::
 2938: * BGP router::
 2939: * BGP network::
 2940: * BGP Peer::
 2941: * BGP Peer Group::
 2942: * BGP Address Family::
 2943: * Autonomous System::
 2944: * BGP Communities Attribute::
 2945: * BGP Extended Communities Attribute::
 2946: * Displaying BGP routes::
 2947: * Capability Negotiation::
 2948: * Route Reflector::
 2949: * Route Server::
 2950: * How to set up a 6-Bone connection::
 2951: * Dump BGP packets and table::
 2952: * BGP Configuration Examples::
 2953: 
 2954: 
 2955: File: quagga.info,  Node: Starting BGP,  Next: BGP router,  Up: BGP
 2956: 
 2957: 9.1 Starting BGP
 2958: ================
 2959: 
 2960: Default configuration file of `bgpd' is `bgpd.conf'.  `bgpd' searches
 2961: the current directory first then /etc/quagga/bgpd.conf.  All of bgpd's
 2962: command must be configured in `bgpd.conf'.
 2963: 
 2964:    `bgpd' specific invocation options are described below.  Common
 2965: options may also be specified (*note Common Invocation Options::).
 2966: 
 2967: `-p PORT'
 2968: `--bgp_port=PORT'
 2969:      Set the bgp protocol's port number.
 2970: 
 2971: `-r'
 2972: `--retain'
 2973:      When program terminates, retain BGP routes added by zebra.
 2974: 
 2975: 
 2976: File: quagga.info,  Node: BGP router,  Next: BGP network,  Prev: Starting BGP,  Up: BGP
 2977: 
 2978: 9.2 BGP router
 2979: ==============
 2980: 
 2981: First of all you must configure BGP router with `router bgp' command.
 2982: To configure BGP router, you need AS number.  AS number is an
 2983: identification of autonomous system.  BGP protocol uses the AS number
 2984: for detecting whether the BGP connection is internal one or external
 2985: one.
 2986: 
 2987:  -- Command: router bgp ASN
 2988:      Enable a BGP protocol process with the specified ASN.  After this
 2989:      statement you can input any `BGP Commands'.  You can not create
 2990:      different BGP process under different ASN without specifying
 2991:      `multiple-instance' (*note Multiple instance::).
 2992: 
 2993:  -- Command: no router bgp ASN
 2994:      Destroy a BGP protocol process with the specified ASN.
 2995: 
 2996:  -- BGP: bgp router-id A.B.C.D
 2997:      This command specifies the router-ID.  If `bgpd' connects to
 2998:      `zebra' it gets interface and address information.  In that case
 2999:      default router ID value is selected as the largest IP Address of
 3000:      the interfaces.  When `router zebra' is not enabled `bgpd' can't
 3001:      get interface information so `router-id' is set to 0.0.0.0.  So
 3002:      please set router-id by hand.
 3003: 
 3004: * Menu:
 3005: 
 3006: * BGP distance::
 3007: * BGP decision process::
 3008: * BGP route flap dampening::
 3009: 
 3010: 
 3011: File: quagga.info,  Node: BGP distance,  Next: BGP decision process,  Up: BGP router
 3012: 
 3013: 9.2.1 BGP distance
 3014: ------------------
 3015: 
 3016:  -- BGP: distance bgp <1-255> <1-255> <1-255>
 3017:      This command change distance value of BGP.  Each argument is
 3018:      distance value for external routes, internal routes and local
 3019:      routes.
 3020: 
 3021:  -- BGP: distance <1-255> A.B.C.D/M
 3022:  -- BGP: distance <1-255> A.B.C.D/M WORD
 3023:      This command set distance value to
 3024: 
 3025: 
 3026: File: quagga.info,  Node: BGP decision process,  Next: BGP route flap dampening,  Prev: BGP distance,  Up: BGP router
 3027: 
 3028: 9.2.2 BGP decision process
 3029: --------------------------
 3030: 
 3031: 1. Weight check
 3032: 
 3033: 2. Local preference check.
 3034: 
 3035: 3. Local route check.
 3036: 
 3037: 4. AS path length check.
 3038: 
 3039: 5. Origin check.
 3040: 
 3041: 6. MED check.
 3042: 
 3043:  -- BGP: bgp bestpath as-path confed
 3044:      This command specifies that the length of confederation path sets
 3045:      and sequences should should be taken into account during the BGP
 3046:      best path decision process.
 3047: 
 3048: 
 3049: File: quagga.info,  Node: BGP route flap dampening,  Prev: BGP decision process,  Up: BGP router
 3050: 
 3051: 9.2.3 BGP route flap dampening
 3052: ------------------------------
 3053: 
 3054:  -- BGP: bgp dampening <1-45> <1-20000> <1-20000> <1-255>
 3055:      This command enables BGP route-flap dampening and specifies
 3056:      dampening parameters.
 3057: 
 3058:     half-life
 3059:           Half-life time for the penalty
 3060: 
 3061:     reuse-threshold
 3062:           Value to start reusing a route
 3063: 
 3064:     suppress-threshold
 3065:           Value to start suppressing a route
 3066: 
 3067:     max-suppress
 3068:           Maximum duration to suppress a stable route
 3069: 
 3070:      The route-flap damping algorithm is compatible with `RFC2439'. The
 3071:      use of this command is not recommended nowadays, see RIPE-378.
 3072: 
 3073: 
 3074: File: quagga.info,  Node: BGP network,  Next: BGP Peer,  Prev: BGP router,  Up: BGP
 3075: 
 3076: 9.3 BGP network
 3077: ===============
 3078: 
 3079: * Menu:
 3080: 
 3081: * BGP route::
 3082: * Route Aggregation::
 3083: * Redistribute to BGP::
 3084: 
 3085: 
 3086: File: quagga.info,  Node: BGP route,  Next: Route Aggregation,  Up: BGP network
 3087: 
 3088: 9.3.1 BGP route
 3089: ---------------
 3090: 
 3091:  -- BGP: network A.B.C.D/M
 3092:      This command adds the announcement network.
 3093:           router bgp 1
 3094:            network 10.0.0.0/8
 3095:      This configuration example says that network 10.0.0.0/8 will be
 3096:      announced to all neighbors.  Some vendors' routers don't advertise
 3097:      routes if they aren't present in their IGP routing tables; `bgpd'
 3098:      doesn't care about IGP routes when announcing its routes.
 3099: 
 3100:  -- BGP: no network A.B.C.D/M
 3101: 
 3102: 
 3103: File: quagga.info,  Node: Route Aggregation,  Next: Redistribute to BGP,  Prev: BGP route,  Up: BGP network
 3104: 
 3105: 9.3.2 Route Aggregation
 3106: -----------------------
 3107: 
 3108:  -- BGP: aggregate-address A.B.C.D/M
 3109:      This command specifies an aggregate address.
 3110: 
 3111:  -- BGP: aggregate-address A.B.C.D/M as-set
 3112:      This command specifies an aggregate address.  Resulting routes
 3113:      inlucde AS set.
 3114: 
 3115:  -- BGP: aggregate-address A.B.C.D/M summary-only
 3116:      This command specifies an aggregate address.  Aggreated routes will
 3117:      not be announce.
 3118: 
 3119:  -- BGP: no aggregate-address A.B.C.D/M
 3120: 
 3121: 
 3122: File: quagga.info,  Node: Redistribute to BGP,  Prev: Route Aggregation,  Up: BGP network
 3123: 
 3124: 9.3.3 Redistribute to BGP
 3125: -------------------------
 3126: 
 3127:  -- BGP: redistribute kernel
 3128:      Redistribute kernel route to BGP process.
 3129: 
 3130:  -- BGP: redistribute static
 3131:      Redistribute static route to BGP process.
 3132: 
 3133:  -- BGP: redistribute connected
 3134:      Redistribute connected route to BGP process.
 3135: 
 3136:  -- BGP: redistribute rip
 3137:      Redistribute RIP route to BGP process.
 3138: 
 3139:  -- BGP: redistribute ospf
 3140:      Redistribute OSPF route to BGP process.
 3141: 
 3142: 
 3143: File: quagga.info,  Node: BGP Peer,  Next: BGP Peer Group,  Prev: BGP network,  Up: BGP
 3144: 
 3145: 9.4 BGP Peer
 3146: ============
 3147: 
 3148: * Menu:
 3149: 
 3150: * Defining Peer::
 3151: * BGP Peer commands::
 3152: * Peer filtering::
 3153: 
 3154: 
 3155: File: quagga.info,  Node: Defining Peer,  Next: BGP Peer commands,  Up: BGP Peer
 3156: 
 3157: 9.4.1 Defining Peer
 3158: -------------------
 3159: 
 3160:  -- BGP: neighbor PEER remote-as ASN
 3161:      Creates a new neighbor whose remote-as is ASN.  PEER can be an
 3162:      IPv4 address or an IPv6 address.
 3163:           router bgp 1
 3164:            neighbor 10.0.0.1 remote-as 2
 3165:      In this case my router, in AS-1, is trying to peer with AS-2 at
 3166:      10.0.0.1.
 3167: 
 3168:      This command must be the first command used when configuring a
 3169:      neighbor.  If the remote-as is not specified, `bgpd' will complain
 3170:      like this:
 3171:           can't find neighbor 10.0.0.1
 3172: 
 3173: 
 3174: File: quagga.info,  Node: BGP Peer commands,  Next: Peer filtering,  Prev: Defining Peer,  Up: BGP Peer
 3175: 
 3176: 9.4.2 BGP Peer commands
 3177: -----------------------
 3178: 
 3179: In a `router bgp' clause there are neighbor specific configurations
 3180: required.
 3181: 
 3182:  -- BGP: neighbor PEER shutdown
 3183:  -- BGP: no neighbor PEER shutdown
 3184:      Shutdown the peer.  We can delete the neighbor's configuration by
 3185:      `no neighbor PEER remote-as AS-NUMBER' but all configuration of
 3186:      the neighbor will be deleted.  When you want to preserve the
 3187:      configuration, but want to drop the BGP peer, use this syntax.
 3188: 
 3189:  -- BGP: neighbor PEER ebgp-multihop
 3190:  -- BGP: no neighbor PEER ebgp-multihop
 3191: 
 3192:  -- BGP: neighbor PEER description ...
 3193:  -- BGP: no neighbor PEER description ...
 3194:      Set description of the peer.
 3195: 
 3196:  -- BGP: neighbor PEER version VERSION
 3197:      Set up the neighbor's BGP version.  VERSION can be 4, 4+ or 4-.
 3198:      BGP version 4 is the default value used for BGP peering.  BGP
 3199:      version 4+ means that the neighbor supports Multiprotocol
 3200:      Extensions for BGP-4.  BGP version 4- is similar but the neighbor
 3201:      speaks the old Internet-Draft revision 00's Multiprotocol
 3202:      Extensions for BGP-4.  Some routing software is still using this
 3203:      version.
 3204: 
 3205:  -- BGP: neighbor PEER interface IFNAME
 3206:  -- BGP: no neighbor PEER interface IFNAME
 3207:      When you connect to a BGP peer over an IPv6 link-local address, you
 3208:      have to specify the IFNAME of the interface used for the
 3209:      connection. To specify IPv4 session addresses, see the `neighbor
 3210:      PEER update-source' command below.
 3211: 
 3212:      This command is deprecated and may be removed in a future release.
 3213:      Its use should be avoided.
 3214: 
 3215:  -- BGP: neighbor PEER next-hop-self
 3216:  -- BGP: no neighbor PEER next-hop-self
 3217:      This command specifies an announced route's nexthop as being
 3218:      equivalent to the address of the bgp router.
 3219: 
 3220:  -- BGP: neighbor PEER update-source <IFNAME|ADDRESS>
 3221:  -- BGP: no neighbor PEER update-source
 3222:      Specify the IPv4 source address to use for the BGP session to this
 3223:      neighbour, may be specified as either an IPv4 address directly or
 3224:      as an interface name (in which case the `zebra' daemon MUST be
 3225:      running in order for `bgpd' to be able to retrieve interface
 3226:      state).
 3227:           router bgp 64555
 3228:            neighbor foo update-source 192.168.0.1
 3229:            neighbor bar update-source lo0
 3230: 
 3231:  -- BGP: neighbor PEER default-originate
 3232:  -- BGP: no neighbor PEER default-originate
 3233:      `bgpd''s default is to not announce the default route (0.0.0.0/0)
 3234:      even it is in routing table.  When you want to announce default
 3235:      routes to the peer, use this command.
 3236: 
 3237:  -- BGP: neighbor PEER port PORT
 3238:  -- BGP: neighbor PEER port PORT
 3239: 
 3240:  -- BGP: neighbor PEER send-community
 3241:  -- BGP: neighbor PEER send-community
 3242: 
 3243:  -- BGP: neighbor PEER weight WEIGHT
 3244:  -- BGP: no neighbor PEER weight WEIGHT
 3245:      This command specifies a default WEIGHT value for the neighbor's
 3246:      routes.
 3247: 
 3248:  -- BGP: neighbor PEER maximum-prefix NUMBER
 3249:  -- BGP: no neighbor PEER maximum-prefix NUMBER
 3250: 
 3251: 
 3252: File: quagga.info,  Node: Peer filtering,  Prev: BGP Peer commands,  Up: BGP Peer
 3253: 
 3254: 9.4.3 Peer filtering
 3255: --------------------
 3256: 
 3257:  -- BGP: neighbor PEER distribute-list NAME [in|out]
 3258:      This command specifies a distribute-list for the peer.  DIRECT is
 3259:      `in' or `out'.
 3260: 
 3261:  -- BGP command: neighbor PEER prefix-list NAME [in|out]
 3262: 
 3263:  -- BGP command: neighbor PEER filter-list NAME [in|out]
 3264: 
 3265:  -- BGP: neighbor PEER route-map NAME [in|out]
 3266:      Apply a route-map on the neighbor.  DIRECT must be `in' or `out'.
 3267: 
 3268: 
 3269: File: quagga.info,  Node: BGP Peer Group,  Next: BGP Address Family,  Prev: BGP Peer,  Up: BGP
 3270: 
 3271: 9.5 BGP Peer Group
 3272: ==================
 3273: 
 3274:  -- BGP: neighbor WORD peer-group
 3275:      This command defines a new peer group.
 3276: 
 3277:  -- BGP: neighbor PEER peer-group WORD
 3278:      This command bind specific peer to peer group WORD.
 3279: 
 3280: 
 3281: File: quagga.info,  Node: BGP Address Family,  Next: Autonomous System,  Prev: BGP Peer Group,  Up: BGP
 3282: 
 3283: 9.6 BGP Address Family
 3284: ======================
 3285: 
 3286: 
 3287: File: quagga.info,  Node: Autonomous System,  Next: BGP Communities Attribute,  Prev: BGP Address Family,  Up: BGP
 3288: 
 3289: 9.7 Autonomous System
 3290: =====================
 3291: 
 3292: The AS (Autonomous System) number is one of the essential element of
 3293: BGP.  BGP is a distance vector routing protocol, and the AS-Path
 3294: framework provides distance vector metric and loop detection to BGP.
 3295: `RFC1930, Guidelines for creation, selection, and registration of an
 3296: Autonomous System (AS)' provides some background on the concepts of an
 3297: AS.
 3298: 
 3299:    The AS number is a two octet value, ranging in value from 1 to 65535.
 3300: The AS numbers 64512 through 65535 are defined as private AS numbers.
 3301: Private AS numbers must not to be advertised in the global Internet.
 3302: 
 3303: * Menu:
 3304: 
 3305: * AS Path Regular Expression::
 3306: * Display BGP Routes by AS Path::
 3307: * AS Path Access List::
 3308: * Using AS Path in Route Map::
 3309: * Private AS Numbers::
 3310: 
 3311: 
 3312: File: quagga.info,  Node: AS Path Regular Expression,  Next: Display BGP Routes by AS Path,  Up: Autonomous System
 3313: 
 3314: 9.7.1 AS Path Regular Expression
 3315: --------------------------------
 3316: 
 3317: AS path regular expression can be used for displaying BGP routes and AS
 3318: path access list.  AS path regular expression is based on `POSIX
 3319: 1003.2' regular expressions.  Following description is just a subset of
 3320: `POSIX' regular expression.  User can use full `POSIX' regular
 3321: expression.  Adding to that special character '_' is added for AS path
 3322: regular expression.
 3323: 
 3324: `.'
 3325:      Matches any single character.
 3326: 
 3327: `*'
 3328:      Matches 0 or more occurrences of pattern.
 3329: 
 3330: `+'
 3331:      Matches 1 or more occurrences of pattern.
 3332: 
 3333: `?'
 3334:      Match 0 or 1 occurrences of pattern.
 3335: 
 3336: `^'
 3337:      Matches the beginning of the line.
 3338: 
 3339: `$'
 3340:      Matches the end of the line.
 3341: 
 3342: `_'
 3343:      Character `_' has special meanings in AS path regular expression.
 3344:      It matches to space and comma , and AS set delimiter { and } and AS
 3345:      confederation delimiter `(' and `)'.  And it also matches to the
 3346:      beginning of the line and the end of the line.  So `_' can be used
 3347:      for AS value boundaries match.  `show ip bgp regexp _7675_'
 3348:      matches to all of BGP routes which as AS number include 7675.
 3349: 
 3350: 
 3351: File: quagga.info,  Node: Display BGP Routes by AS Path,  Next: AS Path Access List,  Prev: AS Path Regular Expression,  Up: Autonomous System
 3352: 
 3353: 9.7.2 Display BGP Routes by AS Path
 3354: -----------------------------------
 3355: 
 3356: To show BGP routes which has specific AS path information `show ip bgp'
 3357: command can be used.
 3358: 
 3359:  -- Command: show ip bgp regexp LINE
 3360:      This commands display BGP routes that matches AS path regular
 3361:      expression LINE.
 3362: 
 3363: 
 3364: 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
 3365: 
 3366: 9.7.3 AS Path Access List
 3367: -------------------------
 3368: 
 3369: AS path access list is user defined AS path.
 3370: 
 3371:  -- Command: ip as-path access-list WORD {permit|deny} LINE
 3372:      This command defines a new AS path access list.
 3373: 
 3374:  -- Command: no ip as-path access-list WORD
 3375:  -- Command: no ip as-path access-list WORD {permit|deny} LINE
 3376: 
 3377: 
 3378: File: quagga.info,  Node: Using AS Path in Route Map,  Next: Private AS Numbers,  Prev: AS Path Access List,  Up: Autonomous System
 3379: 
 3380: 9.7.4 Using AS Path in Route Map
 3381: --------------------------------
 3382: 
 3383:  -- Route Map: match as-path WORD
 3384: 
 3385:  -- Route Map: set as-path prepend AS-PATH
 3386: 
 3387: 
 3388: File: quagga.info,  Node: Private AS Numbers,  Prev: Using AS Path in Route Map,  Up: Autonomous System
 3389: 
 3390: 9.7.5 Private AS Numbers
 3391: ------------------------
 3392: 
 3393: 
 3394: File: quagga.info,  Node: BGP Communities Attribute,  Next: BGP Extended Communities Attribute,  Prev: Autonomous System,  Up: BGP
 3395: 
 3396: 9.8 BGP Communities Attribute
 3397: =============================
 3398: 
 3399: BGP communities attribute is widely used for implementing policy
 3400: routing.  Network operators can manipulate BGP communities attribute
 3401: based on their network policy.  BGP communities attribute is defined in
 3402: `RFC1997, BGP Communities Attribute' and `RFC1998, An Application of
 3403: the BGP Community Attribute in Multi-home Routing'.  It is an optional
 3404: transitive attribute, therefore local policy can travel through
 3405: different autonomous system.
 3406: 
 3407:    Communities attribute is a set of communities values.  Each
 3408: communities value is 4 octet long.  The following format is used to
 3409: define communities value.
 3410: 
 3411: `AS:VAL'
 3412:      This format represents 4 octet communities value.  `AS' is high
 3413:      order 2 octet in digit format.  `VAL' is low order 2 octet in
 3414:      digit format.  This format is useful to define AS oriented policy
 3415:      value.  For example, `7675:80' can be used when AS 7675 wants to
 3416:      pass local policy value 80 to neighboring peer.
 3417: 
 3418: `internet'
 3419:      `internet' represents well-known communities value 0.
 3420: 
 3421: `no-export'
 3422:      `no-export' represents well-known communities value `NO_EXPORT'
 3423:      (0xFFFFFF01).  All routes carry this value must not be advertised
 3424:      to outside a BGP confederation boundary.  If neighboring BGP peer
 3425:      is part of BGP confederation, the peer is considered as inside a
 3426:      BGP confederation boundary, so the route will be announced to the
 3427:      peer.
 3428: 
 3429: `no-advertise'
 3430:      `no-advertise' represents well-known communities value
 3431:      `NO_ADVERTISE'
 3432:      (0xFFFFFF02).  All routes carry this value must not be advertise
 3433:      to other BGP peers.
 3434: 
 3435: `local-AS'
 3436:      `local-AS' represents well-known communities value
 3437:      `NO_EXPORT_SUBCONFED' (0xFFFFFF03).  All routes carry this value
 3438:      must not be advertised to external BGP peers.  Even if the
 3439:      neighboring router is part of confederation, it is considered as
 3440:      external BGP peer, so the route will not be announced to the peer.
 3441: 
 3442:    When BGP communities attribute is received, duplicated communities
 3443: value in the communities attribute is ignored and each communities
 3444: values are sorted in numerical order.
 3445: 
 3446: * Menu:
 3447: 
 3448: * BGP Community Lists::
 3449: * Numbered BGP Community Lists::
 3450: * BGP Community in Route Map::
 3451: * Display BGP Routes by Community::
 3452: * Using BGP Communities Attribute::
 3453: 
 3454: 
 3455: File: quagga.info,  Node: BGP Community Lists,  Next: Numbered BGP Community Lists,  Up: BGP Communities Attribute
 3456: 
 3457: 9.8.1 BGP Community Lists
 3458: -------------------------
 3459: 
 3460: BGP community list is a user defined BGP communites attribute list.
 3461: BGP community list can be used for matching or manipulating BGP
 3462: communities attribute in updates.
 3463: 
 3464:    There are two types of community list.  One is standard community
 3465: list and another is expanded community list.  Standard community list
 3466: defines communities attribute.  Expanded community list defines
 3467: communities attribute string with regular expression.  Standard
 3468: community list is compiled into binary format when user define it.
 3469: Standard community list will be directly compared to BGP communities
 3470: attribute in BGP updates.  Therefore the comparison is faster than
 3471: expanded community list.
 3472: 
 3473:  -- Command: ip community-list standard NAME {permit|deny} COMMUNITY
 3474:      This command defines a new standard community list.  COMMUNITY is
 3475:      communities value.  The COMMUNITY is compiled into community
 3476:      structure.  We can define multiple community list under same name.
 3477:      In that case match will happen user defined order.  Once the
 3478:      community list matches to communities attribute in BGP updates it
 3479:      return permit or deny by the community list definition.  When
 3480:      there is no matched entry, deny will be returned.  When COMMUNITY
 3481:      is empty it matches to any routes.
 3482: 
 3483:  -- Command: ip community-list expanded NAME {permit|deny} LINE
 3484:      This command defines a new expanded community list.  LINE is a
 3485:      string expression of communities attribute.  LINE can include
 3486:      regular expression to match communities attribute in BGP updates.
 3487: 
 3488:  -- Command: no ip community-list NAME
 3489:  -- Command: no ip community-list standard NAME
 3490:  -- Command: no ip community-list expanded NAME
 3491:      These commands delete community lists specified by NAME.  All of
 3492:      community lists shares a single name space.  So community lists
 3493:      can be removed simpley specifying community lists name.
 3494: 
 3495:  -- Command: show ip community-list
 3496:  -- Command: show ip community-list NAME
 3497:      This command display current community list information.  When
 3498:      NAME is specified the specified community list's information is
 3499:      shown.
 3500: 
 3501:           # show ip community-list
 3502:           Named Community standard list CLIST
 3503:               permit 7675:80 7675:100 no-export
 3504:               deny internet
 3505:           Named Community expanded list EXPAND
 3506:               permit :
 3507: 
 3508:           # show ip community-list CLIST
 3509:           Named Community standard list CLIST
 3510:               permit 7675:80 7675:100 no-export
 3511:               deny internet
 3512: 
 3513: 
 3514: File: quagga.info,  Node: Numbered BGP Community Lists,  Next: BGP Community in Route Map,  Prev: BGP Community Lists,  Up: BGP Communities Attribute
 3515: 
 3516: 9.8.2 Numbered BGP Community Lists
 3517: ----------------------------------
 3518: 
 3519: When number is used for BGP community list name, the number has special
 3520: meanings.  Community list number in the range from 1 and 99 is standard
 3521: community list.  Community list number in the range from 100 to 199 is
 3522: expanded community list.  These community lists are called as numbered
 3523: community lists.  On the other hand normal community lists is called as
 3524: named community lists.
 3525: 
 3526:  -- Command: ip community-list <1-99> {permit|deny} COMMUNITY
 3527:      This command defines a new community list.  <1-99> is standard
 3528:      community list number.  Community list name within this range
 3529:      defines standard community list.  When COMMUNITY is empty it
 3530:      matches to any routes.
 3531: 
 3532:  -- Command: ip community-list <100-199> {permit|deny} COMMUNITY
 3533:      This command defines a new community list.  <100-199> is expanded
 3534:      community list number.  Community list name within this range
 3535:      defines expanded community list.
 3536: 
 3537:  -- Command: ip community-list NAME {permit|deny} COMMUNITY
 3538:      When community list type is not specifed, the community list type
 3539:      is automatically detected.  If COMMUNITY can be compiled into
 3540:      communities attribute, the community list is defined as a standard
 3541:      community list.  Otherwise it is defined as an expanded community
 3542:      list.  This feature is left for backward compability.  Use of this
 3543:      feature is not recommended.
 3544: 
 3545: 
 3546: File: quagga.info,  Node: BGP Community in Route Map,  Next: Display BGP Routes by Community,  Prev: Numbered BGP Community Lists,  Up: BGP Communities Attribute
 3547: 
 3548: 9.8.3 BGP Community in Route Map
 3549: --------------------------------
 3550: 
 3551: In Route Map (*note Route Map::), we can match or set BGP communities
 3552: attribute.  Using this feature network operator can implement their
 3553: network policy based on BGP communities attribute.
 3554: 
 3555:    Following commands can be used in Route Map.
 3556: 
 3557:  -- Route Map: match community WORD
 3558:  -- Route Map: match community WORD exact-match
 3559:      This command perform match to BGP updates using community list
 3560:      WORD.  When the one of BGP communities value match to the one of
 3561:      communities value in community list, it is match.  When
 3562:      `exact-match' keyword is spcified, match happen only when BGP
 3563:      updates have completely same communities value specified in the
 3564:      community list.
 3565: 
 3566:  -- Route Map: set community none
 3567:  -- Route Map: set community COMMUNITY
 3568:  -- Route Map: set community COMMUNITY additive
 3569:      This command manipulate communities value in BGP updates.  When
 3570:      `none' is specified as communities value, it removes entire
 3571:      communities attribute from BGP updates.  When COMMUNITY is not
 3572:      `none', specified communities value is set to BGP updates.  If BGP
 3573:      updates already has BGP communities value, the existing BGP
 3574:      communities value is replaced with specified COMMUNITY value.
 3575:      When `additive' keyword is specified, COMMUNITY is appended to the
 3576:      existing communities value.
 3577: 
 3578:  -- Route Map: set comm-list WORD delete
 3579:      This command remove communities value from BGP communities
 3580:      attribute.  The WORD is community list name.  When BGP route's
 3581:      communities value matches to the community list WORD, the
 3582:      communities value is removed.  When all of communities value is
 3583:      removed eventually, the BGP update's communities attribute is
 3584:      completely removed.
 3585: 
 3586: 
 3587: File: quagga.info,  Node: Display BGP Routes by Community,  Next: Using BGP Communities Attribute,  Prev: BGP Community in Route Map,  Up: BGP Communities Attribute
 3588: 
 3589: 9.8.4 Display BGP Routes by Community
 3590: -------------------------------------
 3591: 
 3592: To show BGP routes which has specific BGP communities attribute, `show
 3593: ip bgp' command can be used.  The COMMUNITY value and community list
 3594: can be used for `show ip bgp' command.
 3595: 
 3596:  -- Command: show ip bgp community
 3597:  -- Command: show ip bgp community COMMUNITY
 3598:  -- Command: show ip bgp community COMMUNITY exact-match
 3599:      `show ip bgp community' displays BGP routes which has communities
 3600:      attribute.  When COMMUNITY is specified, BGP routes that matches
 3601:      COMMUNITY value is displayed.  For this command, `internet'
 3602:      keyword can't be used for COMMUNITY value.  When `exact-match' is
 3603:      specified, it display only routes that have an exact match.
 3604: 
 3605:  -- Command: show ip bgp community-list WORD
 3606:  -- Command: show ip bgp community-list WORD exact-match
 3607:      This commands display BGP routes that matches community list WORD.
 3608:      When `exact-match' is specified, display only routes that have an
 3609:      exact match.
 3610: 
 3611: 
 3612: File: quagga.info,  Node: Using BGP Communities Attribute,  Prev: Display BGP Routes by Community,  Up: BGP Communities Attribute
 3613: 
 3614: 9.8.5 Using BGP Communities Attribute
 3615: -------------------------------------
 3616: 
 3617: Following configuration is the most typical usage of BGP communities
 3618: attribute.  AS 7675 provides upstream Internet connection to AS 100.
 3619: When following configuration exists in AS 7675, AS 100 networks
 3620: operator can set local preference in AS 7675 network by setting BGP
 3621: communities attribute to the updates.
 3622: 
 3623:      router bgp 7675
 3624:       neighbor 192.168.0.1 remote-as 100
 3625:       neighbor 192.168.0.1 route-map RMAP in
 3626:      !
 3627:      ip community-list 70 permit 7675:70
 3628:      ip community-list 70 deny
 3629:      ip community-list 80 permit 7675:80
 3630:      ip community-list 80 deny
 3631:      ip community-list 90 permit 7675:90
 3632:      ip community-list 90 deny
 3633:      !
 3634:      route-map RMAP permit 10
 3635:       match community 70
 3636:       set local-preference 70
 3637:      !
 3638:      route-map RMAP permit 20
 3639:       match community 80
 3640:       set local-preference 80
 3641:      !
 3642:      route-map RMAP permit 30
 3643:       match community 90
 3644:       set local-preference 90
 3645: 
 3646:    Following configuration announce 10.0.0.0/8 from AS 100 to AS 7675.
 3647: The route has communities value 7675:80 so when above configuration
 3648: exists in AS 7675, announced route's local preference will be set to
 3649: value 80.
 3650: 
 3651:      router bgp 100
 3652:       network 10.0.0.0/8
 3653:       neighbor 192.168.0.2 remote-as 7675
 3654:       neighbor 192.168.0.2 route-map RMAP out
 3655:      !
 3656:      ip prefix-list PLIST permit 10.0.0.0/8
 3657:      !
 3658:      route-map RMAP permit 10
 3659:       match ip address prefix-list PLIST
 3660:       set community 7675:80
 3661: 
 3662:    Following configuration is an example of BGP route filtering using
 3663: communities attribute.  This configuration only permit BGP routes which
 3664: has BGP communities value 0:80 or 0:90.  Network operator can put
 3665: special internal communities value at BGP border router, then limit the
 3666: BGP routes announcement into the internal network.
 3667: 
 3668:      router bgp 7675
 3669:       neighbor 192.168.0.1 remote-as 100
 3670:       neighbor 192.168.0.1 route-map RMAP in
 3671:      !
 3672:      ip community-list 1 permit 0:80 0:90
 3673:      !
 3674:      route-map RMAP permit in
 3675:       match community 1
 3676: 
 3677:    Following exmaple filter BGP routes which has communities value 1:1.
 3678: When there is no match community-list returns deny.  To avoid filtering
 3679: all of routes, we need to define permit any at last.
 3680: 
 3681:      router bgp 7675
 3682:       neighbor 192.168.0.1 remote-as 100
 3683:       neighbor 192.168.0.1 route-map RMAP in
 3684:      !
 3685:      ip community-list standard FILTER deny 1:1
 3686:      ip community-list standard FILTER permit
 3687:      !
 3688:      route-map RMAP permit 10
 3689:       match community FILTER
 3690: 
 3691:    Communities value keyword `internet' has special meanings in
 3692: standard community lists.  In below example `internet' act as match
 3693: any.  It matches all of BGP routes even if the route does not have
 3694: communities attribute at all.  So community list `INTERNET' is same as
 3695: above example's `FILTER'.
 3696: 
 3697:      ip community-list standard INTERNET deny 1:1
 3698:      ip community-list standard INTERNET permit internet
 3699: 
 3700:    Following configuration is an example of communities value deletion.
 3701: With this configuration communities value 100:1 and 100:2 is removed
 3702: from BGP updates.  For communities value deletion, only `permit'
 3703: community-list is used.  `deny' community-list is ignored.
 3704: 
 3705:      router bgp 7675
 3706:       neighbor 192.168.0.1 remote-as 100
 3707:       neighbor 192.168.0.1 route-map RMAP in
 3708:      !
 3709:      ip community-list standard DEL permit 100:1 100:2
 3710:      !
 3711:      route-map RMAP permit 10
 3712:       set comm-list DEL delete
 3713: 
 3714: 
 3715: File: quagga.info,  Node: BGP Extended Communities Attribute,  Next: Displaying BGP routes,  Prev: BGP Communities Attribute,  Up: BGP
 3716: 
 3717: 9.9 BGP Extended Communities Attribute
 3718: ======================================
 3719: 
 3720: BGP extended communities attribute is introduced with MPLS VPN/BGP
 3721: technology.  MPLS VPN/BGP expands capability of network infrastructure
 3722: to provide VPN functionality.  At the same time it requires a new
 3723: framework for policy routing.  With BGP Extended Communities Attribute
 3724: we can use Route Target or Site of Origin for implementing network
 3725: policy for MPLS VPN/BGP.
 3726: 
 3727:    BGP Extended Communities Attribute is similar to BGP Communities
 3728: Attribute.  It is an optional transitive attribute.  BGP Extended
 3729: Communities Attribute can carry multiple Extended Community value.
 3730: Each Extended Community value is eight octet length.
 3731: 
 3732:    BGP Extended Communities Attribute provides an extended range
 3733: compared with BGP Communities Attribute.  Adding to that there is a
 3734: type field in each value to provides community space structure.
 3735: 
 3736:    There are two format to define Extended Community value.  One is AS
 3737: based format the other is IP address based format.
 3738: 
 3739: `AS:VAL'
 3740:      This is a format to define AS based Extended Community value.
 3741:      `AS' part is 2 octets Global Administrator subfield in Extended
 3742:      Community value.  `VAL' part is 4 octets Local Administrator
 3743:      subfield.  `7675:100' represents AS 7675 policy value 100.
 3744: 
 3745: `IP-Address:VAL'
 3746:      This is a format to define IP address based Extended Community
 3747:      value.  `IP-Address' part is 4 octets Global Administrator
 3748:      subfield.  `VAL' part is 2 octets Local Administrator subfield.
 3749:      `10.0.0.1:100' represents
 3750: 
 3751: * Menu:
 3752: 
 3753: * BGP Extended Community Lists::
 3754: * BGP Extended Communities in Route Map::
 3755: 
 3756: 
 3757: File: quagga.info,  Node: BGP Extended Community Lists,  Next: BGP Extended Communities in Route Map,  Up: BGP Extended Communities Attribute
 3758: 
 3759: 9.9.1 BGP Extended Community Lists
 3760: ----------------------------------
 3761: 
 3762: Expanded Community Lists is a user defined BGP Expanded Community Lists.
 3763: 
 3764:  -- Command: ip extcommunity-list standard NAME {permit|deny}
 3765: EXTCOMMUNITY
 3766:      This command defines a new standard extcommunity-list.
 3767:      EXTCOMMUNITY is extended communities value.  The EXTCOMMUNITY is
 3768:      compiled into extended community structure.  We can define
 3769:      multiple extcommunity-list under same name.  In that case match
 3770:      will happen user defined order.  Once the extcommunity-list
 3771:      matches to extended communities attribute in BGP updates it return
 3772:      permit or deny based upon the extcommunity-list definition.  When
 3773:      there is no matched entry, deny will be returned.  When
 3774:      EXTCOMMUNITY is empty it matches to any routes.
 3775: 
 3776:  -- Command: ip extcommunity-list expanded NAME {permit|deny} LINE
 3777:      This command defines a new expanded extcommunity-list.  LINE is a
 3778:      string expression of extended communities attribute.  LINE can
 3779:      include regular expression to match extended communities attribute
 3780:      in BGP updates.
 3781: 
 3782:  -- Command: no ip extcommunity-list NAME
 3783:  -- Command: no ip extcommunity-list standard NAME
 3784:  -- Command: no ip extcommunity-list expanded NAME
 3785:      These commands delete extended community lists specified by NAME.
 3786:      All of extended community lists shares a single name space.  So
 3787:      extended community lists can be removed simpley specifying the
 3788:      name.
 3789: 
 3790:  -- Command: show ip extcommunity-list
 3791:  -- Command: show ip extcommunity-list NAME
 3792:      This command display current extcommunity-list information.  When
 3793:      NAME is specified the community list's information is shown.
 3794: 
 3795:           # show ip extcommunity-list
 3796: 
 3797: 
 3798: File: quagga.info,  Node: BGP Extended Communities in Route Map,  Prev: BGP Extended Community Lists,  Up: BGP Extended Communities Attribute
 3799: 
 3800: 9.9.2 BGP Extended Communities in Route Map
 3801: -------------------------------------------
 3802: 
 3803:  -- Route Map: match extcommunity WORD
 3804: 
 3805:  -- Route Map: set extcommunity rt EXTCOMMUNITY
 3806:      This command set Route Target value.
 3807: 
 3808:  -- Route Map: set extcommunity soo EXTCOMMUNITY
 3809:      This command set Site of Origin value.
 3810: 
 3811: 
 3812: File: quagga.info,  Node: Displaying BGP routes,  Next: Capability Negotiation,  Prev: BGP Extended Communities Attribute,  Up: BGP
 3813: 
 3814: 9.10 Displaying BGP Routes
 3815: ==========================
 3816: 
 3817: * Menu:
 3818: 
 3819: * Show IP BGP::
 3820: * More Show IP BGP::
 3821: 
 3822: 
 3823: File: quagga.info,  Node: Show IP BGP,  Next: More Show IP BGP,  Up: Displaying BGP routes
 3824: 
 3825: 9.10.1 Show IP BGP
 3826: ------------------
 3827: 
 3828:  -- Command: show ip bgp
 3829:  -- Command: show ip bgp A.B.C.D
 3830:  -- Command: show ip bgp X:X::X:X
 3831:      This command displays BGP routes.  When no route is specified it
 3832:      display all of IPv4 BGP routes.
 3833: 
 3834:      BGP table version is 0, local router ID is 10.1.1.1
 3835:      Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
 3836:      Origin codes: i - IGP, e - EGP, ? - incomplete
 3837: 
 3838:         Network          Next Hop            Metric LocPrf Weight Path
 3839:      *> 1.1.1.1/32       0.0.0.0                  0         32768 i
 3840: 
 3841:      Total number of prefixes 1
 3842: 
 3843: 
 3844: File: quagga.info,  Node: More Show IP BGP,  Prev: Show IP BGP,  Up: Displaying BGP routes
 3845: 
 3846: 9.10.2 More Show IP BGP
 3847: -----------------------
 3848: 
 3849:  -- Command: show ip bgp regexp LINE
 3850:      This command display BGP routes using AS path regular expression
 3851:      (*note Display BGP Routes by AS Path::).
 3852: 
 3853:  -- Command: show ip bgp community COMMUNITY
 3854:  -- Command: show ip bgp community COMMUNITY exact-match
 3855:      This command display BGP routes using COMMUNITY (*note Display BGP
 3856:      Routes by Community::).
 3857: 
 3858:  -- Command: show ip bgp community-list WORD
 3859:  -- Command: show ip bgp community-list WORD exact-match
 3860:      This command display BGP routes using community list (*note
 3861:      Display BGP Routes by Community::).
 3862: 
 3863:  -- Command: show ip bgp summary
 3864: 
 3865:  -- Command: show ip bgp neighbor [PEER]
 3866: 
 3867:  -- Command: clear ip bgp PEER
 3868:      Clear peers which have addresses of X.X.X.X
 3869: 
 3870:  -- Command: clear ip bgp PEER soft in
 3871:      Clear peer using soft reconfiguration.
 3872: 
 3873:  -- Command: show ip bgp dampened-paths
 3874:      Display paths suppressed due to dampening
 3875: 
 3876:  -- Command: show ip bgp flap-statistics
 3877:      Display flap statistics of routes
 3878: 
 3879:  -- Command: show debug
 3880: 
 3881:  -- Command: debug event
 3882: 
 3883:  -- Command: debug update
 3884: 
 3885:  -- Command: debug keepalive
 3886: 
 3887:  -- Command: no debug event
 3888: 
 3889:  -- Command: no debug update
 3890: 
 3891:  -- Command: no debug keepalive
 3892: 
 3893: 
 3894: File: quagga.info,  Node: Capability Negotiation,  Next: Route Reflector,  Prev: Displaying BGP routes,  Up: BGP
 3895: 
 3896: 9.11 Capability Negotiation
 3897: ===========================
 3898: 
 3899: When adding IPv6 routing information exchange feature to BGP.  There
 3900: were some proposals.  IETF (Internet Engineering Task Force) IDR (Inter
 3901: Domain Routing) WG (Working group) adopted a proposal called
 3902: Multiprotocol Extension for BGP.  The specification is described in
 3903: `RFC2283'.  The protocol does not define new protocols.  It defines new
 3904: attributes to existing BGP.  When it is used exchanging IPv6 routing
 3905: information it is called BGP-4+.  When it is used for exchanging
 3906: multicast routing information it is called MBGP.
 3907: 
 3908:    `bgpd' supports Multiprotocol Extension for BGP.  So if remote peer
 3909: supports the protocol, `bgpd' can exchange IPv6 and/or multicast
 3910: routing information.
 3911: 
 3912:    Traditional BGP did not have the feature to detect remote peer's
 3913: capabilities, e.g. whether it can handle prefix types other than IPv4
 3914: unicast routes.  This was a big problem using Multiprotocol Extension
 3915: for BGP to operational network.  `RFC2842, Capabilities Advertisement
 3916: with BGP-4' adopted a feature called Capability Negotiation. `bgpd' use
 3917: this Capability Negotiation to detect the remote peer's capabilities.
 3918: If the peer is only configured as IPv4 unicast neighbor, `bgpd' does
 3919: not send these Capability Negotiation packets (at least not unless
 3920: other optional BGP features require capability negotation).
 3921: 
 3922:    By default, Quagga will bring up peering with minimal common
 3923: capability for the both sides.  For example, local router has unicast
 3924: and multicast capabilitie and remote router has unicast capability.  In
 3925: this case, the local router will establish the connection with unicast
 3926: only capability. When there are no common capabilities, Quagga sends
 3927: Unsupported Capability error and then resets the connection.
 3928: 
 3929:    If you want to completely match capabilities with remote peer.
 3930: Please use `strict-capability-match' command.
 3931: 
 3932:  -- BGP: neighbor PEER strict-capability-match
 3933:  -- BGP: no neighbor PEER strict-capability-match
 3934:      Strictly compares remote capabilities and local capabilities.  If
 3935:      capabilities are different, send Unsupported Capability error then
 3936:      reset connection.
 3937: 
 3938:    You may want to disable sending Capability Negotiation OPEN message
 3939: optional parameter to the peer when remote peer does not implement
 3940: Capability Negotiation.  Please use `dont-capability-negotiate' command
 3941: to disable the feature.
 3942: 
 3943:  -- BGP: neighbor PEER dont-capability-negotiate
 3944:  -- BGP: no neighbor PEER dont-capability-negotiate
 3945:      Suppress sending Capability Negotiation as OPEN message optional
 3946:      parameter to the peer.  This command only affects the peer is
 3947:      configured other than IPv4 unicast configuration.
 3948: 
 3949:    When remote peer does not have capability negotiation feature, remote
 3950: peer will not send any capabilities at all.  In that case, bgp
 3951: configures the peer with configured capabilities.
 3952: 
 3953:    You may prefer locally configured capabilities more than the
 3954: negotiated capabilities even though remote peer sends capabilities.  If
 3955: the peer is configured by `override-capability', `bgpd' ignores
 3956: received capabilities then override negotiated capabilities with
 3957: configured values.
 3958: 
 3959:  -- BGP: neighbor PEER override-capability
 3960:  -- BGP: no neighbor PEER override-capability
 3961:      Override the result of Capability Negotiation with local
 3962:      configuration.  Ignore remote peer's capability value.
 3963: 
 3964: 
 3965: File: quagga.info,  Node: Route Reflector,  Next: Route Server,  Prev: Capability Negotiation,  Up: BGP
 3966: 
 3967: 9.12 Route Reflector
 3968: ====================
 3969: 
 3970:  -- BGP: bgp cluster-id A.B.C.D
 3971: 
 3972:  -- BGP: neighbor PEER route-reflector-client
 3973:  -- BGP: no neighbor PEER route-reflector-client
 3974: 
 3975: 
 3976: File: quagga.info,  Node: Route Server,  Next: How to set up a 6-Bone connection,  Prev: Route Reflector,  Up: BGP
 3977: 
 3978: 9.13 Route Server
 3979: =================
 3980: 
 3981: At an Internet Exchange point, many ISPs are connected to each other by
 3982: external BGP peering.  Normally these external BGP connection are done
 3983: by `full mesh' method.  As with internal BGP full mesh formation, this
 3984: method has a scaling problem.
 3985: 
 3986:    This scaling problem is well known.  Route Server is a method to
 3987: resolve the problem.  Each ISP's BGP router only peers to Route Server.
 3988: Route Server serves as BGP information exchange to other BGP routers.
 3989: By applying this method, numbers of BGP connections is reduced from
 3990: O(n*(n-1)/2) to O(n).
 3991: 
 3992:    Unlike normal BGP router, Route Server must have several routing
 3993: tables for managing different routing policies for each BGP speaker.
 3994: We call the routing tables as different `view's.  `bgpd' can work as
 3995: normal BGP router or Route Server or both at the same time.
 3996: 
 3997: * Menu:
 3998: 
 3999: * Multiple instance::
 4000: * BGP instance and view::
 4001: * Routing policy::
 4002: * Viewing the view::
 4003: 
 4004: 
 4005: File: quagga.info,  Node: Multiple instance,  Next: BGP instance and view,  Up: Route Server
 4006: 
 4007: 9.13.1 Multiple instance
 4008: ------------------------
 4009: 
 4010: To enable multiple view function of `bgpd', you must turn on multiple
 4011: instance feature beforehand.
 4012: 
 4013:  -- Command: bgp multiple-instance
 4014:      Enable BGP multiple instance feature.  After this feature is
 4015:      enabled, you can make multiple BGP instances or multiple BGP views.
 4016: 
 4017:  -- Command: no bgp multiple-instance
 4018:      Disable BGP multiple instance feature.  You can not disable this
 4019:      feature when BGP multiple instances or views exist.
 4020: 
 4021:    When you want to make configuration more Cisco like one,
 4022: 
 4023:  -- Command: bgp config-type cisco
 4024:      Cisco compatible BGP configuration output.
 4025: 
 4026:    When bgp config-type cisco is specified,
 4027: 
 4028:    "no synchronization" is displayed.  "no auto-summary" is displayed.
 4029: 
 4030:    "network" and "aggregate-address" argument is displayed as "A.B.C.D
 4031: M.M.M.M"
 4032: 
 4033:    Quagga: network 10.0.0.0/8 Cisco: network 10.0.0.0
 4034: 
 4035:    Quagga: aggregate-address 192.168.0.0/24 Cisco: aggregate-address
 4036: 192.168.0.0 255.255.255.0
 4037: 
 4038:    Community attribute handling is also different.  If there is no
 4039: configuration is specified community attribute and extended community
 4040: attribute are sent to neighbor.  When user manually disable the feature
 4041: community attribute is not sent to the neighbor.  In case of `bgp
 4042: config-type cisco' is specified, community attribute is not sent to the
 4043: neighbor by default.  To send community attribute user has to specify
 4044: `neighbor A.B.C.D send-community' command.
 4045: 
 4046:      !
 4047:      router bgp 1
 4048:       neighbor 10.0.0.1 remote-as 1
 4049:       no neighbor 10.0.0.1 send-community
 4050:      !
 4051:      router bgp 1
 4052:       neighbor 10.0.0.1 remote-as 1
 4053:       neighbor 10.0.0.1 send-community
 4054:      !
 4055: 
 4056:  -- Command: bgp config-type zebra
 4057:      Quagga style BGP configuration.  This is default.
 4058: 
 4059: 
 4060: File: quagga.info,  Node: BGP instance and view,  Next: Routing policy,  Prev: Multiple instance,  Up: Route Server
 4061: 
 4062: 9.13.2 BGP instance and view
 4063: ----------------------------
 4064: 
 4065: BGP instance is a normal BGP process.  The result of route selection
 4066: goes to the kernel routing table.  You can setup different AS at the
 4067: same time when BGP multiple instance feature is enabled.
 4068: 
 4069:  -- Command: router bgp AS-NUMBER
 4070:      Make a new BGP instance.  You can use arbitrary word for the NAME.
 4071: 
 4072:      bgp multiple-instance
 4073:      !
 4074:      router bgp 1
 4075:       neighbor 10.0.0.1 remote-as 2
 4076:       neighbor 10.0.0.2 remote-as 3
 4077:      !
 4078:      router bgp 2
 4079:       neighbor 10.0.0.3 remote-as 4
 4080:       neighbor 10.0.0.4 remote-as 5
 4081: 
 4082:    BGP view is almost same as normal BGP process. The result of route
 4083: selection does not go to the kernel routing table.  BGP view is only
 4084: for exchanging BGP routing information.
 4085: 
 4086:  -- Command: router bgp AS-NUMBER view NAME
 4087:      Make a new BGP view.  You can use arbitrary word for the NAME.
 4088:      This view's route selection result does not go to the kernel
 4089:      routing table.
 4090: 
 4091:    With this command, you can setup Route Server like below.
 4092: 
 4093:      bgp multiple-instance
 4094:      !
 4095:      router bgp 1 view 1
 4096:       neighbor 10.0.0.1 remote-as 2
 4097:       neighbor 10.0.0.2 remote-as 3
 4098:      !
 4099:      router bgp 2 view 2
 4100:       neighbor 10.0.0.3 remote-as 4
 4101:       neighbor 10.0.0.4 remote-as 5
 4102: 
 4103: 
 4104: File: quagga.info,  Node: Routing policy,  Next: Viewing the view,  Prev: BGP instance and view,  Up: Route Server
 4105: 
 4106: 9.13.3 Routing policy
 4107: ---------------------
 4108: 
 4109: You can set different routing policy for a peer.  For example, you can
 4110: set different filter for a peer.
 4111: 
 4112:      bgp multiple-instance
 4113:      !
 4114:      router bgp 1 view 1
 4115:       neighbor 10.0.0.1 remote-as 2
 4116:       neighbor 10.0.0.1 distribute-list 1 in
 4117:      !
 4118:      router bgp 1 view 2
 4119:       neighbor 10.0.0.1 remote-as 2
 4120:       neighbor 10.0.0.1 distribute-list 2 in
 4121: 
 4122:    This means BGP update from a peer 10.0.0.1 goes to both BGP view 1
 4123: and view 2.  When the update is inserted into view 1, distribute-list 1
 4124: is applied.  On the other hand, when the update is inserted into view 2,
 4125: distribute-list 2 is applied.
 4126: 
 4127: 
 4128: File: quagga.info,  Node: Viewing the view,  Prev: Routing policy,  Up: Route Server
 4129: 
 4130: 9.13.4 Viewing the view
 4131: -----------------------
 4132: 
 4133: To display routing table of BGP view, you must specify view name.
 4134: 
 4135:  -- Command: show ip bgp view NAME
 4136:      Display routing table of BGP view NAME.
 4137: 
 4138: 
 4139: File: quagga.info,  Node: How to set up a 6-Bone connection,  Next: Dump BGP packets and table,  Prev: Route Server,  Up: BGP
 4140: 
 4141: 9.14 How to set up a 6-Bone connection
 4142: ======================================
 4143: 
 4144:      zebra configuration
 4145:      ===================
 4146:      !
 4147:      ! Actually there is no need to configure zebra
 4148:      !
 4149: 
 4150:      bgpd configuration
 4151:      ==================
 4152:      !
 4153:      ! This means that routes go through zebra and into the kernel.
 4154:      !
 4155:      router zebra
 4156:      !
 4157:      ! MP-BGP configuration
 4158:      !
 4159:      router bgp 7675
 4160:       bgp router-id 10.0.0.1
 4161:       neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 remote-as AS-NUMBER
 4162:      !
 4163:       address-family ipv6
 4164:       network 3ffe:506::/32
 4165:       neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 activate
 4166:       neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 route-map set-nexthop out
 4167:       neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 remote-as AS-NUMBER
 4168:       neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 route-map set-nexthop out
 4169:       exit-address-family
 4170:      !
 4171:      ipv6 access-list all permit any
 4172:      !
 4173:      ! Set output nexthop address.
 4174:      !
 4175:      route-map set-nexthop permit 10
 4176:       match ipv6 address all
 4177:       set ipv6 nexthop global 3ffe:1cfa:0:2:2c0:4fff:fe68:a225
 4178:       set ipv6 nexthop local fe80::2c0:4fff:fe68:a225
 4179:      !
 4180:      ! logfile FILENAME is obsolete.  Please use log file FILENAME
 4181: 
 4182:      log file bgpd.log
 4183:      !
 4184: 
 4185: 
 4186: File: quagga.info,  Node: Dump BGP packets and table,  Next: BGP Configuration Examples,  Prev: How to set up a 6-Bone connection,  Up: BGP
 4187: 
 4188: 9.15 Dump BGP packets and table
 4189: ===============================
 4190: 
 4191:  -- Command: dump bgp all PATH
 4192:  -- Command: dump bgp all PATH INTERVAL
 4193:      Dump all BGP packet and events to PATH file.
 4194: 
 4195:  -- Command: dump bgp updates PATH
 4196:  -- Command: dump bgp updates PATH INTERVAL
 4197:      Dump BGP updates to PATH file.
 4198: 
 4199:  -- Command: dump bgp routes PATH
 4200:  -- Command: dump bgp routes PATH
 4201:      Dump whole BGP routing table to PATH.  This is heavy process.
 4202: 
 4203: 
 4204: File: quagga.info,  Node: BGP Configuration Examples,  Prev: Dump BGP packets and table,  Up: BGP
 4205: 
 4206: 9.16 BGP Configuration Examples
 4207: ===============================
 4208: 
 4209: Example of a session to an upstream, advertising only one prefix to it.
 4210: 
 4211:      router bgp 64512
 4212:       bgp router-id 10.236.87.1
 4213:       network 10.236.87.0/24
 4214:       neighbor upstream peer-group
 4215:       neighbor upstream remote-as 64515
 4216:       neighbor upstream capability dynamic
 4217:       neighbor upstream prefix-list pl-allowed-adv out
 4218:       neighbor 10.1.1.1 peer-group upstream
 4219:       neighbor 10.1.1.1 description ACME ISP
 4220:      !
 4221:      ip prefix-list pl-allowed-adv seq 5 permit 82.195.133.0/25
 4222:      ip prefix-list pl-allowed-adv seq 10 deny any
 4223: 
 4224:    A more complex example. With upstream, peer and customer sessions.
 4225: Advertising global prefixes and NO_EXPORT prefixes and providing
 4226: actions for customer routes based on community values. Extensive use of
 4227: route-maps and the 'call' feature to support selective advertising of
 4228: prefixes. This example is intended as guidance only, it has NOT been
 4229: tested and almost certainly containts silly mistakes, if not serious
 4230: flaws.
 4231: 
 4232:      router bgp 64512
 4233:       bgp router-id 10.236.87.1
 4234:       network 10.123.456.0/24
 4235:       network 10.123.456.128/25 route-map rm-no-export
 4236:       neighbor upstream capability dynamic
 4237:       neighbor upstream route-map rm-upstream-out out
 4238:       neighbor cust capability dynamic
 4239:       neighbor cust route-map rm-cust-in in
 4240:       neighbor cust route-map rm-cust-out out
 4241:       neighbor cust send-community both
 4242:       neighbor peer capability dynamic
 4243:       neighbor peer route-map rm-peer-in in
 4244:       neighbor peer route-map rm-peer-out out
 4245:       neighbor peer send-community both
 4246:       neighbor 10.1.1.1 remote-as 64515
 4247:       neighbor 10.1.1.1 peer-group upstream
 4248:       neighbor 10.2.1.1 remote-as 64516
 4249:       neighbor 10.2.1.1 peer-group upstream
 4250:       neighbor 10.3.1.1 remote-as 64517
 4251:       neighbor 10.3.1.1 peer-group cust-default
 4252:       neighbor 10.3.1.1 description customer1
 4253:       neighbor 10.3.1.1 prefix-list pl-cust1-network in
 4254:       neighbor 10.4.1.1 remote-as 64518
 4255:       neighbor 10.4.1.1 peer-group cust
 4256:       neighbor 10.4.1.1 prefix-list pl-cust2-network in
 4257:       neighbor 10.4.1.1 description customer2
 4258:       neighbor 10.5.1.1 remote-as 64519
 4259:       neighbor 10.5.1.1 peer-group peer
 4260:       neighbor 10.5.1.1 prefix-list pl-peer1-network in
 4261:       neighbor 10.5.1.1 description peer AS 1
 4262:       neighbor 10.6.1.1 remote-as 64520
 4263:       neighbor 10.6.1.1 peer-group peer
 4264:       neighbor 10.6.1.1 prefix-list pl-peer2-network in
 4265:       neighbor 10.6.1.1 description peer AS 2
 4266:      !
 4267:      ip prefix-list pl-default permit 0.0.0.0/0
 4268:      !
 4269:      ip prefix-list pl-upstream-peers permit 10.1.1.1/32
 4270:      ip prefix-list pl-upstream-peers permit 10.2.1.1/32
 4271:      !
 4272:      ip prefix-list pl-cust1-network permit 10.3.1.0/24
 4273:      ip prefix-list pl-cust1-network permit 10.3.2.0/24
 4274:      !
 4275:      ip prefix-list pl-cust2-network permit 10.4.1.0/24
 4276:      !
 4277:      ip prefix-list pl-peer1-network permit 10.5.1.0/24
 4278:      ip prefix-list pl-peer1-network permit 10.5.2.0/24
 4279:      ip prefix-list pl-peer1-network permit 192.168.0.0/24
 4280:      !
 4281:      ip prefix-list pl-peer2-network permit 10.6.1.0/24
 4282:      ip prefix-list pl-peer2-network permit 10.6.2.0/24
 4283:      ip prefix-list pl-peer2-network permit 192.168.1.0/24
 4284:      ip prefix-list pl-peer2-network permit 192.168.2.0/24
 4285:      ip prefix-list pl-peer2-network permit 172.16.1/24
 4286:      !
 4287:      ip as-path access-list asp-own-as permit ^$
 4288:      ip as-path access-list asp-own-as permit _64512_
 4289:      !
 4290:      ! #################################################################
 4291:      ! Match communities we provide actions for, on routes receives from
 4292:      ! customers. Communities values of <our-ASN>:X, with X, have actions:
 4293:      !
 4294:      ! 100 - blackhole the prefix
 4295:      ! 200 - set no_export
 4296:      ! 300 - advertise only to other customers
 4297:      ! 400 - advertise only to upstreams
 4298:      ! 500 - set no_export when advertising to upstreams
 4299:      ! 2X00 - set local_preference to X00
 4300:      !
 4301:      ! blackhole the prefix of the route
 4302:      ip community-list standard cm-blackhole permit 64512:100
 4303:      !
 4304:      ! set no-export community before advertising
 4305:      ip community-list standard cm-set-no-export permit 64512:200
 4306:      !
 4307:      ! advertise only to other customers
 4308:      ip community-list standard cm-cust-only permit 64512:300
 4309:      !
 4310:      ! advertise only to upstreams
 4311:      ip community-list standard cm-upstream-only permit 64512:400
 4312:      !
 4313:      ! advertise to upstreams with no-export
 4314:      ip community-list standard cm-upstream-noexport permit 64512:500
 4315:      !
 4316:      ! set local-pref to least significant 3 digits of the community
 4317:      ip community-list standard cm-prefmod-100 permit 64512:2100
 4318:      ip community-list standard cm-prefmod-200 permit 64512:2200
 4319:      ip community-list standard cm-prefmod-300 permit 64512:2300
 4320:      ip community-list standard cm-prefmod-400 permit 64512:2400
 4321:      ip community-list expanded cme-prefmod-range permit 64512:2...
 4322:      !
 4323:      ! Informational communities
 4324:      !
 4325:      ! 3000 - learned from upstream
 4326:      ! 3100 - learned from customer
 4327:      ! 3200 - learned from peer
 4328:      !
 4329:      ip community-list standard cm-learnt-upstream permit 64512:3000
 4330:      ip community-list standard cm-learnt-cust permit 64512:3100
 4331:      ip community-list standard cm-learnt-peer permit 64512:3200
 4332:      !
 4333:      ! ###################################################################
 4334:      ! Utility route-maps
 4335:      !
 4336:      ! These utility route-maps generally should not used to permit/deny
 4337:      ! routes, i.e. they do not have meaning as filters, and hence probably
 4338:      ! should be used with 'on-match next'. These all finish with an empty
 4339:      ! permit entry so as not interfere with processing in the caller.
 4340:      !
 4341:      route-map rm-no-export permit 10
 4342:       set community additive no-export
 4343:      route-map rm-no-export permit 20
 4344:      !
 4345:      route-map rm-blackhole permit 10
 4346:       description blackhole, up-pref and ensure it cant escape this AS
 4347:       set ip next-hop 127.0.0.1
 4348:       set local-preference 10
 4349:       set community additive no-export
 4350:      route-map rm-blackhole permit 20
 4351:      !
 4352:      ! Set local-pref as requested
 4353:      route-map rm-prefmod permit 10
 4354:       match community cm-prefmod-100
 4355:       set local-preference 100
 4356:      route-map rm-prefmod permit 20
 4357:       match community cm-prefmod-200
 4358:       set local-preference 200
 4359:      route-map rm-prefmod permit 30
 4360:       match community cm-prefmod-300
 4361:       set local-preference 300
 4362:      route-map rm-prefmod permit 40
 4363:       match community cm-prefmod-400
 4364:       set local-preference 400
 4365:      route-map rm-prefmod permit 50
 4366:      !
 4367:      ! Community actions to take on receipt of route.
 4368:      route-map rm-community-in permit 10
 4369:       description check for blackholing, no point continuing if it matches.
 4370:       match community cm-blackhole
 4371:       call rm-blackhole
 4372:      route-map rm-community-in permit 20
 4373:       match community cm-set-no-export
 4374:       call rm-no-export
 4375:       on-match next
 4376:      route-map rm-community-in permit 30
 4377:       match community cme-prefmod-range
 4378:       call rm-prefmod
 4379:      route-map rm-community-in permit 40
 4380:      !
 4381:      ! #####################################################################
 4382:      ! Community actions to take when advertising a route.
 4383:      ! These are filtering route-maps,
 4384:      !
 4385:      ! Deny customer routes to upstream with cust-only set.
 4386:      route-map rm-community-filt-to-upstream deny 10
 4387:       match community cm-learnt-cust
 4388:       match community cm-cust-only
 4389:      route-map rm-community-filt-to-upstream permit 20
 4390:      !
 4391:      ! Deny customer routes to other customers with upstream-only set.
 4392:      route-map rm-community-filt-to-cust deny 10
 4393:       match community cm-learnt-cust
 4394:       match community cm-upstream-only
 4395:      route-map rm-community-filt-to-cust permit 20
 4396:      !
 4397:      ! ###################################################################
 4398:      ! The top-level route-maps applied to sessions. Further entries could
 4399:      ! be added obviously..
 4400:      !
 4401:      ! Customers
 4402:      route-map rm-cust-in permit 10
 4403:       call rm-community-in
 4404:       on-match next
 4405:      route-map rm-cust-in permit 20
 4406:       set community additive 64512:3100
 4407:      route-map rm-cust-in permit 30
 4408:      !
 4409:      route-map rm-cust-out permit 10
 4410:       call rm-community-filt-to-cust
 4411:       on-match next
 4412:      route-map rm-cust-out permit 20
 4413:      !
 4414:      ! Upstream transit ASes
 4415:      route-map rm-upstream-out permit 10
 4416:       description filter customer prefixes which are marked cust-only
 4417:       call rm-community-filt-to-upstream
 4418:       on-match next
 4419:      route-map rm-upstream-out permit 20
 4420:       description only customer routes are provided to upstreams/peers
 4421:       match community cm-learnt-cust
 4422:      !
 4423:      ! Peer ASes
 4424:      ! outbound policy is same as for upstream
 4425:      route-map rm-peer-out permit 10
 4426:       call rm-upstream-out
 4427:      !
 4428:      route-map rm-peer-in permit 10
 4429:       set community additive 64512:3200
 4430: 
 4431: 
 4432: File: quagga.info,  Node: Configuring Quagga as a Route Server,  Next: VTY shell,  Prev: BGP,  Up: Top
 4433: 
 4434: 10 Configuring Quagga as a Route Server
 4435: ***************************************
 4436: 
 4437: The purpose of a Route Server is to centralize the peerings between BGP
 4438: speakers. For example if we have an exchange point scenario with four
 4439: BGP speakers, each of which maintaining a BGP peering with the other
 4440: three (*note fig:full-mesh::), we can convert it into a centralized
 4441: scenario where each of the four establishes a single BGP peering
 4442: against the Route Server (*note fig:route-server::).
 4443: 
 4444:    We will first describe briefly the Route Server model implemented by
 4445: Quagga.  We will explain the commands that have been added for
 4446: configuring that model. And finally we will show a full example of
 4447: Quagga configured as Route Server.
 4448: 
 4449: * Menu:
 4450: 
 4451: * Description of the Route Server model::
 4452: * Commands for configuring a Route Server::
 4453: * Example of Route Server Configuration::
 4454: 
 4455: 
 4456: File: quagga.info,  Node: Description of the Route Server model,  Next: Commands for configuring a Route Server,  Up: Configuring Quagga as a Route Server
 4457: 
 4458: 10.1 Description of the Route Server model
 4459: ==========================================
 4460: 
 4461: First we are going to describe the normal processing that BGP
 4462: announcements suffer inside a standard BGP speaker, as shown in *note
 4463: fig:normal-processing::, it consists of three steps:
 4464: 
 4465:    * When an announcement is received from some peer, the `In' filters
 4466:      configured for that peer are applied to the announcement. These
 4467:      filters can reject the announcement, accept it unmodified, or
 4468:      accept it with some of its attributes modified.
 4469: 
 4470:    * The announcements that pass the `In' filters go into the Best Path
 4471:      Selection process, where they are compared to other announcements
 4472:      referred to the same destination that have been received from
 4473:      different peers (in case such other announcements exist). For each
 4474:      different destination, the announcement which is selected as the
 4475:      best is inserted into the BGP speaker's Loc-RIB.
 4476: 
 4477:    * The routes which are inserted in the Loc-RIB are considered for
 4478:      announcement to all the peers (except the one from which the route
 4479:      came). This is done by passing the routes in the Loc-RIB through
 4480:      the `Out' filters corresponding to each peer. These filters can
 4481:      reject the route, accept it unmodified, or accept it with some of
 4482:      its attributes modified. Those routes which are accepted by the
 4483:      `Out' filters of a peer are announced to that peer.
 4484: 
 4485: [image src="fig-normal-processing.png" alt="Normal announcement processing" text="
 4486:                   _______________________________
 4487:                  /    _________     _________    \\
 4488: From Peer A --->|(A)-|Best     |   |         |-[A]|--->To Peer A
 4489: From Peer B --->|(B)-|Path     |-->|Local-RIB|-[B]|--->To Peer B
 4490: From Peer C --->|(C)-|Selection|   |         |-[C]|--->To Peer C
 4491: From Peer D --->|(D)-|_________|   |_________|-[D]|--->To Peer D
 4492:                  \\_______________________________/
 4493: 
 4494: Key:  (X) - 'In'  Filter applied to Peer X's announcements
 4495:       [X] - 'Out' Filter applied to announcements to Peer X
 4496: "]
 4497: 
 4498: Figure 10.1: Announcement processing inside a "normal" BGP speaker
 4499: 
 4500: [image src="fig_topologies_full.png" alt="Full Mesh BGP Topology" text="(RF1)--(RF2)
 4501:   | \\  / |
 4502:   |  \\/  |
 4503:   |  /\\  |
 4504:   | /  \\ |
 4505: (RF3)--(RF4)
 4506: "]
 4507: 
 4508: Figure 10.2: Full Mesh
 4509: 
 4510: [image src="fig_topologies_rs.png" alt="Route Server BGP Topology" text="(RF1)  (RF2)
 4511:     \\  /
 4512:     [RS]
 4513:     /  \\
 4514: (RF3)  (RF4)
 4515: "]
 4516: 
 4517: Figure 10.3: Route Server and clients
 4518: 
 4519:    Of course we want that the routing tables obtained in each of the
 4520: routers are the same when using the route server than when not. But as
 4521: a consequence of having a single BGP peering (against the route
 4522: server), the BGP speakers can no longer distinguish from/to which peer
 4523: each announce comes/goes.  This means that the routers connected to the
 4524: route server are not able to apply by themselves the same input/output
 4525: filters as in the full mesh scenario, so they have to delegate those
 4526: functions to the route server.
 4527: 
 4528:    Even more, the "best path" selection must be also performed inside
 4529: the route server on behalf of its clients. The reason is that if, after
 4530: applying the filters of the announcer and the (potential) receiver, the
 4531: route server decides to send to some client two or more different
 4532: announcements referred to the same destination, the client will only
 4533: retain the last one, considering it as an implicit withdrawal of the
 4534: previous announcements for the same destination. This is the expected
 4535: behavior of a BGP speaker as defined in `RFC1771', and even though
 4536: there are some proposals of mechanisms that permit multiple paths for
 4537: the same destination to be sent through a single BGP peering, none are
 4538: currently supported by most existing BGP implementations.
 4539: 
 4540:    As a consequence a route server must maintain additional information
 4541: and perform additional tasks for a RS-client that those necessary for
 4542: common BGP peerings. Essentially a route server must:
 4543: 
 4544:    * Maintain a separated Routing Information Base (Loc-RIB) for each
 4545:      peer configured as RS-client, containing the routes selected as a
 4546:      result of the "Best Path Selection" process that is performed on
 4547:      behalf of that RS-client.
 4548: 
 4549:    * Whenever it receives an announcement from a RS-client, it must
 4550:      consider it for the Loc-RIBs of the other RS-clients.
 4551: 
 4552:         * This means that for each of them the route server must pass
 4553:           the announcement through the appropriate `Out' filter of the
 4554:           announcer.
 4555: 
 4556:         * Then through the  appropriate `In' filter of the potential
 4557:           receiver.
 4558: 
 4559:         * Only if the announcement is accepted by both filters it will
 4560:           be passed to the "Best Path Selection" process.
 4561: 
 4562:         * Finally, it might go into the Loc-RIB of the receiver.
 4563: 
 4564:    When we talk about the "appropriate" filter, both the announcer and
 4565: the receiver of the route must be taken into account. Suppose that the
 4566: route server receives an announcement from client A, and the route
 4567: server is considering it for the Loc-RIB of client B. The filters that
 4568: should be applied are the same that would be used in the full mesh
 4569: scenario, i.e., first the `Out' filter of router A for announcements
 4570: going to router B, and then the `In' filter of router B for
 4571: announcements coming from router A.
 4572: 
 4573:    We call "Export Policy" of a RS-client to the set of `Out' filters
 4574: that the client would use if there was no route server. The same
 4575: applies for the "Import Policy" of a RS-client and the set of `In'
 4576: filters of the client if there was no route server.
 4577: 
 4578:    It is also common to demand from a route server that it does not
 4579: modify some BGP attributes (next-hop, as-path and MED) that are usually
 4580: modified by standard BGP speakers before announcing a route.
 4581: 
 4582:    The announcement processing model implemented by Quagga is shown in
 4583: *note fig:rs-processing::. The figure shows a mixture of RS-clients (B,
 4584: C and D) with normal BGP peers (A). There are some details that worth
 4585: additional comments:
 4586: 
 4587:    * Announcements coming from a normal BGP peer are also considered
 4588:      for the Loc-RIBs of all the RS-clients. But logically they do not
 4589:      pass through any export policy.
 4590: 
 4591:    * Those peers that are configured as RS-clients do not receive any
 4592:      announce from the `Main' Loc-RIB.
 4593: 
 4594:    * Apart from import and export policies, `In' and `Out' filters can
 4595:      also be set for RS-clients. `In' filters might be useful when the
 4596:      route server has also normal BGP peers. On the other hand, `Out'
 4597:      filters for RS-clients are probably unnecessary, but we decided
 4598:      not to remove them as they do not hurt anybody (they can always be
 4599:      left empty).
 4600: 
 4601: [image src="fig-rs-processing.png" alt="Route Server Processing Model" text="From Peer A
 4602:  | From RS-Client B
 4603:  |  | From RS-Client C
 4604:  |  |  | From RS-Client D
 4605:  |  |  |  |
 4606:  |  |  |  |           Main / Normal RIB
 4607:  |  |  |  |      ________________________________
 4608:  |  |  |  |     /    _________     _________     \\
 4609:  |  |  |  +--->|(D)-|Best     |   | Main    |     |
 4610:  |  |  +--|--->|(C)-|Path     |-->|Local-RIB|->[A]|--->To Peer A
 4611:  |  +--|--|--->|(B)-|Selection|   |         |     |
 4612:  +--|--|--|--->|(A)-|_________|   |_________|     |
 4613:  |  |  |  |     \\________________________________/
 4614:  |  |  |  |
 4615:  |  |  |  |          ________________________________
 4616:  |  |  |  |          /    _________     _________     \\
 4617:  |  |  |  +--->*D*->|{B}-|Best     |   |RS-Client|     |
 4618:  |  |  +--|--->*C*->|{B}-|Path     |-->|Local-RIB|->[B]|--->To RS-Client B
 4619:  |  |  |  |         |    |Selection|   |  for B  |     |
 4620:  +--|--|--|-------->|{B}-|_________|   |_________|     |
 4621:  |  |  |  |          \\________________________________/
 4622:  |  |  |  |
 4623:  |  |  |  |          ________________________________
 4624:  |  |  |  |          /    _________     _________     \\
 4625:  |  |  |  +--->*D*->|{C}-|Best     |   |RS-Client|     |
 4626:  |  |  |  |         |    |Path     |-->|Local-RIB|->[C]|--->To RS-Client C
 4627:  |  +--|--|--->*B*->|{C}-|Selection|   |  for C  |     |
 4628:  +--|--|--|-------->|{C}-|_________|   |_________|     |
 4629:  |  |  |             \\________________________________/
 4630:  |  |  |
 4631:  |  |  |              ________________________________
 4632:  |  |  |             /    _________     _________     \\
 4633:  |  |  |            |    |Best     |   |RS-Client|     |
 4634:  |  |  +------>*C*->|{D}-|Path     |-->|Local-RIB|->[D]|--->To RS-Client D
 4635:  |  +--------->*B*->|{D}-|Selection|   |  for D  |     |
 4636:  +----------------->|{D}-|_________|   |_________|     |
 4637:                      \\________________________________/
 4638: 
 4639: 
 4640: Key:  (X) - 'In'  Filter applied to Peer X's announcements before
 4641:             considering announcement for the normal main Local-RIB
 4642:       [X] - 'Out' Filter applied to announcements to Peer X
 4643:       *X* - 'Export' Filter of RS-Client X, to apply X's policies
 4644: 	    before its routes may be considered for other RS-Clients
 4645:             RIBs.
 4646:       {X} - 'Import' Filter of RS-Client X, to apply X's policies
 4647:             on routes before allowing them into X's RIB.
 4648: "]
 4649: 
 4650: Figure 10.4: Announcement processing model implemented by the Route
 4651: Server
 4652: 
 4653: 
 4654: 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
 4655: 
 4656: 10.2 Commands for configuring a Route Server
 4657: ============================================
 4658: 
 4659: Now we will describe the commands that have been added to quagga in
 4660: order to support the route server features.
 4661: 
 4662:  -- Route-Server: neighbor PEER-GROUP route-server-client
 4663:  -- Route-Server: neighbor A.B.C.D route-server-client
 4664:  -- Route-Server: neighbor X:X::X:X route-server-client
 4665:      This command configures the peer given by PEER, A.B.C.D or
 4666:      X:X::X:X as an RS-client.
 4667: 
 4668:      Actually this command is not new, it already existed in standard
 4669:      Quagga. It enables the transparent mode for the specified peer.
 4670:      This means that some BGP attributes (as-path, next-hop and MED) of
 4671:      the routes announced to that peer are not modified.
 4672: 
 4673:      With the route server patch, this command, apart from setting the
 4674:      transparent mode, creates a new Loc-RIB dedicated to the specified
 4675:      peer (those named `Loc-RIB for X' in *note Figure 10.4:
 4676:      fig:rs-processing.). Starting from that moment, every announcement
 4677:      received by the route server will be also considered for the new
 4678:      Loc-RIB.
 4679: 
 4680:  -- Route-Server: neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD
 4681: {import|export}
 4682:      This set of commands can be used to specify the route-map that
 4683:      represents the Import or Export policy of a peer which is
 4684:      configured as a RS-client (with the previous command).
 4685: 
 4686:  -- Route-Server: match peer {A.B.C.D|X:X::X:X}
 4687:      This is a new _match_ statement for use in route-maps, enabling
 4688:      them to describe import/export policies. As we said before, an
 4689:      import/export policy represents a set of input/output filters of
 4690:      the RS-client. This statement makes possible that a single
 4691:      route-map represents the full set of filters that a BGP speaker
 4692:      would use for its different peers in a non-RS scenario.
 4693: 
 4694:      The _match peer_ statement has different semantics whether it is
 4695:      used inside an import or an export route-map. In the first case
 4696:      the statement matches if the address of the peer who sends the
 4697:      announce is the same that the address specified by
 4698:      {A.B.C.D|X:X::X:X}. For export route-maps it matches when
 4699:      {A.B.C.D|X:X::X:X} is the address of the RS-Client into whose
 4700:      Loc-RIB the announce is going to be inserted (how the same export
 4701:      policy is applied before different Loc-RIBs is shown in *note
 4702:      Figure 10.4: fig:rs-processing.).
 4703: 
 4704:  -- Route-map Command: call WORD
 4705:      This command (also used inside a route-map) jumps into a different
 4706:      route-map, whose name is specified by WORD. When the called
 4707:      route-map finishes, depending on its result the original route-map
 4708:      continues or not. Apart from being useful for making import/export
 4709:      route-maps easier to write, this command can also be used inside
 4710:      any normal (in or out) route-map.
 4711: 
 4712: 
 4713: File: quagga.info,  Node: Example of Route Server Configuration,  Prev: Commands for configuring a Route Server,  Up: Configuring Quagga as a Route Server
 4714: 
 4715: 10.3 Example of Route Server Configuration
 4716: ==========================================
 4717: 
 4718: Finally we are going to show how to configure a Quagga daemon to act as
 4719: a Route Server. For this purpose we are going to present a scenario
 4720: without route server, and then we will show how to use the
 4721: configurations of the BGP routers to generate the configuration of the
 4722: route server.
 4723: 
 4724:    All the configuration files shown in this section have been taken
 4725: from scenarios which were tested using the VNUML tool VNUML
 4726: (http://www.dit.upm.es/vnuml).
 4727: 
 4728: * Menu:
 4729: 
 4730: * Configuration of the BGP routers without Route Server::
 4731: * Configuration of the BGP routers with Route Server::
 4732: * Configuration of the Route Server itself::
 4733: * Further considerations about Import and Export route-maps::
 4734: 
 4735: 
 4736: 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
 4737: 
 4738: 10.3.1 Configuration of the BGP routers without Route Server
 4739: ------------------------------------------------------------
 4740: 
 4741: We will suppose that our initial scenario is an exchange point with
 4742: three BGP capable routers, named RA, RB and RC. Each of the BGP
 4743: speakers generates some routes (with the NETWORK command), and
 4744: establishes BGP peerings against the other two routers. These peerings
 4745: have In and Out route-maps configured, named like "PEER-X-IN" or
 4746: "PEER-X-OUT". For example the configuration file for router RA could be
 4747: the following:
 4748: 
 4749: #Configuration for router 'RA'
 4750: !
 4751: hostname RA
 4752: password ****
 4753: !
 4754: router bgp 65001
 4755:   no bgp default ipv4-unicast
 4756:   neighbor 2001:0DB8::B remote-as 65002
 4757:   neighbor 2001:0DB8::C remote-as 65003
 4758: !
 4759:   address-family ipv6
 4760:     network 2001:0DB8:AAAA:1::/64
 4761:     network 2001:0DB8:AAAA:2::/64
 4762:     network 2001:0DB8:0000:1::/64
 4763:     network 2001:0DB8:0000:2::/64
 4764: 
 4765:     neighbor 2001:0DB8::B activate
 4766:     neighbor 2001:0DB8::B soft-reconfiguration inbound
 4767:     neighbor 2001:0DB8::B route-map PEER-B-IN in
 4768:     neighbor 2001:0DB8::B route-map PEER-B-OUT out
 4769: 
 4770:     neighbor 2001:0DB8::C activate
 4771:     neighbor 2001:0DB8::C soft-reconfiguration inbound
 4772:     neighbor 2001:0DB8::C route-map PEER-C-IN in
 4773:     neighbor 2001:0DB8::C route-map PEER-C-OUT out
 4774:   exit-address-family
 4775: !
 4776: ipv6 prefix-list COMMON-PREFIXES seq  5 permit 2001:0DB8:0000::/48 ge 64 le 64
 4777: ipv6 prefix-list COMMON-PREFIXES seq 10 deny any
 4778: !
 4779: ipv6 prefix-list PEER-A-PREFIXES seq  5 permit 2001:0DB8:AAAA::/48 ge 64 le 64
 4780: ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any
 4781: !
 4782: ipv6 prefix-list PEER-B-PREFIXES seq  5 permit 2001:0DB8:BBBB::/48 ge 64 le 64
 4783: ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any
 4784: !
 4785: ipv6 prefix-list PEER-C-PREFIXES seq  5 permit 2001:0DB8:CCCC::/48 ge 64 le 64
 4786: ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any
 4787: !
 4788: route-map PEER-B-IN permit 10
 4789:   match ipv6 address prefix-list COMMON-PREFIXES
 4790:   set metric 100
 4791: route-map PEER-B-IN permit 20
 4792:   match ipv6 address prefix-list PEER-B-PREFIXES
 4793:   set community 65001:11111
 4794: !
 4795: route-map PEER-C-IN permit 10
 4796:   match ipv6 address prefix-list COMMON-PREFIXES
 4797:   set metric 200
 4798: route-map PEER-C-IN permit 20
 4799:   match ipv6 address prefix-list PEER-C-PREFIXES
 4800:   set community 65001:22222
 4801: !
 4802: route-map PEER-B-OUT permit 10
 4803:   match ipv6 address prefix-list PEER-A-PREFIXES
 4804: !
 4805: route-map PEER-C-OUT permit 10
 4806:   match ipv6 address prefix-list PEER-A-PREFIXES
 4807: !
 4808: line vty
 4809: !
 4810: 
 4811: 
 4812: 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
 4813: 
 4814: 10.3.2 Configuration of the BGP routers with Route Server
 4815: ---------------------------------------------------------
 4816: 
 4817: To convert the initial scenario into one with route server, first we
 4818: must modify the configuration of routers RA, RB and RC. Now they must
 4819: not peer between them, but only with the route server. For example, RA's
 4820: configuration would turn into:
 4821: 
 4822: # Configuration for router 'RA'
 4823: !
 4824: hostname RA
 4825: password ****
 4826: !
 4827: router bgp 65001
 4828:   no bgp default ipv4-unicast
 4829:   neighbor 2001:0DB8::FFFF remote-as 65000
 4830: !
 4831:   address-family ipv6
 4832:     network 2001:0DB8:AAAA:1::/64
 4833:     network 2001:0DB8:AAAA:2::/64
 4834:     network 2001:0DB8:0000:1::/64
 4835:     network 2001:0DB8:0000:2::/64
 4836: 
 4837:     neighbor 2001:0DB8::FFFF activate
 4838:     neighbor 2001:0DB8::FFFF soft-reconfiguration inbound
 4839:   exit-address-family
 4840: !
 4841: line vty
 4842: !
 4843: 
 4844:    Which is logically much simpler than its initial configuration, as
 4845: it now maintains only one BGP peering and all the filters (route-maps)
 4846: have disappeared.
 4847: 
 4848: 
 4849: 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
 4850: 
 4851: 10.3.3 Configuration of the Route Server itself
 4852: -----------------------------------------------
 4853: 
 4854: As we said when we described the functions of a route server (*note
 4855: Description of the Route Server model::), it is in charge of all the
 4856: route filtering. To achieve that, the In and Out filters from the RA,
 4857: RB and RC configurations must be converted into Import and Export
 4858: policies in the route server.
 4859: 
 4860:    This is a fragment of the route server configuration (we only show
 4861: the policies for client RA):
 4862: 
 4863: # Configuration for Route Server ('RS')
 4864: !
 4865: hostname RS
 4866: password ix
 4867: !
 4868: bgp multiple-instance
 4869: !
 4870: router bgp 65000 view RS
 4871:   no bgp default ipv4-unicast
 4872:   neighbor 2001:0DB8::A  remote-as 65001
 4873:   neighbor 2001:0DB8::B  remote-as 65002
 4874:   neighbor 2001:0DB8::C  remote-as 65003
 4875: !
 4876:   address-family ipv6
 4877:     neighbor 2001:0DB8::A activate
 4878:     neighbor 2001:0DB8::A route-server-client
 4879:     neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import
 4880:     neighbor 2001:0DB8::A route-map RSCLIENT-A-EXPORT export
 4881:     neighbor 2001:0DB8::A soft-reconfiguration inbound
 4882: 
 4883:     neighbor 2001:0DB8::B activate
 4884:     neighbor 2001:0DB8::B route-server-client
 4885:     neighbor 2001:0DB8::B route-map RSCLIENT-B-IMPORT import
 4886:     neighbor 2001:0DB8::B route-map RSCLIENT-B-EXPORT export
 4887:     neighbor 2001:0DB8::B soft-reconfiguration inbound
 4888: 
 4889:     neighbor 2001:0DB8::C activate
 4890:     neighbor 2001:0DB8::C route-server-client
 4891:     neighbor 2001:0DB8::C route-map RSCLIENT-C-IMPORT import
 4892:     neighbor 2001:0DB8::C route-map RSCLIENT-C-EXPORT export
 4893:     neighbor 2001:0DB8::C soft-reconfiguration inbound
 4894:   exit-address-family
 4895: !
 4896: ipv6 prefix-list COMMON-PREFIXES seq  5 permit 2001:0DB8:0000::/48 ge 64 le 64
 4897: ipv6 prefix-list COMMON-PREFIXES seq 10 deny any
 4898: !
 4899: ipv6 prefix-list PEER-A-PREFIXES seq  5 permit 2001:0DB8:AAAA::/48 ge 64 le 64
 4900: ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any
 4901: !
 4902: ipv6 prefix-list PEER-B-PREFIXES seq  5 permit 2001:0DB8:BBBB::/48 ge 64 le 64
 4903: ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any
 4904: !
 4905: ipv6 prefix-list PEER-C-PREFIXES seq  5 permit 2001:0DB8:CCCC::/48 ge 64 le 64
 4906: ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any
 4907: !
 4908: route-map RSCLIENT-A-IMPORT permit 10
 4909:   match peer 2001:0DB8::B
 4910:   call A-IMPORT-FROM-B
 4911: route-map RSCLIENT-A-IMPORT permit 20
 4912:   match peer 2001:0DB8::C
 4913:   call A-IMPORT-FROM-C
 4914: !
 4915: route-map A-IMPORT-FROM-B permit 10
 4916:   match ipv6 address prefix-list COMMON-PREFIXES
 4917:   set metric 100
 4918: route-map A-IMPORT-FROM-B permit 20
 4919:   match ipv6 address prefix-list PEER-B-PREFIXES
 4920:   set community 65001:11111
 4921: !
 4922: route-map A-IMPORT-FROM-C permit 10
 4923:   match ipv6 address prefix-list COMMON-PREFIXES
 4924:   set metric 200
 4925: route-map A-IMPORT-FROM-C permit 20
 4926:   match ipv6 address prefix-list PEER-C-PREFIXES
 4927:   set community 65001:22222
 4928: !
 4929: route-map RSCLIENT-A-EXPORT permit 10
 4930:   match peer 2001:0DB8::B
 4931:   match ipv6 address prefix-list PEER-A-PREFIXES
 4932: route-map RSCLIENT-A-EXPORT permit 20
 4933:   match peer 2001:0DB8::C
 4934:   match ipv6 address prefix-list PEER-A-PREFIXES
 4935: !
 4936: ...
 4937: ...
 4938: ...
 4939: 
 4940:    If you compare the initial configuration of RA with the route server
 4941: configuration above, you can see how easy it is to generate the Import
 4942: and Export policies for RA from the In and Out route-maps of RA's
 4943: original configuration.
 4944: 
 4945:    When there was no route server, RA maintained two peerings, one with
 4946: RB and another with RC. Each of this peerings had an In route-map
 4947: configured. To build the Import route-map for client RA in the route
 4948: server, simply add route-map entries following this scheme:
 4949: 
 4950: route-map <NAME> permit 10
 4951:     match peer <Peer Address>
 4952:     call <In Route-Map for this Peer>
 4953: route-map <NAME> permit 20
 4954:     match peer <Another Peer Address>
 4955:     call <In Route-Map for this Peer>
 4956: 
 4957:    This is exactly the process that has been followed to generate the
 4958: route-map RSCLIENT-A-IMPORT. The route-maps that are called inside it
 4959: (A-IMPORT-FROM-B and A-IMPORT-FROM-C) are exactly the same than the In
 4960: route-maps from the original configuration of RA (PEER-B-IN and
 4961: PEER-C-IN), only the name is different.
 4962: 
 4963:    The same could have been done to create the Export policy for RA
 4964: (route-map RSCLIENT-A-EXPORT), but in this case the original Out
 4965: route-maps where so simple that we decided not to use the CALL WORD
 4966: commands, and we integrated all in a single route-map
 4967: (RSCLIENT-A-EXPORT).
 4968: 
 4969:    The Import and Export policies for RB and RC are not shown, but the
 4970: process would be identical.
 4971: 
 4972: 
 4973: 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
 4974: 
 4975: 10.3.4 Further considerations about Import and Export route-maps
 4976: ----------------------------------------------------------------
 4977: 
 4978: The current version of the route server patch only allows to specify a
 4979: route-map for import and export policies, while in a standard BGP
 4980: speaker apart from route-maps there are other tools for performing
 4981: input and output filtering (access-lists, community-lists, ...). But
 4982: this does not represent any limitation, as all kinds of filters can be
 4983: included in import/export route-maps. For example suppose that in the
 4984: non-route-server scenario peer RA had the following filters configured
 4985: for input from peer B:
 4986: 
 4987:     neighbor 2001:0DB8::B prefix-list LIST-1 in
 4988:     neighbor 2001:0DB8::B filter-list LIST-2 in
 4989:     neighbor 2001:0DB8::B route-map PEER-B-IN in
 4990:     ...
 4991:     ...
 4992: route-map PEER-B-IN permit 10
 4993:   match ipv6 address prefix-list COMMON-PREFIXES
 4994:   set local-preference 100
 4995: route-map PEER-B-IN permit 20
 4996:   match ipv6 address prefix-list PEER-B-PREFIXES
 4997:   set community 65001:11111
 4998: 
 4999:    It is posible to write a single route-map which is equivalent to the
 5000: three filters (the community-list, the prefix-list and the route-map).
 5001: That route-map can then be used inside the Import policy in the route
 5002: server. Lets see how to do it:
 5003: 
 5004:     neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import
 5005:     ...
 5006: !
 5007: ...
 5008: route-map RSCLIENT-A-IMPORT permit 10
 5009:   match peer 2001:0DB8::B
 5010:   call A-IMPORT-FROM-B
 5011: ...
 5012: ...
 5013: !
 5014: route-map A-IMPORT-FROM-B permit 1
 5015:   match ipv6 address prefix-list LIST-1
 5016:   match as-path LIST-2
 5017:   on-match goto 10
 5018: route-map A-IMPORT-FROM-B deny 2
 5019: route-map A-IMPORT-FROM-B permit 10
 5020:   match ipv6 address prefix-list COMMON-PREFIXES
 5021:   set local-preference 100
 5022: route-map A-IMPORT-FROM-B permit 20
 5023:   match ipv6 address prefix-list PEER-B-PREFIXES
 5024:   set community 65001:11111
 5025: !
 5026: ...
 5027: ...
 5028: 
 5029:    The route-map A-IMPORT-FROM-B is equivalent to the three filters
 5030: (LIST-1, LIST-2 and PEER-B-IN). The first entry of route-map
 5031: A-IMPORT-FROM-B (sequence number 1) matches if and only if both the
 5032: prefix-list LIST-1 and the filter-list LIST-2 match. If that happens,
 5033: due to the "on-match goto 10" statement the next route-map entry to be
 5034: processed will be number 10, and as of that point route-map
 5035: A-IMPORT-FROM-B is identical to PEER-B-IN. If the first entry does not
 5036: match, `on-match goto 10" will be ignored and the next processed entry
 5037: will be number 2, which will deny the route.
 5038: 
 5039:    Thus, the result is the same that with the three original filters,
 5040: i.e., if either LIST-1 or LIST-2 rejects the route, it does not reach
 5041: the route-map PEER-B-IN. In case both LIST-1 and LIST-2 accept the
 5042: route, it passes to PEER-B-IN, which can reject, accept or modify the
 5043: route.
 5044: 
 5045: 
 5046: File: quagga.info,  Node: VTY shell,  Next: Filtering,  Prev: Configuring Quagga as a Route Server,  Up: Top
 5047: 
 5048: 11 VTY shell
 5049: ************
 5050: 
 5051: `vtysh' is integrated shell of Quagga software.
 5052: 
 5053:    To use vtysh please specify --enable-vtysh to configure script.  To
 5054: use PAM for authentication use --with-libpam option to configure script.
 5055: 
 5056:    vtysh only searches /etc/quagga path for vtysh.conf which is the
 5057: vtysh configuration file.  Vtysh does not search current directory for
 5058: configuration file because the file includes user authentication
 5059: settings.
 5060: 
 5061:    Currently, vtysh.conf has only two commands.
 5062: 
 5063: * Menu:
 5064: 
 5065: * VTY shell username::
 5066: * VTY shell integrated configuration::
 5067: 
 5068: 
 5069: File: quagga.info,  Node: VTY shell username,  Next: VTY shell integrated configuration,  Up: VTY shell
 5070: 
 5071: 11.1 VTY shell username
 5072: =======================
 5073: 
 5074:  -- Command: username USERNAME nopassword
 5075:      With this set, user foo does not need password authentication for
 5076:      user vtysh.  With PAM vtysh uses PAM authentication mechanism.
 5077: 
 5078:      If vtysh is compiled without PAM authentication, every user can
 5079:      use vtysh without authentication. vtysh requires read/write
 5080:      permission to the various daemons vty sockets, this can be
 5081:      accomplished through use of unix groups and the -enable-vty-group
 5082:      configure option.
 5083: 
 5084: 
 5085: 
 5086: File: quagga.info,  Node: VTY shell integrated configuration,  Prev: VTY shell username,  Up: VTY shell
 5087: 
 5088: 11.2 VTY shell integrated configuration
 5089: =======================================
 5090: 
 5091:  -- Command: service integrated-vtysh-config
 5092:      Write out integrated Quagga.conf file when 'write file' is issued.
 5093: 
 5094:      This command controls the behaviour of vtysh when it is told to
 5095:      write out the configuration.  Per default, vtysh will instruct
 5096:      each daemon to write out their own config files when `write file'
 5097:      is issued.  However, if `service integrated-vtysh-config' is set,
 5098:      when `write file' is issued, vtysh will instruct the daemons will
 5099:      write out a Quagga.conf with all daemons' commands integrated into
 5100:      it.
 5101: 
 5102:      Vtysh per default behaves as if `write-conf daemon' is set. Note
 5103:      that both may be set at same time if one wishes to have both
 5104:      Quagga.conf and daemon specific files written out. Further, note
 5105:      that the daemons are hard-coded to first look for the integrated
 5106:      Quagga.conf file before looking for their own file.
 5107: 
 5108:      We recommend you do not mix the use of the two types of files.
 5109:      Further, it is better not to use the integrated Quagga.conf file,
 5110:      as any syntax error in it can lead to /all/ of your daemons being
 5111:      unable to start up. Per daemon files are more robust as impact of
 5112:      errors in configuration are limited to the daemon in whose file
 5113:      the error is made.
 5114: 
 5115: 
 5116: 
 5117: File: quagga.info,  Node: Filtering,  Next: Route Map,  Prev: VTY shell,  Up: Top
 5118: 
 5119: 12 Filtering
 5120: ************
 5121: 
 5122: Quagga provides many very flexible filtering features.  Filtering is
 5123: used for both input and output of the routing information.  Once
 5124: filtering is defined, it can be applied in any direction.
 5125: 
 5126: * Menu:
 5127: 
 5128: * IP Access List::
 5129: * IP Prefix List::
 5130: 
 5131: 
 5132: File: quagga.info,  Node: IP Access List,  Next: IP Prefix List,  Up: Filtering
 5133: 
 5134: 12.1 IP Access List
 5135: ===================
 5136: 
 5137:  -- Command: access-list NAME permit IPV4-NETWORK
 5138:  -- Command: access-list NAME deny IPV4-NETWORK
 5139: 
 5140:    Basic filtering is done by `access-list' as shown in the following
 5141: example.
 5142: 
 5143: access-list filter deny 10.0.0.0/9
 5144: access-list filter permit 10.0.0.0/8
 5145: 
 5146: 
 5147: File: quagga.info,  Node: IP Prefix List,  Prev: IP Access List,  Up: Filtering
 5148: 
 5149: 12.2 IP Prefix List
 5150: ===================
 5151: 
 5152: `ip prefix-list' provides the most powerful prefix based filtering
 5153: mechanism.  In addition to `access-list' functionality, `ip
 5154: prefix-list' has prefix length range specification and sequential
 5155: number specification.  You can add or delete prefix based filters to
 5156: arbitrary points of prefix-list using sequential number specification.
 5157: 
 5158:    If no ip prefix-list is specified, it acts as permit.  If `ip
 5159: prefix-list' is defined, and no match is found, default deny is applied.
 5160: 
 5161:  -- Command: ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]
 5162:  -- Command: ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le
 5163: LEN] [ge LEN]
 5164:      You can create `ip prefix-list' using above commands.
 5165: 
 5166:     seq
 5167:           seq NUMBER can be set either automatically or manually.  In
 5168:           the case that sequential numbers are set manually, the user
 5169:           may pick any number less than 4294967295.  In the case that
 5170:           sequential number are set automatically, the sequential
 5171:           number will increase by a unit of five (5) per list.  If a
 5172:           list with no specified sequential number is created after a
 5173:           list with a specified sequential number, the list will
 5174:           automatically pick the next multiple of five (5) as the list
 5175:           number.  For example, if a list with number 2 already exists
 5176:           and a new list with no specified number is created, the next
 5177:           list will be numbered 5.  If lists 2 and 7 already exist and
 5178:           a new list with no specified number is created, the new list
 5179:           will be numbered 10.
 5180: 
 5181:     le
 5182:           `le' command specifies prefix length.  The prefix list will be
 5183:           applied if the prefix length is less than or equal to the le
 5184:           prefix length.
 5185: 
 5186:     ge
 5187:           `ge' command specifies prefix length.  The prefix list will be
 5188:           applied if the prefix length is greater than or equal to the
 5189:           ge prefix length.
 5190: 
 5191: 
 5192: 
 5193:    Less than or equal to prefix numbers and greater than or equal to
 5194: prefix numbers can be used together.  The order of the le and ge
 5195: commands does not matter.
 5196: 
 5197:    If a prefix list with a different sequential number but with the
 5198: exact same rules as a previous list is created, an error will result.
 5199: However, in the case that the sequential number and the rules are
 5200: exactly similar, no error will result.
 5201: 
 5202:    If a list with the same sequential number as a previous list is
 5203: created, the new list will overwrite the old list.
 5204: 
 5205:    Matching of IP Prefix is performed from the smaller sequential
 5206: number to the larger.  The matching will stop once any rule has been
 5207: applied.
 5208: 
 5209:    In the case of no le or ge command, the prefix length must match
 5210: exactly the length specified in the prefix list.
 5211: 
 5212:  -- Command: no ip prefix-list NAME
 5213: 
 5214: * Menu:
 5215: 
 5216: * ip prefix-list description::
 5217: * ip prefix-list sequential number control::
 5218: * Showing ip prefix-list::
 5219: * Clear counter of ip prefix-list::
 5220: 
 5221: 
 5222: File: quagga.info,  Node: ip prefix-list description,  Next: ip prefix-list sequential number control,  Up: IP Prefix List
 5223: 
 5224: 12.2.1 ip prefix-list description
 5225: ---------------------------------
 5226: 
 5227:  -- Command: ip prefix-list NAME description DESC
 5228:      Descriptions may be added to prefix lists.  This command adds a
 5229:      description to the prefix list.
 5230: 
 5231:  -- Command: no ip prefix-list NAME description [DESC]
 5232:      Deletes the description from a prefix list.  It is possible to use
 5233:      the command without the full description.
 5234: 
 5235: 
 5236: File: quagga.info,  Node: ip prefix-list sequential number control,  Next: Showing ip prefix-list,  Prev: ip prefix-list description,  Up: IP Prefix List
 5237: 
 5238: 12.2.2 ip prefix-list sequential number control
 5239: -----------------------------------------------
 5240: 
 5241:  -- Command: ip prefix-list sequence-number
 5242:      With this command, the IP prefix list sequential number is
 5243:      displayed.  This is the default behavior.
 5244: 
 5245:  -- Command: no ip prefix-list sequence-number
 5246:      With this command, the IP prefix list sequential number is not
 5247:      displayed.
 5248: 
 5249: 
 5250: 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
 5251: 
 5252: 12.2.3 Showing ip prefix-list
 5253: -----------------------------
 5254: 
 5255:  -- Command: show ip prefix-list
 5256:      Display all IP prefix lists.
 5257: 
 5258:  -- Command: show ip prefix-list NAME
 5259:      Show IP prefix list can be used with a prefix list name.
 5260: 
 5261:  -- Command: show ip prefix-list NAME seq NUM
 5262:      Show IP prefix list can be used with a prefix list name and
 5263:      sequential number.
 5264: 
 5265:  -- Command: show ip prefix-list NAME A.B.C.D/M
 5266:      If the command longer is used, all prefix lists with prefix
 5267:      lengths equal to or longer than the specified length will be
 5268:      displayed.  If the command first match is used, the first prefix
 5269:      length match will be displayed.
 5270: 
 5271:  -- Command: show ip prefix-list NAME A.B.C.D/M longer
 5272: 
 5273:  -- Command: show ip prefix-list NAME A.B.C.D/M first-match
 5274: 
 5275:  -- Command: show ip prefix-list summary
 5276: 
 5277:  -- Command: show ip prefix-list summary NAME
 5278: 
 5279:  -- Command: show ip prefix-list detail
 5280: 
 5281:  -- Command: show ip prefix-list detail NAME
 5282: 
 5283: 
 5284: File: quagga.info,  Node: Clear counter of ip prefix-list,  Prev: Showing ip prefix-list,  Up: IP Prefix List
 5285: 
 5286: 12.2.4 Clear counter of ip prefix-list
 5287: --------------------------------------
 5288: 
 5289:  -- Command: clear ip prefix-list
 5290:      Clears the counters of all IP prefix lists.  Clear IP Prefix List
 5291:      can be used with a specified name and prefix.
 5292: 
 5293:  -- Command: clear ip prefix-list NAME
 5294: 
 5295:  -- Command: clear ip prefix-list NAME A.B.C.D/M
 5296: 
 5297: 
 5298: File: quagga.info,  Node: Route Map,  Next: IPv6 Support,  Prev: Filtering,  Up: Top
 5299: 
 5300: 13 Route Map
 5301: ************
 5302: 
 5303: Route maps provide a means to both filter and/or apply actions to
 5304: route, hence allowing policy to be applied to routes.
 5305: 
 5306: * Menu:
 5307: 
 5308: * Route Map Command::
 5309: * Route Map Match Command::
 5310: * Route Map Set Command::
 5311: * Route Map Call Command::
 5312: * Route Map Exit Action Command::
 5313: * Route Map Examples::
 5314: 
 5315:    Route-maps are an ordered list of route-map entries. Each entry may
 5316: specify up to four distincts sets of clauses:
 5317: 
 5318: `Matching Policy'
 5319:      This specifies the policy implied if the `Matching Conditions' are
 5320:      met or not met, and which actions of the route-map are to be
 5321:      taken, if any. The two possibilities are:
 5322: 
 5323:         - `permit': If the entry matches, then carry out the `Set
 5324:           Actions'. Then finish processing the route-map, permitting
 5325:           the route, unless an `Exit Action' indicates otherwise.
 5326: 
 5327:         - `deny': If the entry matches, then finish processing the
 5328:           route-map and deny the route (return `deny').
 5329: 
 5330:      The `Matching Policy' is specified as part of the command which
 5331:      defines the ordered entry in the route-map. See below.
 5332: 
 5333: `Matching Conditions'
 5334:      A route-map entry may, optionally, specify one or more conditions
 5335:      which must be matched if the entry is to be considered further, as
 5336:      governed by the Match Policy. If a route-map entry does not
 5337:      explicitely specify any matching conditions, then it always
 5338:      matches.
 5339: 
 5340: `Set Actions'
 5341:      A route-map entry may, optionally, specify one or more `Set
 5342:      Actions' to set or modify attributes of the route.
 5343: 
 5344: `Call Action'
 5345:      Call to another route-map, after any `Set Actions' have been
 5346:      carried out. If the route-map called returns `deny' then
 5347:      processing of the route-map finishes and the route is denied,
 5348:      regardless of the `Matching Policy' or the `Exit Policy'. If the
 5349:      called route-map returns `permit', then `Matching Policy' and
 5350:      `Exit Policy' govern further behaviour, as normal.
 5351: 
 5352: `Exit Policy'
 5353:      An entry may, optionally, specify an alternative `Exit Policy' to
 5354:      take if the entry matched, rather than the normal policy of
 5355:      exiting the route-map and permitting the route. The two
 5356:      possibilities are:
 5357: 
 5358:         - `next': Continue on with processing of the route-map entries.
 5359: 
 5360:         - `goto N': Jump ahead to the first route-map entry whose order
 5361:           in the route-map is >= N. Jumping to a previous entry is not
 5362:           permitted.
 5363: 
 5364:    The default action of a route-map, if no entries match, is to deny.
 5365: I.e. a route-map essentially has as its last entry an empty `deny'
 5366: entry, which matches all routes. To change this behaviour, one must
 5367: specify an empty `permit' entry as the last entry in the route-map.
 5368: 
 5369:    To summarise the above:
 5370: 
 5371:          Match    No Match
 5372: ----------------------------- 
 5373: _Permit_ action   cont
 5374: _Deny_   deny     cont
 5375: 
 5376: `action'
 5377:         - Apply _set_ statements
 5378: 
 5379:         - If _call_ is present, call given route-map. If that returns a
 5380:           `deny', finish processing and return `deny'.
 5381: 
 5382:         - If `Exit Policy' is _next_, goto next route-map entry
 5383: 
 5384:         - If `Exit Policy' is _goto_, goto first entry whose order in
 5385:           the list is >= the given order.
 5386: 
 5387:         - Finish processing the route-map and permit the route.
 5388: 
 5389: `deny'
 5390:         - The route is denied by the route-map (return `deny').
 5391: 
 5392: `cont'
 5393:         - goto next route-map entry
 5394: 
 5395: 
 5396: File: quagga.info,  Node: Route Map Command,  Next: Route Map Match Command,  Up: Route Map
 5397: 
 5398: 13.1 Route Map Command
 5399: ======================
 5400: 
 5401:  -- Command: route-map ROUTE-MAP-NAME (permit|deny) ORDER
 5402:      Configure the ORDER'th entry in ROUTE-MAP-NAME with `Match Policy'
 5403:      of either _permit_ or _deny_.
 5404: 
 5405: 
 5406: 
 5407: File: quagga.info,  Node: Route Map Match Command,  Next: Route Map Set Command,  Prev: Route Map Command,  Up: Route Map
 5408: 
 5409: 13.2 Route Map Match Command
 5410: ============================
 5411: 
 5412:  -- Route-map Command: match ip address ACCESS_LIST
 5413:      Matches the specified ACCESS_LIST
 5414: 
 5415:  -- Route-map Command: match ip next-hop IPV4_ADDR
 5416:      Matches the specified IPV4_ADDR.
 5417: 
 5418:  -- Route-map Command: match aspath AS_PATH
 5419:      Matches the specified AS_PATH.
 5420: 
 5421:  -- Route-map Command: match metric METRIC
 5422:      Matches the specified METRIC.
 5423: 
 5424:  -- Route-map Command: match community COMMUNITY_LIST
 5425:      Matches the specified  COMMUNITY_LIST
 5426: 
 5427: 
 5428: File: quagga.info,  Node: Route Map Set Command,  Next: Route Map Call Command,  Prev: Route Map Match Command,  Up: Route Map
 5429: 
 5430: 13.3 Route Map Set Command
 5431: ==========================
 5432: 
 5433:  -- Route-map Command: set ip next-hop IPV4_ADDRESS
 5434:      Set the BGP nexthop address.
 5435: 
 5436:  -- Route-map Command: set local-preference LOCAL_PREF
 5437:      Set the BGP local preference.
 5438: 
 5439:  -- Route-map Command: set weight WEIGHT
 5440:      Set the route's weight.
 5441: 
 5442:  -- Route-map Command: set metric METRIC
 5443:      Set the BGP attribute MED.
 5444: 
 5445:  -- Route-map Command: set as-path prepend AS_PATH
 5446:      Set the BGP AS path to prepend.
 5447: 
 5448:  -- Route-map Command: set community COMMUNITY
 5449:      Set the BGP community attribute.
 5450: 
 5451:  -- Route-map Command: set ipv6 next-hop global IPV6_ADDRESS
 5452:      Set the BGP-4+ global IPv6 nexthop address.
 5453: 
 5454:  -- Route-map Command: set ipv6 next-hop local IPV6_ADDRESS
 5455:      Set the BGP-4+ link local IPv6 nexthop address.
 5456: 
 5457: 
 5458: File: quagga.info,  Node: Route Map Call Command,  Next: Route Map Exit Action Command,  Prev: Route Map Set Command,  Up: Route Map
 5459: 
 5460: 13.4 Route Map Call Command
 5461: ===========================
 5462: 
 5463:  -- Route-map Command: call NAME
 5464:      Call route-map NAME. If it returns deny, deny the route and finish
 5465:      processing the route-map.
 5466: 
 5467: 
 5468: File: quagga.info,  Node: Route Map Exit Action Command,  Next: Route Map Examples,  Prev: Route Map Call Command,  Up: Route Map
 5469: 
 5470: 13.5 Route Map Exit Action Command
 5471: ==================================
 5472: 
 5473:  -- Route-map Command: on-match next
 5474:  -- Route-map Command: continue
 5475:      Proceed on to the next entry in the route-map.
 5476: 
 5477:  -- Route-map Command: on-match goto N
 5478:  -- Route-map Command: continue N
 5479:      Proceed processing the route-map at the first entry whose order is
 5480:      >= N
 5481: 
 5482: 
 5483: File: quagga.info,  Node: Route Map Examples,  Prev: Route Map Exit Action Command,  Up: Route Map
 5484: 
 5485: 13.6 Route Map Examples
 5486: =======================
 5487: 
 5488: A simple example of a route-map:
 5489: 
 5490: route-map test permit 10
 5491:  match ip address 10
 5492:  set local-preference 200
 5493: 
 5494:    This means that if a route matches ip access-list number 10 it's
 5495: local-preference value is set to 200.
 5496: 
 5497:    See *note BGP Configuration Examples:: for examples of more
 5498: sophisticated useage of route-maps, including of the `call' action.
 5499: 
 5500: 
 5501: File: quagga.info,  Node: IPv6 Support,  Next: Kernel Interface,  Prev: Route Map,  Up: Top
 5502: 
 5503: 14 IPv6 Support
 5504: ***************
 5505: 
 5506: Quagga fully supports IPv6 routing.  As described so far, Quagga
 5507: supports RIPng, OSPFv3 and BGP-4+.  You can give IPv6 addresses to an
 5508: interface and configure static IPv6 routing information.  Quagga IPv6
 5509: also provides automatic address configuration via a feature called
 5510: `address auto configuration'.  To do it, the router must send router
 5511: advertisement messages to the all nodes that exist on the network.
 5512: 
 5513: * Menu:
 5514: 
 5515: * Router Advertisement::
 5516: 
 5517: 
 5518: File: quagga.info,  Node: Router Advertisement,  Up: IPv6 Support
 5519: 
 5520: 14.1 Router Advertisement
 5521: =========================
 5522: 
 5523:  -- Interface Command: no ipv6 nd suppress-ra
 5524:      Send router advertisment messages.
 5525: 
 5526:  -- Interface Command: ipv6 nd suppress-ra
 5527:      Don't send router advertisment messages.
 5528: 
 5529:  -- Interface Command: ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME]
 5530: [PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]
 5531:      Configuring the IPv6 prefix to include in router advertisements.
 5532:      Several prefix specific optional parameters and flags may follow:
 5533:         * VALID-LIFETIME - the length of time in seconds during what
 5534:           the prefix is valid for the purpose of on-link determination.
 5535:           Value INFINITE represents infinity (i.e. a value of all one
 5536:           bits (`0xffffffff')).
 5537: 
 5538:           Range: `<0-4294967295>'  Default: `2592000'
 5539: 
 5540:         * PREFERRED-LIFETIME - the length of time in seconds during
 5541:           what addresses generated from the prefix remain preferred.
 5542:           Value INFINITE represents infinity.
 5543: 
 5544:           Range: `<0-4294967295>'  Default: `604800'
 5545: 
 5546:         * OFF-LINK - indicates that advertisement makes no statement
 5547:           about on-link or off-link properties of the prefix.
 5548: 
 5549:           Default: not set, i.e. this prefix can be used for on-link
 5550:           determination.
 5551: 
 5552:         * NO-AUTOCONFIG - indicates to hosts on the local link that the
 5553:           specified prefix cannot be used for IPv6 autoconfiguration.
 5554: 
 5555:           Default: not set, i.e. prefix can be used for
 5556:           autoconfiguration.
 5557: 
 5558:         * ROUTER-ADDRESS - indicates to hosts on the local link that
 5559:           the specified prefix contains a complete IP address by
 5560:           setting R flag.
 5561: 
 5562:           Default: not set, i.e. hosts do not assume a complete IP
 5563:           address is placed.
 5564: 
 5565:  -- Interface Command: ipv6 nd ra-interval SECONDS
 5566:  -- Interface Command: no ipv6 nd ra-interval
 5567:      The  maximum  time allowed between sending unsolicited multicast
 5568:      router advertisements from the interface, in seconds. Must be no
 5569:      less than 3 seconds.
 5570: 
 5571:      Default: `600'
 5572: 
 5573:  -- Interface Command: ipv6 nd ra-interval msec MILLISECONDS
 5574:  -- Interface Command: no ipv6 nd ra-interval msec
 5575:      The  maximum  time allowed between sending unsolicited multicast
 5576:      router advertisements from the interface, in milliseconds. Must be
 5577:      no less than 30 milliseconds.
 5578: 
 5579:      Default: `600000'
 5580: 
 5581:  -- Interface Command: ipv6 nd ra-lifetime SECONDS
 5582:  -- Interface Command: no ipv6 nd ra-lifetime
 5583:      The value to be placed in the Router Lifetime field of router
 5584:      advertisements sent from the interface, in seconds. Indicates the
 5585:      usefulness of the router as a default router on this interface.
 5586:      Setting the value to zero indicates that the router should not be
 5587:      considered a default router on this interface.  Must be either
 5588:      zero or between value specified with IPV6 ND RA-INTERVAL (or
 5589:      default) and 9000 seconds.
 5590: 
 5591:      Default: `1800'
 5592: 
 5593:  -- Interface Command: ipv6 nd reachable-time MILLISECONDS
 5594:  -- Interface Command: no ipv6 nd reachable-time
 5595:      The value to be placed in the Reachable Time field in the Router
 5596:      Advertisement messages sent by the router, in milliseconds. The
 5597:      configured time enables the router to detect unavailable
 5598:      neighbors. The value zero means unspecified (by this router). Must
 5599:      be no greater than `3,600,000' milliseconds (1 hour).
 5600: 
 5601:      Default: `0'
 5602: 
 5603:  -- Interface Command: ipv6 nd managed-config-flag
 5604:  -- Interface Command: no ipv6 nd managed-config-flag
 5605:      Set/unset flag in IPv6 router advertisements which indicates to
 5606:      hosts that they should use managed (stateful) protocol for
 5607:      addresses autoconfiguration in addition to any addresses
 5608:      autoconfigured using stateless address autoconfiguration.
 5609: 
 5610:      Default: not set
 5611: 
 5612:  -- Interface Command: ipv6 nd other-config-flag
 5613:  -- Interface Command: no ipv6 nd other-config-flag
 5614:      Set/unset flag in IPv6 router advertisements which indicates to
 5615:      hosts that they should use administered (stateful) protocol to
 5616:      obtain autoconfiguration information other than addresses.
 5617: 
 5618:      Default: not set
 5619: 
 5620:  -- Interface Command: ipv6 nd home-agent-config-flag
 5621:  -- Interface Command: no ipv6 nd home-agent-config-flag
 5622:      Set/unset flag in IPv6 router advertisements which indicates to
 5623:      hosts that the router acts as a Home Agent and includes a Home
 5624:      Agent Option.
 5625: 
 5626:      Default: not set
 5627: 
 5628:  -- Interface Command: ipv6 nd home-agent-preference
 5629:  -- Interface Command: no ipv6 nd home-agent-preference
 5630:      The value to be placed in Home Agent Option, when Home Agent
 5631:      config flag is set, which indicates to hosts Home Agent preference.
 5632: 
 5633:      Default: 0
 5634: 
 5635:  -- Interface Command: ipv6 nd home-agent-lifetime
 5636:  -- Interface Command: no ipv6 nd home-agent-lifetime
 5637:      The value to be placed in Home Agent Option, when Home Agent
 5638:      config flag is set, which indicates to hosts Home Agent Lifetime.
 5639:      A value of 0 means to place Router Lifetime value.
 5640: 
 5641:      Default: 0
 5642: 
 5643:  -- Interface Command: ipv6 nd adv-interval-option
 5644:  -- Interface Command: no ipv6 nd adv-interval-option
 5645:      Include an Advertisement Interval option which indicates to hosts
 5646:      the maximum time, in milliseconds, between successive unsolicited
 5647:      Router Advertisements.
 5648: 
 5649:      Default: not set
 5650: 
 5651:  -- Interface Command: ipv6 nd router-preference (high|medium|low)
 5652:  -- Interface Command: no ipv6 nd router-preference
 5653:      Set default router preference in IPv6 router advertisements per
 5654:      RFC4191.
 5655: 
 5656:      Default: medium
 5657: 
 5658: interface eth0
 5659:  no ipv6 nd suppress-ra
 5660:  ipv6 nd prefix 2001:0DB8:5009::/64
 5661: 
 5662:    For more information see `RFC2462 (IPv6 Stateless Address
 5663: Autoconfiguration)' , `RFC2461 (Neighbor Discovery for IP Version 6
 5664: (IPv6))' , `RFC3775 (Mobility Support in IPv6 (Mobile IPv6))' and
 5665: `RFC4191 (Default Router Preferences and More-Specific Routes)'.
 5666: 
 5667: 
 5668: File: quagga.info,  Node: Kernel Interface,  Next: SNMP Support,  Prev: IPv6 Support,  Up: Top
 5669: 
 5670: 15 Kernel Interface
 5671: *******************
 5672: 
 5673: There are several different methods for reading kernel routing table
 5674: information, updating kernel routing tables, and for looking up
 5675: interfaces.
 5676: 
 5677: `ioctl'
 5678:      The `ioctl' method is a very traditional way for reading or writing
 5679:      kernel information.  `ioctl' can be used for looking up interfaces
 5680:      and for modifying interface addresses, flags, mtu settings and
 5681:      other types of information.  Also, `ioctl' can insert and delete
 5682:      kernel routing table entries.  It will soon be available on almost
 5683:      any platform which zebra supports, but it is a little bit ugly
 5684:      thus far, so if a better method is supported by the kernel, zebra
 5685:      will use that.
 5686: 
 5687: `sysctl'
 5688:      `sysctl' can lookup kernel information using MIB (Management
 5689:      Information Base) syntax.  Normally, it only provides a way of
 5690:      getting information from the kernel.  So one would usually want to
 5691:      change kernel information using another method such as `ioctl'.
 5692: 
 5693: `proc filesystem'
 5694:      `proc filesystem' provides an easy way of getting kernel
 5695:      information.
 5696: 
 5697: `routing socket'
 5698: 
 5699: `netlink'
 5700:      On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
 5701:      communication support called `netlink'.  It makes asynchronous
 5702:      communication between kernel and Quagga possible, similar to a
 5703:      routing socket on BSD systems.
 5704: 
 5705:      Before you use this feature, be sure to select (in kernel
 5706:      configuration) the kernel/netlink support option 'Kernel/User
 5707:      network link driver' and 'Routing messages'.
 5708: 
 5709:      Today, the /dev/route special device file is obsolete.  Netlink
 5710:      communication is done by reading/writing over netlink socket.
 5711: 
 5712:      After the kernel configuration, please reconfigure and rebuild
 5713:      Quagga.  You can use netlink as a dynamic routing update channel
 5714:      between Quagga and the kernel.
 5715: 
 5716: 
 5717: File: quagga.info,  Node: SNMP Support,  Next: Zebra Protocol,  Prev: Kernel Interface,  Up: Top
 5718: 
 5719: 16 SNMP Support
 5720: ***************
 5721: 
 5722: SNMP (Simple Network Managing Protocol) is a widely implemented feature
 5723: for collecting network information from router and/or host.  Quagga
 5724: itself does not support SNMP agent (server daemon) functionality but is
 5725: able to connect to a SNMP agent using the SMUX protocol (`RFC1227') and
 5726: make the routing protocol MIBs available through it.
 5727: 
 5728: * Menu:
 5729: 
 5730: * Getting and installing an SNMP agent::
 5731: * SMUX configuration::
 5732: * MIB and command reference::
 5733: * Handling SNMP Traps::
 5734: 
 5735: 
 5736: File: quagga.info,  Node: Getting and installing an SNMP agent,  Next: SMUX configuration,  Up: SNMP Support
 5737: 
 5738: 16.1 Getting and installing an SNMP agent
 5739: =========================================
 5740: 
 5741: There are several SNMP agent which support SMUX. We recommend to use
 5742: the latest version of `net-snmp' which was formerly known as `ucd-snmp'.
 5743: It is free and open software and available at `http://www.net-snmp.org/'
 5744: and as binary package for most Linux distributions.  `net-snmp' has to
 5745: be compiled with `--with-mib-modules=smux' to be able to accept
 5746: connections from Quagga.
 5747: 
 5748: 
 5749: File: quagga.info,  Node: SMUX configuration,  Next: MIB and command reference,  Prev: Getting and installing an SNMP agent,  Up: SNMP Support
 5750: 
 5751: 16.2 SMUX configuration
 5752: =======================
 5753: 
 5754: To enable SMUX protocol support, Quagga must have been build with the
 5755: `--enable-snmp' option.
 5756: 
 5757:    A separate connection has then to be established between between the
 5758: SNMP agent (snmpd) and each of the Quagga daemons. This connections
 5759: each use different OID numbers and passwords. Be aware that this OID
 5760: number is not the one that is used in queries by clients, it is solely
 5761: used for the intercommunication of the daemons.
 5762: 
 5763:    In the following example the ospfd daemon will be connected to the
 5764: snmpd daemon using the password "quagga_ospfd". For testing it is
 5765: recommending to take exactly the below snmpd.conf as wrong access
 5766: restrictions can be hard to debug.
 5767: 
 5768: /etc/snmp/snmpd.conf:
 5769: 	#
 5770: 	# example access restrictions setup
 5771: 	#
 5772: 	com2sec readonly default public
 5773: 	group MyROGroup v1 readonly
 5774: 	view all included .1 80
 5775: 	access MyROGroup "" any noauth exact all none none
 5776: 	#
 5777: 	# the following line is relevant for Quagga
 5778: 	#
 5779: 	smuxpeer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
 5780: 
 5781: /etc/quagga/ospf:
 5782: 	! ... the rest of ospfd.conf has been omitted for clarity ...
 5783: 	!
 5784: 	smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
 5785: 	!
 5786: 
 5787:    After restarting snmpd and quagga, a successful connection can be
 5788: verified in the syslog and by querying the SNMP daemon:
 5789: 
 5790: snmpd[12300]: [smux_accept] accepted fd 12 from 127.0.0.1:36255
 5791: snmpd[12300]: accepted smux peer: \
 5792: 	oid GNOME-PRODUCT-ZEBRA-MIB::ospfd, quagga-0.96.5
 5793: 
 5794: # snmpwalk -c public -v1 localhost .1.3.6.1.2.1.14.1.1
 5795: OSPF-MIB::ospfRouterId.0 = IpAddress: 192.168.42.109
 5796: 
 5797:    Be warned that the current version (5.1.1) of the Net-SNMP daemon
 5798: writes a line for every SNMP connect to the syslog which can lead to
 5799: enormous log file sizes.  If that is a problem you should consider to
 5800: patch snmpd and comment out the troublesome `snmp_log()' line in the
 5801: function `netsnmp_agent_check_packet()' in `agent/snmp_agent.c'.
 5802: 
 5803: 
 5804: File: quagga.info,  Node: MIB and command reference,  Next: Handling SNMP Traps,  Prev: SMUX configuration,  Up: SNMP Support
 5805: 
 5806: 16.3 MIB and command reference
 5807: ==============================
 5808: 
 5809: The following OID numbers are used for the interprocess communication
 5810: of snmpd and the Quagga daemons. Sadly, SNMP has not been implemented
 5811: in all daemons yet.
 5812:             (OIDs below .iso.org.dod.internet.private.enterprises)
 5813: zebra	.1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv
 5814: bgpd	.1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd
 5815: ripd	.1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd
 5816: ospfd	.1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zebra.ospfd
 5817: ospf6d	.1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d
 5818: 
 5819:    The following OID numbers are used for querying the SNMP daemon by a
 5820: client:
 5821: zebra	.1.3.6.1.2.1.4.24   .iso.org.dot.internet.mgmt.mib-2.ip.ipForward
 5822: ospfd	.1.3.6.1.2.1.14	    .iso.org.dot.internet.mgmt.mib-2.ospf
 5823: bgpd	.1.3.6.1.2.1.15	    .iso.org.dot.internet.mgmt.mib-2.bgp
 5824: ripd	.1.3.6.1.2.1.23	    .iso.org.dot.internet.mgmt.mib-2.rip2
 5825: ospf6d	.1.3.6.1.3.102	    .iso.org.dod.internet.experimental.ospfv3
 5826: 
 5827:    The following syntax is understood by the Quagga daemons for
 5828: configuring SNMP:
 5829: 
 5830:  -- Command: smux peer OID
 5831:  -- Command: no smux peer OID
 5832: 
 5833:  -- Command: smux peer OID PASSWORD
 5834:  -- Command: no smux peer OID PASSWORD
 5835: 
 5836: 
 5837: File: quagga.info,  Node: Handling SNMP Traps,  Prev: MIB and command reference,  Up: SNMP Support
 5838: 
 5839: 16.4 Handling SNMP Traps
 5840: ========================
 5841: 
 5842: To handle snmp traps make sure your snmp setup of quagga works
 5843: correctly as described in the quagga documentation in *Note SNMP
 5844: Support::.
 5845: 
 5846:    The BGP4 mib will send traps on peer up/down events. These should be
 5847: visible in your snmp logs with a message similar to:
 5848: 
 5849:    `snmpd[13733]: Got trap from peer on fd 14'
 5850: 
 5851:    To react on these traps they should be handled by a trapsink.
 5852: Configure your trapsink by adding the following lines to
 5853: `/etc/snmpd/snmpd.conf':
 5854: 
 5855:   # send traps to the snmptrapd on localhost
 5856:   trapsink localhost
 5857: 
 5858:    This will send all traps to an snmptrapd running on localhost. You
 5859: can of course also use a dedicated management station to catch traps.
 5860: Configure the snmptrapd daemon by adding the following line to
 5861: `/etc/snmpd/snmptrapd.conf':
 5862: 
 5863:   traphandle .1.3.6.1.4.1.3317.1.2.2 /etc/snmp/snmptrap_handle.sh
 5864: 
 5865:    This will use the bash script `/etc/snmp/snmptrap_handle.sh' to
 5866: handle the BGP4 traps. To add traps for other protocol daemons, lookup
 5867: their appropriate OID from their mib. (For additional information about
 5868: which traps are supported by your mib, lookup the mib on
 5869: `http://www.oidview.com/mibs/detail.html').
 5870: 
 5871:    Make sure snmptrapd is started.
 5872: 
 5873:    The snmptrap_handle.sh script I personally use for handling BGP4
 5874: traps is below. You can of course do all sorts of things when handling
 5875: traps, like sound a siren, have your display flash, etc., be creative
 5876: ;).
 5877: 
 5878:   #!/bin/bash
 5879: 
 5880:   # routers name
 5881:   ROUTER=`hostname -s`
 5882: 
 5883:   #email address use to sent out notification
 5884:   EMAILADDR="john@doe.com"
 5885:   #email address used (allongside above) where warnings should be sent
 5886:   EMAILADDR_WARN="sms-john@doe.com"
 5887: 
 5888:   # type of notification
 5889:   TYPE="Notice"
 5890: 
 5891:   # local snmp community for getting AS belonging to peer
 5892:   COMMUNITY="<community>"
 5893: 
 5894:   # if a peer address is in $WARN_PEERS a warning should be sent
 5895:   WARN_PEERS="192.0.2.1"
 5896: 
 5897: 
 5898:   # get stdin
 5899:   INPUT=`cat -`
 5900: 
 5901:   # get some vars from stdin
 5902:   uptime=`echo $INPUT | cut -d' ' -f5`
 5903:   peer=`echo $INPUT | cut -d' ' -f8 | sed -e 's/SNMPv2-SMI::mib-2.15.3.1.14.//g'`
 5904:   peerstate=`echo $INPUT | cut -d' ' -f13`
 5905:   errorcode=`echo $INPUT | cut -d' ' -f9 | sed -e 's/\"//g'`
 5906:   suberrorcode=`echo $INPUT | cut -d' ' -f10 | sed -e 's/\"//g'`
 5907:   remoteas=`snmpget -v2c -c $COMMUNITY localhost SNMPv2-SMI::mib-2.15.3.1.9.$peer | cut -d' ' -f4`
 5908: 
 5909:   WHOISINFO=`whois -h whois.ripe.net " -r AS$remoteas" | egrep '(as-name|descr)'`
 5910:   asname=`echo "$WHOISINFO" | grep "^as-name:" | sed -e 's/^as-name://g' -e 's/  //g' -e 's/^ //g' | uniq`
 5911:   asdescr=`echo "$WHOISINFO" | grep "^descr:" | sed -e 's/^descr://g' -e 's/  //g' -e 's/^ //g' | uniq`
 5912: 
 5913:   # if peer address is in $WARN_PEER, the email should also
 5914:   # be sent to $EMAILADDR_WARN
 5915:   for ip in $WARN_PEERS; do
 5916:     if [ "x$ip" == "x$peer" ]; then
 5917:       EMAILADDR="$EMAILADDR,$EMAILADDR_WARN"
 5918:       TYPE="WARNING"
 5919:       break
 5920:     fi
 5921:   done
 5922: 
 5923: 
 5924:   # convert peer state
 5925:   case "$peerstate" in
 5926:     1) peerstate="Idle" ;;
 5927:     2) peerstate="Connect" ;;
 5928:     3) peerstate="Active" ;;
 5929:     4) peerstate="Opensent" ;;
 5930:     5) peerstate="Openconfirm" ;;
 5931:     6) peerstate="Established" ;;
 5932:     *) peerstate="Unknown" ;;
 5933:   esac
 5934: 
 5935:   # get textual messages for errors
 5936:   case "$errorcode" in
 5937:     00)
 5938:       error="No error"
 5939:       suberror=""
 5940:       ;;
 5941:     01)
 5942:       error="Message Header Error"
 5943:       case "$suberrorcode" in
 5944:         01) suberror="Connection Not Synchronized" ;;
 5945:         02) suberror="Bad Message Length" ;;
 5946:         03) suberror="Bad Message Type" ;;
 5947:         *) suberror="Unknown" ;;
 5948:       esac
 5949:       ;;
 5950:     02)
 5951:       error="OPEN Message Error"
 5952:       case "$suberrorcode" in
 5953:         01) suberror="Unsupported Version Number" ;;
 5954:         02) suberror="Bad Peer AS" ;;
 5955:         03) suberror="Bad BGP Identifier" ;;
 5956:         04) suberror="Unsupported Optional Parameter" ;;
 5957:         05) suberror="Authentication Failure" ;;
 5958:         06) suberror="Unacceptable Hold Time" ;;
 5959:         *) suberror="Unknown" ;;
 5960:       esac
 5961:       ;;
 5962:     03)
 5963:       error="UPDATE Message Error"
 5964:       case "$suberrorcode" in
 5965:         01) suberror="Malformed Attribute List" ;;
 5966:         02) suberror="Unrecognized Well-known Attribute" ;;
 5967:         03) suberror="Missing Well-known Attribute" ;;
 5968:         04) suberror="Attribute Flags Error" ;;
 5969:         05) suberror="Attribute Length Error" ;;
 5970:         06) suberror="Invalid ORIGIN Attribute" ;;
 5971:         07) suberror="AS Routing Loop" ;;
 5972:         08) suberror="Invalid NEXT_HOP Attribute" ;;
 5973:         09) suberror="Optional Attribute Error" ;;
 5974:         10) suberror="Invalid Network Field" ;;
 5975:         11) suberror="Malformed AS_PATH" ;;
 5976:         *) suberror="Unknown" ;;
 5977:       esac
 5978:       ;;
 5979:     04)
 5980:       error="Hold Timer Expired"
 5981:       suberror=""
 5982:       ;;
 5983:     05)
 5984:       error="Finite State Machine Error"
 5985:       suberror=""
 5986:       ;;
 5987:     06)
 5988:       error="Cease"
 5989:       case "$suberrorcode" in
 5990:         01) suberror="Maximum Number of Prefixes Reached" ;;
 5991:         02) suberror="Administratively Shutdown" ;;
 5992:         03) suberror="Peer Unconfigured" ;;
 5993:         04) suberror="Administratively Reset" ;;
 5994:         05) suberror="Connection Rejected" ;;
 5995:         06) suberror="Other Configuration Change" ;;
 5996:         07) suberror="Connection collision resolution" ;;
 5997:         08) suberror="Out of Resource" ;;
 5998:         09) suberror="MAX" ;;
 5999:         *) suberror="Unknown" ;;
 6000:       esac
 6001:       ;;
 6002:     *)
 6003:       error="Unknown"
 6004:       suberror=""
 6005:       ;;
 6006:   esac
 6007: 
 6008:   # create textual message from errorcodes
 6009:   if [ "x$suberror" == "x" ]; then
 6010:     NOTIFY="$errorcode ($error)"
 6011:   else
 6012:     NOTIFY="$errorcode/$suberrorcode ($error/$suberror)"
 6013:   fi
 6014: 
 6015: 
 6016:   # form a decent subject
 6017:   SUBJECT="$TYPE: $ROUTER [bgp] $peer is $peerstate: $NOTIFY"
 6018:   # create the email body
 6019:   MAIL=`cat << EOF
 6020:   BGP notification on router $ROUTER.
 6021: 
 6022:   Peer: $peer
 6023:   AS: $remoteas
 6024:   New state: $peerstate
 6025:   Notification: $NOTIFY
 6026: 
 6027:   Info:
 6028:   $asname
 6029:   $asdescr
 6030: 
 6031:   Snmpd uptime: $uptime
 6032:   EOF`
 6033: 
 6034:   # mail the notification
 6035:   echo "$MAIL" | mail -s "$SUBJECT" $EMAILADDR
 6036: 
 6037: 
 6038: File: quagga.info,  Node: Zebra Protocol,  Next: Packet Binary Dump Format,  Prev: SNMP Support,  Up: Top
 6039: 
 6040: Anhang A Zebra Protocol
 6041: ***********************
 6042: 
 6043: A.1 Overview of the Zebra Protocol
 6044: ==================================
 6045: 
 6046: Zebra Protocol is used by protocol daemons to communicate with the
 6047: zebra daemon.
 6048: 
 6049:    Each protocol daemon may request and send information to and from the
 6050: zebra daemon such as interface states, routing state,
 6051: nexthop-validation, and so on. Protocol daemons may also install routes
 6052: with zebra. The zebra daemon manages which route is installed into the
 6053: forwarding table with the kernel.
 6054: 
 6055:    Zebra Protocol is a streaming protocol, with a common header. Two
 6056: versions of the header are in use. Version 0 is implicitely versioned.
 6057: Version 1 has an explicit version field. Version 0 can be distinguished
 6058: from all other versions by examining the 3rd byte of the header, which
 6059: contains a marker value for all versions bar version 0. The marker byte
 6060: corresponds to the command field in version 0, and the marker value is
 6061: a reserved command in version 0.
 6062: 
 6063:    We do not anticipate there will be further versions of the header for
 6064: the foreseeable future, as the command field in version 1 is wide
 6065: enough to allow for future extensions to done compatibly through
 6066: seperate commands.
 6067: 
 6068:    Version 0 is used by all versions of GNU Zebra as of this writing,
 6069: and versions of Quagga up to and including Quagga 0.98. Version 1 will
 6070: be used as of Quagga 1.0.
 6071: 
 6072: A.2 Zebra Protocol Definition
 6073: =============================
 6074: 
 6075: A.2.1 Zebra Protocol Header (version 0)
 6076: ---------------------------------------
 6077: 
 6078: 0                   1                   2                   3
 6079: 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
 6080: +-------------------------------+---------------+
 6081: |           Length (2)          |   Command (1) |
 6082: +-------------------------------+---------------+
 6083: 
 6084: A.2.2 Zebra Protocol Common Header (version 1)
 6085: ----------------------------------------------
 6086: 
 6087: 0                   1                   2                   3
 6088: 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
 6089: +-------------------------------+---------------+-------------+
 6090: |           Length (2)          |   Marker (1)  | Version (1) |
 6091: +-------------------------------+---------------+-------------+
 6092: |          Command (2)          |
 6093: +-------------------------------+
 6094: 
 6095: A.2.3 Zebra Protocol Header Field Definitions
 6096: ---------------------------------------------
 6097: 
 6098: `Length'
 6099:      Total packet length including this header. The minimum length is 3
 6100:      bytes for version 0 messages and 6 bytes for version 1 messages.
 6101: 
 6102: `Marker'
 6103:      Static marker with a value of 255 always. This is to allow version
 6104:      0 Zserv headers (which do not include version explicitely) to be
 6105:      distinguished from versioned headers. Not present in version 0
 6106:      messages.
 6107: 
 6108: `Version'
 6109:      Version number of the Zserv message. Clients should not continue
 6110:      processing messages past the version field for versions they do not
 6111:      recognise. Not present in version 0 messages.
 6112: 
 6113: `Command'
 6114:      The Zebra Protocol command.
 6115: 
 6116: A.2.4 Zebra Protocol Commands
 6117: -----------------------------
 6118: 
 6119: Command                                      Value
 6120: ----------------------------------------------------- 
 6121: ZEBRA_INTERFACE_ADD                          1
 6122: ZEBRA_INTERFACE_DELETE                       2
 6123: ZEBRA_INTERFACE_ADDRESS_ADD                  3
 6124: ZEBRA_INTERFACE_ADDRESS_DELETE               4
 6125: ZEBRA_INTERFACE_UP                           5
 6126: ZEBRA_INTERFACE_DOWN                         6
 6127: ZEBRA_IPV4_ROUTE_ADD                         7
 6128: ZEBRA_IPV4_ROUTE_DELETE                      8
 6129: ZEBRA_IPV6_ROUTE_ADD                         9
 6130: ZEBRA_IPV6_ROUTE_DELETE                      10
 6131: ZEBRA_REDISTRIBUTE_ADD                       11
 6132: ZEBRA_REDISTRIBUTE_DELETE                    12
 6133: ZEBRA_REDISTRIBUTE_DEFAULT_ADD               13
 6134: ZEBRA_REDISTRIBUTE_DEFAULT_DELETE            14
 6135: ZEBRA_IPV4_NEXTHOP_LOOKUP                    15
 6136: ZEBRA_IPV6_NEXTHOP_LOOKUP                    16
 6137: 
 6138: 
 6139: File: quagga.info,  Node: Packet Binary Dump Format,  Next: Command Index,  Prev: Zebra Protocol,  Up: Top
 6140: 
 6141: Anhang B Packet Binary Dump Format
 6142: **********************************
 6143: 
 6144: Quagga can dump routing protocol packet into file with a binary format
 6145: (*note Dump BGP packets and table::).
 6146: 
 6147:    It seems to be better that we share the MRT's header format for
 6148: backward compatibility with MRT's dump logs. We should also define the
 6149: binary format excluding the header, because we must support both IP v4
 6150: and v6 addresses as socket addresses and / or routing entries.
 6151: 
 6152:    In the last meeting, we discussed to have a version field in the
 6153: header. But Masaki told us that we can define new `type' value rather
 6154: than having a `version' field, and it seems to be better because we
 6155: don't need to change header format.
 6156: 
 6157:    Here is the common header format. This is same as that of MRT.
 6158: 
 6159: 0                   1                   2                   3
 6160: 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
 6161: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6162: |                              Time                             |
 6163: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6164: |             Type              |            Subtype            |
 6165: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6166: |                             Length                            |
 6167: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6168: 
 6169:    If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
 6170: Address Family == IP (version 4)
 6171: 
 6172:  0                   1                   2                   3
 6173:  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
 6174: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6175: |        Source AS number       |     Destination AS number     |
 6176: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6177: |        Interface Index        |      Address Family           |
 6178: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6179: |                        Source IP address                      |
 6180: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6181: |                     Destination IP address                    |
 6182: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6183: |            Old State          |           New State           |
 6184: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6185: 
 6186:    Where State is the value defined in RFC1771.
 6187: 
 6188:    If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
 6189: Address Family == IP version 6
 6190: 
 6191:  0                   1                   2                   3
 6192:  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
 6193: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6194: |        Source AS number       |     Destination AS number     |
 6195: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6196: |        Interface Index        |      Address Family           |
 6197: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6198: |                        Source IP address                      |
 6199: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6200: |                        Source IP address (Cont'd)             |
 6201: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6202: |                        Source IP address (Cont'd)             |
 6203: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6204: |                        Source IP address (Cont'd)             |
 6205: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6206: |                     Destination IP address                    |
 6207: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6208: |                     Destination IP address (Cont'd)           |
 6209: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6210: |                     Destination IP address (Cont'd)           |
 6211: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6212: |                     Destination IP address (Cont'd)           |
 6213: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6214: |            Old State          |           New State           |
 6215: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6216: 
 6217:    If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and
 6218: Address Family == IP (version 4)
 6219: 
 6220:  0                   1                   2                   3
 6221:  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
 6222: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6223: |        Source AS number       |     Destination AS number     |
 6224: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6225: |        Interface Index        |      Address Family           |
 6226: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6227: |                        Source IP address                      |
 6228: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6229: |                     Destination IP address                    |
 6230: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6231: |                       BGP Message Packet                      |
 6232: |                                                               |
 6233: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6234: 
 6235:    Where BGP Message Packet is the whole contents of the BGP4 message
 6236: including header portion.
 6237: 
 6238:    If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and
 6239: Address Family == IP version 6
 6240: 
 6241:  0                   1                   2                   3
 6242:  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
 6243: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6244: |        Source AS number       |     Destination AS number     |
 6245: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6246: |        Interface Index        |      Address Family           |
 6247: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6248: |                        Source IP address                      |
 6249: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6250: |                        Source IP address (Cont'd)             |
 6251: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6252: |                        Source IP address (Cont'd)             |
 6253: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6254: |                        Source IP address (Cont'd)             |
 6255: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6256: |                     Destination IP address                    |
 6257: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6258: |                     Destination IP address (Cont'd)           |
 6259: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6260: |                     Destination IP address (Cont'd)           |
 6261: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6262: |                     Destination IP address (Cont'd)           |
 6263: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6264: |                       BGP Message Packet                      |
 6265: |                                                               |
 6266: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6267: 
 6268:    If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address
 6269: Family == IP (version 4)
 6270: 
 6271:  0                   1                   2                   3
 6272:  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
 6273: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6274: |            View #             |            Status             |
 6275: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6276: |                        Time Last Change                       |
 6277: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6278: |       Address Family          |    SAFI       | Next-Hop-Len  |
 6279: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6280: |                        Next Hop Address                       |
 6281: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6282: | Prefix Length |             Address Prefix [variable]         |
 6283: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6284: |       Attribute Length        |
 6285: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6286: |      BGP Attribute [variable length]    			|
 6287: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6288: 
 6289:    If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address
 6290: Family == IP version 6
 6291: 
 6292:  0                   1                   2                   3
 6293:  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
 6294: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6295: |            View #             |            Status             |
 6296: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6297: |                        Time Last Change                       |
 6298: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6299: |       Address Family          |    SAFI       | Next-Hop-Len  |
 6300: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6301: |                        Next Hop Address                       |
 6302: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6303: |                        Next Hop Address (Cont'd)              |
 6304: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6305: |                        Next Hop Address (Cont'd)              |
 6306: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6307: |                        Next Hop Address (Cont'd)              |
 6308: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6309: | Prefix Length |             Address Prefix [variable]         |
 6310: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6311: |     Address Prefix (cont'd) [variable]        |
 6312: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6313: |       Attribute Length        |
 6314: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6315: |      BGP Attribute [variable length]    			    |
 6316: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6317: 
 6318:    	BGP4 Attribute must not contain MP_UNREACH_NLRI.  	If BGP
 6319: Attribute has MP_REACH_NLRI field, it must has 	zero length NLRI, e.g.,
 6320: MP_REACH_NLRI has only Address 	Family, SAFI and next-hop values.
 6321: 
 6322:    If `type' is PROTOCOL_BGP4MP and `subtype' is BGP4MP_SNAPSHOT,
 6323: 
 6324:  0                   1                   2                   3
 6325:  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
 6326: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6327: |           View #              |       File Name [variable]    |
 6328: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 6329: 
 6330:    The file specified in "File Name" contains all routing entries,
 6331: which are in the format of "subtype == BGP4MP_ENTRY".
 6332: 
 6333: Constants:
 6334:   /* type value */
 6335:   #define MSG_PROTOCOL_BGP4MP 16
 6336:   /* subtype value */
 6337:   #define BGP4MP_STATE_CHANGE 0
 6338:   #define BGP4MP_MESSAGE 1
 6339:   #define BGP4MP_ENTRY 2
 6340:   #define BGP4MP_SNAPSHOT 3
 6341: 
 6342: 
 6343: File: quagga.info,  Node: Command Index,  Next: VTY Key Index,  Prev: Packet Binary Dump Format,  Up: Top
 6344: 
 6345: Command Index
 6346: *************
 6347: 
 6348: [index]
 6349: * Menu:
 6350: 
 6351: * access-class ACCESS-LIST:              Basic Config Commands.
 6352:                                                               (line 142)
 6353: * access-list NAME deny IPV4-NETWORK:    IP Access List.      (line   8)
 6354: * access-list NAME permit IPV4-NETWORK:  IP Access List.      (line   7)
 6355: * aggregate-address A.B.C.D/M:           Route Aggregation.   (line   7)
 6356: * aggregate-address A.B.C.D/M as-set:    Route Aggregation.   (line  10)
 6357: * aggregate-address A.B.C.D/M summary-only: Route Aggregation.
 6358:                                                               (line  14)
 6359: * area <0-4294967295> authentication:    OSPF area.           (line 127)
 6360: * area <0-4294967295> authentication message-digest: OSPF area.
 6361:                                                               (line 134)
 6362: * area <0-4294967295> export-list NAME:  OSPF area.           (line  85)
 6363: * area <0-4294967295> filter-list prefix NAME in: OSPF area.  (line 117)
 6364: * area <0-4294967295> filter-list prefix NAME out: OSPF area. (line 118)
 6365: * area <0-4294967295> import-list NAME:  OSPF area.           (line 109)
 6366: * area <0-4294967295> range A.B.C.D/M:   OSPF area.           (line   8)
 6367: * area <0-4294967295> shortcut:          OSPF area.           (line  55)
 6368: * area <0-4294967295> stub:              OSPF area.           (line  62)
 6369: * area <0-4294967295> stub no-summary:   OSPF area.           (line  74)
 6370: * area <0-4294967295> virtual-link A.B.C.D: OSPF area.        (line  50)
 6371: * area A.B.C.D authentication:           OSPF area.           (line 126)
 6372: * area A.B.C.D authentication message-digest: OSPF area.      (line 133)
 6373: * area A.B.C.D default-cost <0-16777215>: OSPF area.          (line  80)
 6374: * area A.B.C.D export-list NAME:         OSPF area.           (line  84)
 6375: * area A.B.C.D filter-list prefix NAME in: OSPF area.         (line 115)
 6376: * area A.B.C.D filter-list prefix NAME out: OSPF area.        (line 116)
 6377: * area A.B.C.D import-list NAME:         OSPF area.           (line 108)
 6378: * area A.B.C.D range A.B.C.D/M:          OSPF area.           (line   7)
 6379: * area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area.    (line  28)
 6380: * area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area.
 6381:                                                               (line  34)
 6382: * area A.B.C.D shortcut:                 OSPF area.           (line  54)
 6383: * area A.B.C.D stub:                     OSPF area.           (line  61)
 6384: * area A.B.C.D stub no-summary:          OSPF area.           (line  73)
 6385: * area A.B.C.D virtual-link A.B.C.D:     OSPF area.           (line  49)
 6386: * auto-cost reference-bandwidth <1-4294967>: OSPF router.     (line 163)
 6387: * bandwidth <1-10000000>:                Interface Commands.  (line  31)
 6388: * banner motd default:                   Basic Config Commands.
 6389:                                                               (line 124)
 6390: * bgp bestpath as-path confed:           BGP decision process.
 6391:                                                               (line  19)
 6392: * bgp cluster-id A.B.C.D:                Route Reflector.     (line   7)
 6393: * bgp config-type cisco:                 Multiple instance.   (line  20)
 6394: * bgp config-type zebra:                 Multiple instance.   (line  53)
 6395: * bgp dampening <1-45> <1-20000> <1-20000> <1-255>: BGP route flap dampening.
 6396:                                                               (line   7)
 6397: * bgp multiple-instance:                 Multiple instance.   (line  10)
 6398: * bgp router-id A.B.C.D:                 BGP router.          (line  22)
 6399: * call NAME:                             Route Map Call Command.
 6400:                                                               (line   7)
 6401: * call WORD:                             Commands for configuring a Route Server.
 6402:                                                               (line  52)
 6403: * clear ip bgp PEER:                     More Show IP BGP.    (line  25)
 6404: * clear ip bgp PEER soft in:             More Show IP BGP.    (line  28)
 6405: * clear ip prefix-list:                  Clear counter of ip prefix-list.
 6406:                                                               (line   7)
 6407: * clear ip prefix-list NAME:             Clear counter of ip prefix-list.
 6408:                                                               (line  11)
 6409: * clear ip prefix-list NAME A.B.C.D/M:   Clear counter of ip prefix-list.
 6410:                                                               (line  13)
 6411: * configure terminal:                    Terminal Mode Commands.
 6412:                                                               (line  13)
 6413: * continue:                              Route Map Exit Action Command.
 6414:                                                               (line   8)
 6415: * continue N:                            Route Map Exit Action Command.
 6416:                                                               (line  12)
 6417: * debug event:                           More Show IP BGP.    (line  39)
 6418: * debug keepalive:                       More Show IP BGP.    (line  43)
 6419: * debug ospf ism:                        Debugging OSPF.      (line  12)
 6420: * debug ospf ism (status|events|timers): Debugging OSPF.      (line  13)
 6421: * debug ospf lsa:                        Debugging OSPF.      (line  22)
 6422: * debug ospf lsa (generate|flooding|refresh): Debugging OSPF. (line  23)
 6423: * debug ospf nsm:                        Debugging OSPF.      (line  17)
 6424: * debug ospf nsm (status|events|timers): Debugging OSPF.      (line  18)
 6425: * debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF.
 6426:                                                               (line   8)
 6427: * debug ospf zebra:                      Debugging OSPF.      (line  27)
 6428: * debug ospf zebra (interface|redistribute): Debugging OSPF.  (line  28)
 6429: * debug rip events:                      RIP Debug Commands.  (line   9)
 6430: * debug rip packet:                      RIP Debug Commands.  (line  15)
 6431: * debug rip zebra:                       RIP Debug Commands.  (line  22)
 6432: * debug ripng events:                    ripngd Terminal Mode Commands.
 6433:                                                               (line  11)
 6434: * debug ripng packet:                    ripngd Terminal Mode Commands.
 6435:                                                               (line  13)
 6436: * debug ripng zebra:                     ripngd Terminal Mode Commands.
 6437:                                                               (line  15)
 6438: * debug update:                          More Show IP BGP.    (line  41)
 6439: * default-information originate <1>:     Redistribute routes to OSPF.
 6440:                                                               (line  37)
 6441: * default-information originate:         How to Announce RIP route.
 6442:                                                               (line  51)
 6443: * default-information originate always:  Redistribute routes to OSPF.
 6444:                                                               (line  43)
 6445: * default-information originate always metric <0-16777214>: Redistribute routes to OSPF.
 6446:                                                               (line  45)
 6447: * default-information originate always metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF.
 6448:                                                               (line  47)
 6449: * default-information originate always metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
 6450:                                                               (line  49)
 6451: * default-information originate metric <0-16777214>: Redistribute routes to OSPF.
 6452:                                                               (line  38)
 6453: * default-information originate metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF.
 6454:                                                               (line  40)
 6455: * default-information originate metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
 6456:                                                               (line  42)
 6457: * default-metric <0-16777214>:           Redistribute routes to OSPF.
 6458:                                                               (line  65)
 6459: * default-metric <1-16>:                 RIP Metric Manipulation.
 6460:                                                               (line  11)
 6461: * description DESCRIPTION ...:           Interface Commands.  (line  24)
 6462: * distance <1-255> <1>:                  Redistribute routes to OSPF.
 6463:                                                               (line  68)
 6464: * distance <1-255>:                      RIP distance.        (line   9)
 6465: * distance <1-255> A.B.C.D/M <1>:        BGP distance.        (line  12)
 6466: * distance <1-255> A.B.C.D/M:            RIP distance.        (line  13)
 6467: * distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance.       (line  18)
 6468: * distance <1-255> A.B.C.D/M WORD:       BGP distance.        (line  13)
 6469: * distance bgp <1-255> <1-255> <1-255>:  BGP distance.        (line   7)
 6470: * distance ospf (intra-area|inter-area|external) <1-255>: Redistribute routes to OSPF.
 6471:                                                               (line  72)
 6472: * distribute-list ACCESS_LIST (in|out) IFNAME: ripngd Filtering Commands.
 6473:                                                               (line   7)
 6474: * distribute-list ACCESS_LIST DIRECT IFNAME: Filtering RIP Routes.
 6475:                                                               (line   9)
 6476: * distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF.
 6477:                                                               (line  58)
 6478: * distribute-list prefix PREFIX_LIST (in|out) IFNAME: Filtering RIP Routes.
 6479:                                                               (line  32)
 6480: * dump bgp all PATH:                     Dump BGP packets and table.
 6481:                                                               (line   7)
 6482: * dump bgp all PATH INTERVAL:            Dump BGP packets and table.
 6483:                                                               (line   8)
 6484: * dump bgp routes PATH:                  Dump BGP packets and table.
 6485:                                                               (line  15)
 6486: * dump bgp updates PATH:                 Dump BGP packets and table.
 6487:                                                               (line  11)
 6488: * dump bgp updates PATH INTERVAL:        Dump BGP packets and table.
 6489:                                                               (line  12)
 6490: * enable password PASSWORD:              Basic Config Commands.
 6491:                                                               (line  14)
 6492: * exec-timeout MINUTE:                   Basic Config Commands.
 6493:                                                               (line 130)
 6494: * exec-timeout MINUTE SECOND:            Basic Config Commands.
 6495:                                                               (line 131)
 6496: * flush_timer TIME:                      ripngd Configuration.
 6497:                                                               (line  12)
 6498: * hostname HOSTNAME:                     Basic Config Commands.
 6499:                                                               (line   7)
 6500: * interface IFNAME:                      Interface Commands.  (line   7)
 6501: * interface IFNAME area AREA:            OSPF6 router.        (line  12)
 6502: * ip address ADDRESS/PREFIX:             Interface Commands.  (line  13)
 6503: * ip address ADDRESS/PREFIX secondary:   Interface Commands.  (line  19)
 6504: * ip as-path access-list WORD {permit|deny} LINE: AS Path Access List.
 6505:                                                               (line   9)
 6506: * ip community-list <1-99> {permit|deny} COMMUNITY: Numbered BGP Community Lists.
 6507:                                                               (line  14)
 6508: * ip community-list <100-199> {permit|deny} COMMUNITY: Numbered BGP Community Lists.
 6509:                                                               (line  20)
 6510: * ip community-list expanded NAME {permit|deny} LINE: BGP Community Lists.
 6511:                                                               (line  30)
 6512: * ip community-list NAME {permit|deny} COMMUNITY: Numbered BGP Community Lists.
 6513:                                                               (line  25)
 6514: * ip community-list standard NAME {permit|deny} COMMUNITY: BGP Community Lists.
 6515:                                                               (line  20)
 6516: * ip extcommunity-list expanded NAME {permit|deny} LINE: BGP Extended Community Lists.
 6517:                                                               (line  21)
 6518: * ip extcommunity-list standard NAME {permit|deny} EXTCOMMUNITY: BGP Extended Community Lists.
 6519:                                                               (line  10)
 6520: * ip ospf authentication message-digest: OSPF interface.      (line  17)
 6521: * ip ospf authentication-key AUTH_KEY:   OSPF interface.      (line   7)
 6522: * ip ospf cost <1-65535>:                OSPF interface.      (line  45)
 6523: * ip ospf dead-interval <1-65535>:       OSPF interface.      (line  50)
 6524: * ip ospf dead-interval minimal hello-multiplier <2-20>: OSPF interface.
 6525:                                                               (line  52)
 6526: * ip ospf hello-interval <1-65535>:      OSPF interface.      (line  69)
 6527: * ip ospf message-digest-key KEYID md5 KEY: OSPF interface.   (line  33)
 6528: * ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point): OSPF interface.
 6529:                                                               (line  80)
 6530: * ip ospf priority <0-255>:              OSPF interface.      (line  84)
 6531: * ip ospf retransmit-interval <1-65535>: OSPF interface.      (line  91)
 6532: * ip ospf transmit-delay:                OSPF interface.      (line  97)
 6533: * ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List.
 6534:                                                               (line  16)
 6535: * ip prefix-list NAME description DESC:  ip prefix-list description.
 6536:                                                               (line   7)
 6537: * ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List.
 6538:                                                               (line  18)
 6539: * ip prefix-list sequence-number:        ip prefix-list sequential number control.
 6540:                                                               (line   7)
 6541: * ip protocol PROTOCOL route-map ROUTEMAP: zebra Route Filtering.
 6542:                                                               (line  12)
 6543: * ip rip authentication key-chain KEY-CHAIN: RIP Authentication.
 6544:                                                               (line  43)
 6545: * ip rip authentication mode md5:        RIP Authentication.  (line  29)
 6546: * ip rip authentication mode text:       RIP Authentication.  (line  33)
 6547: * ip rip authentication string STRING:   RIP Authentication.  (line  37)
 6548: * ip rip receive version VERSION:        RIP Version Control. (line  44)
 6549: * ip rip send version VERSION:           RIP Version Control. (line  33)
 6550: * ip route NETWORK GATEWAY:              Static Route Commands.
 6551:                                                               (line  10)
 6552: * ip route NETWORK GATEWAY DISTANCE:     Static Route Commands.
 6553:                                                               (line  36)
 6554: * ip route NETWORK NETMASK GATEWAY:      Static Route Commands.
 6555:                                                               (line  25)
 6556: * ip split-horizon:                      RIP Configuration.   (line  70)
 6557: * ipv6 address ADDRESS/PREFIX:           Interface Commands.  (line  14)
 6558: * ipv6 nd adv-interval-option:           Router Advertisement.
 6559:                                                               (line 127)
 6560: * ipv6 nd home-agent-config-flag:        Router Advertisement.
 6561:                                                               (line 104)
 6562: * ipv6 nd home-agent-lifetime:           Router Advertisement.
 6563:                                                               (line 119)
 6564: * ipv6 nd home-agent-preference:         Router Advertisement.
 6565:                                                               (line 112)
 6566: * ipv6 nd managed-config-flag:           Router Advertisement.
 6567:                                                               (line  87)
 6568: * ipv6 nd other-config-flag:             Router Advertisement.
 6569:                                                               (line  96)
 6570: * ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME] [PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]: Router Advertisement.
 6571:                                                               (line  14)
 6572: * ipv6 nd ra-interval msec MILLISECONDS: Router Advertisement.
 6573:                                                               (line  57)
 6574: * ipv6 nd ra-interval SECONDS:           Router Advertisement.
 6575:                                                               (line  49)
 6576: * ipv6 nd ra-lifetime SECONDS:           Router Advertisement.
 6577:                                                               (line  65)
 6578: * ipv6 nd reachable-time MILLISECONDS:   Router Advertisement.
 6579:                                                               (line  77)
 6580: * ipv6 nd router-preference (high|medium|low): Router Advertisement.
 6581:                                                               (line 135)
 6582: * ipv6 nd suppress-ra:                   Router Advertisement.
 6583:                                                               (line  10)
 6584: * ipv6 ospf6 cost COST:                  OSPF6 interface.     (line   7)
 6585: * ipv6 ospf6 dead-interval DEADINTERVAL: OSPF6 interface.     (line  13)
 6586: * ipv6 ospf6 hello-interval HELLOINTERVAL: OSPF6 interface.   (line  10)
 6587: * ipv6 ospf6 priority PRIORITY:          OSPF6 interface.     (line  20)
 6588: * ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL: OSPF6 interface.
 6589:                                                               (line  17)
 6590: * ipv6 ospf6 transmit-delay TRANSMITDELAY: OSPF6 interface.   (line  23)
 6591: * ipv6 route NETWORK GATEWAY:            Static Route Commands.
 6592:                                                               (line  77)
 6593: * ipv6 route NETWORK GATEWAY DISTANCE:   Static Route Commands.
 6594:                                                               (line  78)
 6595: * line vty:                              Basic Config Commands.
 6596:                                                               (line 121)
 6597: * link-detect:                           Interface Commands.  (line  37)
 6598: * list:                                  Terminal Mode Commands.
 6599:                                                               (line  24)
 6600: * log facility FACILITY:                 Basic Config Commands.
 6601:                                                               (line  81)
 6602: * log file FILENAME:                     Basic Config Commands.
 6603:                                                               (line  41)
 6604: * log file FILENAME LEVEL:               Basic Config Commands.
 6605:                                                               (line  42)
 6606: * log monitor:                           Basic Config Commands.
 6607:                                                               (line  68)
 6608: * log monitor LEVEL:                     Basic Config Commands.
 6609:                                                               (line  69)
 6610: * log record-priority:                   Basic Config Commands.
 6611:                                                               (line  87)
 6612: * log stdout:                            Basic Config Commands.
 6613:                                                               (line  28)
 6614: * log stdout LEVEL:                      Basic Config Commands.
 6615:                                                               (line  29)
 6616: * log syslog:                            Basic Config Commands.
 6617:                                                               (line  59)
 6618: * log syslog LEVEL:                      Basic Config Commands.
 6619:                                                               (line  60)
 6620: * log timestamp precision <0-6>:         Basic Config Commands.
 6621:                                                               (line  97)
 6622: * log trap LEVEL:                        Basic Config Commands.
 6623:                                                               (line  17)
 6624: * log-adjacency-changes [detail]:        OSPF router.         (line  73)
 6625: * logmsg LEVEL MESSAGE:                  Terminal Mode Commands.
 6626:                                                               (line  34)
 6627: * match as-path WORD:                    Using AS Path in Route Map.
 6628:                                                               (line   7)
 6629: * match aspath AS_PATH:                  Route Map Match Command.
 6630:                                                               (line  13)
 6631: * match community COMMUNITY_LIST:        Route Map Match Command.
 6632:                                                               (line  19)
 6633: * match community WORD:                  BGP Community in Route Map.
 6634:                                                               (line  13)
 6635: * match community WORD exact-match:      BGP Community in Route Map.
 6636:                                                               (line  14)
 6637: * match extcommunity WORD:               BGP Extended Communities in Route Map.
 6638:                                                               (line   7)
 6639: * match interface WORD:                  RIP route-map.       (line  26)
 6640: * match ip address ACCESS_LIST:          Route Map Match Command.
 6641:                                                               (line   7)
 6642: * match ip address prefix-list WORD:     RIP route-map.       (line  39)
 6643: * match ip address WORD:                 RIP route-map.       (line  38)
 6644: * match ip next-hop A.B.C.D:             RIP route-map.       (line  42)
 6645: * match ip next-hop IPV4_ADDR:           Route Map Match Command.
 6646:                                                               (line  10)
 6647: * match metric <0-4294967295>:           RIP route-map.       (line  47)
 6648: * match metric METRIC:                   Route Map Match Command.
 6649:                                                               (line  16)
 6650: * match peer {A.B.C.D|X:X::X:X}:         Commands for configuring a Route Server.
 6651:                                                               (line  34)
 6652: * max-metric router-lsa [on-startup|on-shutdown] <5-86400>: OSPF router.
 6653:                                                               (line 130)
 6654: * max-metric router-lsa administrative:  OSPF router.         (line 131)
 6655: * multicast:                             Interface Commands.  (line  27)
 6656: * neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD {import|export}: Commands for configuring a Route Server.
 6657:                                                               (line  29)
 6658: * neighbor A.B.C.D:                      RIP Configuration.   (line  34)
 6659: * neighbor A.B.C.D route-server-client:  Commands for configuring a Route Server.
 6660:                                                               (line  11)
 6661: * neighbor PEER default-originate:       BGP Peer commands.   (line  59)
 6662: * neighbor PEER description ...:         BGP Peer commands.   (line  20)
 6663: * neighbor PEER distribute-list NAME [in|out]: Peer filtering.
 6664:                                                               (line   7)
 6665: * neighbor PEER dont-capability-negotiate: Capability Negotiation.
 6666:                                                               (line  51)
 6667: * neighbor PEER ebgp-multihop:           BGP Peer commands.   (line  17)
 6668: * neighbor PEER filter-list NAME [in|out]: Peer filtering.    (line  13)
 6669: * neighbor PEER interface IFNAME:        BGP Peer commands.   (line  33)
 6670: * neighbor PEER maximum-prefix NUMBER:   BGP Peer commands.   (line  76)
 6671: * neighbor PEER next-hop-self:           BGP Peer commands.   (line  43)
 6672: * neighbor PEER override-capability:     Capability Negotiation.
 6673:                                                               (line  67)
 6674: * neighbor PEER peer-group WORD:         BGP Peer Group.      (line  10)
 6675: * neighbor PEER port PORT:               BGP Peer commands.   (line  65)
 6676: * neighbor PEER prefix-list NAME [in|out]: Peer filtering.    (line  11)
 6677: * neighbor PEER remote-as ASN:           Defining Peer.       (line   7)
 6678: * neighbor PEER route-map NAME [in|out]: Peer filtering.      (line  15)
 6679: * neighbor PEER route-reflector-client:  Route Reflector.     (line   9)
 6680: * neighbor PEER send-community:          BGP Peer commands.   (line  68)
 6681: * neighbor PEER shutdown:                BGP Peer commands.   (line  10)
 6682: * neighbor PEER strict-capability-match: Capability Negotiation.
 6683:                                                               (line  40)
 6684: * neighbor PEER update-source <IFNAME|ADDRESS>: BGP Peer commands.
 6685:                                                               (line  48)
 6686: * neighbor PEER version VERSION:         BGP Peer commands.   (line  24)
 6687: * neighbor PEER weight WEIGHT:           BGP Peer commands.   (line  71)
 6688: * neighbor PEER-GROUP route-server-client: Commands for configuring a Route Server.
 6689:                                                               (line  10)
 6690: * neighbor WORD peer-group:              BGP Peer Group.      (line   7)
 6691: * neighbor X:X::X:X route-server-client: Commands for configuring a Route Server.
 6692:                                                               (line  12)
 6693: * network A.B.C.D/M:                     BGP route.           (line   7)
 6694: * network A.B.C.D/M area <0-4294967295>: OSPF router.         (line 175)
 6695: * network A.B.C.D/M area A.B.C.D:        OSPF router.         (line 174)
 6696: * network IFNAME <1>:                    ripngd Configuration.
 6697:                                                               (line  18)
 6698: * network IFNAME:                        RIP Configuration.   (line  27)
 6699: * network NETWORK <1>:                   ripngd Configuration.
 6700:                                                               (line  15)
 6701: * network NETWORK:                       RIP Configuration.   (line  15)
 6702: * no aggregate-address A.B.C.D/M:        Route Aggregation.   (line  18)
 6703: * no area <0-4294967295> authentication: OSPF area.           (line 129)
 6704: * no area <0-4294967295> export-list NAME: OSPF area.         (line  87)
 6705: * no area <0-4294967295> filter-list prefix NAME in: OSPF area.
 6706:                                                               (line 121)
 6707: * no area <0-4294967295> filter-list prefix NAME out: OSPF area.
 6708:                                                               (line 122)
 6709: * no area <0-4294967295> import-list NAME: OSPF area.         (line 111)
 6710: * no area <0-4294967295> range A.B.C.D/M: OSPF area.          (line  10)
 6711: * no area <0-4294967295> shortcut:       OSPF area.           (line  57)
 6712: * no area <0-4294967295> stub:           OSPF area.           (line  64)
 6713: * no area <0-4294967295> stub no-summary: OSPF area.          (line  76)
 6714: * no area <0-4294967295> virtual-link A.B.C.D: OSPF area.     (line  52)
 6715: * no area A.B.C.D authentication:        OSPF area.           (line 128)
 6716: * no area A.B.C.D default-cost <0-16777215>: OSPF area.       (line  81)
 6717: * no area A.B.C.D export-list NAME:      OSPF area.           (line  86)
 6718: * no area A.B.C.D filter-list prefix NAME in: OSPF area.      (line 119)
 6719: * no area A.B.C.D filter-list prefix NAME out: OSPF area.     (line 120)
 6720: * no area A.B.C.D import-list NAME:      OSPF area.           (line 110)
 6721: * no area A.B.C.D range A.B.C.D/M:       OSPF area.           (line   9)
 6722: * no area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area. (line  29)
 6723: * no area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area.
 6724:                                                               (line  36)
 6725: * no area A.B.C.D shortcut:              OSPF area.           (line  56)
 6726: * no area A.B.C.D stub:                  OSPF area.           (line  63)
 6727: * no area A.B.C.D stub no-summary:       OSPF area.           (line  75)
 6728: * no area A.B.C.D virtual-link A.B.C.D:  OSPF area.           (line  51)
 6729: * no auto-cost reference-bandwidth:      OSPF router.         (line 164)
 6730: * no bandwidth <1-10000000>:             Interface Commands.  (line  32)
 6731: * no banner motd:                        Basic Config Commands.
 6732:                                                               (line 127)
 6733: * no bgp multiple-instance:              Multiple instance.   (line  14)
 6734: * no debug event:                        More Show IP BGP.    (line  45)
 6735: * no debug keepalive:                    More Show IP BGP.    (line  49)
 6736: * no debug ospf ism:                     Debugging OSPF.      (line  14)
 6737: * no debug ospf ism (status|events|timers): Debugging OSPF.   (line  15)
 6738: * no debug ospf lsa:                     Debugging OSPF.      (line  24)
 6739: * no debug ospf lsa (generate|flooding|refresh): Debugging OSPF.
 6740:                                                               (line  25)
 6741: * no debug ospf nsm:                     Debugging OSPF.      (line  19)
 6742: * no debug ospf nsm (status|events|timers): Debugging OSPF.   (line  20)
 6743: * no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF.
 6744:                                                               (line  10)
 6745: * no debug ospf zebra:                   Debugging OSPF.      (line  29)
 6746: * no debug ospf zebra (interface|redistribute): Debugging OSPF.
 6747:                                                               (line  30)
 6748: * no debug update:                       More Show IP BGP.    (line  47)
 6749: * no default-information originate:      Redistribute routes to OSPF.
 6750:                                                               (line  50)
 6751: * no default-metric:                     Redistribute routes to OSPF.
 6752:                                                               (line  66)
 6753: * no default-metric <1-16>:              RIP Metric Manipulation.
 6754:                                                               (line  12)
 6755: * no distance <1-255> <1>:               Redistribute routes to OSPF.
 6756:                                                               (line  69)
 6757: * no distance <1-255>:                   RIP distance.        (line  10)
 6758: * no distance <1-255> A.B.C.D/M:         RIP distance.        (line  14)
 6759: * no distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance.    (line  19)
 6760: * no distance ospf:                      Redistribute routes to OSPF.
 6761:                                                               (line  73)
 6762: * no distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF.
 6763:                                                               (line  60)
 6764: * no exec-timeout:                       Basic Config Commands.
 6765:                                                               (line 138)
 6766: * no ip address ADDRESS/PREFIX:          Interface Commands.  (line  15)
 6767: * no ip address ADDRESS/PREFIX secondary: Interface Commands. (line  20)
 6768: * no ip as-path access-list WORD:        AS Path Access List. (line  12)
 6769: * no ip as-path access-list WORD {permit|deny} LINE: AS Path Access List.
 6770:                                                               (line  13)
 6771: * no ip community-list expanded NAME:    BGP Community Lists. (line  37)
 6772: * no ip community-list NAME:             BGP Community Lists. (line  35)
 6773: * no ip community-list standard NAME:    BGP Community Lists. (line  36)
 6774: * no ip extcommunity-list expanded NAME: BGP Extended Community Lists.
 6775:                                                               (line  29)
 6776: * no ip extcommunity-list NAME:          BGP Extended Community Lists.
 6777:                                                               (line  27)
 6778: * no ip extcommunity-list standard NAME: BGP Extended Community Lists.
 6779:                                                               (line  28)
 6780: * no ip ospf authentication-key:         OSPF interface.      (line   8)
 6781: * no ip ospf cost:                       OSPF interface.      (line  46)
 6782: * no ip ospf dead-interval:              OSPF interface.      (line  53)
 6783: * no ip ospf hello-interval:             OSPF interface.      (line  70)
 6784: * no ip ospf message-digest-key:         OSPF interface.      (line  34)
 6785: * no ip ospf network:                    OSPF interface.      (line  81)
 6786: * no ip ospf priority:                   OSPF interface.      (line  85)
 6787: * no ip ospf retransmit interval:        OSPF interface.      (line  92)
 6788: * no ip ospf transmit-delay:             OSPF interface.      (line  98)
 6789: * no ip prefix-list NAME:                IP Prefix List.      (line  67)
 6790: * no ip prefix-list NAME description [DESC]: ip prefix-list description.
 6791:                                                               (line  11)
 6792: * no ip prefix-list sequence-number:     ip prefix-list sequential number control.
 6793:                                                               (line  11)
 6794: * no ip rip authentication key-chain KEY-CHAIN: RIP Authentication.
 6795:                                                               (line  44)
 6796: * no ip rip authentication mode md5:     RIP Authentication.  (line  30)
 6797: * no ip rip authentication mode text:    RIP Authentication.  (line  34)
 6798: * no ip rip authentication string STRING: RIP Authentication. (line  38)
 6799: * no ip split-horizon:                   RIP Configuration.   (line  71)
 6800: * no ipv6 address ADDRESS/PREFIX:        Interface Commands.  (line  16)
 6801: * no ipv6 nd adv-interval-option:        Router Advertisement.
 6802:                                                               (line 128)
 6803: * no ipv6 nd home-agent-config-flag:     Router Advertisement.
 6804:                                                               (line 105)
 6805: * no ipv6 nd home-agent-lifetime:        Router Advertisement.
 6806:                                                               (line 120)
 6807: * no ipv6 nd home-agent-preference:      Router Advertisement.
 6808:                                                               (line 113)
 6809: * no ipv6 nd managed-config-flag:        Router Advertisement.
 6810:                                                               (line  88)
 6811: * no ipv6 nd other-config-flag:          Router Advertisement.
 6812:                                                               (line  97)
 6813: * no ipv6 nd ra-interval:                Router Advertisement.
 6814:                                                               (line  50)
 6815: * no ipv6 nd ra-interval msec:           Router Advertisement.
 6816:                                                               (line  58)
 6817: * no ipv6 nd ra-lifetime:                Router Advertisement.
 6818:                                                               (line  66)
 6819: * no ipv6 nd reachable-time:             Router Advertisement.
 6820:                                                               (line  78)
 6821: * no ipv6 nd router-preference:          Router Advertisement.
 6822:                                                               (line 136)
 6823: * no ipv6 nd suppress-ra:                Router Advertisement.
 6824:                                                               (line   7)
 6825: * no link-detect:                        Interface Commands.  (line  38)
 6826: * no log facility:                       Basic Config Commands.
 6827:                                                               (line  82)
 6828: * no log file:                           Basic Config Commands.
 6829:                                                               (line  43)
 6830: * no log monitor:                        Basic Config Commands.
 6831:                                                               (line  70)
 6832: * no log record-priority:                Basic Config Commands.
 6833:                                                               (line  88)
 6834: * no log stdout:                         Basic Config Commands.
 6835:                                                               (line  30)
 6836: * no log syslog:                         Basic Config Commands.
 6837:                                                               (line  61)
 6838: * no log timestamp precision:            Basic Config Commands.
 6839:                                                               (line  98)
 6840: * no log trap:                           Basic Config Commands.
 6841:                                                               (line  18)
 6842: * no log-adjacency-changes [detail]:     OSPF router.         (line  74)
 6843: * no max-metric router-lsa [on-startup|on-shutdown|administrative]: OSPF router.
 6844:                                                               (line 133)
 6845: * no multicast:                          Interface Commands.  (line  28)
 6846: * no neighbor A.B.C.D:                   RIP Configuration.   (line  35)
 6847: * no neighbor PEER default-originate:    BGP Peer commands.   (line  60)
 6848: * no neighbor PEER description ...:      BGP Peer commands.   (line  21)
 6849: * no neighbor PEER dont-capability-negotiate: Capability Negotiation.
 6850:                                                               (line  52)
 6851: * no neighbor PEER ebgp-multihop:        BGP Peer commands.   (line  18)
 6852: * no neighbor PEER interface IFNAME:     BGP Peer commands.   (line  34)
 6853: * no neighbor PEER maximum-prefix NUMBER: BGP Peer commands.  (line  77)
 6854: * no neighbor PEER next-hop-self:        BGP Peer commands.   (line  44)
 6855: * no neighbor PEER override-capability:  Capability Negotiation.
 6856:                                                               (line  68)
 6857: * no neighbor PEER route-reflector-client: Route Reflector.   (line  10)
 6858: * no neighbor PEER shutdown:             BGP Peer commands.   (line  11)
 6859: * no neighbor PEER strict-capability-match: Capability Negotiation.
 6860:                                                               (line  41)
 6861: * no neighbor PEER update-source:        BGP Peer commands.   (line  49)
 6862: * no neighbor PEER weight WEIGHT:        BGP Peer commands.   (line  72)
 6863: * no network A.B.C.D/M:                  BGP route.           (line  16)
 6864: * no network A.B.C.D/M area <0-4294967295>: OSPF router.      (line 177)
 6865: * no network A.B.C.D/M area A.B.C.D:     OSPF router.         (line 176)
 6866: * no network IFNAME:                     RIP Configuration.   (line  28)
 6867: * no network NETWORK:                    RIP Configuration.   (line  16)
 6868: * no ospf abr-type TYPE:                 OSPF router.         (line  27)
 6869: * no ospf rfc1583compatibility:          OSPF router.         (line  63)
 6870: * no ospf router-id:                     OSPF router.         (line  17)
 6871: * no passive-interface IFNAME:           RIP Configuration.   (line  58)
 6872: * no passive-interface INTERFACE:        OSPF router.         (line  80)
 6873: * no redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF.
 6874:                                                               (line  22)
 6875: * no redistribute bgp:                   How to Announce RIP route.
 6876:                                                               (line  44)
 6877: * no redistribute connected:             How to Announce RIP route.
 6878:                                                               (line  26)
 6879: * no redistribute kernel:                How to Announce RIP route.
 6880:                                                               (line  10)
 6881: * no redistribute ospf:                  How to Announce RIP route.
 6882:                                                               (line  36)
 6883: * no redistribute static:                How to Announce RIP route.
 6884:                                                               (line  18)
 6885: * no route A.B.C.D/M:                    How to Announce RIP route.
 6886:                                                               (line  54)
 6887: * no router bgp ASN:                     BGP router.          (line  19)
 6888: * no router ospf:                        OSPF router.         (line  11)
 6889: * no router rip:                         RIP Configuration.   (line  12)
 6890: * no router zebra:                       Redistribute routes to OSPF.
 6891:                                                               (line  76)
 6892: * no shutdown:                           Interface Commands.  (line  10)
 6893: * no smux peer OID:                      MIB and command reference.
 6894:                                                               (line  29)
 6895: * no smux peer OID PASSWORD:             MIB and command reference.
 6896:                                                               (line  32)
 6897: * no timers basic:                       RIP Timers.          (line  31)
 6898: * no timers throttle spf:                OSPF router.         (line  92)
 6899: * no version:                            RIP Version Control. (line  30)
 6900: * offset-list ACCESS-LIST (in|out):      RIP Metric Manipulation.
 6901:                                                               (line  20)
 6902: * offset-list ACCESS-LIST (in|out) IFNAME: RIP Metric Manipulation.
 6903:                                                               (line  21)
 6904: * on-match goto N:                       Route Map Exit Action Command.
 6905:                                                               (line  11)
 6906: * on-match next:                         Route Map Exit Action Command.
 6907:                                                               (line   7)
 6908: * ospf abr-type TYPE:                    OSPF router.         (line  26)
 6909: * ospf rfc1583compatibility:             OSPF router.         (line  62)
 6910: * ospf router-id A.B.C.D:                OSPF router.         (line  16)
 6911: * passive-interface (IFNAME|default):    RIP Configuration.   (line  57)
 6912: * passive-interface INTERFACE:           OSPF router.         (line  79)
 6913: * password PASSWORD:                     Basic Config Commands.
 6914:                                                               (line  10)
 6915: * redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF.
 6916:                                                               (line   7)
 6917: * redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>: Redistribute routes to OSPF.
 6918:                                                               (line  15)
 6919: * redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map WORD: Redistribute routes to OSPF.
 6920:                                                               (line  17)
 6921: * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2): Redistribute routes to OSPF.
 6922:                                                               (line  11)
 6923: * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>: Redistribute routes to OSPF.
 6924:                                                               (line  19)
 6925: * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map WORD: Redistribute routes to OSPF.
 6926:                                                               (line  21)
 6927: * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
 6928:                                                               (line  13)
 6929: * redistribute (kernel|connected|static|rip|bgp) ROUTE-MAP: Redistribute routes to OSPF.
 6930:                                                               (line   9)
 6931: * redistribute bgp:                      How to Announce RIP route.
 6932:                                                               (line  41)
 6933: * redistribute bgp metric <0-16>:        How to Announce RIP route.
 6934:                                                               (line  42)
 6935: * redistribute bgp route-map ROUTE-MAP:  How to Announce RIP route.
 6936:                                                               (line  43)
 6937: * redistribute connected <1>:            Redistribute to BGP. (line  13)
 6938: * redistribute connected <2>:            Redistribute routes to OSPF6.
 6939:                                                               (line   8)
 6940: * redistribute connected:                How to Announce RIP route.
 6941:                                                               (line  23)
 6942: * redistribute connected metric <0-16>:  How to Announce RIP route.
 6943:                                                               (line  24)
 6944: * redistribute connected route-map ROUTE-MAP: How to Announce RIP route.
 6945:                                                               (line  25)
 6946: * redistribute kernel <1>:               Redistribute to BGP. (line   7)
 6947: * redistribute kernel:                   How to Announce RIP route.
 6948:                                                               (line   7)
 6949: * redistribute kernel metric <0-16>:     How to Announce RIP route.
 6950:                                                               (line   8)
 6951: * redistribute kernel route-map ROUTE-MAP: How to Announce RIP route.
 6952:                                                               (line   9)
 6953: * redistribute ospf <1>:                 Redistribute to BGP. (line  19)
 6954: * redistribute ospf:                     How to Announce RIP route.
 6955:                                                               (line  33)
 6956: * redistribute ospf metric <0-16>:       How to Announce RIP route.
 6957:                                                               (line  34)
 6958: * redistribute ospf route-map ROUTE-MAP: How to Announce RIP route.
 6959:                                                               (line  35)
 6960: * redistribute rip:                      Redistribute to BGP. (line  16)
 6961: * redistribute ripng:                    Redistribute routes to OSPF6.
 6962:                                                               (line   9)
 6963: * redistribute static <1>:               Redistribute to BGP. (line  10)
 6964: * redistribute static <2>:               Redistribute routes to OSPF6.
 6965:                                                               (line   7)
 6966: * redistribute static:                   How to Announce RIP route.
 6967:                                                               (line  15)
 6968: * redistribute static metric <0-16>:     How to Announce RIP route.
 6969:                                                               (line  16)
 6970: * redistribute static route-map ROUTE-MAP: How to Announce RIP route.
 6971:                                                               (line  17)
 6972: * route A.B.C.D/M:                       How to Announce RIP route.
 6973:                                                               (line  53)
 6974: * route NETWORK:                         ripngd Configuration.
 6975:                                                               (line  21)
 6976: * route-map ROUTE-MAP-NAME (permit|deny) ORDER: Route Map Command.
 6977:                                                               (line   7)
 6978: * router bgp AS-NUMBER:                  BGP instance and view.
 6979:                                                               (line  11)
 6980: * router bgp AS-NUMBER view NAME:        BGP instance and view.
 6981:                                                               (line  28)
 6982: * router bgp ASN:                        BGP router.          (line  13)
 6983: * router ospf:                           OSPF router.         (line  10)
 6984: * router ospf6:                          OSPF6 router.        (line   7)
 6985: * router rip:                            RIP Configuration.   (line   7)
 6986: * router ripng:                          ripngd Configuration.
 6987:                                                               (line   9)
 6988: * router zebra <1>:                      Redistribute routes to OSPF.
 6989:                                                               (line  75)
 6990: * router zebra:                          ripngd Configuration.
 6991:                                                               (line  24)
 6992: * router-id A.B.C.D:                     OSPF6 router.        (line   9)
 6993: * service advanced-vty:                  Basic Config Commands.
 6994:                                                               (line 114)
 6995: * service integrated-vtysh-config:       VTY shell integrated configuration.
 6996:                                                               (line   7)
 6997: * service password-encryption:           Basic Config Commands.
 6998:                                                               (line 111)
 6999: * service terminal-length <0-512>:       Basic Config Commands.
 7000:                                                               (line 117)
 7001: * set as-path prepend AS-PATH:           Using AS Path in Route Map.
 7002:                                                               (line   9)
 7003: * set as-path prepend AS_PATH:           Route Map Set Command.
 7004:                                                               (line  19)
 7005: * set comm-list WORD delete:             BGP Community in Route Map.
 7006:                                                               (line  34)
 7007: * set community COMMUNITY <1>:           Route Map Set Command.
 7008:                                                               (line  22)
 7009: * set community COMMUNITY:               BGP Community in Route Map.
 7010:                                                               (line  23)
 7011: * set community COMMUNITY additive:      BGP Community in Route Map.
 7012:                                                               (line  24)
 7013: * set community none:                    BGP Community in Route Map.
 7014:                                                               (line  22)
 7015: * set extcommunity rt EXTCOMMUNITY:      BGP Extended Communities in Route Map.
 7016:                                                               (line   9)
 7017: * set extcommunity soo EXTCOMMUNITY:     BGP Extended Communities in Route Map.
 7018:                                                               (line  12)
 7019: * set ip next-hop A.B.C.D:               RIP route-map.       (line  52)
 7020: * set ip next-hop IPV4_ADDRESS:          Route Map Set Command.
 7021:                                                               (line   7)
 7022: * set ipv6 next-hop global IPV6_ADDRESS: Route Map Set Command.
 7023:                                                               (line  25)
 7024: * set ipv6 next-hop local IPV6_ADDRESS:  Route Map Set Command.
 7025:                                                               (line  28)
 7026: * set local-preference LOCAL_PREF:       Route Map Set Command.
 7027:                                                               (line  10)
 7028: * set metric <0-4294967295>:             RIP route-map.       (line  57)
 7029: * set metric METRIC:                     Route Map Set Command.
 7030:                                                               (line  16)
 7031: * set src ADDRESS:                       zebra Route Filtering.
 7032:                                                               (line  17)
 7033: * set weight WEIGHT:                     Route Map Set Command.
 7034:                                                               (line  13)
 7035: * show debug:                            More Show IP BGP.    (line  37)
 7036: * show debugging ospf:                   Debugging OSPF.      (line  32)
 7037: * show debugging rip:                    RIP Debug Commands.  (line  29)
 7038: * show debugging ripng:                  ripngd Terminal Mode Commands.
 7039:                                                               (line   9)
 7040: * show interface:                        zebra Terminal Mode Commands.
 7041:                                                               (line  21)
 7042: * show ip bgp:                           Show IP BGP.         (line   7)
 7043: * show ip bgp A.B.C.D:                   Show IP BGP.         (line   8)
 7044: * show ip bgp community:                 Display BGP Routes by Community.
 7045:                                                               (line  11)
 7046: * show ip bgp community COMMUNITY <1>:   More Show IP BGP.    (line  11)
 7047: * show ip bgp community COMMUNITY:       Display BGP Routes by Community.
 7048:                                                               (line  12)
 7049: * show ip bgp community COMMUNITY exact-match <1>: More Show IP BGP.
 7050:                                                               (line  12)
 7051: * show ip bgp community COMMUNITY exact-match: Display BGP Routes by Community.
 7052:                                                               (line  13)
 7053: * show ip bgp community-list WORD <1>:   More Show IP BGP.    (line  16)
 7054: * show ip bgp community-list WORD:       Display BGP Routes by Community.
 7055:                                                               (line  20)
 7056: * show ip bgp community-list WORD exact-match <1>: More Show IP BGP.
 7057:                                                               (line  17)
 7058: * show ip bgp community-list WORD exact-match: Display BGP Routes by Community.
 7059:                                                               (line  21)
 7060: * show ip bgp dampened-paths:            More Show IP BGP.    (line  31)
 7061: * show ip bgp flap-statistics:           More Show IP BGP.    (line  34)
 7062: * show ip bgp neighbor [PEER]:           More Show IP BGP.    (line  23)
 7063: * show ip bgp regexp LINE <1>:           More Show IP BGP.    (line   7)
 7064: * show ip bgp regexp LINE:               Display BGP Routes by AS Path.
 7065:                                                               (line  10)
 7066: * show ip bgp summary:                   More Show IP BGP.    (line  21)
 7067: * show ip bgp view NAME:                 Viewing the view.    (line   9)
 7068: * show ip bgp X:X::X:X:                  Show IP BGP.         (line   9)
 7069: * show ip community-list:                BGP Community Lists. (line  42)
 7070: * show ip community-list NAME:           BGP Community Lists. (line  43)
 7071: * show ip extcommunity-list:             BGP Extended Community Lists.
 7072:                                                               (line  35)
 7073: * show ip extcommunity-list NAME:        BGP Extended Community Lists.
 7074:                                                               (line  36)
 7075: * show ip ospf:                          Showing OSPF information.
 7076:                                                               (line   7)
 7077: * show ip ospf database:                 Showing OSPF information.
 7078:                                                               (line  20)
 7079: * show ip ospf database (asbr-summary|external|network|router|summary): Showing OSPF information.
 7080:                                                               (line  23)
 7081: * show ip ospf database (asbr-summary|external|network|router|summary) adv-router ADV-ROUTER: Showing OSPF information.
 7082:                                                               (line  30)
 7083: * show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID: Showing OSPF information.
 7084:                                                               (line  25)
 7085: * show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID adv-router ADV-ROUTER: Showing OSPF information.
 7086:                                                               (line  28)
 7087: * show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID self-originate: Showing OSPF information.
 7088:                                                               (line  33)
 7089: * show ip ospf database (asbr-summary|external|network|router|summary) self-originate: Showing OSPF information.
 7090:                                                               (line  35)
 7091: * show ip ospf database max-age:         Showing OSPF information.
 7092:                                                               (line  37)
 7093: * show ip ospf database self-originate:  Showing OSPF information.
 7094:                                                               (line  39)
 7095: * show ip ospf interface [INTERFACE]:    Showing OSPF information.
 7096:                                                               (line  11)
 7097: * show ip ospf neighbor:                 Showing OSPF information.
 7098:                                                               (line  15)
 7099: * show ip ospf neighbor detail:          Showing OSPF information.
 7100:                                                               (line  17)
 7101: * show ip ospf neighbor INTERFACE:       Showing OSPF information.
 7102:                                                               (line  16)
 7103: * show ip ospf neighbor INTERFACE detail: Showing OSPF information.
 7104:                                                               (line  18)
 7105: * show ip ospf route:                    Showing OSPF information.
 7106:                                                               (line  41)
 7107: * show ip prefix-list:                   Showing ip prefix-list.
 7108:                                                               (line   7)
 7109: * show ip prefix-list [NAME]:            zebra Terminal Mode Commands.
 7110:                                                               (line  23)
 7111: * show ip prefix-list detail:            Showing ip prefix-list.
 7112:                                                               (line  31)
 7113: * show ip prefix-list detail NAME:       Showing ip prefix-list.
 7114:                                                               (line  33)
 7115: * show ip prefix-list NAME:              Showing ip prefix-list.
 7116:                                                               (line  10)
 7117: * show ip prefix-list NAME A.B.C.D/M:    Showing ip prefix-list.
 7118:                                                               (line  17)
 7119: * show ip prefix-list NAME A.B.C.D/M first-match: Showing ip prefix-list.
 7120:                                                               (line  25)
 7121: * show ip prefix-list NAME A.B.C.D/M longer: Showing ip prefix-list.
 7122:                                                               (line  23)
 7123: * show ip prefix-list NAME seq NUM:      Showing ip prefix-list.
 7124:                                                               (line  13)
 7125: * show ip prefix-list summary:           Showing ip prefix-list.
 7126:                                                               (line  27)
 7127: * show ip prefix-list summary NAME:      Showing ip prefix-list.
 7128:                                                               (line  29)
 7129: * show ip protocol:                      zebra Terminal Mode Commands.
 7130:                                                               (line  27)
 7131: * show ip protocols:                     Show RIP Information.
 7132:                                                               (line  17)
 7133: * show ip rip:                           Show RIP Information.
 7134:                                                               (line   9)
 7135: * show ip ripng:                         ripngd Terminal Mode Commands.
 7136:                                                               (line   7)
 7137: * show ip route:                         zebra Terminal Mode Commands.
 7138:                                                               (line   7)
 7139: * show ipforward:                        zebra Terminal Mode Commands.
 7140:                                                               (line  29)
 7141: * show ipv6 ospf6 [INSTANCE_ID]:         Showing OSPF6 information.
 7142:                                                               (line   7)
 7143: * show ipv6 ospf6 database:              Showing OSPF6 information.
 7144:                                                               (line  11)
 7145: * show ipv6 ospf6 interface:             Showing OSPF6 information.
 7146:                                                               (line  15)
 7147: * show ipv6 ospf6 neighbor:              Showing OSPF6 information.
 7148:                                                               (line  18)
 7149: * show ipv6 ospf6 request-list A.B.C.D:  Showing OSPF6 information.
 7150:                                                               (line  21)
 7151: * show ipv6 route:                       zebra Terminal Mode Commands.
 7152:                                                               (line  19)
 7153: * show ipv6 route ospf6:                 Showing OSPF6 information.
 7154:                                                               (line  24)
 7155: * show ipv6forward:                      zebra Terminal Mode Commands.
 7156:                                                               (line  34)
 7157: * show logging:                          Terminal Mode Commands.
 7158:                                                               (line  30)
 7159: * show route-map [NAME]:                 zebra Terminal Mode Commands.
 7160:                                                               (line  25)
 7161: * show version:                          Terminal Mode Commands.
 7162:                                                               (line  27)
 7163: * shutdown:                              Interface Commands.  (line   9)
 7164: * smux peer OID:                         MIB and command reference.
 7165:                                                               (line  28)
 7166: * smux peer OID PASSWORD:                MIB and command reference.
 7167:                                                               (line  31)
 7168: * table TABLENO:                         Static Route Commands.
 7169:                                                               (line  81)
 7170: * terminal length <0-512>:               Terminal Mode Commands.
 7171:                                                               (line  17)
 7172: * timers basic UPDATE TIMEOUT GARBAGE:   RIP Timers.          (line   7)
 7173: * timers throttle spf DELAY INITIAL-HOLDTIME MAX-HOLDTIME: OSPF router.
 7174:                                                               (line  91)
 7175: * username USERNAME nopassword:          VTY shell username.  (line   7)
 7176: * version VERSION:                       RIP Version Control. (line  20)
 7177: * who:                                   Terminal Mode Commands.
 7178:                                                               (line  21)
 7179: * write file:                            Terminal Mode Commands.
 7180:                                                               (line  10)
 7181: * write terminal:                        Terminal Mode Commands.
 7182:                                                               (line   7)
 7183: 
 7184: 
 7185: File: quagga.info,  Node: VTY Key Index,  Next: Index,  Prev: Command Index,  Up: Top
 7186: 
 7187: VTY Key Index
 7188: *************
 7189: 
 7190: [index]
 7191: * Menu:
 7192: 
 7193: * <DEL>:                                 CLI Editing Commands. (line 11)
 7194: * <DOWN>:                                CLI Advanced Commands.
 7195:                                                                (line 17)
 7196: * <LEFT>:                                CLI Movement Commands.
 7197:                                                                (line 15)
 7198: * <RIGHT>:                               CLI Movement Commands.
 7199:                                                                (line 11)
 7200: * <TAB>:                                 CLI Advanced Commands.
 7201:                                                                (line 24)
 7202: * <UP>:                                  CLI Advanced Commands.
 7203:                                                                (line 21)
 7204: * ?:                                     CLI Advanced Commands.
 7205:                                                                (line 27)
 7206: * C-a:                                   CLI Movement Commands.
 7207:                                                                (line 24)
 7208: * C-b:                                   CLI Movement Commands.
 7209:                                                                (line 15)
 7210: * C-c:                                   CLI Advanced Commands.
 7211:                                                                (line 10)
 7212: * C-d:                                   CLI Editing Commands. (line 14)
 7213: * C-e:                                   CLI Movement Commands.
 7214:                                                                (line 27)
 7215: * C-f:                                   CLI Movement Commands.
 7216:                                                                (line 11)
 7217: * C-h:                                   CLI Editing Commands. (line 11)
 7218: * C-k:                                   CLI Editing Commands. (line 23)
 7219: * C-n:                                   CLI Advanced Commands.
 7220:                                                                (line 17)
 7221: * C-p:                                   CLI Advanced Commands.
 7222:                                                                (line 21)
 7223: * C-t:                                   CLI Editing Commands. (line 29)
 7224: * C-u:                                   CLI Editing Commands. (line 26)
 7225: * C-w:                                   CLI Editing Commands. (line 20)
 7226: * C-z:                                   CLI Advanced Commands.
 7227:                                                                (line 13)
 7228: * M-b:                                   CLI Movement Commands.
 7229:                                                                (line 21)
 7230: * M-d:                                   CLI Editing Commands. (line 17)
 7231: * M-f:                                   CLI Movement Commands.
 7232:                                                                (line 18)
 7233: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>