Annotation of embedaddon/quagga/doc/quagga.info-1, revision 1.1

1.1     ! misho       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, last updated 29 September 2011 of `The
        !            28: Quagga Manual', for Quagga Version 0.99.20.
        !            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 0.99.20.
        !            54: 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)
        !          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: ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ 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: ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ 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>