Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 28697691c864e24b01ff53272f982dc6 > files > 48

zebra-0.93a-4mdk.ppc.rpm

<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from zebra.texi on 29 January 2003 -->

<TITLE>GNU Zebra</TITLE>
</HEAD>
<BODY>
<H1>GNU Zebra</H1>
<H2>A routing software package for TCP/IP networks</H2>
<H2>Zebra version 0.93</H2>
<H2>June 2002</H2>
<ADDRESS>Kunihiro Ishiguro</ADDRESS>
<P>
<P><HR><P>


<H1><A NAME="SEC1" HREF="zebra_toc.html#TOC1">Overview</A></H1>
<P>
<A NAME="IDX1"></A>


<P>
  Zebra is a routing software package that provides TCP/IP based
routing services with routing protocols support such as RIPv1, RIPv2,
RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+ (see section <A HREF="zebra.html#SEC5">Supported RFC</A>).
Zebra also supports special BGP Route Reflector and Route Server
behavior.  In addition to traditional IPv4 routing protocols, Zebra
also supports IPv6 routing protocols.  With SNMP daemon which supports
SMUX protocol, Zebra provides routing protocol MIBs (see section <A HREF="zebra.html#SEC122">SNMP Support</A>).


<P>
  Zebra uses an advanced software architecture to provide you with a
high quality, multi server routing engine.  Zebra has an interactive
user interface for each routing protocol and supports common client
commands.  Due to this design, you can add new protocol daemons to Zebra
easily.  You can use Zebra library as your program's client user
interface.


<P>
  Zebra is an official GNU software and distributed under the
GNU General Public License.




<H2><A NAME="SEC2" HREF="zebra_toc.html#TOC2">About Zebra</A></H2>
<P>
<A NAME="IDX2"></A>


<P>
  Today, TCP/IP networks are covering all of the world.  The Internet
has been deployed in many countries, companies, and to the home.  When
you connect to the Internet your packet will pass many routers which
have TCP/IP routing functionality.


<P>
  A system with Zebra installed acts as a dedicated router.  With Zebra,
your machine exchanges routing information with other routers using
routing protocols.  Zebra uses this information to update the kernel
routing table so that the right data goes to the right place.  You can
dynamically change the configuration and you may view routing table
information from the Zebra terminal interface.


<P>
  Adding to routing protocol support, Zebra can setup interface's flags,
interface's address, static routes and so on.  If you have a small
network, or a stub network, or xDSL connection, configuring the Zebra
routing software is very easy.  The only thing you have to do is to set
up the interfaces and put a few commands about static routes and/or
default routes.  If the network is rather large, or if the network
structure changes frequently, you will want to take advantage of Zebra's
dynamic routing protocol support for protocols such as RIP, OSPF or BGP.
Zebra is with you.


<P>
  Traditionally, UNIX based router configuration is done by
@command{ifconfig} and @command{route} commands.  Status of routing
table is displayed by @command{netstat} utility.  Almost of these
commands work only if the user has root privileges.  Zebra has a different
system administration method.  There are two user modes in Zebra.  One is
normal mode, the other is enable mode.  Normal mode user can only view
system status, enable mode user can change system configuration.  This
UNIX account independent feature will be great help to the router
administrator.


<P>
  Currently, Zebra supports common unicast routing protocols.  Multicast
routing protocols such as BGMP, PIM-SM, PIM-DM will be supported in
Zebra 2.0.  MPLS support is going on.  In the future, TCP/IP filtering
control, QoS control, diffserv configuration will be added to Zebra.
Zebra project's final goal is making a productive, quality free TCP/IP
routing software.




<H2><A NAME="SEC3" HREF="zebra_toc.html#TOC3">System Architecture</A></H2>
<P>
<A NAME="IDX3"></A>
<A NAME="IDX4"></A>
<A NAME="IDX5"></A>


<P>
  Traditional routing software is made as a one process program which
provides all of the routing protocol functionalities.  Zebra takes a
different approach.  It is made from a collection of several daemons
that work together to build the routing table.  There may be several
protocol-specific routing daemons and zebra the kernel routing manager.


<P>
  The @command{ripd} daemon handles the RIP protocol, while
@command{ospfd} is a daemon which supports OSPF version 2.
@command{bgpd} supports the BGP-4 protocol.  For changing the kernel
routing table and for redistribution of routes between different routing
protocols, there is a kernel routing table manager @command{zebra}
daemon.  It is easy to add a new routing protocol daemons to the entire
routing system without affecting any other software.  You need to run only
the protocol daemon associated with routing protocols in use.  Thus,
user may run a specific daemon and send routing reports to a central
routing console.


<P>
  There is no need for these daemons to be running on the same machine.
You can even run several same protocol daemons on the same machine.  This
architecture creates new possibilities for the routing system.



<PRE>
+----+  +----+  +-----+  +-----+
|bgpd|  |ripd|  |ospfd|  |zebra|
+----+  +----+  +-----+  +-----+
                            |
+---------------------------|--+
|                           v  |
|  UNIX Kernel  routing table  |
|                              |
+------------------------------+

    Zebra System Architecture
</PRE>

<P>
  Multi-process architecture brings extensibility, modularity and
maintainability.  At the same time it also brings many configuration
files and terminal interfaces.  Each daemon has it's own configuration
file and terminal interface.  When you configure a static route, it must
be done in @command{zebra} configuration file.  When you configure BGP
network it must be done in @command{bgpd} configuration file.  This can be a
very annoying thing.  To resolve the problem, Zebra provides integrated
user interface shell called @command{vtysh}.  @command{vtysh} connects to
each daemon with UNIX domain socket and then works as a proxy for user input.


<P>
  Zebra was planned to use multi-threaded mechanism when it runs with a
kernel that supports multi-threads.  But at the moment, the thread
library which comes with GNU/Linux or FreeBSD has some problems with
running reliable services such as routing software, so we don't use
threads at all.  Instead we use the @command{select(2)} system call for
multiplexing the events.


<P>
  When @command{zebra} runs under a GNU Hurd kernel it will act as a
kernel routing table itself.  Under GNU Hurd, all TCP/IP services are
provided by user processes called @command{pfinet}.  Zebra will provide
all the routing selection mechanisms for the process.  This feature will
be implemented when GNU Hurd becomes stable.




<H2><A NAME="SEC4" HREF="zebra_toc.html#TOC4">Supported Platforms</A></H2>

<P>
<A NAME="IDX6"></A>
<A NAME="IDX7"></A>
<A NAME="IDX8"></A>
<A NAME="IDX9"></A>


<P>
  Currently Zebra supports GNU/Linux, BSD and Solaris.  Below is a list
of OS versions on which Zebra runs.  Porting Zebra to other platforms is
not so too difficult.  Platform dependent codes exist only in
@command{zebra} daemon.  Protocol daemons are platform independent.
Please let us know when you find out Zebra runs on a platform which is not
listed below.



<UL>
<LI>

GNU/Linux 2.0.37
<LI>

GNU/Linux 2.2.x
<LI>

GNU/Linux 2.3.x
<LI>

FreeBSD 2.2.8
<LI>

FreeBSD 3.x
<LI>

FreeBSD 4.x
<LI>

NetBSD 1.4
<LI>

OpenBSD 2.5
<LI>

Solaris 2.6
<LI>

Solaris 7
</UL>

<P>
  Some IPv6 stacks are in development.  Zebra supports following IPv6
stacks.  For BSD, we recommend KAME IPv6 stack.  Solaris IPv6 stack is
not yet supported.

<UL>
<LI>

Linux IPv6 stack for GNU/Linux 2.2.x and higher.
<LI>

KAME IPv6 stack for BSD.
<LI>

INRIA IPv6 stack for BSD.
</UL>



<H2><A NAME="SEC5" HREF="zebra_toc.html#TOC5">Supported RFC</A></H2>

<P>
  Below is the list of currently supported RFC's.


<DL COMPACT>

<DT>RFC1058
<DD>
<CITE>Routing Information Protocol. C.L. Hedrick. Jun-01-1988.</CITE>

<DT>RF2082
<DD>
<CITE>RIP-2 MD5 Authentication. F. Baker, R. Atkinson. January 1997.</CITE>

<DT>RFC2453
<DD>
<CITE>RIP Version 2. G. Malkin. November 1998.</CITE>

<DT>RFC2080
<DD>
<CITE>RIPng for IPv6. G. Malkin, R. Minnear. January 1997.</CITE>

<DT>RFC2328
<DD>
<CITE>OSPF Version 2. J. Moy. April 1998.</CITE>

<DT>RFC2740
<DD>
<CITE>OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999.</CITE>

<DT>RFC1771
<DD>
<CITE>A Border Gateway Protocol 4 (BGP-4). Y. Rekhter &#38; T. Li. March 1995.</CITE>

<DT>RFC1965
<DD>
<CITE>Autonomous System Confederations for BGP. P. Traina. June 1996.</CITE>

<DT>RFC1997
<DD>
<CITE>BGP Communities Attribute. R. Chandra, P. Traina &#38; T. Li. August 1996.</CITE>

<DT>RFC2545
<DD>
<CITE>Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. March 1999.</CITE>

<DT>RFC2796
<DD>
<CITE>BGP Route Reflection An alternative to full mesh IBGP. T. Bates &#38; R. Chandrasekeran. June 1996.</CITE>

<DT>RFC2858
<DD>
<CITE>Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. Chandra, D. Katz. June 2000.</CITE>

<DT>RFC2842
<DD>
<CITE>Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder. May 2000.</CITE>

</DL>

<P>
  When SNMP support is enabled, below RFC is also supported.


<DL COMPACT>

<DT>RFC1227
<DD>
<CITE>SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.</CITE>

<DT>RFC1657
<DD>
<CITE>Definitions of Managed Objects for the Fourth Version of the
Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J. Burruss,
J. Chu, Editor. July 1994.</CITE>

<DT>RFC1724
<DD>
<CITE>RIP Version 2 MIB Extension. G. Malkin &#38; F. Baker. November 1994.</CITE>

<DT>RFC1850
<DD>
<CITE>OSPF Version 2 Management Information Base. F. Baker, R. Coltun.
November 1995.</CITE>

</DL>



<H2><A NAME="SEC6" HREF="zebra_toc.html#TOC6">How to get Zebra</A></H2>

<P>
  Zebra is still beta software and there is no officially
released version.  So currently Zebra is distributed from Zebra beta ftp
site located at:


<P>
<A HREF="ftp://ftp.zebra.org/pub/zebra">ftp://ftp.zebra.org/pub/zebra</A>


<P>
  Once Zebra is released you can get it from GNU FTP site and
its mirror sites.  We are planning Zebra-1.0 as the first released
version.


<P>
  Zebra's official web page is located at:


<P>
<A HREF="http://www.gnu.org/software/zebra/zebra.html">http://www.gnu.org/software/zebra/zebra.html</A>.


<P>
  There is a Zebra beta tester web page at: 


<P>
<A HREF="http://www.zebra.org/">http://www.zebra.org/</A>.


<P>
  You can get the latest beta software information from this page.




<H2><A NAME="SEC7" HREF="zebra_toc.html#TOC7">Mailing List</A></H2>
<P>
<A NAME="IDX10"></A>
<A NAME="IDX11"></A>
<A NAME="IDX12"></A>
<A NAME="IDX13"></A>


<P>
  There is a mailing list for discussions about Zebra.  If you have any
comments or suggestions to Zebra, please send mail to
<A HREF="mailto:zebra@zebra.org">zebra@zebra.org</A>.  New snapshot announcements, improvement
notes, and patches are sent to the list.


<P>
  To subscribe to the <A HREF="mailto:zebra@zebra.org">Zebra mailing list</A>,
please send a mail to <A HREF="mailto:majordomo@zebra.org">majordomo@zebra.org</A> with a message body
that includes only:



<BLOCKQUOTE>
<P>
subscribe zebra
</BLOCKQUOTE>

<P>
  To unsubscribe from the list, please send a mail to
<A HREF="mailto:majordomo@zebra.org">majordomo@zebra.org</A> with a message body that includes only:



<BLOCKQUOTE>
<P>
unsubscribe zebra
</BLOCKQUOTE>



<H2><A NAME="SEC8" HREF="zebra_toc.html#TOC8">Bug Reports</A></H2>

<P>
<A NAME="IDX14"></A>
<A NAME="IDX15"></A>
<A NAME="IDX16"></A>
<A NAME="IDX17"></A>
<A NAME="IDX18"></A>
<A NAME="IDX19"></A>


<P>
  If you think you have found a bug, please send a bug report to
<A HREF="mailto:bug-zebra@gnu.org">bug-zebra@gnu.org</A>.  When you send a bug report, please be
careful about the points below.



<UL>
<LI>

Please note what kind of OS you are using.  If you use the IPv6 stack
please note that as well.
<LI>

Please show us the results of <CODE>netstat -rn</CODE> and <CODE>ifconfig -a</CODE>.
Information from zebra's VTY command <CODE>show ip route</CODE> will also be
helpful.
<LI>

Please send your configuration file with the report.  If you specify
arguments to the configure script please note that too.
</UL>

<P>
  Bug reports are very important for us to improve the quality of Zebra.
Zebra is still in the development stage, but please don't hesitate to
send a bug report to <A HREF="mailto:bug-zebra@gnu.org">bug-zebra@gnu.org</A>.




<H1><A NAME="SEC9" HREF="zebra_toc.html#TOC9">Installation</A></H1>

<P>
<A NAME="IDX20"></A>
<A NAME="IDX21"></A>
<A NAME="IDX22"></A>
<A NAME="IDX23"></A>
<A NAME="IDX24"></A>


<P>
  There are three steps for installing the software: configuration,
compilation, and installation.


<P>
  The easiest way to get Zebra running is to issue the following
commands:



<PRE>
% configure
% make
% make install
</PRE>



<H2><A NAME="SEC10" HREF="zebra_toc.html#TOC10">Configure the Software</A></H2>

<P>
<A NAME="IDX25"></A>
<A NAME="IDX26"></A>
<A NAME="IDX27"></A>
<A NAME="IDX28"></A>
<A NAME="IDX29"></A>
 
  Zebra has an excellent configure script which
automatically detects most host configurations.  There are several
additional configure options you can use to turn off IPv6 support, to
disable the compilation of specific daemons, and to enable SNMP support.


<DL COMPACT>

<DT>@option{--enable-guile}
<DD>
Turn on compilation of the zebra-guile interpreter.  You will need the
guile library to make this.  zebra-guile implementation is not yet
finished.  So this option is only useful for zebra-guile developers.
<DT>@option{--disable-ipv6}
<DD>
Turn off IPv6 related features and daemons.  Zebra configure script
automatically detects IPv6 stack.  But sometimes you might want to
disable IPv6 support of Zebra.
<DT>@option{--disable-zebra}
<DD>
Do not build zebra daemon.
<DT>@option{--disable-ripd}
<DD>
Do not build ripd.
<DT>@option{--disable-ripngd}
<DD>
Do not build ripngd.
<DT>@option{--disable-ospfd}
<DD>
Do not build ospfd.
<DT>@option{--disable-ospf6d}
<DD>
Do not build ospf6d.
<DT>@option{--disable-bgpd}
<DD>
Do not build bgpd.
<DT>@option{--disable-bgp-announce}
<DD>
Make @command{bgpd} which does not make bgp announcements at all.  This
feature is good for using @command{bgpd} as a BGP announcement listener.
<DT>@option{--enable-netlink}
<DD>
Force to enable GNU/Linux netlink interface.  Zebra configure
script detects netlink interface by checking a header file.  When the header
file does not match to the current running kernel, configure script will
not turn on netlink support.
<DT>@option{--enable-snmp}
<DD>
Enable SNMP support.  By default, SNMP support is disabled.
</DL>

<P>
You may specify any combination of the above options to the configure
script.  By default, the executables are placed in <TT>`/usr/local/sbin'</TT> 
and the configuration files in <TT>`/usr/local/etc'</TT>. The <TT>`/usr/local/'</TT>
installation prefix and other directories may be changed using the following 
options to the configuration script.


<DL COMPACT>

<DT>@option{--prefix=<VAR>prefix</VAR>}
<DD>
Install architecture-independent files in <VAR>prefix</VAR> [/usr/local].
<DT>@option{--sysconfdir=<VAR>dir</VAR>}
<DD>
Read-only sample configuration file in <VAR>dir</VAR> [<VAR>prefix</VAR>/etc].
</DL>


<PRE>
% ./configure --disable-ipv6
</PRE>

<P>
This command will configure zebra and the routing daemons.


<P>
<A NAME="IDX30"></A>
<A NAME="IDX31"></A>
<A NAME="IDX32"></A>
<A NAME="IDX33"></A>


<P>
There are several options available only to GNU/Linux systems:
<A NAME="DOCF1" HREF="zebra_foot.html#FOOT1">(1)</A> can detect routing information
updates directly from the kernel (see section <A HREF="zebra.html#SEC121">Kernel Interface</A>).

<DT><VAR>CONFIG_IP_MULTICAST</VAR>
<DD>
IP: multicasting.  
This option should be specified when you use @command{ripd} or
@command{ospfd} because these protocols use multicast.

</DL>

<P>
IPv6 support has been added in GNU/Linux kernel version 2.2.  If you
try to use the Zebra IPv6 feature on a GNU/Linux kernel, please
make sure the following libraries have been installed.  Please note that
these libraries will not be needed when you uses GNU C library 2.1
or upper.


<DL COMPACT>

<DT><CODE>inet6-apps</CODE>
<DD>
The <CODE>inet6-apps</CODE> package includes basic IPv6 related libraries such
as <CODE>inet_ntop</CODE> and <CODE>inet_pton</CODE>.  Some basic IPv6 programs such
as @command{ping}, @command{ftp}, and @command{inetd} are also
included. The <CODE>inet-apps</CODE> can be found at
<A HREF="ftp://ftp.inner.net/pub/ipv6/">ftp://ftp.inner.net/pub/ipv6/</A>.

<DT><CODE>net-tools</CODE>
<DD>
The <CODE>net-tools</CODE> package provides an IPv6 enabled interface and
routing utility.  It contains @command{ifconfig}, @command{route},
@command{netstat}, and other tools.  <CODE>net-tools</CODE> may be found at
<A HREF="http://www.tazenda.demon.co.uk/phil/net-tools/">http://www.tazenda.demon.co.uk/phil/net-tools/</A>.

</DL>
<P>
}.




<H2><A NAME="SEC11" HREF="zebra_toc.html#TOC11">Build the Software</A></H2>

<P>
After configuring the software, you will need to compile it for your
system. Simply issue the command @command{make} in the root of the source
directory and the software will be compiled. If you have *any* problems
at this stage, be certain to send a bug report See section <A HREF="zebra.html#SEC8">Bug Reports</A>.



<PRE>
% ./configure
.
.
.
./configure output
.
.
.
% make
</PRE>



<H2><A NAME="SEC12" HREF="zebra_toc.html#TOC12">Install the Software</A></H2>

<P>
Installing the software to your system consists of copying the compiled
programs and supporting files to a standard location. After the
installation process has completed, these files have been copied
from your work directory to <TT>`/usr/local/bin'</TT>, and <TT>`/usr/local/etc'</TT>.


<P>
To install the Zebra suite, issue the following command at your shell
prompt: @command{make install}.



<PRE>
%
% make install
%
</PRE>

<P>
Zebra daemons have their own terminal interface or VTY.  After
installation, you have to setup each beast's port number to connect to
them.  Please add the following entries to <TT>`/etc/services'</TT>.



<PRE>
zebrasrv      2600/tcp		  # zebra service
zebra         2601/tcp		  # zebra vty
ripd          2602/tcp		  # RIPd vty
ripngd        2603/tcp		  # RIPngd vty
ospfd         2604/tcp		  # OSPFd vty
bgpd          2605/tcp		  # BGPd vty
ospf6d        2606/tcp		  # OSPF6d vty
</PRE>

<P>
If you use a FreeBSD newer than 2.2.8, the above entries are already
added to <TT>`/etc/services'</TT> so there is no need to add it. If you
specify a port number when starting the daemon, these entries may not be
needed.


<P>
You may need to make changes to the config files in
<TT>`/usr/local/etc/*.conf'</TT>. See section <A HREF="zebra.html#SEC14">Config Commands</A>.


<H1><A NAME="SEC13" HREF="zebra_toc.html#TOC13">Basic commands</A></H1>

<P>
There are five routing daemons in use, and there is one manager daemon.
These daemons may be located on separate machines from the manager
daemon.  Each of these daemons will listen on a particular port for
incoming VTY connections.  The routing daemons are:



<UL>
<LI>@command{ripd}, @command{ripngd}, @command{ospfd}, @command{ospf6d}, @command{bgpd}

<LI>@command{zebra}

</UL>

<P>
The following sections discuss commands common to all the routing
daemons.




<H2><A NAME="SEC14" HREF="zebra_toc.html#TOC14">Config Commands</A></H2>

<P>
<A NAME="IDX34"></A>
<A NAME="IDX35"></A>
<A NAME="IDX36"></A>
<A NAME="IDX37"></A>


<P>
In a config file, you can write the debugging options, a vty's password,
routing daemon configurations, a log file name, and so forth. This
information forms the initial command set for a routing beast as it is
starting.


<P>
Config files are generally found in:



<UL>
<LI><TT>`/usr/local/etc/*.conf'</TT>

</UL>

<P>
Each of the daemons has its own
config file.  For example, zebra's default config file name is:



<UL>
<LI><TT>`/usr/local/etc/zebra.conf'</TT>

</UL>

<P>
The daemon name plus <TT>`.conf'</TT> is the default config file name. You
can specify a config file using the <KBD>-f</KBD> or <KBD>--config-file</KBD>
options when starting the daemon.




<H3><A NAME="SEC15" HREF="zebra_toc.html#TOC15">Basic Config Commands</A></H3>

<P>
<DL>
<DT><U>Command:</U> <B>hostname <VAR>hostname</VAR></B> <I>{}</I>
<DD><A NAME="IDX38"></A>
Set hostname of the router.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>password <VAR>password</VAR></B> <I>{}</I>
<DD><A NAME="IDX39"></A>
Set password for vty interface.  If there is no password, a vty won't
accept connections.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>enable password <VAR>password</VAR></B> <I>{}</I>
<DD><A NAME="IDX40"></A>
Set enable password.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>log stdout</B> <I>{}</I>
<DD><A NAME="IDX41"></A>
<DT><U>Command:</U> <B>no log stdout</B> <I>{}</I>
<DD><A NAME="IDX42"></A>
Set logging output to stdout.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>log file <VAR>filename</VAR></B> <I>{}</I>
<DD><A NAME="IDX43"></A>
If you want to log into a file please specify <CODE>filename</CODE> as
follows.

<PRE>
log file /usr/local/etc/bgpd.log
</PRE>

</DL>

<P>
<DL>
<DT><U>Command:</U> <B>log syslog</B> <I>{}</I>
<DD><A NAME="IDX44"></A>
<DT><U>Command:</U> <B>no log syslog</B> <I>{}</I>
<DD><A NAME="IDX45"></A>
Set logging output to syslog.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>write terminal</B> <I>{}</I>
<DD><A NAME="IDX46"></A>
Displays the current configuration to the vty interface.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>write file</B> <I>{}</I>
<DD><A NAME="IDX47"></A>
Write current configuration to configuration file.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>configure terminal</B> <I>{}</I>
<DD><A NAME="IDX48"></A>
Change to configuration mode.  This command is the first step to
configuration.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>terminal length <VAR>&#60;0-512&#62;</VAR></B> <I>{}</I>
<DD><A NAME="IDX49"></A>
Set terminal display length to <VAR>&#60;0-512&#62;</VAR>.  If length is 0, no
display control is performed.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>who</B> <I>{}</I>
<DD><A NAME="IDX50"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>list</B> <I>{}</I>
<DD><A NAME="IDX51"></A>
List commands.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>service password-encryption</B> <I>{}</I>
<DD><A NAME="IDX52"></A>
Encrypt password.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>service advanced-vty</B> <I>{}</I>
<DD><A NAME="IDX53"></A>
Enable advanced mode VTY.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>service terminal-length <VAR>&#60;0-512&#62;</VAR></B> <I>{}</I>
<DD><A NAME="IDX54"></A>
Set system wide line configuration.  This configuration command applies
to all VTY interfaces.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show version</B> <I>{}</I>
<DD><A NAME="IDX55"></A>
Show the current version of the Zebra and its build host information.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>line vty</B> <I>{}</I>
<DD><A NAME="IDX56"></A>
Enter vty configuration mode.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>banner motd default</B> <I>{}</I>
<DD><A NAME="IDX57"></A>
Set default motd string.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no banner motd</B> <I>{}</I>
<DD><A NAME="IDX58"></A>
No motd banner string will be printed.
</DL>


<P>
<DL>
<DT><U>Line Command:</U> <B>exec-timeout <VAR>minute</VAR></B> <I>{}</I>
<DD><A NAME="IDX59"></A>
<DT><U>Line Command:</U> <B>exec-timeout <VAR>minute</VAR> <VAR>second</VAR></B> <I>{}</I>
<DD><A NAME="IDX60"></A>
Set VTY connection timeout value.  When only one argument is specified
it is used for timeout value in minutes.  Optional second argument is
used for timeout value in seconds. Default timeout value is 10 minutes.
When timeout value is zero, it means no timeout.
</DL>


<P>
<DL>
<DT><U>Line Command:</U> <B>no exec-timeout</B> <I>{}</I>
<DD><A NAME="IDX61"></A>
Do not perform timeout at all.  This command is as same as
@command{exec-timeout 0 0}.
</DL>


<P>
<DL>
<DT><U>Line Command:</U> <B>access-class <VAR>access-list</VAR></B> <I>{}</I>
<DD><A NAME="IDX62"></A>
Restrict vty connections with an access list.
</DL>




<H3><A NAME="SEC16" HREF="zebra_toc.html#TOC16">Sample Config File</A></H3>

<P>
Below is a sample configuration file for the zebra daemon.



<PRE>
!
! Zebra configuration file
!
hostname Router
password zebra
enable password zebra
!
log stdout
!
!
</PRE>

<P>
'!' and '#' are comment characters.  If the first character of the word
is one of the comment characters then from the rest of the line forward
will be ignored as a comment.



<PRE>
password zebra!password
</PRE>

<P>
If a comment character is not the first character of the word, it's a
normal character. So in the above example '!' will not be regarded as a
comment and the password is set to 'zebra!password'.




<H2><A NAME="SEC17" HREF="zebra_toc.html#TOC17">Common Invocation Options</A></H2>

<P>
These options apply to all Zebra daemons.


<DL COMPACT>

<DT><SAMP>`-d'</SAMP>
<DD>
<DT><SAMP>`--daemon'</SAMP>
<DD>
Runs in daemon mode.

<DT><SAMP>`-f <VAR>file</VAR>'</SAMP>
<DD>
<DT><SAMP>`--config_file=<VAR>file</VAR>'</SAMP>
<DD>
Set configuration file name.

<DT><SAMP>`-h'</SAMP>
<DD>
<DT><SAMP>`--help'</SAMP>
<DD>
Display this help and exit.

<DT><SAMP>`-i <VAR>file</VAR>'</SAMP>
<DD>
<DT><SAMP>`--pid_file=<VAR>file</VAR>'</SAMP>
<DD>
Upon startup the process identifier of the daemon is written to a file,
typically in <TT>`/var/run'</TT>.  This file can be used by the init system
to implement commands such as @command{.../init.d/zebra status},
@command{.../init.d/zebra restart} or @command{.../init.d/zebra
stop}.

The file name is an run-time option rather than a configure-time option
so that multiple routing daemons can be run simultaneously.  This is
useful when using Zebra to implement a routing looking glass.  One
machine can be used to collect differing routing views from differing
points in the network.

<DT><SAMP>`-P <VAR>port</VAR>'</SAMP>
<DD>
<DT><SAMP>`--vty_port=<VAR>port</VAR>'</SAMP>
<DD>
Set the VTY port number.

<DT><SAMP>`-v'</SAMP>
<DD>
<DT><SAMP>`--version'</SAMP>
<DD>
Print program version.

</DL>



<H2><A NAME="SEC18" HREF="zebra_toc.html#TOC18">Virtual Terminal Interfaces</A></H2>

<P>
VTY -- Virtual Terminal [aka TeletYpe] Interface is a command line
interface (CLI) for user interaction with the routing daemon.




<H3><A NAME="SEC19" HREF="zebra_toc.html#TOC19">VTY Overview</A></H3>

<P>
VTY stands for Virtual TeletYpe interface.  It means you can connect to
the daemon via the telnet protocol.


<P>
To enable a VTY interface, you have to setup a VTY password.  If there
is no VTY password, one cannot connect to the VTY interface at all.



<PRE>
% telnet localhost 2601
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Hello, this is zebra (version 0.93)
Copyright 1997-2000 Kunihiro Ishiguro

User Access Verification

Password: XXXXX
Router&#62; ?
  enable            Turn on privileged commands
  exit              Exit current mode and down to previous mode
  help              Description of the interactive help system
  list              Print command list
  show              Show running system information
  who               Display who is on a vty
Router&#62; enable
Password: XXXXX
Router# configure terminal
Router(config)# interface eth0
Router(config-if)# ip address 10.0.0.1/8
Router(config-if)# ^Z
Router#
</PRE>

<P>
'?' is very useful for looking up commands.




<H3><A NAME="SEC20" HREF="zebra_toc.html#TOC20">VTY Modes</A></H3>

<P>
There are three basic VTY modes:


<P>
There are commands that may be restricted to specific VTY modes. 




<H4><A NAME="SEC21" HREF="zebra_toc.html#TOC21">VTY View Mode</A></H4>

<P>
This mode is for read-only access to the CLI. One may exit the mode by
leaving the system, or by entering <CODE>enable</CODE> mode.




<H4><A NAME="SEC22" HREF="zebra_toc.html#TOC22">VTY Enable Mode</A></H4>

<P>
This mode is for read-write access to the CLI. One may exit the mode by
leaving the system, or by escaping to view mode.




<H4><A NAME="SEC23" HREF="zebra_toc.html#TOC23">VTY Other Modes</A></H4>

<P>
This page is for describing other modes.




<H3><A NAME="SEC24" HREF="zebra_toc.html#TOC24">VTY CLI Commands</A></H3>

<P>
Commands that you may use at the command-line are described in the following three subsubsections.




<H4><A NAME="SEC25" HREF="zebra_toc.html#TOC25">CLI Movement Commands</A></H4>

<P>
These commands are used for moving the CLI cursor. The <KBD>C</KBD> character
means press the Control Key.


<DL COMPACT>

<DT><KBD>C-f</KBD>
<DD>
<DT><KBD><KBD>RIGHT</KBD></KBD>
<DD>
<A NAME="IDX63"></A>
<A NAME="IDX64"></A>
Move forward one character.

<DT><KBD>C-b</KBD>
<DD>
<DT><KBD><KBD>LEFT</KBD></KBD>
<DD>
<A NAME="IDX65"></A>
<A NAME="IDX66"></A>
Move backward one character.

<DT><KBD>M-f</KBD>
<DD>
<A NAME="IDX67"></A>
Move forward one word.

<DT><KBD>M-b</KBD>
<DD>
<A NAME="IDX68"></A>
Move backward one word.

<DT><KBD>C-a</KBD>
<DD>
<A NAME="IDX69"></A>
Move to the beginning of the line.

<DT><KBD>C-e</KBD>
<DD>
<A NAME="IDX70"></A>
Move to the end of the line.

</DL>



<H4><A NAME="SEC26" HREF="zebra_toc.html#TOC26">CLI Editing Commands</A></H4>

<P>
These commands are used for editing text on a line. The <KBD>C</KBD>
character means press the Control Key.


<DL COMPACT>

<DT><KBD>C-h</KBD>
<DD>
<DT><KBD><KBD>DEL</KBD></KBD>
<DD>
<A NAME="IDX71"></A>
<A NAME="IDX72"></A>
Delete the character before point.

<DT><KBD>C-d</KBD>
<DD>
<A NAME="IDX73"></A>
Delete the character after point.

<DT><KBD>M-d</KBD>
<DD>
<A NAME="IDX74"></A>
Forward kill word.

<DT><KBD>C-w</KBD>
<DD>
<A NAME="IDX75"></A>
Backward kill word.

<DT><KBD>C-k</KBD>
<DD>
<A NAME="IDX76"></A>
Kill to the end of the line.

<DT><KBD>C-u</KBD>
<DD>
<A NAME="IDX77"></A>
Kill line from the beginning, erasing input.

<DT><KBD>C-t</KBD>
<DD>
<A NAME="IDX78"></A>
Transpose character.

</DL>



<H4><A NAME="SEC27" HREF="zebra_toc.html#TOC27">CLI Advanced Commands</A></H4>

<P>
There are several additional CLI commands for command line completions,
insta-help, and VTY session management.


<DL COMPACT>

<DT><KBD>C-c</KBD>
<DD>
<A NAME="IDX79"></A>
Interrupt current input and moves to the next line.

<DT><KBD>C-z</KBD>
<DD>
<A NAME="IDX80"></A>
End current configuration session and move to top node.

<DT><KBD>C-n</KBD>
<DD>
<DT><KBD><KBD>DOWN</KBD></KBD>
<DD>
<A NAME="IDX81"></A>
<A NAME="IDX82"></A>
Move down to next line in the history buffer.

<DT><KBD>C-p</KBD>
<DD>
<DT><KBD><KBD>UP</KBD></KBD>
<DD>
<A NAME="IDX83"></A>
<A NAME="IDX84"></A>
Move up to previous line in the history buffer.

<DT><KBD>TAB</KBD>
<DD>
<A NAME="IDX85"></A>
Use command line completion by typing <KBD>TAB</KBD>.

<DT><KBD></KBD>
<DD>
<A NAME="IDX86"></A>
You can use command line help by typing <CODE>help</CODE> at the beginning of
the line.  Typing <KBD>?</KBD> at any point in the line will show possible
completions.

</DL>


<H1><A NAME="SEC28" HREF="zebra_toc.html#TOC28">Zebra</A></H1>

<P>
@command{zebra} is an IP routing manager.  It provides kernel routing
table updates, interface lookups, and redistribution of routes between
different routing protocols.




<H2><A NAME="SEC29" HREF="zebra_toc.html#TOC29">Invoking zebra</A></H2>

<P>
Besides the common invocation options (see section <A HREF="zebra.html#SEC17">Common Invocation Options</A>), the
@command{zebra} specific invocation options are listed below.


<DL COMPACT>

<DT><SAMP>`-b'</SAMP>
<DD>
<DT><SAMP>`--batch'</SAMP>
<DD>
Runs in batch mode.  @command{zebra} parses configuration file and terminates
immediately.

<DT><SAMP>`-k'</SAMP>
<DD>
<DT><SAMP>`--keep_kernel'</SAMP>
<DD>
When zebra starts up, don't delete old self inserted routes.

<DT><SAMP>`-l'</SAMP>
<DD>
<DT><SAMP>`--log_mode'</SAMP>
<DD>
Set verbose logging on.

<DT><SAMP>`-r'</SAMP>
<DD>
<DT><SAMP>`--retain'</SAMP>
<DD>
When program terminates, retain routes added by zebra.

</DL>



<H2><A NAME="SEC30" HREF="zebra_toc.html#TOC30">Interface Commands</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>interface <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX87"></A>
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>shutdown</B> <I>{}</I>
<DD><A NAME="IDX88"></A>
<DT><U>Interface Command:</U> <B>no shutdown</B> <I>{}</I>
<DD><A NAME="IDX89"></A>
Up or down the current interface.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip address <VAR>address</VAR></B> <I>{}</I>
<DD><A NAME="IDX90"></A>
Set ip address for the interface.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>description <VAR>description</VAR> ...</B> <I>{}</I>
<DD><A NAME="IDX91"></A>
Set description for the interface.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>multicast</B> <I>{}</I>
<DD><A NAME="IDX92"></A>
<DT><U>Interface Command:</U> <B>no multicast</B> <I>{}</I>
<DD><A NAME="IDX93"></A>
Enable or disables multicast flag for the interface.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>bandwidth &#60;1-10000000&#62;</B> <I>{}</I>
<DD><A NAME="IDX94"></A>
<DT><U>Interface Command:</U> <B>no bandwidth &#60;1-10000000&#62;</B> <I>{}</I>
<DD><A NAME="IDX95"></A>
Set bandwidth value to the interface.  This is for calculating OSPF
cost.  This command does not affect the actual device configuration.
</DL>




<H2><A NAME="SEC31" HREF="zebra_toc.html#TOC31">Static Route Commands</A></H2>

<P>
Static routing is a very fundamental feature of routing technology.  It
defines static prefix and gateway.


<P>
<DL>
<DT><U>Command:</U> <B>ip route <VAR>network</VAR> <VAR>gateway</VAR></B> <I>{}</I>
<DD><A NAME="IDX96"></A>
<VAR>network</VAR> is destination prefix with format of A.B.C.D/M.
<VAR>gateway</VAR> is gateway for the prefix.  When <VAR>gateway</VAR> is
A.B.C.D format.  It is taken as a IPv4 address gateway.  Otherwise it
is treated as an interface name.



<PRE>
ip route 10.0.0.0/8 10.0.0.2
ip route 10.0.0.0/8 ppp0
</PRE>

<P>
First example defines 10.0.0.0/8 static route with gateway 10.0.0.2.
Second one defines the same prefix but with gateway to interface ppp0.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>ip route <VAR>network</VAR> <VAR>netmask</VAR> <VAR>gateway</VAR></B> <I>{}</I>
<DD><A NAME="IDX97"></A>
This is alternate version of above command.  When <VAR>network</VAR> is
A.B.C.D format, user must define <VAR>netmask</VAR> value with A.B.C.D
format.  <VAR>gateway</VAR> is same option as above command



<PRE>
ip route 10.0.0.0 255.255.255.0 10.0.0.2
ip route 10.0.0.0 255.255.255.0 ppp0
</PRE>

<P>
This is a same setting using this statement.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>ip route <VAR>network</VAR> <VAR>gateway</VAR> <VAR>distance</VAR></B> <I>{}</I>
<DD><A NAME="IDX98"></A>


</DL>

<P>
Multiple nexthop static route



<PRE>
ip route 10.0.0.1/32 10.0.0.2
ip route 10.0.0.1/32 10.0.0.3
ip route 10.0.0.1/32 eth0
</PRE>

<P>
If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0
is reachable, then the last route is installed into the kernel.



<PRE>
zebra&#62; show ip route
S&#62;  10.0.0.1/32 [1/0] via 10.0.0.2 inactive
                      via 10.0.0.3 inactive
  *                   is directly connected, eth0
</PRE>

<P>
Floating static route


<P>
<DL>
<DT><U>Command:</U> <B>ipv6 route <VAR>network</VAR> <VAR>gateway</VAR></B> <I>{}</I>
<DD><A NAME="IDX99"></A>


</DL>

<P>
<DL>
<DT><U>Command:</U> <B>ipv6 route <VAR>network</VAR> <VAR>gateway</VAR> <VAR>distance</VAR></B> <I>{}</I>
<DD><A NAME="IDX100"></A>


</DL>

<P>
<DL>
<DT><U>Command:</U> <B>table <VAR>tableno</VAR></B> <I>{}</I>
<DD><A NAME="IDX101"></A>
Select the primary kernel routing table to be used.  This only works
for kernels supporting multiple routing tables (like GNU/Linux 2.2.x
and later).  After setting <VAR>tableno</VAR> with this command, 
static routes defined after this are added to the specified table.
</DL>




<H2><A NAME="SEC32" HREF="zebra_toc.html#TOC32">zebra Terminal Mode Commands</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>show ip route</B> <I>{}</I>
<DD><A NAME="IDX102"></A>
Display current routes which zebra holds in its database.



<PRE>
Router# show ip route 
Codes: K - kernel route, C - connected, S - static, R - RIP, 
       B - BGP * - FIB route.

K* 0.0.0.0/0              203.181.89.241
S  0.0.0.0/0              203.181.89.1
C* 127.0.0.0/8            lo
C* 203.181.89.240/28      eth0
</PRE>

</DL>

<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 route</B> <I>{}</I>
<DD><A NAME="IDX103"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show interface</B> <I>{}</I>
<DD><A NAME="IDX104"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipforward</B> <I>{}</I>
<DD><A NAME="IDX105"></A>
Display whether the host's IP forwarding function is enabled or not.
Almost any UNIX kernel can be configured with IP forwarding disabled.
If so, the box can't work as a router.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipv6forward</B> <I>{}</I>
<DD><A NAME="IDX106"></A>
Display whether the host's IP v6 forwarding is enabled or not.
</DL>


<H1><A NAME="SEC33" HREF="zebra_toc.html#TOC33">RIP</A></H1>

<P>
RIP -- Routing Information Protocol is widely deployed interior gateway
protocol.  RIP was developed in the 1970s at Xerox Labs as part of the
XNS routing protocol.  RIP is a <EM>distance-vector</EM> protocol and is
based on the <EM>Bellman-Ford</EM> algorithms.  As a distance-vector
protocol, RIP router send updates to its neighbors periodically, thus
allowing the convergence to a known topology.  In each update, the
distance to any given network will be broadcasted to its neighboring
router.


<P>
@command{ripd} supports RIP version 2 as described in RFC2453 and RIP
version 1 as described in RFC1058.




<H2><A NAME="SEC34" HREF="zebra_toc.html#TOC34">Starting and Stopping ripd</A></H2>

<P>
The default configuration file name of @command{ripd}'s is
<TT>`ripd.conf'</TT>.  When invocation @command{ripd} searches directory
/usr/local/etc.  If <TT>`ripd.conf'</TT> is not there next
search current directory.


<P>
RIP uses UDP port 521 to send and receive RIP packets.  So the user must have
the capability to bind the port, generally this means that the user must
have superuser privileges.  RIP protocol requires interface information
maintained by @command{zebra} daemon.  So running @command{zebra}
is mandatory to run @command{ripd}.  Thus minimum sequence for running
RIP is like below:



<PRE>
# zebra -d
# ripd -d
</PRE>

<P>
Please note that @command{zebra} must be invoked before @command{ripd}.


<P>
To stop @command{ripd}.  Please use @command{kill `cat
/var/run/ripd.pid`}.  Certain signals have special meaningss to @command{ripd}.


<DL COMPACT>

<DT><SAMP>`SIGHUP'</SAMP>
<DD>
Reload configuration file <TT>`ripd.conf'</TT>.  All configurations are
reseted.  All routes learned so far are cleared and removed from routing
table.
<DT><SAMP>`SIGUSR1'</SAMP>
<DD>
Rotate @command{ripd} logfile.
<DT><SAMP>`SIGINT'</SAMP>
<DD>
<DT><SAMP>`SIGTERM'</SAMP>
<DD>
@command{ripd} sweeps all installed RIP routes then terminates properly.
</DL>

<P>
@command{ripd} invocation options.  Common options that can be specified
(see section <A HREF="zebra.html#SEC17">Common Invocation Options</A>).


<DL COMPACT>

<DT><SAMP>`-r'</SAMP>
<DD>
<DT><SAMP>`--retain'</SAMP>
<DD>
When the program terminates, retain routes added by @command{ripd}.
</DL>



<H3><A NAME="SEC35" HREF="zebra_toc.html#TOC35">RIP netmask</A></H3>

<P>
The netmask features of @command{ripd} support both version 1 and version 2 of
RIP.  Version 1 of RIP originally contained no netmask information.  In
RIP version 1, network classes were originally used to determine the
size of the netmask.  Class A networks use 8 bits of mask, Class B
networks use 16 bits of masks, while Class C networks use 24 bits of
mask.  Today, the most widely used method of a network mask is assigned
to the packet on the basis of the interface that received the packet.
Version 2 of RIP supports a variable length subnet mask (VLSM).  By
extending the subnet mask, the mask can be divided and reused.  Each
subnet can be used for different purposes such as large to middle size
LANs and WAN links.  Zebra @command{ripd} does not support the non-sequential
netmasks that are included in RIP Version 2.


<P>
In a case of similar information with the same prefix and metric, the
old information will be suppressed.  Ripd does not currently support
equal cost multipath routing.




<H2><A NAME="SEC36" HREF="zebra_toc.html#TOC36">RIP Configuration</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>router rip</B> <I>{}</I>
<DD><A NAME="IDX107"></A>
The <CODE>router rip</CODE> command is necessary to enable RIP.  To disable
RIP, use the <CODE>no router rip</CODE> command.  RIP must be enabled before
carrying out any of the RIP commands.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no rouer rip</B> <I>{}</I>
<DD><A NAME="IDX108"></A>
Disable RIP.
</DL>


<P>
RIP can be configured to process either Version 1 or Version 2 packets,
the default mode is Version 2.  If no version is specified, then the RIP
daemon will default to Version 2.  If RIP is set to Version
1, the setting "Version 1" will be displayed, but the setting "Version
2" will not be displayed whether or not Version 2 is set explicitly as
the version of RIP being used.


<P>
<DL>
<DT><U>RIP Command:</U> <B>network <VAR>network</VAR></B> <I>{}</I>
<DD><A NAME="IDX109"></A>
<DT><U>RIP Command:</U> <B>no network <VAR>network</VAR></B> <I>{}</I>
<DD><A NAME="IDX110"></A>
Set the RIP enable interface by <VAR>network</VAR>.  The interfaces which
have addresses matching with <VAR>network</VAR> are enabled.


<P>
This group of commands either enables or disables RIP interfaces between
certain numbers of a specified network address.  For example, if the
network for 10.0.0.0/24 is RIP enabled, this would result in all the
addresses from 10.0.0.0 to 10.0.0.255 being enabled for RIP.  The <CODE>no
network</CODE> command will disable RIP for the specified network.
</DL>


<P>
<DL>
<DT><U>RIP Command:</U> <B>network <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX111"></A>
<DT><U>RIP Command:</U> <B>no network <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX112"></A>
Set a RIP enabled interface by <VAR>ifname</VAR>.  Both the sending and
receiving of RIP packets will be enabled on the port specified in the
<CODE>network ifname</CODE> command.  The <CODE>no network ifname</CODE> command will disable
RIP on the specified interface.
</DL>


<P>
<DL>
<DT><U>RIP Command:</U> <B>neighbor <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX113"></A>
<DT><U>RIP Command:</U> <B>no neighbor <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX114"></A>
Specify RIP neighbor.  When a neighbor doesn't understand multicast,
this command is used to specify neighbors.  In some cases, not all
routers will be able to understand multicasting, where packets are sent
to a network or a group of addresses.  In a situation where a neighbor
cannot process multicast packets, it is necessary to establish a direct
link between routers.  The neighbor command allows the network
administrator to specify a router as a RIP neighbor.  The <CODE>no
neighbor a.b.c.d</CODE> command will disable the RIP neighbor.
</DL>


<P>
Below is very simple RIP configuration.  Interface <CODE>eth0</CODE> and
interface which address match to <CODE>10.0.0.0/8</CODE> are RIP enabled.



<PRE>
!
router rip
 network 10.0.0.0/8
 network eth0
!
</PRE>

<P>
Passive interface


<P>
<DL>
<DT><U>RIP command:</U> <B>passive-interface <VAR>IFNAME</VAR></B> <I>{}</I>
<DD><A NAME="IDX115"></A>
<DT><U>RIP command:</U> <B>no passive-interface <VAR>IFNAME</VAR></B> <I>{}</I>
<DD><A NAME="IDX116"></A>
This command sets the specified interface to passive mode.  On passive mode
interface, all receiving packets are processed as normal and ripd does
not send either multicast or unicast RIP packets except to RIP neighbors
specified with <CODE>neighbor</CODE> command.
</DL>


<P>
RIP version handling


<P>
<DL>
<DT><U>RIP Command:</U> <B>version <VAR>version</VAR></B> <I>{}</I>
<DD><A NAME="IDX117"></A>
Set RIP process's version.  <VAR>version</VAR> can be "1" or "2".
</DL>


<P>
<DL>
<DT><U>Interface command:</U> <B>ip rip send version <VAR>version</VAR></B> <I>{}</I>
<DD><A NAME="IDX118"></A>
<VAR>version</VAR> can be `1', `2', `1 2'.  This configuration command
overrides the router's rip version setting.  The command will enable the
selected interface to send packets with RIP Version 1, RIP Version 2, or
both.  In the case of '1 2', packets will be both broadcast and
multicast.
</DL>


<P>
<DL>
<DT><U>Interface command:</U> <B>ip rip receive version <VAR>version</VAR></B> <I>{}</I>
<DD><A NAME="IDX119"></A>
Version setting for incoming RIP packets.  This command will enable the
selected interface to receive packets in RIP Version 1, RIP Version 2,
or both.
</DL>


<P>
RIP split-horizon


<P>
<DL>
<DT><U>Interface command:</U> <B>ip split-horizon</B> <I>{}</I>
<DD><A NAME="IDX120"></A>
<DT><U>Interface command:</U> <B>no ip split-horizon</B> <I>{}</I>
<DD><A NAME="IDX121"></A>
Control split-horizon on the interface.  Default is <CODE>ip
split-horizon</CODE>.  If you don't perform split-horizon on the interface,
please specify <CODE>no ip split-horizon</CODE>.
</DL>




<H2><A NAME="SEC37" HREF="zebra_toc.html#TOC37">How to Announce RIP route</A></H2>

<P>
<DL>
<DT><U>RIP command:</U> <B>redistribute kernel</B> <I>{}</I>
<DD><A NAME="IDX122"></A>
<DT><U>RIP command:</U> <B>redistribute kernel metric &#60;0-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX123"></A>
<DT><U>RIP command:</U> <B>redistribute kernel route-map <VAR>route-map</VAR></B> <I>{}</I>
<DD><A NAME="IDX124"></A>
<DT><U>RIP command:</U> <B>no redistribute kernel</B> <I>{}</I>
<DD><A NAME="IDX125"></A>
<CODE>redistribute kernel</CODE> redistributes routing information from
kernel route entries into the RIP tables. <CODE>no redistribute kernel</CODE>
disables the routes.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>redistribute static</B> <I>{}</I>
<DD><A NAME="IDX126"></A>
<DT><U>RIP command:</U> <B>redistribute static metric &#60;0-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX127"></A>
<DT><U>RIP command:</U> <B>redistribute static route-map <VAR>route-map</VAR></B> <I>{}</I>
<DD><A NAME="IDX128"></A>
<DT><U>RIP command:</U> <B>no redistribute static</B> <I>{}</I>
<DD><A NAME="IDX129"></A>
<CODE>redistribute static</CODE> redistributes routing information from
static route entries into the RIP tables. <CODE>no redistribute static</CODE>
disables the routes.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>redistribute connected</B> <I>{}</I>
<DD><A NAME="IDX130"></A>
<DT><U>RIP command:</U> <B>redistribute connected metric &#60;0-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX131"></A>
<DT><U>RIP command:</U> <B>redistribute connected route-map <VAR>route-map</VAR></B> <I>{}</I>
<DD><A NAME="IDX132"></A>
<DT><U>RIP command:</U> <B>no redistribute connected</B> <I>{}</I>
<DD><A NAME="IDX133"></A>
Redistribute connected routes into the RIP tables.  <CODE>no
redistribute connected</CODE> disables the connected routes in the RIP tables.
This command redistribute connected of the interface which RIP disabled.
The connected route on RIP enabled interface is announced by default.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>redistribute ospf</B> <I>{}</I>
<DD><A NAME="IDX134"></A>
<DT><U>RIP command:</U> <B>redistribute ospf metric &#60;0-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX135"></A>
<DT><U>RIP command:</U> <B>redistribute ospf route-map <VAR>route-map</VAR></B> <I>{}</I>
<DD><A NAME="IDX136"></A>
<DT><U>RIP command:</U> <B>no redistribute ospf</B> <I>{}</I>
<DD><A NAME="IDX137"></A>
<CODE>redistribute ospf</CODE> redistributes routing information from
ospf route entries into the RIP tables. <CODE>no redistribute ospf</CODE>
disables the routes.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>redistribute bgp</B> <I>{}</I>
<DD><A NAME="IDX138"></A>
<DT><U>RIP command:</U> <B>redistribute bgp metric &#60;0-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX139"></A>
<DT><U>RIP command:</U> <B>redistribute bgp route-map <VAR>route-map</VAR></B> <I>{}</I>
<DD><A NAME="IDX140"></A>
<DT><U>RIP command:</U> <B>no redistribute bgp</B> <I>{}</I>
<DD><A NAME="IDX141"></A>
<CODE>redistribute bgp</CODE> redistributes routing information from
bgp route entries into the RIP tables. <CODE>no redistribute bgp</CODE>
disables the routes.
</DL>


<P>
If you want to specify RIP only static routes:


<P>
<DL>
<DT><U>RIP command:</U> <B>default-information originate</B> <I>{}</I>
<DD><A NAME="IDX142"></A>
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>route <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX143"></A>
<DT><U>RIP command:</U> <B>no route <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX144"></A>
This command is specific to Zebra.  The <CODE>route</CODE> command makes a static
route only inside RIP. This command should be used only by advanced
users who are particularly knowledgeable about the RIP protocol.  In
most cases, we recommend creating a static route in Zebra and
redistributing it in RIP using <CODE>redistribute static</CODE>.
</DL>




<H2><A NAME="SEC38" HREF="zebra_toc.html#TOC38">Filtering RIP Routes</A></H2>

<P>
RIP routes can be filtered by a distribute-list.


<P>
<DL>
<DT><U>Command:</U> <B>distribute-list <VAR>access_list</VAR> <VAR>direct</VAR> <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX145"></A>
You can apply access lists to the interface with a <CODE>distribute-list</CODE>
command.  <VAR>access_list</VAR> is the access list name.  <VAR>direct</VAR> is
<SAMP>`in'</SAMP> or <SAMP>`out'</SAMP>.  If <VAR>direct</VAR> is <SAMP>`in'</SAMP> the access list
is applied to input packets.


<P>
The <CODE>distribute-list</CODE> command can be used to filter the RIP path.
<CODE>distribute-list</CODE> can apply access-lists to a chosen interface.
First, one should specify the access-list.  Next, the name of the
access-list is used in the distribute-list command.  For example, in the
following configuration <SAMP>`eth0'</SAMP> will permit only the paths that
match the route 10.0.0.0/8



<PRE>
!
router rip
 distribute-list private in eth0
!
access-list private permit 10 10.0.0.0/8
access-list private deny any
!
</PRE>

</DL>

<P>
<CODE>distribute-list</CODE> can be applied to both incoming and outgoing data.


<P>
<DL>
<DT><U>Command:</U> <B>distribute-list prefix <VAR>prefix_list</VAR> (in|out) <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX146"></A>
You can apply prefix lists to the interface with a
<CODE>distribute-list</CODE> command.  <VAR>prefix_list</VAR> is the prefix list
name.  Next is the direction of <SAMP>`in'</SAMP> or <SAMP>`out'</SAMP>.  If
<VAR>direct</VAR> is <SAMP>`in'</SAMP> the access list is applied to input packets.
</DL>




<H2><A NAME="SEC39" HREF="zebra_toc.html#TOC39">RIP Metric Manipulation</A></H2>

<P>
RIP metric is a value for distance for the network.  Usually
@command{ripd} increment the metric when the network information is
received.  Redistributed routes' metric is set to 1.


<P>
<DL>
<DT><U>RIP command:</U> <B>default-metric &#60;1-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX147"></A>
<DT><U>RIP command:</U> <B>no default-metric &#60;1-16&#62;</B> <I>{}</I>
<DD><A NAME="IDX148"></A>
This command modifies the default metric value for redistributed routes.  The
default value is 1.  This command does not affect connected route
even if it is redistributed by @command{redistribute connected}.  To modify
connected route's metric value, please use @command{redistribute
connected metric} or @command{route-map}.  @command{offset-list} also
affects connected routes.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>offset-list <VAR>access-list</VAR> (in|out)</B> <I>{}</I>
<DD><A NAME="IDX149"></A>
<DT><U>RIP command:</U> <B>offset-list <VAR>access-list</VAR> (in|out) <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX150"></A>
</DL>




<H2><A NAME="SEC40" HREF="zebra_toc.html#TOC40">RIP distance</A></H2>

<P>
Distance value is used in zebra daemon.  Default RIP distance is 120.


<P>
<DL>
<DT><U>RIP command:</U> <B>distance &#60;1-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX151"></A>
<DT><U>RIP command:</U> <B>no distance &#60;1-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX152"></A>
Set default RIP distance to specified value.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX153"></A>
<DT><U>RIP command:</U> <B>no distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX154"></A>
Set default RIP distance to specified value when the route's source IP
address matches the specified prefix.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR> <VAR>access-list</VAR></B> <I>{}</I>
<DD><A NAME="IDX155"></A>
<DT><U>RIP command:</U> <B>no distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR> <VAR>access-list</VAR></B> <I>{}</I>
<DD><A NAME="IDX156"></A>
Set default RIP distance to specified value when the route's source IP
address matches the specified prefix and the specified access-list.
</DL>




<H2><A NAME="SEC41" HREF="zebra_toc.html#TOC41">RIP route-map</A></H2>

<P>
Usage of @command{ripd}'s route-map support.


<P>
Optional argument route-map MAP_NAME can be added to each <CODE>redistribute</CODE>
statement.



<PRE>
redistribute static [route-map MAP_NAME]
redistribute connected [route-map MAP_NAME]
.....
</PRE>

<P>
Cisco applies route-map _before_ routes will exported to rip route
table.  In current Zebra's test implementation, @command{ripd} applies route-map
after routes are listed in the route table and before routes will be announced
to an interface (something like output filter). I think it is not so clear,
but it is draft and it may be changed at future.


<P>
Route-map statement (see section <A HREF="zebra.html#SEC115">Route Map</A>) is needed to use route-map
functionality.


<P>
<DL>
<DT><U>Route Map:</U> <B>match interface <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX157"></A>
This command match to incoming interface.  Notation of this match is
different from Cisco. Cisco uses a list of interfaces - NAME1 NAME2
... NAMEN.  Ripd allows only one name (maybe will change in the
future).  Next - Cisco means interface which includes next-hop of
routes (it is somewhat similar to "ip next-hop" statement).  Ripd
means interface where this route will be sent. This difference is
because "next-hop" of same routes which sends to different interfaces
must be different. Maybe it'd be better to made new matches - say
"match interface-out NAME" or something like that.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>match ip address <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX158"></A>
<DT><U>Route Map:</U> <B>match ip address prefix-list <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX159"></A>
Match if route destination is permitted by access-list.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>match ip next-hop A.B.C.D</B> <I>{}</I>
<DD><A NAME="IDX160"></A>
Cisco uses here &#60;access-list&#62;, @command{ripd} IPv4 address. Match if
route has this next-hop (meaning next-hop listed in the rip route
table - "show ip rip")
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>match metric &#60;0-4294967295&#62;</B> <I>{}</I>
<DD><A NAME="IDX161"></A>
This command match to the metric value of RIP updates.  For other
protocol compatibility metric range is shown as &#60;0-4294967295&#62;.  But
for RIP protocol only the value range &#60;0-16&#62; make sense.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set ip next-hop A.B.C.D</B> <I>{}</I>
<DD><A NAME="IDX162"></A>
This command set next hop value in RIPv2 protocol.  This command does
not affect RIPv1 because there is no next hop field in the packet.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set metric &#60;0-4294967295&#62;</B> <I>{}</I>
<DD><A NAME="IDX163"></A>
Set a metric for matched route when sending announcement.  The metric
value range is very large for compatibility with other protocols.  For
RIP, valid metric values are from 1 to 16.
</DL>




<H2><A NAME="SEC42" HREF="zebra_toc.html#TOC42">RIP Authentication</A></H2>

<P>
<DL>
<DT><U>Interface command:</U> <B>ip rip authentication mode md5</B> <I>{}</I>
<DD><A NAME="IDX164"></A>
<DT><U>Interface command:</U> <B>no ip rip authentication mode md5</B> <I>{}</I>
<DD><A NAME="IDX165"></A>
Set the interface with RIPv2 MD5 authentication.
</DL>


<P>
<DL>
<DT><U>Interface command:</U> <B>ip rip authentication mode text</B> <I>{}</I>
<DD><A NAME="IDX166"></A>
<DT><U>Interface command:</U> <B>no ip rip authentication mode text</B> <I>{}</I>
<DD><A NAME="IDX167"></A>
Set the interface with RIPv2 simple password authentication.
</DL>


<P>
<DL>
<DT><U>Interface command:</U> <B>ip rip authentication string <VAR>string</VAR></B> <I>{}</I>
<DD><A NAME="IDX168"></A>
<DT><U>Interface command:</U> <B>no ip rip authentication string <VAR>string</VAR></B> <I>{}</I>
<DD><A NAME="IDX169"></A>
RIP version 2 has simple text authentication.  This command sets
authentication string.  The string must be shorter than 16 characters.
</DL>


<P>
<DL>
<DT><U>Interface command:</U> <B>ip rip authentication key-chain <VAR>key-chain</VAR></B> <I>{}</I>
<DD><A NAME="IDX170"></A>
<DT><U>Interface command:</U> <B>no ip rip authentication key-chain <VAR>key-chain</VAR></B> <I>{}</I>
<DD><A NAME="IDX171"></A>
Specifiy Keyed MD5 chain.
</DL>



<PRE>
!
key chain test
 key 1
  key-string test
!
interface eth1
 ip rip authentication mode md5
 ip rip authentication key-chain test
!
</PRE>



<H2><A NAME="SEC43" HREF="zebra_toc.html#TOC43">RIP Timers</A></H2>

<P>
<DL>
<DT><U>RIP command:</U> <B>timers basic <VAR>update</VAR> <VAR>timeout</VAR> <VAR>garbage</VAR></B> <I>{}</I>
<DD><A NAME="IDX172"></A>


<P>
RIP protocol has several timers.  User can configure those timers' values
by <CODE>timers basic</CODE> command.


<P>
The default settings for the timers are as follows: 



<UL>
<LI>

The update timer is 30 seconds. Every update timer seconds, the RIP
process is awakened to send an unsolicited Response message containing
the complete routing table to all neighboring RIP routers.

<LI>

The timeout timer is 180 seconds. Upon expiration of the timeout, the
route is no longer valid; however, it is retained in the routing table
for a short time so that neighbors can be notified that the route has
been dropped.

<LI>

The garbage collect timer is 120 seconds.  Upon expiration of the
garbage-collection timer, the route is finally removed from the routing
table.

</UL>

<P>
The <CODE>timers basic</CODE> command allows the the default values of the timers
listed above to be changed.
</DL>


<P>
<DL>
<DT><U>RIP command:</U> <B>no timers basic</B> <I>{}</I>
<DD><A NAME="IDX173"></A>
The <CODE>no timers basic</CODE> command will reset the timers to the default
settings listed above.
</DL>




<H2><A NAME="SEC44" HREF="zebra_toc.html#TOC44">Show RIP Information</A></H2>

<P>
To display RIP routes.


<P>
<DL>
<DT><U>Command:</U> <B>show ip rip</B> <I>{}</I>
<DD><A NAME="IDX174"></A>
Show RIP routes.
</DL>


<P>
The command displays all RIP routes. For routes that are received
through RIP, this command will display the time the packet was sent and
the tag information.  This command will also display this information
for routes redistributed into RIP.


<P>
<DL>
<DT><U>Command:</U> <B>show ip protocols</B> <I>{}</I>
<DD><A NAME="IDX175"></A>
The command displays current RIP status.  It includes RIP timer,
filtering, version, RIP enabled interface and RIP peer inforation.
</DL>



<PRE>
ripd&#62; <B>show ip protocols</B>
Routing Protocol is "rip"
  Sending updates every 30 seconds with +/-50%, next due in 35 seconds
  Timeout after 180 seconds, garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing: kernel connected
  Default version control: send version 2, receive version 2 
    Interface        Send  Recv
  Routing for Networks:
    eth0
    eth1
    1.1.1.1
    203.181.89.241
  Routing Information Sources:
    Gateway          BadPackets BadRoutes  Distance Last Update
</PRE>



<H2><A NAME="SEC45" HREF="zebra_toc.html#TOC45">RIP Debug Commands</A></H2>

<P>
Debug for RIP protocol.


<P>
<DL>
<DT><U>Command:</U> <B>debug rip events</B> <I>{}</I>
<DD><A NAME="IDX176"></A>
Debug rip events.
</DL>


<P>
<CODE>debug rip</CODE> will show RIP events.  Sending and receiving
packets, timers, and changes in interfaces are events shown with @command{ripd}.


<P>
<DL>
<DT><U>Command:</U> <B>debug rip packet</B> <I>{}</I>
<DD><A NAME="IDX177"></A>
Debug rip packet.
</DL>


<P>
<CODE>debug rip packet</CODE> will display detailed information about the RIP
packets.  The origin and port number of the packet as well as a packet
dump is shown.


<P>
<DL>
<DT><U>Command:</U> <B>debug rip zebra</B> <I>{}</I>
<DD><A NAME="IDX178"></A>
Debug rip between zebra communication.
</DL>


<P>
This command will show the communication between @command{ripd} and @command{zebra}.  The
main information will include addition and deletion of paths to the
kernel and the sending and receiving of interface information.


<P>
<DL>
<DT><U>Command:</U> <B>show debugging rip</B> <I>{}</I>
<DD><A NAME="IDX179"></A>
Display @command{ripd}'s debugging option.
</DL>


<P>
<CODE>show debugging rip</CODE> will show all information currently set for ripd
debug.


<H1><A NAME="SEC46" HREF="zebra_toc.html#TOC46">RIPng</A></H1>

<P>
@command{ripngd} supports the RIPng protocol as described in RFC2080.  It's an
IPv6 reincarnation of the RIP protocol.




<H2><A NAME="SEC47" HREF="zebra_toc.html#TOC47">Invoking ripngd</A></H2>

<P>
There are no <CODE>ripngd</CODE> specific invocation options.  Common options
can be specified (see section <A HREF="zebra.html#SEC17">Common Invocation Options</A>).




<H2><A NAME="SEC48" HREF="zebra_toc.html#TOC48">ripngd Configuration</A></H2>

<P>
Currently ripngd supports the following commands:


<P>
<DL>
<DT><U>Command:</U> <B>router ripng</B> <I>{}</I>
<DD><A NAME="IDX180"></A>
Enable RIPng.
</DL>


<P>
<DL>
<DT><U>RIPng Command:</U> <B>flush_timer <VAR>time</VAR></B> <I>{}</I>
<DD><A NAME="IDX181"></A>
Set flush timer.
</DL>


<P>
<DL>
<DT><U>RIPng Command:</U> <B>network <VAR>network</VAR></B> <I>{}</I>
<DD><A NAME="IDX182"></A>
Set RIPng enabled interface by <VAR>network</VAR>
</DL>


<P>
<DL>
<DT><U>RIPng Command:</U> <B>network <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX183"></A>
Set RIPng enabled interface by <VAR>ifname</VAR>
</DL>


<P>
<DL>
<DT><U>RIPng Command:</U> <B>route <VAR>network</VAR></B> <I>{}</I>
<DD><A NAME="IDX184"></A>
Set RIPng static routing announcement of <VAR>network</VAR>.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>router zebra</B> <I>{}</I>
<DD><A NAME="IDX185"></A>
This command is the default and does not appear in the configuration.
With this statement, RIPng routes go to the @command{zebra} daemon.
</DL>




<H2><A NAME="SEC49" HREF="zebra_toc.html#TOC49">ripngd Terminal Mode Commands</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>show ip ripng</B> <I>{}</I>
<DD><A NAME="IDX186"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show debugging ripng</B> <I>{}</I>
<DD><A NAME="IDX187"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ripng events</B> <I>{}</I>
<DD><A NAME="IDX188"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ripng packet</B> <I>{}</I>
<DD><A NAME="IDX189"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ripng zebra</B> <I>{}</I>
<DD><A NAME="IDX190"></A>
</DL>




<H2><A NAME="SEC50" HREF="zebra_toc.html#TOC50">ripngd Filtering Commands</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>distribute-list <VAR>access_list</VAR> (in|out) <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX191"></A>
You can apply an access-list to the interface using the
<CODE>distribute-list</CODE> command.  <VAR>access_list</VAR> is an access-list
name.  <VAR>direct</VAR> is <SAMP>`in'</SAMP> or <SAMP>`out'</SAMP>.  If <VAR>direct</VAR> is
<SAMP>`in'</SAMP>, the access-list is applied only to incoming packets.



<PRE>
distribute-list local-only out sit1
</PRE>

</DL>


<H1><A NAME="SEC51" HREF="zebra_toc.html#TOC51">OSPFv2</A></H1>

<P>
  OSPF version 2 is a routing protocol which described in
RFC2328 - <CITE>OSPF Version 2</CITE>.  OSPF is IGP (Interior Gateway
Protocols).  Compared with RIP, OSPF can provide scalable network
support and faster convergence time.  OSPF is widely used in large
networks such as ISP backbone and enterprise networks.




<H2><A NAME="SEC52" HREF="zebra_toc.html#TOC52">Configuring ospfd</A></H2>

<P>
There is no @command{ospfd} specific options.  Common options can be
specified (see section <A HREF="zebra.html#SEC17">Common Invocation Options</A>) to @command{ospfd}.
@command{ospfd} needs interface information from @command{zebra}.  So
please make it sure @command{zebra} is running before invoking
@command{ospfd}.


<P>
Like other daemons, @command{ospfd} configuration is done in OSPF
specific configuration file <TT>`ospfd.conf'</TT>.




<H2><A NAME="SEC53" HREF="zebra_toc.html#TOC53">OSPF router</A></H2>

<P>
To start OSPF process you have to specify the OSPF router.  As of this
writing, @command{ospfd} does not support multiple OSPF processes.


<P>
<DL>
<DT><U>Command:</U> <B>router ospf</B> <I>{}</I>
<DD><A NAME="IDX192"></A>
<DT><U>Command:</U> <B>no router ospf</B> <I>{}</I>
<DD><A NAME="IDX193"></A>
Enable or disable the OSPF process.  @command{ospfd} does not yet
support multiple OSPF processes.  So you can not specify an OSPF process
number.
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>ospf router-id <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX194"></A>
<DT><U>OSPF Command:</U> <B>no ospf router-id</B> <I>{}</I>
<DD><A NAME="IDX195"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>ospf abr-type <VAR>type</VAR></B> <I>{}</I>
<DD><A NAME="IDX196"></A>
<DT><U>OSPF Command:</U> <B>no ospf abr-type <VAR>type</VAR></B> <I>{}</I>
<DD><A NAME="IDX197"></A>
<VAR>type</VAR> can be cisco|ibm|shortcut|standard
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>ospf rfc1583compatibility</B> <I>{}</I>
<DD><A NAME="IDX198"></A>
<DT><U>OSPF Command:</U> <B>no ospf rfc1583compatibility</B> <I>{}</I>
<DD><A NAME="IDX199"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>passive interface <VAR>interface</VAR></B> <I>{}</I>
<DD><A NAME="IDX200"></A>
<DT><U>OSPF Command:</U> <B>no passive interface <VAR>interface</VAR></B> <I>{}</I>
<DD><A NAME="IDX201"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>timers spf &#60;0-4294967295&#62; &#60;0-4294967295&#62;</B> <I>{}</I>
<DD><A NAME="IDX202"></A>
<DT><U>OSPF Command:</U> <B>no timers spf</B> <I>{}</I>
<DD><A NAME="IDX203"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>refresh group-limit &#60;0-10000&#62;</B> <I>{}</I>
<DD><A NAME="IDX204"></A>
<DT><U>OSPF Command:</U> <B>refresh per-slice &#60;0-10000&#62;</B> <I>{}</I>
<DD><A NAME="IDX205"></A>
<DT><U>OSPF Command:</U> <B>refresh age-diff &#60;0-10000&#62;</B> <I>{}</I>
<DD><A NAME="IDX206"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>auto-cost refrence-bandwidth &#60;1-4294967&#62;</B> <I>{}</I>
<DD><A NAME="IDX207"></A>
<DT><U>OSPF Command:</U> <B>no auto-cost refrence-bandwidth</B> <I>{}</I>
<DD><A NAME="IDX208"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>network <VAR>a.b.c.d/m</VAR> area <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX209"></A>
<DT><U>OSPF Command:</U> <B>network <VAR>a.b.c.d/m</VAR> area <VAR>&#60;0-4294967295&#62;</VAR></B> <I>{}</I>
<DD><A NAME="IDX210"></A>
<DT><U>OSPF Command:</U> <B>no network <VAR>a.b.c.d/m</VAR> area <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX211"></A>
<DT><U>OSPF Command:</U> <B>no network <VAR>a.b.c.d/m</VAR> area <VAR>&#60;0-4294967295&#62;</VAR></B> <I>{}</I>
<DD><A NAME="IDX212"></A>
This command specifies the OSPF enabled interface.  If the interface has
an address of 10.0.0.1/8 then the command below provides network
information to the ospf routers

<PRE>
router ospf
 network 10.0.0.0/8 area 0
</PRE>

<P>
the network command's mask length should be the same as the interface
address's mask.
</DL>




<H2><A NAME="SEC54" HREF="zebra_toc.html#TOC54">OSPF area</A></H2>

<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> range <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX213"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; range <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX214"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> range <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX215"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; range <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX216"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> range IPV4_PREFIX suppress</B> <I>{}</I>
<DD><A NAME="IDX217"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> range IPV4_PREFIX suppress</B> <I>{}</I>
<DD><A NAME="IDX218"></A>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> range IPV4_PREFIX substitute IPV4_PREFIX</B> <I>{}</I>
<DD><A NAME="IDX219"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> range IPV4_PREFIX substitute IPV4_PREFIX</B> <I>{}</I>
<DD><A NAME="IDX220"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> virtual-link <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX221"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; virtual-link <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX222"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> virtual-link <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX223"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; virtual-link <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX224"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> shortcut</B> <I>{}</I>
<DD><A NAME="IDX225"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; shortcut</B> <I>{}</I>
<DD><A NAME="IDX226"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> shortcut</B> <I>{}</I>
<DD><A NAME="IDX227"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; shortcut</B> <I>{}</I>
<DD><A NAME="IDX228"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> stub</B> <I>{}</I>
<DD><A NAME="IDX229"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; stub</B> <I>{}</I>
<DD><A NAME="IDX230"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> stub</B> <I>{}</I>
<DD><A NAME="IDX231"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; stub</B> <I>{}</I>
<DD><A NAME="IDX232"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> stub no-summary</B> <I>{}</I>
<DD><A NAME="IDX233"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; stub no-summary</B> <I>{}</I>
<DD><A NAME="IDX234"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> stub no-summary</B> <I>{}</I>
<DD><A NAME="IDX235"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; stub no-summary</B> <I>{}</I>
<DD><A NAME="IDX236"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> default-cost &#60;0-16777215&#62;</B> <I>{}</I>
<DD><A NAME="IDX237"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> default-cost &#60;0-16777215&#62;</B> <I>{}</I>
<DD><A NAME="IDX238"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> export-list NAME</B> <I>{}</I>
<DD><A NAME="IDX239"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; export-list NAME</B> <I>{}</I>
<DD><A NAME="IDX240"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> export-list NAME</B> <I>{}</I>
<DD><A NAME="IDX241"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; export-list NAME</B> <I>{}</I>
<DD><A NAME="IDX242"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> import-list NAME</B> <I>{}</I>
<DD><A NAME="IDX243"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; import-list NAME</B> <I>{}</I>
<DD><A NAME="IDX244"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> import-list NAME</B> <I>{}</I>
<DD><A NAME="IDX245"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; import-list NAME</B> <I>{}</I>
<DD><A NAME="IDX246"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> authentication</B> <I>{}</I>
<DD><A NAME="IDX247"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; authentication</B> <I>{}</I>
<DD><A NAME="IDX248"></A>
<DT><U>OSPF Command:</U> <B>no area <VAR>a.b.c.d</VAR> authentication</B> <I>{}</I>
<DD><A NAME="IDX249"></A>
<DT><U>OSPF Command:</U> <B>no area &#60;0-4294967295&#62; authentication</B> <I>{}</I>
<DD><A NAME="IDX250"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>area <VAR>a.b.c.d</VAR> authentication message-digest</B> <I>{}</I>
<DD><A NAME="IDX251"></A>
<DT><U>OSPF Command:</U> <B>area &#60;0-4294967295&#62; authentication message-digest</B> <I>{}</I>
<DD><A NAME="IDX252"></A>
</DL>




<H2><A NAME="SEC55" HREF="zebra_toc.html#TOC55">OSPF interface</A></H2>

<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf authentication-key AUTH_KEY</B> <I>{}</I>
<DD><A NAME="IDX253"></A>
<DT><U>Interface Command:</U> <B>no ip ospf authentication-key</B> <I>{}</I>
<DD><A NAME="IDX254"></A>
Set OSPF authentication key to a simple password.  After setting <VAR>AUTH_KEY</VAR>,
all OSPF packets are authenticated. <VAR>AUTH_KEY</VAR> has length up to 8 chars.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf message-digest-key KEYID md5 KEY</B> <I>{}</I>
<DD><A NAME="IDX255"></A>
<DT><U>Interface Command:</U> <B>no ip ospf message-digest-key</B> <I>{}</I>
<DD><A NAME="IDX256"></A>
Set OSPF authentication key to a cryptographic password.  The cryptographic
algorithm is MD5.  KEYID identifies secret key used to create the message
digest.  KEY is the actual message digest key up to 16 chars.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf cost &#60;1-65535&#62;</B> <I>{}</I>
<DD><A NAME="IDX257"></A>
<DT><U>Interface Command:</U> <B>no ip ospf cost</B> <I>{}</I>
<DD><A NAME="IDX258"></A>
Set link cost for the specified interface.  The cost value is set to router-LSA's
metric field and used for SPF calculation.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf dead-interval &#60;1-65535&#62;</B> <I>{}</I>
<DD><A NAME="IDX259"></A>
<DT><U>Interface Command:</U> <B>no ip ospf dead-interval</B> <I>{}</I>
<DD><A NAME="IDX260"></A>
Set number of seconds for RouterDeadInterval timer value used for Wait Timer
and Inactivity Timer.  This value must be the same for all routers attached
to a common network.  The default value is 40 seconds.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf hello-interval &#60;1-65535&#62;</B> <I>{}</I>
<DD><A NAME="IDX261"></A>
<DT><U>Interface Command:</U> <B>no ip ospf hello-interval</B> <I>{}</I>
<DD><A NAME="IDX262"></A>
Set number of seconds for HelloInterval timer value.  Setting this value,
Hello packet will be sent every timer value seconds on the specified interface.
This value must be the same for all routers attached to a common network.
The default value is 10 seconds.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)</B> <I>{}</I>
<DD><A NAME="IDX263"></A>
<DT><U>Interface Command:</U> <B>no ip ospf network</B> <I>{}</I>
<DD><A NAME="IDX264"></A>
Set explicitly network type for specifed interface.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf priority &#60;0-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX265"></A>
<DT><U>Interface Command:</U> <B>no ip ospf priority</B> <I>{}</I>
<DD><A NAME="IDX266"></A>
Set RouterPriority integer value.  Setting higher value, router will be more
eligible to become Designated Router.  Setting the value to 0, router is no
longer eligible to Designated Router.
The default value is 1.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf retransmit-interval &#60;1-65535&#62;</B> <I>{}</I>
<DD><A NAME="IDX267"></A>
<DT><U>Interface Command:</U> <B>no ip ospf retransmit interval</B> <I>{}</I>
<DD><A NAME="IDX268"></A>
Set number of seconds for RxmtInterval timer value.  This value is used
when retransmitting Database Description and Link State Request packets.
The default value is 5 seconds.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ip ospf transmit-delay</B> <I>{}</I>
<DD><A NAME="IDX269"></A>
<DT><U>Interface Command:</U> <B>no ip ospf transmit-delay</B> <I>{}</I>
<DD><A NAME="IDX270"></A>
Set number of seconds for InfTransDelay value.  LSAs' age should be 
incremented by this value when transmitting.
The default value is 1 seconds.
</DL>




<H2><A NAME="SEC56" HREF="zebra_toc.html#TOC56">Redistribute routes to OSPF</A></H2>

<P>
<DL>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp)</B> <I>{}</I>
<DD><A NAME="IDX271"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) <VAR>route-map</VAR></B> <I>{}</I>
<DD><A NAME="IDX272"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)</B> <I>{}</I>
<DD><A NAME="IDX273"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX274"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) metric &#60;0-16777214&#62;</B> <I>{}</I>
<DD><A NAME="IDX275"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) metric &#60;0-16777214&#62; route-map <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX276"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric &#60;0-16777214&#62;</B> <I>{}</I>
<DD><A NAME="IDX277"></A>
<DT><U>OSPF Command:</U> <B>redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric &#60;0-16777214&#62; route-map <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX278"></A>
<DT><U>OSPF Command:</U> <B>no redistribute (kernel|connected|static|rip|bgp)</B> <I>{}</I>
<DD><A NAME="IDX279"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>default-information originate</B> <I>{}</I>
<DD><A NAME="IDX280"></A>
<DT><U>OSPF Command:</U> <B>default-information originate metric &#60;0-16777214&#62;</B> <I>{}</I>
<DD><A NAME="IDX281"></A>
<DT><U>OSPF Command:</U> <B>default-information originate metric &#60;0-16777214&#62; metric-type (1|2)</B> <I>{}</I>
<DD><A NAME="IDX282"></A>
<DT><U>OSPF Command:</U> <B>default-information originate metric &#60;0-16777214&#62; metric-type (1|2) route-map <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX283"></A>
<DT><U>OSPF Command:</U> <B>default-information originate always</B> <I>{}</I>
<DD><A NAME="IDX284"></A>
<DT><U>OSPF Command:</U> <B>default-information originate always metric &#60;0-16777214&#62;</B> <I>{}</I>
<DD><A NAME="IDX285"></A>
<DT><U>OSPF Command:</U> <B>default-information originate always metric &#60;0-16777214&#62; metric-type (1|2)</B> <I>{}</I>
<DD><A NAME="IDX286"></A>
<DT><U>OSPF Command:</U> <B>default-information originate always metric &#60;0-16777214&#62; metric-type (1|2) route-map <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX287"></A>
<DT><U>OSPF Command:</U> <B>no default-information originate</B> <I>{}</I>
<DD><A NAME="IDX288"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>distribute-list NAME out (kernel|connected|static|rip|ospf</B> <I>{}</I>
<DD><A NAME="IDX289"></A>
<DT><U>OSPF Command:</U> <B>no distribute-list NAME out (kernel|connected|static|rip|ospf</B> <I>{}</I>
<DD><A NAME="IDX290"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>default-metric &#60;0-16777214&#62;</B> <I>{}</I>
<DD><A NAME="IDX291"></A>
<DT><U>OSPF Command:</U> <B>no default-metric</B> <I>{}</I>
<DD><A NAME="IDX292"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>distance &#60;1-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX293"></A>
<DT><U>OSPF Command:</U> <B>no distance &#60;1-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX294"></A>
</DL>


<P>
<DL>
<DT><U>OSPF Command:</U> <B>distance ospf (intra-area|inter-area|external) &#60;1-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX295"></A>
<DT><U>OSPF Command:</U> <B>no distance ospf</B> <I>{}</I>
<DD><A NAME="IDX296"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>router zebra</B> <I>{}</I>
<DD><A NAME="IDX297"></A>
<DT><U>Command:</U> <B>no router zebra</B> <I>{}</I>
<DD><A NAME="IDX298"></A>
</DL>




<H2><A NAME="SEC57" HREF="zebra_toc.html#TOC57">Showing OSPF information</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf</B> <I>{}</I>
<DD><A NAME="IDX299"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf interface [INTERFACE]</B> <I>{}</I>
<DD><A NAME="IDX300"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf neighbor</B> <I>{}</I>
<DD><A NAME="IDX301"></A>
<DT><U>Command:</U> <B>show ip ospf neighbor INTERFACE</B> <I>{}</I>
<DD><A NAME="IDX302"></A>
<DT><U>Command:</U> <B>show ip ospf neighbor detail</B> <I>{}</I>
<DD><A NAME="IDX303"></A>
<DT><U>Command:</U> <B>show ip ospf neighbor INTERFACE detail</B> <I>{}</I>
<DD><A NAME="IDX304"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf database</B> <I>{}</I>
<DD><A NAME="IDX305"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf database (asbr-summary|external|network|router|summary)</B> <I>{}</I>
<DD><A NAME="IDX306"></A>
<DT><U>Command:</U> <B>show ip ospf database (asbr-summary|external|network|router|summary) <VAR>link-state-id</VAR></B> <I>{}</I>
<DD><A NAME="IDX307"></A>
<DT><U>Command:</U> <B>show ip ospf database (asbr-summary|external|network|router|summary) <VAR>link-state-id</VAR> adv-router <VAR>adv-router</VAR></B> <I>{}</I>
<DD><A NAME="IDX308"></A>
<DT><U>Command:</U> <B>show ip ospf database (asbr-summary|external|network|router|summary) adv-router <VAR>adv-router</VAR></B> <I>{}</I>
<DD><A NAME="IDX309"></A>
<DT><U>Command:</U> <B>show ip ospf database (asbr-summary|external|network|router|summary) <VAR>link-state-id</VAR> self-originate</B> <I>{}</I>
<DD><A NAME="IDX310"></A>
<DT><U>Command:</U> <B>show ip ospf database (asbr-summary|external|network|router|summary) self-originate</B> <I>{}</I>
<DD><A NAME="IDX311"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf database max-age</B> <I>{}</I>
<DD><A NAME="IDX312"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf database self-originate</B> <I>{}</I>
<DD><A NAME="IDX313"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf refresher</B> <I>{}</I>
<DD><A NAME="IDX314"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip ospf route</B> <I>{}</I>
<DD><A NAME="IDX315"></A>
</DL>




<H2><A NAME="SEC58" HREF="zebra_toc.html#TOC58">Debugging OSPF</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]</B> <I>{}</I>
<DD><A NAME="IDX316"></A>
<DT><U>Command:</U> <B>no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]</B> <I>{}</I>
<DD><A NAME="IDX317"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ospf ism</B> <I>{}</I>
<DD><A NAME="IDX318"></A>
<DT><U>Command:</U> <B>debug ospf ism (status|events|timers)</B> <I>{}</I>
<DD><A NAME="IDX319"></A>
<DT><U>Command:</U> <B>no debug ospf ism</B> <I>{}</I>
<DD><A NAME="IDX320"></A>
<DT><U>Command:</U> <B>no debug ospf ism (status|events|timers)</B> <I>{}</I>
<DD><A NAME="IDX321"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ospf nsm</B> <I>{}</I>
<DD><A NAME="IDX322"></A>
<DT><U>Command:</U> <B>debug ospf nsm (status|events|timers)</B> <I>{}</I>
<DD><A NAME="IDX323"></A>
<DT><U>Command:</U> <B>no debug ospf nsm</B> <I>{}</I>
<DD><A NAME="IDX324"></A>
<DT><U>Command:</U> <B>no debug ospf nsm (status|events|timers)</B> <I>{}</I>
<DD><A NAME="IDX325"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ospf lsa</B> <I>{}</I>
<DD><A NAME="IDX326"></A>
<DT><U>Command:</U> <B>debug ospf lsa (generate|flooding|refresh)</B> <I>{}</I>
<DD><A NAME="IDX327"></A>
<DT><U>Command:</U> <B>no debug ospf lsa</B> <I>{}</I>
<DD><A NAME="IDX328"></A>
<DT><U>Command:</U> <B>no debug ospf lsa (generate|flooding|refresh)</B> <I>{}</I>
<DD><A NAME="IDX329"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug ospf zebra</B> <I>{}</I>
<DD><A NAME="IDX330"></A>
<DT><U>Command:</U> <B>debug ospf zebra (interface|redistribute)</B> <I>{}</I>
<DD><A NAME="IDX331"></A>
<DT><U>Command:</U> <B>no debug ospf zebra</B> <I>{}</I>
<DD><A NAME="IDX332"></A>
<DT><U>Command:</U> <B>no debug ospf zebra (interface|redistribute)</B> <I>{}</I>
<DD><A NAME="IDX333"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show debugging ospf</B> <I>{}</I>
<DD><A NAME="IDX334"></A>
</DL>




<H1><A NAME="SEC59" HREF="zebra_toc.html#TOC59">OSPFv3</A></H1>

<P>
@command{ospf6d} is a daemon support OSPF version 3 for IPv6 network.
OSPF for IPv6 is described in RFC2740.




<H2><A NAME="SEC60" HREF="zebra_toc.html#TOC60">OSPF6 router</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>router ospf6</B> <I>{}</I>
<DD><A NAME="IDX335"></A>
</DL>


<P>
<DL>
<DT><U>OSPF6 Command:</U> <B>router-id <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX336"></A>
Set router's Router-ID.
</DL>


<P>
<DL>
<DT><U>OSPF6 Command:</U> <B>interface <VAR>ifname</VAR> area <VAR>area</VAR></B> <I>{}</I>
<DD><A NAME="IDX337"></A>
Bind interface to specified area, and start sending OSPF packets.  <VAR>area</VAR> can
be specified as 0.
</DL>




<H2><A NAME="SEC61" HREF="zebra_toc.html#TOC61">OSPF6 area</A></H2>

<P>
Area support for OSPFv3 is not yet implemented.




<H2><A NAME="SEC62" HREF="zebra_toc.html#TOC62">OSPF6 interface</A></H2>

<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 ospf6 cost COST</B> <I>{}</I>
<DD><A NAME="IDX338"></A>
Sets interface's output cost.  Default value is 1.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 ospf6 hello-interval HELLOINTERVAL</B> <I>{}</I>
<DD><A NAME="IDX339"></A>
Sets interface's Hello Interval.  Default 40
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 ospf6 dead-interval DEADINTERVAL</B> <I>{}</I>
<DD><A NAME="IDX340"></A>
Sets interface's Router Dead Interval.  Default value is 40.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL</B> <I>{}</I>
<DD><A NAME="IDX341"></A>
Sets interface's Rxmt Interval.  Default value is 5.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 ospf6 priority PRIORITY</B> <I>{}</I>
<DD><A NAME="IDX342"></A>
Sets interface's Router Priority.  Default value is 1.
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 ospf6 transmit-delay TRANSMITDELAY</B> <I>{}</I>
<DD><A NAME="IDX343"></A>
Sets interface's Inf-Trans-Delay.  Default value is 1.
</DL>




<H2><A NAME="SEC63" HREF="zebra_toc.html#TOC63">Redistribute routes to OSPF6</A></H2>

<P>
<DL>
<DT><U>OSPF6 Command:</U> <B>redistribute static</B> <I>{}</I>
<DD><A NAME="IDX344"></A>
<DT><U>OSPF6 Command:</U> <B>redistribute connected</B> <I>{}</I>
<DD><A NAME="IDX345"></A>
<DT><U>OSPF6 Command:</U> <B>redistribute ripng</B> <I>{}</I>
<DD><A NAME="IDX346"></A>
</DL>




<H2><A NAME="SEC64" HREF="zebra_toc.html#TOC64">Showing OSPF6 information</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 ospf6 [INSTANCE_ID]</B> <I>{}</I>
<DD><A NAME="IDX347"></A>
INSTANCE_ID is an optional OSPF instance ID. To see router ID and OSPF
instance ID, simply type "show ipv6 ospf6 &#60;cr&#62;".
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 ospf6 database</B> <I>{}</I>
<DD><A NAME="IDX348"></A>
This command shows LSA database summary.  You can specify the type of LSA.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 ospf6 interface</B> <I>{}</I>
<DD><A NAME="IDX349"></A>
To see OSPF interface configuration like costs.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 ospf6 neighbor</B> <I>{}</I>
<DD><A NAME="IDX350"></A>
Shows state and chosen (Backup) DR of neighbor.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 ospf6 request-list A.B.C.D</B> <I>{}</I>
<DD><A NAME="IDX351"></A>
Shows requestlist of neighbor.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ipv6 route ospf6</B> <I>{}</I>
<DD><A NAME="IDX352"></A>
This command shows internal routing table.
</DL>


<H1><A NAME="SEC65" HREF="zebra_toc.html#TOC65">BGP</A></H1>

<P>
  BGP stands for a Border Gateway Protocol.  The lastest BGP version
is 4.  It is referred as BGP-4.  BGP-4 is one of the Exterior Gateway
Protocols and de-fact standard of Inter Domain routing protocol.
BGP-4 is described in <CODE>RFC1771</CODE> - <CITE>A Border Gateway Protocol
4 (BGP-4)</CITE>.


<P>
  Many extentions are added to <CODE>RFC1771</CODE>.  <CODE>RFC2858</CODE> -
<CITE>Multiprotocol Extensions for BGP-4</CITE> provide multiprotocol
support to BGP-4.




<H2><A NAME="SEC66" HREF="zebra_toc.html#TOC66">Starting BGP</A></H2>

<P>
Default configuration file of @command{bgpd} is <TT>`bgpd.conf'</TT>.
@command{bgpd} searches the current directory first then
/usr/local/etc/bgpd.conf.  All of bgpd's command must be
configured in <TT>`bgpd.conf'</TT>.


<P>
@command{bgpd} specific invocation options are described below.  Common
options may also be specified (see section <A HREF="zebra.html#SEC17">Common Invocation Options</A>).


<DL COMPACT>

<DT><SAMP>`-p <VAR>PORT</VAR>'</SAMP>
<DD>
<DT><SAMP>`--bgp_port=<VAR>PORT</VAR>'</SAMP>
<DD>
Set the bgp protocol's port number.

<DT><SAMP>`-r'</SAMP>
<DD>
<DT><SAMP>`--retain'</SAMP>
<DD>
When program terminates, retain BGP routes added by zebra.
</DL>



<H2><A NAME="SEC67" HREF="zebra_toc.html#TOC67">BGP router</A></H2>

<P>
  First of all you must configure BGP router with @command{router bgp}
command.  To configure BGP router, you need AS number.  AS number is an
identification of autonomous system.  BGP protocol uses the AS number
for detecting whether the BGP connection is internal one or external one.


<P>
<DL>
<DT><U>Command:</U> <B>router bgp <VAR>asn</VAR></B> <I>{}</I>
<DD><A NAME="IDX353"></A>
Enable a BGP protocol process with the specified <VAR>asn</VAR>.  After
this statement you can input any <CODE>BGP Commands</CODE>.  You can not
create different BGP process under different <VAR>asn</VAR> without
specifying <CODE>multiple-instance</CODE> (see section <A HREF="zebra.html#SEC101">Multiple instance</A>).
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no router bgp <VAR>asn</VAR></B> <I>{}</I>
<DD><A NAME="IDX354"></A>
Destroy a BGP protocol process with the specified <VAR>asn</VAR>.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>bgp router-id <VAR>A.B.C.D</VAR></B> <I>{}</I>
<DD><A NAME="IDX355"></A>
This command specifies the router-ID.  If @command{bgpd} connects to @command{zebra} it gets
interface and address information.  In that case default router ID value
is selected as the largest IP Address of the interfaces.  When
<CODE>router zebra</CODE> is not enabled @command{bgpd} can't get interface information
so <CODE>router-id</CODE> is set to 0.0.0.0.  So please set router-id by hand.
</DL>




<H3><A NAME="SEC68" HREF="zebra_toc.html#TOC68">BGP distance</A></H3>

<P>
<DL>
<DT><U>BGP:</U> <B>distance bgp &#60;1-255&#62; &#60;1-255&#62; &#60;1-255&#62;</B> <I>{}</I>
<DD><A NAME="IDX356"></A>
This command change distance value of BGP.  Each argument is distance
value for external routes, internal routes and local routes.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX357"></A>
<DT><U>BGP:</U> <B>distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR> <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX358"></A>
This command set distance value to 
</DL>




<H3><A NAME="SEC69" HREF="zebra_toc.html#TOC69">BGP decision process</A></H3>

<DL COMPACT>

<DT>1. Weight check
<DD>
  
<DT>2. Local preference check.
<DD>
<DT>3. Local route check.
<DD>
<DT>4. AS path length check.
<DD>
<DT>5. Origin check.
<DD>
<DT>6. MED check.
<DD>
</DL>



<H2><A NAME="SEC70" HREF="zebra_toc.html#TOC70">BGP network</A></H2>



<H3><A NAME="SEC71" HREF="zebra_toc.html#TOC71">BGP route</A></H3>

<P>
<DL>
<DT><U>BGP:</U> <B>network <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX359"></A>
This command adds the announcement network.

<PRE>
router bgp 1
 network 10.0.0.0/8
</PRE>

<P>
This configuration example says that network 10.0.0.0/8 will be
announced to all neighbors.  Some vendors' routers don't advertise
routes if they aren't present in their IGP routing tables; <CODE>bgp</CODE>
doesn't care about IGP routes when announcing its routes.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>no network <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX360"></A>
</DL>




<H3><A NAME="SEC72" HREF="zebra_toc.html#TOC72">Route Aggregation</A></H3>

<P>
<DL>
<DT><U>BGP:</U> <B>aggregate-address <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX361"></A>
This command specifies an aggregate address.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>aggregate-address <VAR>A.B.C.D/M</VAR> as-set</B> <I>{}</I>
<DD><A NAME="IDX362"></A>
This command specifies an aggregate address.  Resulting routes inlucde
AS set.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>aggregate-address <VAR>A.B.C.D/M</VAR> summary-only</B> <I>{}</I>
<DD><A NAME="IDX363"></A>
This command specifies an aggregate address.  Aggreated routes will
not be announce.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>no aggregate-address <VAR>A.B.C.D/M</VAR></B> <I>{}</I>
<DD><A NAME="IDX364"></A>
</DL>




<H3><A NAME="SEC73" HREF="zebra_toc.html#TOC73">Redistribute to BGP</A></H3>

<P>
<DL>
<DT><U>BGP:</U> <B>redistribute kernel</B> <I>{}</I>
<DD><A NAME="IDX365"></A>
Redistribute kernel route to BGP process.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>redistribute static</B> <I>{}</I>
<DD><A NAME="IDX366"></A>
Redistribute static route to BGP process.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>redistribute connected</B> <I>{}</I>
<DD><A NAME="IDX367"></A>
Redistribute connected route to BGP process.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>redistribute rip</B> <I>{}</I>
<DD><A NAME="IDX368"></A>
Redistribute RIP route to BGP process.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>redistribute ospf</B> <I>{}</I>
<DD><A NAME="IDX369"></A>
Redistribute OSPF route to BGP process.
</DL>




<H2><A NAME="SEC74" HREF="zebra_toc.html#TOC74">BGP Peer</A></H2>



<H3><A NAME="SEC75" HREF="zebra_toc.html#TOC75">Defining Peer</A></H3>

<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> remote-as <VAR>asn</VAR></B> <I>{}</I>
<DD><A NAME="IDX370"></A>
Creates a new neighbor whose remote-as is <VAR>asn</VAR>.  <VAR>peer</VAR>
can be an IPv4 address or an IPv6 address.

<PRE>
router bgp 1
 neighbor 10.0.0.1 remote-as 2
</PRE>

<P>
In this case my router, in AS-1, is trying to peer with AS-2 at
10.0.0.1.


<P>
This command must be the first command used when configuring a neighbor.
If the remote-as is not specified, @command{bgpd} will complain like this:

<PRE>
can't find neighbor 10.0.0.1
</PRE>

</DL>



<H3><A NAME="SEC76" HREF="zebra_toc.html#TOC76">BGP Peer commands</A></H3>

<P>
In a <CODE>router bgp</CODE> clause there are neighbor specific configurations
required.


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> shutdown</B> <I>{}</I>
<DD><A NAME="IDX371"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> shutdown</B> <I>{}</I>
<DD><A NAME="IDX372"></A>
Shutdown the peer.  We can delete the neighbor's configuration by
<CODE>no neighbor <VAR>peer</VAR> remote-as <VAR>as-number</VAR></CODE> but all
configuration of the neighbor will be deleted.  When you want to
preserve the configuration, but want to drop the BGP peer, use this
syntax.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> ebgp-multihop</B> <I>{}</I>
<DD><A NAME="IDX373"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> ebgp-multihop</B> <I>{}</I>
<DD><A NAME="IDX374"></A>
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> description ...</B> <I>{}</I>
<DD><A NAME="IDX375"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> description ...</B> <I>{}</I>
<DD><A NAME="IDX376"></A>
Set description of the peer.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> version <VAR>version</VAR></B> <I>{}</I>
<DD><A NAME="IDX377"></A>
Set up the neighbor's BGP version.  <VAR>version</VAR> can be <VAR>4</VAR>,
<VAR>4+</VAR> or <VAR>4-</VAR>.  BGP version <VAR>4</VAR> is the default value used for
BGP peering.  BGP version <VAR>4+</VAR> means that the neighbor supports
Multiprotocol Extensions for BGP-4.  BGP version <VAR>4-</VAR> is similar but
the neighbor speaks the old Internet-Draft revision 00's Multiprotocol
Extensions for BGP-4.  Some routing software is still using this
version.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> interface <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX378"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> interface <VAR>ifname</VAR></B> <I>{}</I>
<DD><A NAME="IDX379"></A>
When you connect to a BGP peer over an IPv6 link-local address, you have
to specify the <VAR>ifname</VAR> of the interface used for the connection.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> next-hop-self</B> <I>{}</I>
<DD><A NAME="IDX380"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> next-hop-self</B> <I>{}</I>
<DD><A NAME="IDX381"></A>
This command specifies an announced route's nexthop as being equivalent
to the address of the bgp router.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> update-source</B> <I>{}</I>
<DD><A NAME="IDX382"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> update-source</B> <I>{}</I>
<DD><A NAME="IDX383"></A>
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> default-originate</B> <I>{}</I>
<DD><A NAME="IDX384"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> default-originate</B> <I>{}</I>
<DD><A NAME="IDX385"></A>
@command{bgpd}'s default is to not announce the default route (0.0.0.0/0) even it
is in routing table.  When you want to announce default routes to the
peer, use this command.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> port <VAR>port</VAR></B> <I>{}</I>
<DD><A NAME="IDX386"></A>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> port <VAR>port</VAR></B> <I>{}</I>
<DD><A NAME="IDX387"></A>
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> send-community</B> <I>{}</I>
<DD><A NAME="IDX388"></A>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> send-community</B> <I>{}</I>
<DD><A NAME="IDX389"></A>
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> weight <VAR>weight</VAR></B> <I>{}</I>
<DD><A NAME="IDX390"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> weight <VAR>weight</VAR></B> <I>{}</I>
<DD><A NAME="IDX391"></A>
This command specifies a default <VAR>weight</VAR> value for the neighbor's
routes.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> maximum-prefix <VAR>number</VAR></B> <I>{}</I>
<DD><A NAME="IDX392"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> maximum-prefix <VAR>number</VAR></B> <I>{}</I>
<DD><A NAME="IDX393"></A>
</DL>




<H3><A NAME="SEC77" HREF="zebra_toc.html#TOC77">Peer filtering</A></H3>

<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> distribute-list <VAR>name</VAR> [in|out]</B> <I>{}</I>
<DD><A NAME="IDX394"></A>
This command specifies a distribute-list for the peer.  <VAR>direct</VAR> is
<SAMP>`in'</SAMP> or <SAMP>`out'</SAMP>.
</DL>


<P>
<DL>
<DT><U>BGP command:</U> <B>neighbor <VAR>peer</VAR> prefix-list <VAR>name</VAR> [in|out]</B> <I>{}</I>
<DD><A NAME="IDX395"></A>
</DL>


<P>
<DL>
<DT><U>BGP command:</U> <B>neighbor <VAR>peer</VAR> filter-list <VAR>name</VAR> [in|out]</B> <I>{}</I>
<DD><A NAME="IDX396"></A>
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> route-map <VAR>name</VAR> [in|out]</B> <I>{}</I>
<DD><A NAME="IDX397"></A>
Apply a route-map on the neighbor.  <VAR>direct</VAR> must be <CODE>in</CODE> or
<CODE>out</CODE>.
</DL>




<H2><A NAME="SEC78" HREF="zebra_toc.html#TOC78">BGP Peer Group</A></H2>

<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>word</VAR> peer-group</B> <I>{}</I>
<DD><A NAME="IDX398"></A>
This command defines a new peer group.
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> peer-group <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX399"></A>
This command bind specific peer to peer group <VAR>word</VAR>.
</DL>




<H2><A NAME="SEC79" HREF="zebra_toc.html#TOC79">BGP Address Family</A></H2>



<H2><A NAME="SEC80" HREF="zebra_toc.html#TOC80">Autonomous System</A></H2>

<P>
  AS (Autonomous System) is one of the essential element of BGP.  BGP
is a distance vector routing protocol.  AS framework provides distance
vector metric and loop detection to BGP.  And also AS can provide
policy routing by AS path prepend.  <CODE>RFC1930</CODE> - <CITE>Guidelines
for creation, selection, and registration of an Autonomous System
(AS)</CITE> describes how to use AS.


<P>
  AS number is tow octet.  It's value range is from 1 to 65535.  AS
numbers 64512 through 65535 are defined as private AS numbers.
Private AS numbers must not to be advertised in the global Internet.




<H3><A NAME="SEC81" HREF="zebra_toc.html#TOC81">AS Path Regular Expression</A></H3>

<P>
  AS path regular expression can be used for displaying BGP routes and
AS path access list.  AS path regular expression is based on
<CODE>POSIX 1003.2</CODE> regular expressions.  Following description is
just a subset of <CODE>POSIX</CODE> regular expression.  User can use full
<CODE>POSIX</CODE> regular expression.  Adding to that special character '_'
is added for AS path regular expression.


<DL COMPACT>

<DT><CODE>.</CODE>
<DD>
Matches any single character.
<DT><CODE>*</CODE>
<DD>
Matches 0 or more occurrences of pattern.
<DT><CODE>+</CODE>
<DD>
Matches 1 or more occurrences of pattern.
<DT><CODE>?</CODE>
<DD>
Match 0 or 1 occurrences of pattern.
<DT><CODE>^</CODE>
<DD>
Matches the beginning of the line.
<DT><CODE>$</CODE>
<DD>
Matches the end of the line.
<DT><CODE>_</CODE>
<DD>
Character <CODE>_</CODE> has special meanings in AS path regular expression.
It matches to space and comma , and AS set delimiter { and } and AS
confederation delimiter <CODE>(</CODE> and <CODE>)</CODE>.  And it also matches to
the beginning of the line and the end of the line.
</DL>



<H3><A NAME="SEC82" HREF="zebra_toc.html#TOC82">Display BGP Routes by AS Path</A></H3>

<P>
  To show BGP routes which has specific AS path information <CODE>show
ip bgp</CODE> command can be used.  


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp regexp <VAR>line</VAR></B> <I>{}</I>
<DD><A NAME="IDX400"></A>
This commands display BGP routes that matches AS path regular
expression <VAR>line</VAR>.
</DL>




<H3><A NAME="SEC83" HREF="zebra_toc.html#TOC83">AS Path Access List</A></H3>

<P>
  AS path access list is user defined AS path.


<P>
<DL>
<DT><U>Command:</U> <B>ip as-path access-list <VAR>word</VAR> {permit|deny} <VAR>line</VAR></B> <I>{}</I>
<DD><A NAME="IDX401"></A>
This command defines a new AS path access list.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no ip as-path access-list <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX402"></A>
<DT><U>Command:</U> <B>no ip as-path access-list <VAR>word</VAR> {permit|deny} <VAR>line</VAR></B> <I>{}</I>
<DD><A NAME="IDX403"></A>
</DL>




<H3><A NAME="SEC84" HREF="zebra_toc.html#TOC84">Using AS Path in Route Map</A></H3>

<P>
<DL>
<DT><U>Route Map:</U> <B>match as-path <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX404"></A>
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set as-path prepend <VAR>as-path</VAR></B> <I>{}</I>
<DD><A NAME="IDX405"></A>
</DL>




<H3><A NAME="SEC85" HREF="zebra_toc.html#TOC85">Private AS Numbers</A></H3>



<H2><A NAME="SEC86" HREF="zebra_toc.html#TOC86">BGP Communities Attribute</A></H2>

<P>
  BGP communities attribute is widely used for implementing policy
routing.  Network operators can manipulate BGP communities attribute
based on their network policy.  BGP communities attribute is defined
in <CODE>RFC1997</CODE> - <CITE>BGP Communities Attribute</CITE> and
<CODE>RFC1998</CODE> - <CITE>An Application of the BGP Community Attribute
in Multi-home Routing</CITE>.  It is an optional transitive attribute,
therefore local policy can travel through different autonomous system.


<P>
  Communities attribute is a set of communities values.  Each
communities value is 4 octet long.  The following format is used to
define communities value.


<DL COMPACT>

<DT><CODE>AS:VAL</CODE>
<DD>
This format represents 4 octet communities value.  <CODE>AS</CODE> is high
order 2 octet in digit format.  <CODE>VAL</CODE> is low order 2 octet in
digit format.  This format is useful to define AS oriented policy
value.  For example, <CODE>7675:80</CODE> can be used when AS 7675 wants to
pass local policy value 80 to neighboring peer.
<DT><CODE>internet</CODE>
<DD>
<CODE>internet</CODE> represents well-known communities value 0.
<DT><CODE>no-export</CODE>
<DD>
<CODE>no-export</CODE> represents well-known communities value <CODE>NO_EXPORT</CODE><BR>
(0xFFFFFF01).  All routes carry this value must not be advertised
to outside a BGP confederation boundary.  If neighboring BGP peer is
part of BGP confederation, the peer is considered as inside a BGP
confederation boundary, so the route will be announced to the peer.
<DT><CODE>no-advertise</CODE>
<DD>
<CODE>no-advertise</CODE> represents well-known communities value
<CODE>NO_ADVERTISE</CODE><BR>(0xFFFFFF02).  All routes carry this value
must not be advertise to other BGP peers.
<DT><CODE>local-AS</CODE>
<DD>
<CODE>local-AS</CODE> represents well-known communities value
<CODE>NO_EXPORT_SUBCONFED</CODE> (0xFFFFFF03).  All routes carry this
value must not be advertised to external BGP peers.  Even if the
neighboring router is part of confederation, it is considered as
external BGP peer, so the route will not be announced to the peer.
</DL>

<P>
  When BGP communities attribute is received, duplicated communities
value in the communities attribute is ignored and each communities
values are sorted in numerical order.
  




<H3><A NAME="SEC87" HREF="zebra_toc.html#TOC87">BGP Community Lists</A></H3>

<P>
  Community-list is a user defined BGP communites attribute list.
Community-list can be used for matching or manipulating BGP
communities attribute in BGP updates.


<P>
  There are two types of community-list.  One is standard
community-list and another is expanded community-list.  Standard
community-list defines communities attribute.  Expanded community-list
defines communities attribute string with regular expression.
Standard community-list is compiled into binary format when user
define it.  Standard community-list will be directly compared to BGP
communities attribute in BGP updates.  Therefore the comparison is
faster than expanded community-list.


<P>
<DL>
<DT><U>Command:</U> <B>ip community-list standard <VAR>name</VAR> {permit|deny} <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX406"></A>
This command defines a new standard community-list.  <VAR>community</VAR>
is communities value.  The <VAR>community</VAR> is compiled into community
structure.  We can define multiple community-list under same name.  In
that case match will happen user defined order.  Once the
community-list matches to communities attribute in BGP updates it
return permit or deny by the community-list definition.  When there is
no matched entry, deny will be returned.  When <VAR>community</VAR> is
empty it matches to any routes.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>ip community-list expanded <VAR>name</VAR> {permit|deny} <VAR>line</VAR></B> <I>{}</I>
<DD><A NAME="IDX407"></A>
This command defines a new expanded community-list.  <VAR>line</VAR> is a
string expression of communities attribute.  <VAR>line</VAR> can include
regular expression to match communities attribute in BGP updates.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no ip community-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX408"></A>
<DT><U>Command:</U> <B>no ip community-list standard <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX409"></A>
<DT><U>Command:</U> <B>no ip community-list expanded <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX410"></A>
These commands delete community lists specified by <VAR>name</VAR>.  All of
community lists shares a single name space.  So community lists can be
removed simpley specifying community lists name.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip community-list</B> <I>{}</I>
<DD><A NAME="IDX411"></A>
<DT><U>Command:</U> <B>show ip community-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX412"></A>
This command display current community-list information.  When
<VAR>name</VAR> is specified the specified community list's information is
shown.



<PRE>
# show ip community-list 
Named Community standard list CLIST
    permit 7675:80 7675:100 no-export
    deny internet
Named Community expanded list EXPAND
    permit :

# show ip community-list CLIST
Named Community standard list CLIST
    permit 7675:80 7675:100 no-export
    deny internet
</PRE>

</DL>



<H3><A NAME="SEC88" HREF="zebra_toc.html#TOC88">Numbered BGP Community Lists</A></H3>

<P>
  When number is used for BGP community lists name, the number has
special meanings.  Community list number in the range from 1 and 99 is
standard community-list.  Community list number in the range from 100
to 199 is expanded community-list.  These community lists are called
as numbered community lists.  On the other hand normal community lists
is called as named community lists.


<P>
<DL>
<DT><U>Command:</U> <B>ip community-list &#60;1-99&#62; {permit|deny} <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX413"></A>
This command defines a new community-list.  &#60;1-99&#62; is standard
community-list number.  Community-list name within this range defines
standard community list.  When <VAR>community</VAR> is empty it matches to
any routes.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>ip community-list &#60;100-199&#62; {permit|deny} <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX414"></A>
This command defines a new community-list.  &#60;100-199&#62; is expanded
community-list number.  Community-list name within this range defines
expanded community list.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>ip community-list <VAR>name</VAR> {permit|deny} <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX415"></A>
When community list type is not specifed, the community list type is
automatically detected.  If <VAR>community</VAR> can be compiled into
communities attribute, the community list is defined as a standard
community list.  Otherwise it is defined as an expanded community
list.  This feature is left for backward compability.  Use of this
feature is not recommended.
</DL>




<H3><A NAME="SEC89" HREF="zebra_toc.html#TOC89">BGP Community in Route Map</A></H3>

<P>
  In Route Map (see section <A HREF="zebra.html#SEC115">Route Map</A>), we can match or set BGP
communities attribute.  Using this feature network operator can
implement their network policy based on BGP communities attribute.


<P>
  Following commands can be used in Route Map.


<P>
<DL>
<DT><U>Route Map:</U> <B>match community <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX416"></A>
<DT><U>Route Map:</U> <B>match community <VAR>word</VAR> exact-match</B> <I>{}</I>
<DD><A NAME="IDX417"></A>
This command perform match to BGP updates using community list
<VAR>word</VAR>.  When the one of BGP communities value match to the one of
communities value in community list, it is match.  When
<CODE>exact-match</CODE> keyword is spcified, match happen only when BGP
updates have completely same communities value specified in the
community list.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set community none</B> <I>{}</I>
<DD><A NAME="IDX418"></A>
<DT><U>Route Map:</U> <B>set community <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX419"></A>
<DT><U>Route Map:</U> <B>set community <VAR>community</VAR> additive</B> <I>{}</I>
<DD><A NAME="IDX420"></A>
This command manipulate communities value in BGP updates.  When
<CODE>none</CODE> is specified as communities value, it removes entire
communities attribute from BGP updates.  When <VAR>community</VAR> is not
<CODE>none</CODE>, specified communities value is set to BGP updates.  If
BGP updates already has BGP communities value, the existing BGP
communities value is replaced with specified <VAR>community</VAR> value.
When <CODE>additive</CODE> keyword is specified, <VAR>community</VAR> is appended
to the existing communities value.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set comm-list <VAR>word</VAR> delete</B> <I>{}</I>
<DD><A NAME="IDX421"></A>
This command remove communities value from BGP communities attribute.
The <VAR>word</VAR> is community list name.  When BGP route's communities
value matches to the community list <VAR>word</VAR>, the communities value
is removed.  When all of communities value is removed eventually, the
BGP update's communities attribute is completely removed.
</DL>




<H3><A NAME="SEC90" HREF="zebra_toc.html#TOC90">Display BGP Routes by Community</A></H3>

<P>
  To show BGP routes which has specific BGP communities attribute,
<CODE>show ip bgp</CODE> command can be used.  The <VAR>community</VAR> value and
community list can be used for <CODE>show ip bgp</CODE> command.


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp community <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX422"></A>
<DT><U>Command:</U> <B>show ip bgp community <VAR>community</VAR> exact-match</B> <I>{}</I>
<DD><A NAME="IDX423"></A>
This commands display BGP routes that matches <VAR>community</VAR> value.
For this command, <CODE>internet</CODE> keyword can't be used for
<VAR>community</VAR> value.  When <CODE>exact-match</CODE> is specified, it
display only routes that have an exact match.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp community-list <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX424"></A>
<DT><U>Command:</U> <B>show ip bgp community-list <VAR>word</VAR> exact-match</B> <I>{}</I>
<DD><A NAME="IDX425"></A>
This commands display BGP routes that matches community list
<VAR>word</VAR>.  When <CODE>exact-match</CODE> is specified, display only routes
that have an exact match.
</DL>




<H3><A NAME="SEC91" HREF="zebra_toc.html#TOC91">Using BGP Communities Attribute</A></H3>

<P>
  Following configuration is the most typical usage of BGP communities
attribute.  AS 7675 provides upstream Internet connection to AS 100.
When following configuration exists in AS 7675, AS 100 networks
operator can set local preference in AS 7675 network by setting BGP
communities attribute to the updates.



<PRE>
router bgp 7675
 neighbor 192.168.0.1 remote-as 100
 neighbor 192.168.0.1 route-map RMAP in
!
ip community-list 70 permit 7675:70
ip community-list 70 deny
ip community-list 80 permit 7675:80
ip community-list 80 deny
ip community-list 90 permit 7675:90
ip community-list 90 deny
!
route-map RMAP permit 10
 match community 70
 set local-preference 70
!
route-map RMAP permit 20
 match community 80
 set local-preference 80
!
route-map RMAP permit 30
 match community 90
 set local-preference 90
</PRE>

<P>
  Following configuration announce 10.0.0.0/8 from AS 100 to AS 7675.
The route has communities value 7675:80 so when above configuration
exists in AS 7675, announced route's local preference will be set to
value 80.



<PRE>
router bgp 100
 network 10.0.0.0/8
 neighbor 192.168.0.2 remote-as 7675
 neighbor 192.168.0.2 route-map RMAP out
!
ip prefix-list PLIST permit 10.0.0.0/8
!
route-map RMAP permit 10
 match ip address prefix-list PLIST
 set community 7675:80
</PRE>

<P>
  Following configuration is an example of BGP route filtering using
communities attribute.  This configuration only permit BGP routes
which has BGP communities value 0:80 or 0:90.  Network operator can
put special internal communities value at BGP border router, then
limit the BGP routes announcement into the internal network.



<PRE>
router bgp 7675
 neighbor 192.168.0.1 remote-as 100
 neighbor 192.168.0.1 route-map RMAP in
!
ip community-list 1 permit 0:80 0:90
!
route-map RMAP permit in
 match community 1
</PRE>

<P>
  Following exmaple filter BGP routes which has communities value 1:1.
When there is no match community-list returns deny.  To avoid
filtering all of routes, we need to define permit any at last.



<PRE>
router bgp 7675
 neighbor 192.168.0.1 remote-as 100
 neighbor 192.168.0.1 route-map RMAP in
!
ip community-list standard FILTER deny 1:1
ip community-list standard FILTER permit
!
route-map RMAP permit 10
 match community FILTER
</PRE>

<P>
  Communities value keyword <CODE>internet</CODE> has special meanings in
standard community lists.  In below example <CODE>internet</CODE> act as
match any.  It matches all of BGP routes even if the route does not
have communities attribute at all.  So community list <CODE>INTERNET</CODE>
is same as above example's <CODE>FILTER</CODE>.



<PRE>
ip community-list standard INTERNET deny 1:1
ip community-list standard INTERNET permit internet
</PRE>

<P>
  Following configuration is an example of communities value deletion.
With this configuration communities value 100:1 and 100:2 is removed
from BGP updates.  For communities value deletion, only <CODE>permit</CODE>
community-list is used.  <CODE>deny</CODE> community-list is ignored.



<PRE>
router bgp 7675
 neighbor 192.168.0.1 remote-as 100
 neighbor 192.168.0.1 route-map RMAP in
!
ip community-list standard DEL permit 100:1 100:2
!
route-map RMAP permit 10
 set comm-list DEL delete
</PRE>



<H2><A NAME="SEC92" HREF="zebra_toc.html#TOC92">BGP Extended Communities Attribute</A></H2>

<P>
  MPLS VPN/BGP provides VPN functionality by using MPLS network and
BGP protocol support.  MPLS VPN/BGP expands capability of network
infrastructure.  At the same time, it requires a new framework for
policy routing.  BGP Extended Communities Attribute is introduced for
that.  With BGP Extended Communities Attribute we can use Route Target
or Site of Origin for implementing policy routing.


<P>
  BGP Extended Communities Attribute is similar to BGP Communities
Attribute.  It is an optional transitive attribute.  BGP Extended
Communities Attribute can carry multiple Extended Community value.
Each Extended Community value is eight octet length.


<P>
  BGP Extended Communities Attribute provides an extended range
compared with BGP Communities Attribute.  Adding to that there is a
type field in each value to provides community space structure.


<P>
  There are two format to define Extended Community value.  One is AS
based format the other is IP address based format.


<DL COMPACT>

<DT><CODE>AS:VAL</CODE>
<DD>
This is a format to define AS based Extended Community value.
<CODE>AS</CODE> part is 2 octets Global Administrator subfield in Extended
Community value.  <CODE>VAL</CODE> part is 4 octets Local Administrator
subfield.  <CODE>7675:100</CODE> represents AS 7675 policy value 100.
<DT><CODE>IP-Address:VAL</CODE>
<DD>
This is a format to define IP address based Extended Community value.
<CODE>IP-Address</CODE> part is 4 octets Global Administrator subfield.
<CODE>VAL</CODE> part is 2 octets Local Administrator subfield.
<CODE>10.0.0.1:100</CODE> represents 
</DL>



<H3><A NAME="SEC93" HREF="zebra_toc.html#TOC93">BGP Extended Community Lists</A></H3>

<P>
  Expanded Community Lists is a user defined BGP Expanded Community
Lists.


<P>
<DL>
<DT><U>Command:</U> <B>ip extcommunity-list standard <VAR>name</VAR> {permit|deny} <VAR>extcommunity</VAR></B> <I>{}</I>
<DD><A NAME="IDX426"></A>
This command defines a new standard extcommunity-list.
<VAR>extcommunity</VAR> is extended communities value.  The
<VAR>extcommunity</VAR> is compiled into extended community structure.  We
can define multiple extcommunity-list under same name.  In that case
match will happen user defined order.  Once the extcommunity-list
matches to extended communities attribute in BGP updates it return
permit or deny based upon the extcommunity-list definition.  When
there is no matched entry, deny will be returned.  When
<VAR>extcommunity</VAR> is empty it matches to any routes.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>ip extcommunity-list expanded <VAR>name</VAR> {permit|deny} <VAR>line</VAR></B> <I>{}</I>
<DD><A NAME="IDX427"></A>
This command defines a new expanded extcommunity-list.  <VAR>line</VAR> is
a string expression of extended communities attribute.  <VAR>line</VAR> can
include regular expression to match extended communities attribute in
BGP updates.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no ip extcommunity-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX428"></A>
<DT><U>Command:</U> <B>no ip extcommunity-list standard <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX429"></A>
<DT><U>Command:</U> <B>no ip extcommunity-list expanded <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX430"></A>
These commands delete extended community lists specified by
<VAR>name</VAR>.  All of extended community lists shares a single name
space.  So extended community lists can be removed simpley specifying
the name.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip extcommunity-list</B> <I>{}</I>
<DD><A NAME="IDX431"></A>
<DT><U>Command:</U> <B>show ip extcommunity-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX432"></A>
This command display current extcommunity-list information.  When
<VAR>name</VAR> is specified the community list's information is shown.



<PRE>
# show ip extcommunity-list 
</PRE>

</DL>



<H3><A NAME="SEC94" HREF="zebra_toc.html#TOC94">BGP Extended Communities in Route Map</A></H3>

<P>
<DL>
<DT><U>Route Map:</U> <B>match extcommunity <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX433"></A>
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set extcommunity rt <VAR>extcommunity</VAR></B> <I>{}</I>
<DD><A NAME="IDX434"></A>
This command set Route Target value.
</DL>


<P>
<DL>
<DT><U>Route Map:</U> <B>set extcommunity soo <VAR>extcommunity</VAR></B> <I>{}</I>
<DD><A NAME="IDX435"></A>
This command set Site of Origin value.
</DL>




<H2><A NAME="SEC95" HREF="zebra_toc.html#TOC95">Displaying BGP Routes</A></H2>



<H3><A NAME="SEC96" HREF="zebra_toc.html#TOC96">Show IP BGP</A></H3>

<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp</B> <I>{}</I>
<DD><A NAME="IDX436"></A>
<DT><U>Command:</U> <B>show ip bgp <VAR>A.B.C.D</VAR></B> <I>{}</I>
<DD><A NAME="IDX437"></A>
<DT><U>Command:</U> <B>show ip bgp <VAR>X:X::X:X</VAR></B> <I>{}</I>
<DD><A NAME="IDX438"></A>
This command displays BGP routes.  When no route is specified it
display all of IPv4 BGP routes.
</DL>



<PRE>
BGP table version is 0, local router ID is 10.1.1.1
Status codes: s suppressed, d damped, h history, * valid, &#62; best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*&#62; 1.1.1.1/32       0.0.0.0                  0         32768 i

Total number of prefixes 1
</PRE>



<H3><A NAME="SEC97" HREF="zebra_toc.html#TOC97">More Show IP BGP</A></H3>

<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp regexp <VAR>line</VAR></B> <I>{}</I>
<DD><A NAME="IDX439"></A>
This command display BGP routes using AS path regular expression (see section <A HREF="zebra.html#SEC82">Display BGP Routes by AS Path</A>).
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp community <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX440"></A>
<DT><U>Command:</U> <B>show ip bgp community <VAR>community</VAR> exact-match</B> <I>{}</I>
<DD><A NAME="IDX441"></A>
This command display BGP routes using <VAR>community</VAR> (see section <A HREF="zebra.html#SEC90">Display BGP Routes by Community</A>).
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp community-list <VAR>word</VAR></B> <I>{}</I>
<DD><A NAME="IDX442"></A>
<DT><U>Command:</U> <B>show ip bgp community-list <VAR>word</VAR> exact-match</B> <I>{}</I>
<DD><A NAME="IDX443"></A>
This command display BGP routes using community list (see section <A HREF="zebra.html#SEC90">Display BGP Routes by Community</A>).
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp summary</B> <I>{}</I>
<DD><A NAME="IDX444"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp neighbor [<VAR>peer</VAR>]</B> <I>{}</I>
<DD><A NAME="IDX445"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>clear ip bgp <VAR>peer</VAR></B> <I>{}</I>
<DD><A NAME="IDX446"></A>
Clear peers which have addresses of X.X.X.X
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>clear ip bgp <VAR>peer</VAR> soft in</B> <I>{}</I>
<DD><A NAME="IDX447"></A>
Clear peer using soft reconfiguration.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show debug</B> <I>{}</I>
<DD><A NAME="IDX448"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug event</B> <I>{}</I>
<DD><A NAME="IDX449"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug update</B> <I>{}</I>
<DD><A NAME="IDX450"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>debug keepalive</B> <I>{}</I>
<DD><A NAME="IDX451"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no debug event</B> <I>{}</I>
<DD><A NAME="IDX452"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no debug update</B> <I>{}</I>
<DD><A NAME="IDX453"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no debug keepalive</B> <I>{}</I>
<DD><A NAME="IDX454"></A>
</DL>




<H2><A NAME="SEC98" HREF="zebra_toc.html#TOC98">Capability Negotiation</A></H2>

<P>
  When adding IPv6 routing information exchange feature to BGP.  There
were some proposals.  @acronym{IETF} @acronym{IDR} working group finally
take a proposal called Multiprotocol Extension for BGP.  The
specification is described in RFC2283.  The protocol does not define new
protocols.  It defines new attributes to existing BGP.  When it is used
exchanging IPv6 routing information it is called BGP-4+.  When it is
used for exchanging multicast routing information it is called MBGP.


<P>
  @command{bgpd} supports Multiprotocol Extension for BGP.  So if remote peer
supports the protocol, @command{bgpd} can exchange IPv6 and/or multicast routing
information.


<P>
  Traditional BGP does not have the feature to detect remote peer's
capability whether it can handle other than IPv4 unicast routes.  This
is a big problem using Multiprotocol Extension for BGP to operational
network.  <CITE>draft-ietf-idr-bgp4-cap-neg-04.txt</CITE> is proposing a
feature called Capability Negotiation.  @command{bgpd} use this Capability
Negotiation to detect remote peer's capabilities.  If the peer is only
configured as IPv4 unicast neighbor, @command{bgpd} does not send these Capability
Negotiation packets.


<P>
  By default, Zebra will bring up peering with minimal common capability
for the both sides.  For example, local router has unicast and multicast 
capabilitie and remote router has unicast capability.  In this case,
the local router will establish the connection with unicast only capability.
When there are no common capabilities, Zebra sends Unsupported Capability
error and then resets the connection.


<P>
  If you want to completely match capabilities with remote peer.  Please
use @command{strict-capability-match} command.
  
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> strict-capability-match</B> <I>{}</I>
<DD><A NAME="IDX455"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> strict-capability-match</B> <I>{}</I>
<DD><A NAME="IDX456"></A>
Strictly compares remote capabilities and local capabilities.  If capabilities
are different, send Unsupported Capability error then reset connection.
</DL>


<P>
  You may want to disable sending Capability Negotiation OPEN message
optional parameter to the peer when remote peer does not implement
Capability Negotiation.  Please use @command{dont-capability-negotiate}
command to disable the feature.


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> dont-capability-negotiate</B> <I>{}</I>
<DD><A NAME="IDX457"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> dont-capability-negotiate</B> <I>{}</I>
<DD><A NAME="IDX458"></A>
Suppress sending Capability Negotiation as OPEN message optional
parameter to the peer.  This command only affects the peer is configured
other than IPv4 unicast configuration.
</DL>


<P>
  When remote peer does not have capability negotiation feature, remote
peer will not send any capabilities at all.  In that case, bgp configures
the peer with configured capabilities.


<P>
  You may prefer locally configured capabilities more than the negotiated
capabilities even though remote peer sends capabilities.  If the peer is
configured by @command{override-capability}, @command{bgpd} ignores received
capabilities then override negotiated capabilities with configured values.


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> override-capability</B> <I>{}</I>
<DD><A NAME="IDX459"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> override-capability</B> <I>{}</I>
<DD><A NAME="IDX460"></A>
Override the result of Capability Negotiation with local configuration.
Ignore remote peer's capability value.
</DL>




<H2><A NAME="SEC99" HREF="zebra_toc.html#TOC99">Route Reflector</A></H2>

<P>
<DL>
<DT><U>BGP:</U> <B>bgp cluster-id <VAR>a.b.c.d</VAR></B> <I>{}</I>
<DD><A NAME="IDX461"></A>
</DL>


<P>
<DL>
<DT><U>BGP:</U> <B>neighbor <VAR>peer</VAR> route-reflector-client</B> <I>{}</I>
<DD><A NAME="IDX462"></A>
<DT><U>BGP:</U> <B>no neighbor <VAR>peer</VAR> route-reflector-client</B> <I>{}</I>
<DD><A NAME="IDX463"></A>
</DL>




<H2><A NAME="SEC100" HREF="zebra_toc.html#TOC100">Route Server</A></H2>

<P>
At an Internet Exchange point, many ISPs are connected to each other by
external BGP peering.  Normally these external BGP connection are done by
<CODE>full mesh</CODE> method.  As with internal BGP full mesh formation,
this method has a scaling problem.


<P>
This scaling problem is well known.  Route Server is a method to resolve
the problem.  Each ISP's BGP router only peers to Route Server.  Route
Server serves as BGP information exchange to other BGP routers.  By
applying this method, numbers of BGP connections is reduced from
O(n*(n-1)/2) to O(n).


<P>
Unlike normal BGP router, Route Server must have several routing tables
for managing different routing policies for each BGP speaker.  We call the
routing tables as different <CODE>view</CODE>s.  @command{bgpd} can work as
normal BGP router or Route Server or both at the same time.




<H3><A NAME="SEC101" HREF="zebra_toc.html#TOC101">Multiple instance</A></H3>

<P>
To enable multiple view function of <CODE>bgpd</CODE>, you must turn on
multiple instance feature beforehand.


<P>
<DL>
<DT><U>Command:</U> <B>bgp multiple-instance</B> <I>{}</I>
<DD><A NAME="IDX464"></A>
Enable BGP multiple instance feature.  After this feature is enabled,
you can make multiple BGP instances or multiple BGP views.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no bgp multiple-instance</B> <I>{}</I>
<DD><A NAME="IDX465"></A>
Disable BGP multiple instance feature.  You can not disable this feature
when BGP multiple instances or views exist.
</DL>


<P>
When you want to make configuration more Cisco like one, 


<P>
<DL>
<DT><U>Command:</U> <B>bgp config-type cisco</B> <I>{}</I>
<DD><A NAME="IDX466"></A>
Cisco compatible BGP configuration output.
</DL>


<P>
When bgp config-type cisco is specified, 


<P>
"no synchronization" is displayed.
"no auto-summary" is desplayed.


<P>
"network" and "aggregate-address" argument is displayed as
"A.B.C.D M.M.M.M"


<P>
Zebra: network 10.0.0.0/8
Cisco: network 10.0.0.0


<P>
Zebra: aggregate-address 192.168.0.0/24
Cisco: aggregate-address 192.168.0.0 255.255.255.0


<P>
Community attribute handling is also different.  If there is no
configuration is specified community attribute and extended community
attribute are sent to neighbor.  When user manually disable the
feature community attribute is not sent to the neighbor.  In case of
"bgp config-type cisco" is specified, community attribute is not
sent to the neighbor by default.  To send community attribute user has
to specify "neighbor A.B.C.D send-community" command.


<P>
!
router bgp 1
 neighbor 10.0.0.1 remote-as 1
 no neighbor 10.0.0.1 send-community
!


<P>
!
router bgp 1
 neighbor 10.0.0.1 remote-as 1
 neighbor 10.0.0.1 send-community
!


<P>
<DL>
<DT><U>Command:</U> <B>bgp config-type zebra</B> <I>{}</I>
<DD><A NAME="IDX467"></A>
Zebra style BGP configuration.  This is default.
</DL>




<H3><A NAME="SEC102" HREF="zebra_toc.html#TOC102">BGP instance and view</A></H3>

<P>
BGP instance is a normal BGP process.  The result of route selection
goes to the kernel routing table.  You can setup different AS at the
same time when BGP multiple instance feature is enabled.


<P>
<DL>
<DT><U>Command:</U> <B>router bgp <VAR>as-number</VAR></B> <I>{}</I>
<DD><A NAME="IDX468"></A>
Make a new BGP instance.  You can use arbitrary word for the <VAR>name</VAR>.
</DL>



<PRE>
bgp multiple-instance
!
router bgp 1
 neighbor 10.0.0.1 remote-as 2
 neighbor 10.0.0.2 remote-as 3
!
router bgp 2
 neighbor 10.0.0.3 remote-as 4
 neighbor 10.0.0.4 remote-as 5
</PRE>

<P>
BGP view is almost same as normal BGP process. The result of
route selection does not go to the kernel routing table.  BGP view is
only for exchanging BGP routing information.


<P>
<DL>
<DT><U>Command:</U> <B>router bgp <VAR>as-number</VAR> view <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX469"></A>
Make a new BGP view.  You can use arbitrary word for the <VAR>name</VAR>.  This
view's route selection result does not go to the kernel routing table.
</DL>


<P>
With this command, you can setup Route Server like below.



<PRE>
bgp multiple-instance
!
router bgp 1 view 1
 neighbor 10.0.0.1 remote-as 2
 neighbor 10.0.0.2 remote-as 3
!
router bgp 2 view 2
 neighbor 10.0.0.3 remote-as 4
 neighbor 10.0.0.4 remote-as 5
</PRE>



<H3><A NAME="SEC103" HREF="zebra_toc.html#TOC103">Routing policy</A></H3>

<P>
You can set different routing policy for a peer.  For example, you can
set different filter for a peer.



<PRE>
bgp multiple-instance
!
router bgp 1 view 1
 neighbor 10.0.0.1 remote-as 2
 neighbor 10.0.0.1 distribute-list 1 in
!
router bgp 1 view 2
 neighbor 10.0.0.1 remote-as 2
 neighbor 10.0.0.1 distribute-list 2 in
</PRE>

<P>
This means BGP update from a peer 10.0.0.1 goes to both BGP view 1 and view
2.  When the update is inserted into view 1, distribute-list 1 is
applied.  On the other hand, when the update is inserted into view 2,
distribute-list 2 is applied.




<H3><A NAME="SEC104" HREF="zebra_toc.html#TOC104">Viewing the view</A></H3>

<P>
To display routing table of BGP view, you must specify view name.


<P>
<DL>
<DT><U>Command:</U> <B>show ip bgp view <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX470"></A>
Display routing table of BGP view <VAR>name</VAR>.
</DL>




<H2><A NAME="SEC105" HREF="zebra_toc.html#TOC105">How to set up a 6-Bone connection</A></H2>


<PRE>
zebra configuration 
=================== 
!  
! Actually there is no need to configure zebra 
!

bgpd configuration
==================
!
! This means that routes go through zebra and into the kernel.
!
router zebra
!
! MP-BGP configuration
!
router bgp 7675
 bgp router-id 10.0.0.1
 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 remote-as <VAR>as-number</VAR>
!
 address-family ipv6
 network 3ffe:506::/32
 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 activate
 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 route-map set-nexthop out
 neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 remote-as <VAR>as-number</VAR>
 neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 route-map set-nexthop out
 exit-address-family
!
ipv6 access-list all permit any
!
! Set output nexthop address.
!
route-map set-nexthop permit 10
 match ipv6 address all
 set ipv6 nexthop global 3ffe:1cfa:0:2:2c0:4fff:fe68:a225
 set ipv6 nexthop local fe80::2c0:4fff:fe68:a225
!
! logfile FILENAME is obsolete.  Please use log file FILENAME
!
log file bgpd.log
!
</PRE>



<H2><A NAME="SEC106" HREF="zebra_toc.html#TOC106">Dump BGP packets and table</A></H2>

<P>
<DL>
<DT><U>Command:</U> <B>dump bgp all <VAR>path</VAR></B> <I>{}</I>
<DD><A NAME="IDX471"></A>
<DT><U>Command:</U> <B>dump bgp all <VAR>path</VAR> <VAR>interval</VAR></B> <I>{}</I>
<DD><A NAME="IDX472"></A>
Dump all BGP packet and events to <VAR>path</VAR> file.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>dump bgp updates <VAR>path</VAR></B> <I>{}</I>
<DD><A NAME="IDX473"></A>
<DT><U>Command:</U> <B>dump bgp updates <VAR>path</VAR> <VAR>interval</VAR></B> <I>{}</I>
<DD><A NAME="IDX474"></A>
Dump BGP updates to <VAR>path</VAR> file.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>dump bgp routes <VAR>path</VAR></B> <I>{}</I>
<DD><A NAME="IDX475"></A>
<DT><U>Command:</U> <B>dump bgp routes <VAR>path</VAR></B> <I>{}</I>
<DD><A NAME="IDX476"></A>
Dump whole BGP routing table to <VAR>path</VAR>.  This is heavy process.
</DL>


<H1><A NAME="SEC107" HREF="zebra_toc.html#TOC107">VTY shell</A></H1>

<P>
@command{vtysh} is integrated shell of Zebra software.


<P>
To use vtysh please specify --enable-vtysh to configure script.  To use
PAM for authentication use --with-libpam option to configure script.


<P>
vtysh only searches /usr/local/etc path for vtysh.conf which
is the vtysh configuration file.  Vtysh does not search current
directory for configuration file because the file includes user
authentication settings.


<P>
Currently, vtysh.conf has only one command.



<PRE>
!
username foo nopassword
!
</PRE>

<P>
With this set, user foo does not need password authentication for user vtysh.
With PAM vtysh uses PAM authentication mechanism.


<P>
If vtysh is compiled without PAM authentication, every user can use vtysh
without authentication.


<H1><A NAME="SEC108" HREF="zebra_toc.html#TOC108">Filtering</A></H1>

<P>
Zebra provides many very flexible filtering features.  Filtering is used
for both input and output of the routing information.  Once filtering is
defined, it can be applied in any direction.




<H3><A NAME="SEC109" HREF="zebra_toc.html#TOC109">IP Access List</A></H3>

<P>
<DL>
<DT><U>Command:</U> <B>access-list <VAR>name</VAR> permit <VAR>ipv4-network</VAR></B> <I>{}</I>
<DD><A NAME="IDX477"></A>
<DT><U>Command:</U> <B>access-list <VAR>name</VAR> deny <VAR>ipv4-network</VAR></B> <I>{}</I>
<DD><A NAME="IDX478"></A>
</DL>


<P>
Basic filtering is done by <CODE>access-list</CODE> as shown in the
following example.



<PRE>
access-list filter deny 10.0.0.0/9
access-list filter permit 10.0.0.0/8
</PRE>



<H3><A NAME="SEC110" HREF="zebra_toc.html#TOC110">IP Prefix List</A></H3>

<P>
@command{ip prefix-list} provides the most powerful prefix based
filtering mechanism.  In addition to @command{access-list} functionality,
@command{ip prefix-list} has prefix length range specification and
sequential number specification.  You can add or delete prefix based
filters to arbitrary points of prefix-list using sequential number specification.


<P>
If no ip prefix-list is specified, it acts as permit.  If @command{ip prefix-list} 
is defined, and no match is found, default deny is applied.


<P>
<DL>
<DT><U>Command:</U> <B>ip prefix-list <VAR>name</VAR> (permit|deny) <VAR>prefix</VAR> [le <VAR>len</VAR>] [ge <VAR>len</VAR>]</B> <I>{}</I>
<DD><A NAME="IDX479"></A>
<DT><U>Command:</U> <B>ip prefix-list <VAR>name</VAR> seq <VAR>number</VAR> (permit|deny) <VAR>prefix</VAR> [le <VAR>len</VAR>] [ge <VAR>len</VAR>]</B> <I>{}</I>
<DD><A NAME="IDX480"></A>


<P>
You can create @command{ip prefix-list} using above commands.


<DL COMPACT>

<DT>seq
<DD>
seq <VAR>number</VAR> can be set either automatically or manually.  In the
case that sequential numbers are set manually, the user may pick any
number less than 4294967295.  In the case that sequential number are set
automatically, the sequential number will increase by a unit of five (5)
per list.  If a list with no specified sequential number is created
after a list with a specified sequential number, the list will
automatically pick the next multiple of five (5) as the list number.
For example, if a list with number 2 already exists and a new list with
no specified number is created, the next list will be numbered 5.  If
lists 2 and 7 already exist and a new list with no specified number is
created, the new list will be numbered 10.

<DT>le
<DD>
@command{le} command specifies prefix length.  The prefix list will be 
applied if the prefix length is less than or equal to the le prefix length.

<DT>ge
<DD>
@command{ge} command specifies prefix length.  The prefix list will be 
applied if the prefix length is greater than or equal to the ge prefix length.

</DL>

</DL>

<P>
Less than or equal to prefix numbers and greater than or equal to
prefix numbers can be used together.  The order of the le and ge
commands does not matter.


<P>
If a prefix list with a different sequential number but with the exact
same rules as a previous list is created, an error will result.
However, in the case that the sequential number and the rules are
exactly similar, no error will result.


<P>
If a list with the same sequential number as a previous list is created,
the new list will overwrite the old list.


<P>
Matching of IP Prefix is performed from the smaller sequential number to the
larger.  The matching will stop once any rule has been applied.


<P>
In the case of no le or ge command, 


<P>
Version 0.85: the matching rule will apply to all prefix lengths that
matched the prefix list.


<P>
Version 0.86 or later: In the case of no le or ge command, the prefix
length must match exactly the length specified in the prefix list.


<P>
<DL>
<DT><U>Command:</U> <B>no ip prefix-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX481"></A>
</DL>




<H4><A NAME="SEC111" HREF="zebra_toc.html#TOC111">ip prefix-list description</A></H4>

<P>
<DL>
<DT><U>Command:</U> <B>ip prefix-list <VAR>name</VAR> description <VAR>desc</VAR></B> <I>{}</I>
<DD><A NAME="IDX482"></A>
Descriptions may be added to prefix lists.  This command adds a
description to the prefix list.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no ip prefix-list <VAR>name</VAR> description [<VAR>desc</VAR>]</B> <I>{}</I>
<DD><A NAME="IDX483"></A>
Deletes the description from a prefix list.  It is possible to use the
command without the full description.
</DL>




<H4><A NAME="SEC112" HREF="zebra_toc.html#TOC112">ip prefix-list sequential number control</A></H4>

<P>
<DL>
<DT><U>Command:</U> <B>ip prefix-list sequence-number</B> <I>{}</I>
<DD><A NAME="IDX484"></A>
With this command, the IP prefix list sequential number is displayed.
This is the default behavior.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>no ip prefix-list sequence-number</B> <I>{}</I>
<DD><A NAME="IDX485"></A>
With this command, the IP prefix list sequential number is not
displayed.
</DL>




<H4><A NAME="SEC113" HREF="zebra_toc.html#TOC113">Showing ip prefix-list</A></H4>

<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list</B> <I>{}</I>
<DD><A NAME="IDX486"></A>
Display all IP prefix lists.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX487"></A>
Show IP prefix list can be used with a prefix list name.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list <VAR>name</VAR> seq <VAR>num</VAR></B> <I>{}</I>
<DD><A NAME="IDX488"></A>
Show IP prefix list can be used with a prefix list name and sequential
number.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX489"></A>
If the command longer is used, all prefix lists with prefix lengths equal to
or longer than the specified length will be displayed.
If the command first match is used, the first prefix length match will be
displayed.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR> longer</B> <I>{}</I>
<DD><A NAME="IDX490"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR> first-match</B> <I>{}</I>
<DD><A NAME="IDX491"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list summary</B> <I>{}</I>
<DD><A NAME="IDX492"></A>
</DL>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list summary <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX493"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list detail</B> <I>{}</I>
<DD><A NAME="IDX494"></A>
</DL>
<DL>
<DT><U>Command:</U> <B>show ip prefix-list detail <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX495"></A>
</DL>




<H4><A NAME="SEC114" HREF="zebra_toc.html#TOC114">Clear counter of ip prefix-list</A></H4>

<P>
<DL>
<DT><U>Command:</U> <B>clear ip prefix-list</B> <I>{}</I>
<DD><A NAME="IDX496"></A>
Clears the counters of all IP prefix lists.  Clear IP Prefix List can be
used with a specified name and prefix.
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>clear ip prefix-list <VAR>name</VAR></B> <I>{}</I>
<DD><A NAME="IDX497"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>clear ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR></B> <I>{}</I>
<DD><A NAME="IDX498"></A>
</DL>




<H1><A NAME="SEC115" HREF="zebra_toc.html#TOC115">Route Map</A></H1>

<P>
Route map is a very useful function in zebra.  There is a match and set
statement permitted in a route map.



<PRE>
route-map test permit 10
 match ip address 10
 set local-preference 200
</PRE>

<P>
This means that if a route matches ip access-list number 10 it's
local-preference value is set to 200.




<H3><A NAME="SEC116" HREF="zebra_toc.html#TOC116">Route Map Command</A></H3>

<P>
<DL>
<DT><U>Command:</U> <B>route-map <VAR>route-map-name</VAR> permit <VAR>priority</VAR></B> <I>{}</I>
<DD><A NAME="IDX499"></A>
</DL>




<H3><A NAME="SEC117" HREF="zebra_toc.html#TOC117">Route Map Match Command</A></H3>

<P>
<DL>
<DT><U>Route-map Command:</U> <B>match ip address <VAR>access_list</VAR></B> <I>{}</I>
<DD><A NAME="IDX500"></A>
Matches the specified <VAR>access_list</VAR>
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>match ip next-hop <VAR>ipv4_addr</VAR></B> <I>{}</I>
<DD><A NAME="IDX501"></A>
Matches the specified <VAR>ipv4_addr</VAR>.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>match aspath <VAR>as_path</VAR></B> <I>{}</I>
<DD><A NAME="IDX502"></A>
Matches the specified <VAR>as_path</VAR>.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>match metric <VAR>metric</VAR></B> <I>{}</I>
<DD><A NAME="IDX503"></A>
Matches the specified <VAR>metric</VAR>.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>match community <VAR>community_list</VAR></B> <I>{}</I>
<DD><A NAME="IDX504"></A>
Matches the specified  <VAR>community_list</VAR>
</DL>




<H3><A NAME="SEC118" HREF="zebra_toc.html#TOC118">Route Map Set Command</A></H3>

<P>
<DL>
<DT><U>Route-map Command:</U> <B>set ip next-hop <VAR>ipv4_address</VAR></B> <I>{}</I>
<DD><A NAME="IDX505"></A>
Set the BGP nexthop address.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set local-preference <VAR>local_pref</VAR></B> <I>{}</I>
<DD><A NAME="IDX506"></A>
Set the BGP local preference.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set weight <VAR>weight</VAR></B> <I>{}</I>
<DD><A NAME="IDX507"></A>
Set the route's weight.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set metric <VAR>metric</VAR></B> <I>{}</I>
<DD><A NAME="IDX508"></A>
Set the BGP attribute MED.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set as-path prepend <VAR>as_path</VAR></B> <I>{}</I>
<DD><A NAME="IDX509"></A>
Set the BGP AS path to prepend.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set community <VAR>community</VAR></B> <I>{}</I>
<DD><A NAME="IDX510"></A>
Set the BGP community attribute.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set ipv6 next-hop global <VAR>ipv6_address</VAR></B> <I>{}</I>
<DD><A NAME="IDX511"></A>
Set the BGP-4+ global IPv6 nexthop address.
</DL>


<P>
<DL>
<DT><U>Route-map Command:</U> <B>set ipv6 next-hop local <VAR>ipv6_address</VAR></B> <I>{}</I>
<DD><A NAME="IDX512"></A>
Set the BGP-4+ link local IPv6 nexthop address.
</DL>




<H1><A NAME="SEC119" HREF="zebra_toc.html#TOC119">IPv6 Support</A></H1>

<P>
Zebra fully supports IPv6 routing.  As described so far, Zebra supports
RIPng, OSPFv3 and BGP-4+.  You can give IPv6 addresses to an interface
and configure static IPv6 routing information.  Zebra-IPv6 also provides
automatic address configuration via a feature called <CODE>address
auto configuration</CODE>.  To do it, the router must send router advertisement
messages to the all nodes that exist on the network.




<H2><A NAME="SEC120" HREF="zebra_toc.html#TOC120">Router Advertisement</A></H2>

<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 nd send-ra</B> <I>{}</I>
<DD><A NAME="IDX513"></A>
</DL>


<P>
<DL>
<DT><U>Interface Command:</U> <B>ipv6 nd prefix-advertisement <VAR>ipv6prefix</VAR></B> <I>{}</I>
<DD><A NAME="IDX514"></A>
</DL>



<PRE>
interface eth0
 ipv6 nd send-ra
 ipv6 nd prefix-advertisement 3ffe:506:5009::/64
</PRE>



<H1><A NAME="SEC121" HREF="zebra_toc.html#TOC121">Kernel Interface</A></H1>

<P>
There are several different methods for reading kernel routing table
information, updating kernel routing tables, and for looking up
interfaces.


<DL COMPACT>

<DT><SAMP>`ioctl'</SAMP>
<DD>
The <SAMP>`ioctl'</SAMP> method is a very traditional way for reading or writing
kernel information.  <SAMP>`ioctl'</SAMP> can be used for looking up interfaces
and for modifying interface addresses, flags, mtu settings and other
types of information.  Also, <SAMP>`ioctl'</SAMP> can insert and delete kernel
routing table entries.  It will soon be available on almost any platform
which zebra supports, but it is a little bit ugly thus far, so if a
better method is supported by the kernel, zebra will use that.

<DT><SAMP>`sysctl'</SAMP>
<DD>
<SAMP>`sysctl'</SAMP> can lookup kernel information using MIB (Management
Information Base) syntax.  Normally, it only provides a way of getting
information from the kernel.  So one would usually want to change kernel
information using another method such as <SAMP>`ioctl'</SAMP>.

<DT><SAMP>`proc filesystem'</SAMP>
<DD>
<SAMP>`proc filesystem'</SAMP> provides an easy way of getting kernel
information.

<DT><SAMP>`routing socket'</SAMP>
<DD>
<DT><SAMP>`netlink'</SAMP>
<DD>
On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
communication support called <CODE>netlink</CODE>.  It makes asynchronous
communication between kernel and Zebra possible, similar to a routing
socket on BSD systems.

Before you use this feature, be sure to select (in kernel configuration) 
the kernel/netlink support option 'Kernel/User network link driver' and 
'Routing messages'.

Today, the /dev/route special device file is obsolete.  Netlink
communication is done by reading/writing over netlink socket.

After the kernel configuration, please reconfigure and rebuild Zebra.
You can use netlink as a dynamic routing update channel between Zebra
and the kernel.
</DL>


<H1><A NAME="SEC122" HREF="zebra_toc.html#TOC122">SNMP Support</A></H1>

<P>
SNMP (Simple Network Managing Protocol) is widely implemented feature
for collecting network information from router and/or host.  Zebra
itself does not support SNMP agent functionality.  But conjuction with
SNMP agent, Zebra provides routing protocol MIBs.


<P>
Zebra uses SMUX protocol (RFC1227) for making communication with SNMP
agent.  There are several SNMP agent which support SMUX.  We recommend
to use the latest @command{ucd-snmp} software.  




<H2><A NAME="SEC123" HREF="zebra_toc.html#TOC123">How to get ucd-snmp</A></H2>

<P>
ucd-snmp is a free software which distributed so called "as is" software
license.  Please check the license which comes with distribution of
@command{ucd-snmp}.  The authors of ucd-snmp are the University of
California, the University of California at Davis, and the Electrical
Engineering department at the University of California at Davis.


<P>
You can get ucd-snmp from <A HREF="ftp://ucd-snmp.ucdavis.edu/">ftp://ucd-snmp.ucdavis.edu/</A>.  As of this
writing we are testing with @command{ucd-snmp-4.1.pre1.tar.gz}.


<P>
To enable SMUX protocol support, please configure @command{ucd-snmp}
like below.



<PRE>
% configure --with-mib-modules=smux
</PRE>

<P>
After compile and install @command{ucd-snmp}, you will need to configure
smuxpeer.  I'm now using configuration shown below.  This means SMUX client
connects to MIB 1.3.6.1.6.3.1 with password test.
  

<PRE>
/usr/local/share/snmp/snmpd.conf
================================
smuxpeer 1.3.6.1.6.3.1 test
</PRE>



<H2><A NAME="SEC124" HREF="zebra_toc.html#TOC124">SMUX configuration</A></H2>

<P>
To enable SNMP support of Zebra, you have to configure Zebra with
@command{--enable-snmp} (see section <A HREF="zebra.html#SEC10">Configure the Software</A>).


<P>
<DL>
<DT><U>Command:</U> <B>smux peer <VAR>oid</VAR></B> <I>{}</I>
<DD><A NAME="IDX515"></A>
<DT><U>Command:</U> <B>no smux peer <VAR>oid</VAR></B> <I>{}</I>
<DD><A NAME="IDX516"></A>
</DL>


<P>
<DL>
<DT><U>Command:</U> <B>smux peer <VAR>oid</VAR> <VAR>password</VAR></B> <I>{}</I>
<DD><A NAME="IDX517"></A>
<DT><U>Command:</U> <B>no smux peer <VAR>oid</VAR> <VAR>password</VAR></B> <I>{}</I>
<DD><A NAME="IDX518"></A>
</DL>



<PRE>
!
smux peer .1.3.6.1.6.3.1 test
!
</PRE>



<H1><A NAME="SEC125" HREF="zebra_toc.html#TOC125">Zebra Protocol</A></H1>

<P>
Zebra Protocol is a protocol which is used between protocol daemon and
zebra.  Each protocol daemon sends selected routes to zebra daemon.  Then
zebra manages which route is installed into the forwarding table.


<P>
Zebra Protocol is a TCP-based protocol.  Below is common header of Zebra
Protocol.



<PRE>
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Length (2)          |   Command (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
Length is total packet length including this header length.  So minimum
length is three.  Command is Zebra Protocol command.



<PRE>
ZEBRA_INTERFACE_ADD                1
ZEBRA_INTERFACE_DELETE             2
ZEBRA_INTERFACE_ADDRESS_ADD        3
ZEBRA_INTERFACE_ADDRESS_DELETE     4
ZEBRA_INTERFACE_UP                 5
ZEBRA_INTERFACE_DOWN               6
ZEBRA_IPV4_ROUTE_ADD               7
ZEBRA_IPV4_ROUTE_DELETE            8
ZEBRA_IPV6_ROUTE_ADD               9
ZEBRA_IPV6_ROUTE_DELETE           10
ZEBRA_REDISTRIBUTE_ADD            11
ZEBRA_REDISTRIBUTE_DELETE         12
ZEBRA_REDISTRIBUTE_DEFAULT_ADD    13
ZEBRA_REDISTRIBUTE_DEFAULT_DELETE 14
ZEBRA_IPV4_NEXTHOP_LOOKUP         15
ZEBRA_IPV6_NEXTHOP_LOOKUP         16
</PRE>


<PRE>
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |             Flags             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>



<H1><A NAME="SEC126" HREF="zebra_toc.html#TOC126">Packet Binary Dump Format</A></H1>

<P>
  Zebra can dump routing protocol packet into file with a binary format
(see section <A HREF="zebra.html#SEC106">Dump BGP packets and table</A>).


<P>
  It seems to be better that we share the MRT's header format for
backward compatibility with MRT's dump logs. We should also define the
binary format excluding the header, because we must support both IP
v4 and v6 addresses as socket addresses and / or routing entries.


<P>
  In the last meeting, we discussed to have a version field in the
header. But Masaki told us that we can define new `type' value rather
than having a `version' field, and it seems to be better because we
don't need to change header format.


<P>
  Here is the common header format. This is same as that of MRT.



<PRE>
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              Time                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |            Subtype            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Length                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
  If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
Address Family == IP (version 4)



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Source AS number       |     Destination AS number     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Interface Index        |      Address Family           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Old State          |           New State           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
Where State is the value defined in RFC1771.


<P>
If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE,
and Address Family == IP version 6



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Source AS number       |     Destination AS number     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Interface Index        |      Address Family           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address (Cont'd)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address (Cont'd)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address (Cont'd)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address (Cont'd)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address (Cont'd)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address (Cont'd)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Old State          |           New State           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE,
and Address Family == IP (version 4)



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Source AS number       |     Destination AS number     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Interface Index        |      Address Family           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       BGP Message Packet                      |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
Where BGP Message Packet is the whole contents of the
BGP4 message including header portion.


<P>
If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE,
and Address Family == IP version 6



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Source AS number       |     Destination AS number     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Interface Index        |      Address Family           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address (Cont'd)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address (Cont'd)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source IP address (Cont'd)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address (Cont'd)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address (Cont'd)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Destination IP address (Cont'd)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       BGP Message Packet                      |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY,
and Address Family == IP (version 4)



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            View #             |            Status             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Time Last Change                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Address Family          |    SAFI       | Next-Hop-Len  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Next Hop Address                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |             Address Prefix [variable]         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Attribute Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      BGP Attribute [variable length]    			|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY,
and Address Family == IP version 6



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            View #             |            Status             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Time Last Change                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Address Family          |    SAFI       | Next-Hop-Len  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Next Hop Address                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Next Hop Address (Cont'd)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Next Hop Address (Cont'd)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Next Hop Address (Cont'd)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |             Address Prefix [variable]         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Address Prefix (cont'd) [variable]        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Attribute Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      BGP Attribute [variable length]    			    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
	BGP4 Attribute must not contain MP_UNREACH_NLRI.
	If BGP Attribute has MP_REACH_NLRI field, it must has
	zero length NLRI, e.g., MP_REACH_NLRI has only Address
	Family, SAFI and next-hop values.


<P>
If `type' is PROTOCOL_BGP4MP and `subtype' is BGP4MP_SNAPSHOT,



<PRE>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           View #              |       File Name [variable]    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</PRE>

<P>
    The file specified in "File Name" contains all routing entries,
    which are in the format of "subtype == BGP4MP_ENTRY".



<PRE>
Constants:
  /* type value */
  #define MSG_PROTOCOL_BGP4MP 16
  /* subtype value */
  #define BGP4MP_STATE_CHANGE 0
  #define BGP4MP_MESSAGE 1
  #define BGP4MP_ENTRY 2
  #define BGP4MP_SNAPSHOT 3
</PRE>



<H1><A NAME="SEC127" HREF="zebra_toc.html#TOC127">Command Index</A></H1>

<P>
Jump to:
<A HREF="#findex_a">a</A>
-
<A HREF="#findex_b">b</A>
-
<A HREF="#findex_c">c</A>
-
<A HREF="#findex_d">d</A>
-
<A HREF="#findex_e">e</A>
-
<A HREF="#findex_f">f</A>
-
<A HREF="#findex_h">h</A>
-
<A HREF="#findex_i">i</A>
-
<A HREF="#findex_l">l</A>
-
<A HREF="#findex_m">m</A>
-
<A HREF="#findex_n">n</A>
-
<A HREF="#findex_o">o</A>
-
<A HREF="#findex_p">p</A>
-
<A HREF="#findex_r">r</A>
-
<A HREF="#findex_s">s</A>
-
<A HREF="#findex_t">t</A>
-
<A HREF="#findex_v">v</A>
-
<A HREF="#findex_w">w</A>
<P>
<H2><A NAME="findex_a">a</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX62">access-class <VAR>access-list</VAR></A>
<LI><A HREF="zebra.html#IDX478">access-list <VAR>name</VAR> deny <VAR>ipv4-network</VAR></A>
<LI><A HREF="zebra.html#IDX477">access-list <VAR>name</VAR> permit <VAR>ipv4-network</VAR></A>
<LI><A HREF="zebra.html#IDX361">aggregate-address <VAR>A.B.C.D/M</VAR></A>
<LI><A HREF="zebra.html#IDX362">aggregate-address <VAR>A.B.C.D/M</VAR> as-set</A>
<LI><A HREF="zebra.html#IDX363">aggregate-address <VAR>A.B.C.D/M</VAR> summary-only</A>
<LI><A HREF="zebra.html#IDX248">area &#60;0-4294967295&#62; authentication</A>
<LI><A HREF="zebra.html#IDX252">area &#60;0-4294967295&#62; authentication message-digest</A>
<LI><A HREF="zebra.html#IDX240">area &#60;0-4294967295&#62; export-list NAME</A>
<LI><A HREF="zebra.html#IDX244">area &#60;0-4294967295&#62; import-list NAME</A>
<LI><A HREF="zebra.html#IDX214">area &#60;0-4294967295&#62; range <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX226">area &#60;0-4294967295&#62; shortcut</A>
<LI><A HREF="zebra.html#IDX230">area &#60;0-4294967295&#62; stub</A>
<LI><A HREF="zebra.html#IDX234">area &#60;0-4294967295&#62; stub no-summary</A>
<LI><A HREF="zebra.html#IDX222">area &#60;0-4294967295&#62; virtual-link <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX247">area <VAR>a.b.c.d</VAR> authentication</A>
<LI><A HREF="zebra.html#IDX251">area <VAR>a.b.c.d</VAR> authentication message-digest</A>
<LI><A HREF="zebra.html#IDX237">area <VAR>a.b.c.d</VAR> default-cost &#60;0-16777215&#62;</A>
<LI><A HREF="zebra.html#IDX239">area <VAR>a.b.c.d</VAR> export-list NAME</A>
<LI><A HREF="zebra.html#IDX243">area <VAR>a.b.c.d</VAR> import-list NAME</A>
<LI><A HREF="zebra.html#IDX219">area <VAR>a.b.c.d</VAR> range IPV4_PREFIX substitute IPV4_PREFIX</A>
<LI><A HREF="zebra.html#IDX217">area <VAR>a.b.c.d</VAR> range IPV4_PREFIX suppress</A>
<LI><A HREF="zebra.html#IDX225">area <VAR>a.b.c.d</VAR> shortcut</A>
<LI><A HREF="zebra.html#IDX229">area <VAR>a.b.c.d</VAR> stub</A>
<LI><A HREF="zebra.html#IDX233">area <VAR>a.b.c.d</VAR> stub no-summary</A>
<LI><A HREF="zebra.html#IDX213">area <VAR>a.b.c.d</VAR> range <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX221">area <VAR>a.b.c.d</VAR> virtual-link <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX207">auto-cost refrence-bandwidth &#60;1-4294967&#62;</A>
</DIR>
<H2><A NAME="findex_b">b</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX94">bandwidth &#60;1-10000000&#62;</A>
<LI><A HREF="zebra.html#IDX57">banner motd default</A>
<LI><A HREF="zebra.html#IDX461">bgp cluster-id <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX466">bgp config-type cisco</A>
<LI><A HREF="zebra.html#IDX467">bgp config-type zebra</A>
<LI><A HREF="zebra.html#IDX464">bgp multiple-instance</A>
<LI><A HREF="zebra.html#IDX355">bgp router-id <VAR>A.B.C.D</VAR></A>
</DIR>
<H2><A NAME="findex_c">c</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX446">clear ip bgp <VAR>peer</VAR></A>
<LI><A HREF="zebra.html#IDX447">clear ip bgp <VAR>peer</VAR> soft in</A>
<LI><A HREF="zebra.html#IDX496">clear ip prefix-list</A>
<LI><A HREF="zebra.html#IDX497">clear ip prefix-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX498">clear ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX48">configure terminal</A>
</DIR>
<H2><A NAME="findex_d">d</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX449">debug event</A>
<LI><A HREF="zebra.html#IDX451">debug keepalive</A>
<LI><A HREF="zebra.html#IDX318">debug ospf ism</A>
<LI><A HREF="zebra.html#IDX319">debug ospf ism (status|events|timers)</A>
<LI><A HREF="zebra.html#IDX326">debug ospf lsa</A>
<LI><A HREF="zebra.html#IDX327">debug ospf lsa (generate|flooding|refresh)</A>
<LI><A HREF="zebra.html#IDX322">debug ospf nsm</A>
<LI><A HREF="zebra.html#IDX323">debug ospf nsm (status|events|timers)</A>
<LI><A HREF="zebra.html#IDX316">debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]</A>
<LI><A HREF="zebra.html#IDX330">debug ospf zebra</A>
<LI><A HREF="zebra.html#IDX331">debug ospf zebra (interface|redistribute)</A>
<LI><A HREF="zebra.html#IDX176">debug rip events</A>
<LI><A HREF="zebra.html#IDX177">debug rip packet</A>
<LI><A HREF="zebra.html#IDX178">debug rip zebra</A>
<LI><A HREF="zebra.html#IDX188">debug ripng events</A>
<LI><A HREF="zebra.html#IDX189">debug ripng packet</A>
<LI><A HREF="zebra.html#IDX190">debug ripng zebra</A>
<LI><A HREF="zebra.html#IDX450">debug update</A>
<LI><A HREF="zebra.html#IDX142">default-information originate</A>, <A HREF="zebra.html#IDX280">default-information originate</A>
<LI><A HREF="zebra.html#IDX284">default-information originate always</A>
<LI><A HREF="zebra.html#IDX285">default-information originate always metric &#60;0-16777214&#62;</A>
<LI><A HREF="zebra.html#IDX286">default-information originate always metric &#60;0-16777214&#62; metric-type (1|2)</A>
<LI><A HREF="zebra.html#IDX287">default-information originate always metric &#60;0-16777214&#62; metric-type (1|2) route-map <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX281">default-information originate metric &#60;0-16777214&#62;</A>
<LI><A HREF="zebra.html#IDX282">default-information originate metric &#60;0-16777214&#62; metric-type (1|2)</A>
<LI><A HREF="zebra.html#IDX283">default-information originate metric &#60;0-16777214&#62; metric-type (1|2) route-map <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX291">default-metric &#60;0-16777214&#62;</A>
<LI><A HREF="zebra.html#IDX147">default-metric &#60;1-16&#62;</A>
<LI><A HREF="zebra.html#IDX91">description <VAR>description</VAR> ...</A>
<LI><A HREF="zebra.html#IDX151">distance &#60;1-255&#62;</A>, <A HREF="zebra.html#IDX293">distance &#60;1-255&#62;</A>
<LI><A HREF="zebra.html#IDX153">distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR></A>, <A HREF="zebra.html#IDX357">distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR></A>
<LI><A HREF="zebra.html#IDX155">distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR> <VAR>access-list</VAR></A>
<LI><A HREF="zebra.html#IDX358">distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR> <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX356">distance bgp &#60;1-255&#62; &#60;1-255&#62; &#60;1-255&#62;</A>
<LI><A HREF="zebra.html#IDX295">distance ospf (intra-area|inter-area|external) &#60;1-255&#62;</A>
<LI><A HREF="zebra.html#IDX191">distribute-list <VAR>access_list</VAR> (in|out) <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX145">distribute-list <VAR>access_list</VAR> <VAR>direct</VAR> <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX289">distribute-list NAME out (kernel|connected|static|rip|ospf</A>
<LI><A HREF="zebra.html#IDX146">distribute-list prefix <VAR>prefix_list</VAR> (in|out) <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX471">dump bgp all <VAR>path</VAR></A>
<LI><A HREF="zebra.html#IDX472">dump bgp all <VAR>path</VAR> <VAR>interval</VAR></A>
<LI><A HREF="zebra.html#IDX475">dump bgp routes <VAR>path</VAR></A>, <A HREF="zebra.html#IDX476">dump bgp routes <VAR>path</VAR></A>
<LI><A HREF="zebra.html#IDX473">dump bgp updates <VAR>path</VAR></A>
<LI><A HREF="zebra.html#IDX474">dump bgp updates <VAR>path</VAR> <VAR>interval</VAR></A>
</DIR>
<H2><A NAME="findex_e">e</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX40">enable password <VAR>password</VAR></A>
<LI><A HREF="zebra.html#IDX59">exec-timeout <VAR>minute</VAR></A>
<LI><A HREF="zebra.html#IDX60">exec-timeout <VAR>minute</VAR> <VAR>second</VAR></A>
</DIR>
<H2><A NAME="findex_f">f</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX181">flush_timer <VAR>time</VAR></A>
</DIR>
<H2><A NAME="findex_h">h</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX38">hostname <VAR>hostname</VAR></A>
</DIR>
<H2><A NAME="findex_i">i</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX87">interface <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX337">interface <VAR>ifname</VAR> area <VAR>area</VAR></A>
<LI><A HREF="zebra.html#IDX90">ip address <VAR>address</VAR></A>
<LI><A HREF="zebra.html#IDX401">ip as-path access-list <VAR>word</VAR> {permit|deny} <VAR>line</VAR></A>
<LI><A HREF="zebra.html#IDX413">ip community-list &#60;1-99&#62; {permit|deny} <VAR>community</VAR></A>
<LI><A HREF="zebra.html#IDX414">ip community-list &#60;100-199&#62; {permit|deny} <VAR>community</VAR></A>
<LI><A HREF="zebra.html#IDX407">ip community-list expanded <VAR>name</VAR> {permit|deny} <VAR>line</VAR></A>
<LI><A HREF="zebra.html#IDX415">ip community-list <VAR>name</VAR> {permit|deny} <VAR>community</VAR></A>
<LI><A HREF="zebra.html#IDX406">ip community-list standard <VAR>name</VAR> {permit|deny} <VAR>community</VAR></A>
<LI><A HREF="zebra.html#IDX427">ip extcommunity-list expanded <VAR>name</VAR> {permit|deny} <VAR>line</VAR></A>
<LI><A HREF="zebra.html#IDX426">ip extcommunity-list standard <VAR>name</VAR> {permit|deny} <VAR>extcommunity</VAR></A>
<LI><A HREF="zebra.html#IDX253">ip ospf authentication-key AUTH_KEY</A>
<LI><A HREF="zebra.html#IDX257">ip ospf cost &#60;1-65535&#62;</A>
<LI><A HREF="zebra.html#IDX259">ip ospf dead-interval &#60;1-65535&#62;</A>
<LI><A HREF="zebra.html#IDX261">ip ospf hello-interval &#60;1-65535&#62;</A>
<LI><A HREF="zebra.html#IDX255">ip ospf message-digest-key KEYID md5 KEY</A>
<LI><A HREF="zebra.html#IDX263">ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)</A>
<LI><A HREF="zebra.html#IDX265">ip ospf priority &#60;0-255&#62;</A>
<LI><A HREF="zebra.html#IDX267">ip ospf retransmit-interval &#60;1-65535&#62;</A>
<LI><A HREF="zebra.html#IDX269">ip ospf transmit-delay</A>
<LI><A HREF="zebra.html#IDX479">ip prefix-list <VAR>name</VAR> (permit|deny) <VAR>prefix</VAR> [le <VAR>len</VAR>] [ge <VAR>len</VAR>]</A>
<LI><A HREF="zebra.html#IDX482">ip prefix-list <VAR>name</VAR> description <VAR>desc</VAR></A>
<LI><A HREF="zebra.html#IDX480">ip prefix-list <VAR>name</VAR> seq <VAR>number</VAR> (permit|deny) <VAR>prefix</VAR> [le <VAR>len</VAR>] [ge <VAR>len</VAR>]</A>
<LI><A HREF="zebra.html#IDX484">ip prefix-list sequence-number</A>
<LI><A HREF="zebra.html#IDX170">ip rip authentication key-chain <VAR>key-chain</VAR></A>
<LI><A HREF="zebra.html#IDX164">ip rip authentication mode md5</A>
<LI><A HREF="zebra.html#IDX166">ip rip authentication mode text</A>
<LI><A HREF="zebra.html#IDX168">ip rip authentication string <VAR>string</VAR></A>
<LI><A HREF="zebra.html#IDX119">ip rip receive version <VAR>version</VAR></A>
<LI><A HREF="zebra.html#IDX118">ip rip send version <VAR>version</VAR></A>
<LI><A HREF="zebra.html#IDX96">ip route <VAR>network</VAR> <VAR>gateway</VAR></A>
<LI><A HREF="zebra.html#IDX98">ip route <VAR>network</VAR> <VAR>gateway</VAR> <VAR>distance</VAR></A>
<LI><A HREF="zebra.html#IDX97">ip route <VAR>network</VAR> <VAR>netmask</VAR> <VAR>gateway</VAR></A>
<LI><A HREF="zebra.html#IDX120">ip split-horizon</A>
<LI><A HREF="zebra.html#IDX514">ipv6 nd prefix-advertisement <VAR>ipv6prefix</VAR></A>
<LI><A HREF="zebra.html#IDX513">ipv6 nd send-ra</A>
<LI><A HREF="zebra.html#IDX338">ipv6 ospf6 cost COST</A>
<LI><A HREF="zebra.html#IDX340">ipv6 ospf6 dead-interval DEADINTERVAL</A>
<LI><A HREF="zebra.html#IDX339">ipv6 ospf6 hello-interval HELLOINTERVAL</A>
<LI><A HREF="zebra.html#IDX342">ipv6 ospf6 priority PRIORITY</A>
<LI><A HREF="zebra.html#IDX341">ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL</A>
<LI><A HREF="zebra.html#IDX343">ipv6 ospf6 transmit-delay TRANSMITDELAY</A>
<LI><A HREF="zebra.html#IDX99">ipv6 route <VAR>network</VAR> <VAR>gateway</VAR></A>
<LI><A HREF="zebra.html#IDX100">ipv6 route <VAR>network</VAR> <VAR>gateway</VAR> <VAR>distance</VAR></A>
</DIR>
<H2><A NAME="findex_l">l</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX56">line vty</A>
<LI><A HREF="zebra.html#IDX51">list</A>
<LI><A HREF="zebra.html#IDX43">log file <VAR>filename</VAR></A>
<LI><A HREF="zebra.html#IDX41">log stdout</A>
<LI><A HREF="zebra.html#IDX44">log syslog</A>
</DIR>
<H2><A NAME="findex_m">m</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX404">match as-path <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX502">match aspath <VAR>as_path</VAR></A>
<LI><A HREF="zebra.html#IDX504">match community <VAR>community_list</VAR></A>
<LI><A HREF="zebra.html#IDX416">match community <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX417">match community <VAR>word</VAR> exact-match</A>
<LI><A HREF="zebra.html#IDX433">match extcommunity <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX157">match interface <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX500">match ip address <VAR>access_list</VAR></A>
<LI><A HREF="zebra.html#IDX159">match ip address prefix-list <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX158">match ip address <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX160">match ip next-hop A.B.C.D</A>
<LI><A HREF="zebra.html#IDX501">match ip next-hop <VAR>ipv4_addr</VAR></A>
<LI><A HREF="zebra.html#IDX161">match metric &#60;0-4294967295&#62;</A>
<LI><A HREF="zebra.html#IDX503">match metric <VAR>metric</VAR></A>
<LI><A HREF="zebra.html#IDX92">multicast</A>
</DIR>
<H2><A NAME="findex_n">n</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX113">neighbor <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX384">neighbor <VAR>peer</VAR> default-originate</A>
<LI><A HREF="zebra.html#IDX375">neighbor <VAR>peer</VAR> description ...</A>
<LI><A HREF="zebra.html#IDX457">neighbor <VAR>peer</VAR> dont-capability-negotiate</A>
<LI><A HREF="zebra.html#IDX373">neighbor <VAR>peer</VAR> ebgp-multihop</A>
<LI><A HREF="zebra.html#IDX380">neighbor <VAR>peer</VAR> next-hop-self</A>
<LI><A HREF="zebra.html#IDX459">neighbor <VAR>peer</VAR> override-capability</A>
<LI><A HREF="zebra.html#IDX462">neighbor <VAR>peer</VAR> route-reflector-client</A>
<LI><A HREF="zebra.html#IDX388">neighbor <VAR>peer</VAR> send-community</A>, <A HREF="zebra.html#IDX389">neighbor <VAR>peer</VAR> send-community</A>
<LI><A HREF="zebra.html#IDX371">neighbor <VAR>peer</VAR> shutdown</A>
<LI><A HREF="zebra.html#IDX455">neighbor <VAR>peer</VAR> strict-capability-match</A>
<LI><A HREF="zebra.html#IDX382">neighbor <VAR>peer</VAR> update-source</A>
<LI><A HREF="zebra.html#IDX394">neighbor <VAR>peer</VAR> distribute-list <VAR>name</VAR> [in|out]</A>
<LI><A HREF="zebra.html#IDX396">neighbor <VAR>peer</VAR> filter-list <VAR>name</VAR> [in|out]</A>
<LI><A HREF="zebra.html#IDX378">neighbor <VAR>peer</VAR> interface <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX392">neighbor <VAR>peer</VAR> maximum-prefix <VAR>number</VAR></A>
<LI><A HREF="zebra.html#IDX399">neighbor <VAR>peer</VAR> peer-group <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX386">neighbor <VAR>peer</VAR> port <VAR>port</VAR></A>, <A HREF="zebra.html#IDX387">neighbor <VAR>peer</VAR> port <VAR>port</VAR></A>
<LI><A HREF="zebra.html#IDX395">neighbor <VAR>peer</VAR> prefix-list <VAR>name</VAR> [in|out]</A>
<LI><A HREF="zebra.html#IDX370">neighbor <VAR>peer</VAR> remote-as <VAR>asn</VAR></A>
<LI><A HREF="zebra.html#IDX397">neighbor <VAR>peer</VAR> route-map <VAR>name</VAR> [in|out]</A>
<LI><A HREF="zebra.html#IDX377">neighbor <VAR>peer</VAR> version <VAR>version</VAR></A>
<LI><A HREF="zebra.html#IDX390">neighbor <VAR>peer</VAR> weight <VAR>weight</VAR></A>
<LI><A HREF="zebra.html#IDX398">neighbor <VAR>word</VAR> peer-group</A>
<LI><A HREF="zebra.html#IDX359">network <VAR>A.B.C.D/M</VAR></A>
<LI><A HREF="zebra.html#IDX210">network <VAR>a.b.c.d/m</VAR> area <VAR>&#60;0-4294967295&#62;</VAR></A>
<LI><A HREF="zebra.html#IDX209">network <VAR>a.b.c.d/m</VAR> area <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX111">network <VAR>ifname</VAR></A>, <A HREF="zebra.html#IDX183">network <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX109">network <VAR>network</VAR></A>, <A HREF="zebra.html#IDX182">network <VAR>network</VAR></A>
<LI><A HREF="zebra.html#IDX364">no aggregate-address <VAR>A.B.C.D/M</VAR></A>
<LI><A HREF="zebra.html#IDX250">no area &#60;0-4294967295&#62; authentication</A>
<LI><A HREF="zebra.html#IDX242">no area &#60;0-4294967295&#62; export-list NAME</A>
<LI><A HREF="zebra.html#IDX246">no area &#60;0-4294967295&#62; import-list NAME</A>
<LI><A HREF="zebra.html#IDX216">no area &#60;0-4294967295&#62; range <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX228">no area &#60;0-4294967295&#62; shortcut</A>
<LI><A HREF="zebra.html#IDX232">no area &#60;0-4294967295&#62; stub</A>
<LI><A HREF="zebra.html#IDX236">no area &#60;0-4294967295&#62; stub no-summary</A>
<LI><A HREF="zebra.html#IDX224">no area &#60;0-4294967295&#62; virtual-link <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX249">no area <VAR>a.b.c.d</VAR> authentication</A>
<LI><A HREF="zebra.html#IDX238">no area <VAR>a.b.c.d</VAR> default-cost &#60;0-16777215&#62;</A>
<LI><A HREF="zebra.html#IDX241">no area <VAR>a.b.c.d</VAR> export-list NAME</A>
<LI><A HREF="zebra.html#IDX245">no area <VAR>a.b.c.d</VAR> import-list NAME</A>
<LI><A HREF="zebra.html#IDX220">no area <VAR>a.b.c.d</VAR> range IPV4_PREFIX substitute IPV4_PREFIX</A>
<LI><A HREF="zebra.html#IDX218">no area <VAR>a.b.c.d</VAR> range IPV4_PREFIX suppress</A>
<LI><A HREF="zebra.html#IDX227">no area <VAR>a.b.c.d</VAR> shortcut</A>
<LI><A HREF="zebra.html#IDX231">no area <VAR>a.b.c.d</VAR> stub</A>
<LI><A HREF="zebra.html#IDX235">no area <VAR>a.b.c.d</VAR> stub no-summary</A>
<LI><A HREF="zebra.html#IDX215">no area <VAR>a.b.c.d</VAR> range <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX223">no area <VAR>a.b.c.d</VAR> virtual-link <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX208">no auto-cost refrence-bandwidth</A>
<LI><A HREF="zebra.html#IDX95">no bandwidth &#60;1-10000000&#62;</A>
<LI><A HREF="zebra.html#IDX58">no banner motd</A>
<LI><A HREF="zebra.html#IDX465">no bgp multiple-instance</A>
<LI><A HREF="zebra.html#IDX452">no debug event</A>
<LI><A HREF="zebra.html#IDX454">no debug keepalive</A>
<LI><A HREF="zebra.html#IDX320">no debug ospf ism</A>
<LI><A HREF="zebra.html#IDX321">no debug ospf ism (status|events|timers)</A>
<LI><A HREF="zebra.html#IDX328">no debug ospf lsa</A>
<LI><A HREF="zebra.html#IDX329">no debug ospf lsa (generate|flooding|refresh)</A>
<LI><A HREF="zebra.html#IDX324">no debug ospf nsm</A>
<LI><A HREF="zebra.html#IDX325">no debug ospf nsm (status|events|timers)</A>
<LI><A HREF="zebra.html#IDX317">no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]</A>
<LI><A HREF="zebra.html#IDX332">no debug ospf zebra</A>
<LI><A HREF="zebra.html#IDX333">no debug ospf zebra (interface|redistribute)</A>
<LI><A HREF="zebra.html#IDX453">no debug update</A>
<LI><A HREF="zebra.html#IDX288">no default-information originate</A>
<LI><A HREF="zebra.html#IDX292">no default-metric</A>
<LI><A HREF="zebra.html#IDX148">no default-metric &#60;1-16&#62;</A>
<LI><A HREF="zebra.html#IDX152">no distance &#60;1-255&#62;</A>, <A HREF="zebra.html#IDX294">no distance &#60;1-255&#62;</A>
<LI><A HREF="zebra.html#IDX154">no distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR></A>
<LI><A HREF="zebra.html#IDX156">no distance &#60;1-255&#62; <VAR>A.B.C.D/M</VAR> <VAR>access-list</VAR></A>
<LI><A HREF="zebra.html#IDX296">no distance ospf</A>
<LI><A HREF="zebra.html#IDX290">no distribute-list NAME out (kernel|connected|static|rip|ospf</A>
<LI><A HREF="zebra.html#IDX61">no exec-timeout</A>
<LI><A HREF="zebra.html#IDX402">no ip as-path access-list <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX403">no ip as-path access-list <VAR>word</VAR> {permit|deny} <VAR>line</VAR></A>
<LI><A HREF="zebra.html#IDX410">no ip community-list expanded <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX408">no ip community-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX409">no ip community-list standard <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX430">no ip extcommunity-list expanded <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX428">no ip extcommunity-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX429">no ip extcommunity-list standard <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX254">no ip ospf authentication-key</A>
<LI><A HREF="zebra.html#IDX258">no ip ospf cost</A>
<LI><A HREF="zebra.html#IDX260">no ip ospf dead-interval</A>
<LI><A HREF="zebra.html#IDX262">no ip ospf hello-interval</A>
<LI><A HREF="zebra.html#IDX256">no ip ospf message-digest-key</A>
<LI><A HREF="zebra.html#IDX264">no ip ospf network</A>
<LI><A HREF="zebra.html#IDX266">no ip ospf priority</A>
<LI><A HREF="zebra.html#IDX268">no ip ospf retransmit interval</A>
<LI><A HREF="zebra.html#IDX270">no ip ospf transmit-delay</A>
<LI><A HREF="zebra.html#IDX481">no ip prefix-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX483">no ip prefix-list <VAR>name</VAR> description [<VAR>desc</VAR>]</A>
<LI><A HREF="zebra.html#IDX485">no ip prefix-list sequence-number</A>
<LI><A HREF="zebra.html#IDX171">no ip rip authentication key-chain <VAR>key-chain</VAR></A>
<LI><A HREF="zebra.html#IDX165">no ip rip authentication mode md5</A>
<LI><A HREF="zebra.html#IDX167">no ip rip authentication mode text</A>
<LI><A HREF="zebra.html#IDX169">no ip rip authentication string <VAR>string</VAR></A>
<LI><A HREF="zebra.html#IDX121">no ip split-horizon</A>
<LI><A HREF="zebra.html#IDX42">no log stdout</A>
<LI><A HREF="zebra.html#IDX45">no log syslog</A>
<LI><A HREF="zebra.html#IDX93">no multicast</A>
<LI><A HREF="zebra.html#IDX114">no neighbor <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX385">no neighbor <VAR>peer</VAR> default-originate</A>
<LI><A HREF="zebra.html#IDX376">no neighbor <VAR>peer</VAR> description ...</A>
<LI><A HREF="zebra.html#IDX458">no neighbor <VAR>peer</VAR> dont-capability-negotiate</A>
<LI><A HREF="zebra.html#IDX374">no neighbor <VAR>peer</VAR> ebgp-multihop</A>
<LI><A HREF="zebra.html#IDX381">no neighbor <VAR>peer</VAR> next-hop-self</A>
<LI><A HREF="zebra.html#IDX460">no neighbor <VAR>peer</VAR> override-capability</A>
<LI><A HREF="zebra.html#IDX463">no neighbor <VAR>peer</VAR> route-reflector-client</A>
<LI><A HREF="zebra.html#IDX372">no neighbor <VAR>peer</VAR> shutdown</A>
<LI><A HREF="zebra.html#IDX456">no neighbor <VAR>peer</VAR> strict-capability-match</A>
<LI><A HREF="zebra.html#IDX383">no neighbor <VAR>peer</VAR> update-source</A>
<LI><A HREF="zebra.html#IDX379">no neighbor <VAR>peer</VAR> interface <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX393">no neighbor <VAR>peer</VAR> maximum-prefix <VAR>number</VAR></A>
<LI><A HREF="zebra.html#IDX391">no neighbor <VAR>peer</VAR> weight <VAR>weight</VAR></A>
<LI><A HREF="zebra.html#IDX360">no network <VAR>A.B.C.D/M</VAR></A>
<LI><A HREF="zebra.html#IDX212">no network <VAR>a.b.c.d/m</VAR> area <VAR>&#60;0-4294967295&#62;</VAR></A>
<LI><A HREF="zebra.html#IDX211">no network <VAR>a.b.c.d/m</VAR> area <VAR>a.b.c.d</VAR></A>
<LI><A HREF="zebra.html#IDX112">no network <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX110">no network <VAR>network</VAR></A>
<LI><A HREF="zebra.html#IDX197">no ospf abr-type <VAR>type</VAR></A>
<LI><A HREF="zebra.html#IDX199">no ospf rfc1583compatibility</A>
<LI><A HREF="zebra.html#IDX195">no ospf router-id</A>
<LI><A HREF="zebra.html#IDX201">no passive interface <VAR>interface</VAR></A>
<LI><A HREF="zebra.html#IDX116">no passive-interface <VAR>IFNAME</VAR></A>
<LI><A HREF="zebra.html#IDX279">no redistribute (kernel|connected|static|rip|bgp)</A>
<LI><A HREF="zebra.html#IDX141">no redistribute bgp</A>
<LI><A HREF="zebra.html#IDX133">no redistribute connected</A>
<LI><A HREF="zebra.html#IDX125">no redistribute kernel</A>
<LI><A HREF="zebra.html#IDX137">no redistribute ospf</A>
<LI><A HREF="zebra.html#IDX129">no redistribute static</A>
<LI><A HREF="zebra.html#IDX108">no rouer rip</A>
<LI><A HREF="zebra.html#IDX144">no route <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX354">no router bgp <VAR>asn</VAR></A>
<LI><A HREF="zebra.html#IDX193">no router ospf</A>
<LI><A HREF="zebra.html#IDX298">no router zebra</A>
<LI><A HREF="zebra.html#IDX89">no shutdown</A>
<LI><A HREF="zebra.html#IDX516">no smux peer <VAR>oid</VAR></A>
<LI><A HREF="zebra.html#IDX518">no smux peer <VAR>oid</VAR> <VAR>password</VAR></A>
<LI><A HREF="zebra.html#IDX173">no timers basic</A>
<LI><A HREF="zebra.html#IDX203">no timers spf</A>
</DIR>
<H2><A NAME="findex_o">o</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX149">offset-list <VAR>access-list</VAR> (in|out)</A>
<LI><A HREF="zebra.html#IDX150">offset-list <VAR>access-list</VAR> (in|out) <VAR>ifname</VAR></A>
<LI><A HREF="zebra.html#IDX196">ospf abr-type <VAR>type</VAR></A>
<LI><A HREF="zebra.html#IDX198">ospf rfc1583compatibility</A>
<LI><A HREF="zebra.html#IDX194">ospf router-id <VAR>a.b.c.d</VAR></A>
</DIR>
<H2><A NAME="findex_p">p</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX200">passive interface <VAR>interface</VAR></A>
<LI><A HREF="zebra.html#IDX115">passive-interface <VAR>IFNAME</VAR></A>
<LI><A HREF="zebra.html#IDX39">password <VAR>password</VAR></A>
</DIR>
<H2><A NAME="findex_r">r</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX271">redistribute (kernel|connected|static|rip|bgp)</A>
<LI><A HREF="zebra.html#IDX275">redistribute (kernel|connected|static|rip|bgp) metric &#60;0-16777214&#62;</A>
<LI><A HREF="zebra.html#IDX276">redistribute (kernel|connected|static|rip|bgp) metric &#60;0-16777214&#62; route-map <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX273">redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)</A>
<LI><A HREF="zebra.html#IDX277">redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric &#60;0-16777214&#62;</A>
<LI><A HREF="zebra.html#IDX278">redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric &#60;0-16777214&#62; route-map <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX274">redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX272">redistribute (kernel|connected|static|rip|bgp) <VAR>route-map</VAR></A>
<LI><A HREF="zebra.html#IDX138">redistribute bgp</A>
<LI><A HREF="zebra.html#IDX139">redistribute bgp metric &#60;0-16&#62;</A>
<LI><A HREF="zebra.html#IDX140">redistribute bgp route-map <VAR>route-map</VAR></A>
<LI><A HREF="zebra.html#IDX130">redistribute connected</A>, <A HREF="zebra.html#IDX345">redistribute connected</A>, <A HREF="zebra.html#IDX367">redistribute connected</A>
<LI><A HREF="zebra.html#IDX131">redistribute connected metric &#60;0-16&#62;</A>
<LI><A HREF="zebra.html#IDX132">redistribute connected route-map <VAR>route-map</VAR></A>
<LI><A HREF="zebra.html#IDX122">redistribute kernel</A>, <A HREF="zebra.html#IDX365">redistribute kernel</A>
<LI><A HREF="zebra.html#IDX123">redistribute kernel metric &#60;0-16&#62;</A>
<LI><A HREF="zebra.html#IDX124">redistribute kernel route-map <VAR>route-map</VAR></A>
<LI><A HREF="zebra.html#IDX134">redistribute ospf</A>, <A HREF="zebra.html#IDX369">redistribute ospf</A>
<LI><A HREF="zebra.html#IDX135">redistribute ospf metric &#60;0-16&#62;</A>
<LI><A HREF="zebra.html#IDX136">redistribute ospf route-map <VAR>route-map</VAR></A>
<LI><A HREF="zebra.html#IDX368">redistribute rip</A>
<LI><A HREF="zebra.html#IDX346">redistribute ripng</A>
<LI><A HREF="zebra.html#IDX126">redistribute static</A>, <A HREF="zebra.html#IDX344">redistribute static</A>, <A HREF="zebra.html#IDX366">redistribute static</A>
<LI><A HREF="zebra.html#IDX127">redistribute static metric &#60;0-16&#62;</A>
<LI><A HREF="zebra.html#IDX128">redistribute static route-map <VAR>route-map</VAR></A>
<LI><A HREF="zebra.html#IDX206">refresh age-diff &#60;0-10000&#62;</A>
<LI><A HREF="zebra.html#IDX204">refresh group-limit &#60;0-10000&#62;</A>
<LI><A HREF="zebra.html#IDX205">refresh per-slice &#60;0-10000&#62;</A>
<LI><A HREF="zebra.html#IDX143">route <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX184">route <VAR>network</VAR></A>
<LI><A HREF="zebra.html#IDX499">route-map <VAR>route-map-name</VAR> permit <VAR>priority</VAR></A>
<LI><A HREF="zebra.html#IDX468">router bgp <VAR>as-number</VAR></A>
<LI><A HREF="zebra.html#IDX469">router bgp <VAR>as-number</VAR> view <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX353">router bgp <VAR>asn</VAR></A>
<LI><A HREF="zebra.html#IDX192">router ospf</A>
<LI><A HREF="zebra.html#IDX335">router ospf6</A>
<LI><A HREF="zebra.html#IDX107">router rip</A>
<LI><A HREF="zebra.html#IDX180">router ripng</A>
<LI><A HREF="zebra.html#IDX185">router zebra</A>, <A HREF="zebra.html#IDX297">router zebra</A>
<LI><A HREF="zebra.html#IDX336">router-id <VAR>a.b.c.d</VAR></A>
</DIR>
<H2><A NAME="findex_s">s</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX53">service advanced-vty</A>
<LI><A HREF="zebra.html#IDX52">service password-encryption</A>
<LI><A HREF="zebra.html#IDX54">service terminal-length <VAR>&#60;0-512&#62;</VAR></A>
<LI><A HREF="zebra.html#IDX405">set as-path prepend <VAR>as-path</VAR></A>
<LI><A HREF="zebra.html#IDX509">set as-path prepend <VAR>as_path</VAR></A>
<LI><A HREF="zebra.html#IDX421">set comm-list <VAR>word</VAR> delete</A>
<LI><A HREF="zebra.html#IDX419">set community <VAR>community</VAR></A>, <A HREF="zebra.html#IDX510">set community <VAR>community</VAR></A>
<LI><A HREF="zebra.html#IDX420">set community <VAR>community</VAR> additive</A>
<LI><A HREF="zebra.html#IDX418">set community none</A>
<LI><A HREF="zebra.html#IDX434">set extcommunity rt <VAR>extcommunity</VAR></A>
<LI><A HREF="zebra.html#IDX435">set extcommunity soo <VAR>extcommunity</VAR></A>
<LI><A HREF="zebra.html#IDX162">set ip next-hop A.B.C.D</A>
<LI><A HREF="zebra.html#IDX505">set ip next-hop <VAR>ipv4_address</VAR></A>
<LI><A HREF="zebra.html#IDX511">set ipv6 next-hop global <VAR>ipv6_address</VAR></A>
<LI><A HREF="zebra.html#IDX512">set ipv6 next-hop local <VAR>ipv6_address</VAR></A>
<LI><A HREF="zebra.html#IDX506">set local-preference <VAR>local_pref</VAR></A>
<LI><A HREF="zebra.html#IDX163">set metric &#60;0-4294967295&#62;</A>
<LI><A HREF="zebra.html#IDX508">set metric <VAR>metric</VAR></A>
<LI><A HREF="zebra.html#IDX507">set weight <VAR>weight</VAR></A>
<LI><A HREF="zebra.html#IDX448">show debug</A>
<LI><A HREF="zebra.html#IDX334">show debugging ospf</A>
<LI><A HREF="zebra.html#IDX179">show debugging rip</A>
<LI><A HREF="zebra.html#IDX187">show debugging ripng</A>
<LI><A HREF="zebra.html#IDX104">show interface</A>
<LI><A HREF="zebra.html#IDX436">show ip bgp</A>
<LI><A HREF="zebra.html#IDX437">show ip bgp <VAR>A.B.C.D</VAR></A>
<LI><A HREF="zebra.html#IDX422">show ip bgp community <VAR>community</VAR></A>, <A HREF="zebra.html#IDX440">show ip bgp community <VAR>community</VAR></A>
<LI><A HREF="zebra.html#IDX423">show ip bgp community <VAR>community</VAR> exact-match</A>, <A HREF="zebra.html#IDX441">show ip bgp community <VAR>community</VAR> exact-match</A>
<LI><A HREF="zebra.html#IDX424">show ip bgp community-list <VAR>word</VAR></A>, <A HREF="zebra.html#IDX442">show ip bgp community-list <VAR>word</VAR></A>
<LI><A HREF="zebra.html#IDX425">show ip bgp community-list <VAR>word</VAR> exact-match</A>, <A HREF="zebra.html#IDX443">show ip bgp community-list <VAR>word</VAR> exact-match</A>
<LI><A HREF="zebra.html#IDX445">show ip bgp neighbor [<VAR>peer</VAR>]</A>
<LI><A HREF="zebra.html#IDX400">show ip bgp regexp <VAR>line</VAR></A>, <A HREF="zebra.html#IDX439">show ip bgp regexp <VAR>line</VAR></A>
<LI><A HREF="zebra.html#IDX444">show ip bgp summary</A>
<LI><A HREF="zebra.html#IDX470">show ip bgp view <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX438">show ip bgp <VAR>X:X::X:X</VAR></A>
<LI><A HREF="zebra.html#IDX411">show ip community-list</A>
<LI><A HREF="zebra.html#IDX412">show ip community-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX431">show ip extcommunity-list</A>
<LI><A HREF="zebra.html#IDX432">show ip extcommunity-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX299">show ip ospf</A>
<LI><A HREF="zebra.html#IDX305">show ip ospf database</A>
<LI><A HREF="zebra.html#IDX306">show ip ospf database (asbr-summary|external|network|router|summary)</A>
<LI><A HREF="zebra.html#IDX309">show ip ospf database (asbr-summary|external|network|router|summary) adv-router <VAR>adv-router</VAR></A>
<LI><A HREF="zebra.html#IDX307">show ip ospf database (asbr-summary|external|network|router|summary) <VAR>link-state-id</VAR></A>
<LI><A HREF="zebra.html#IDX310">show ip ospf database (asbr-summary|external|network|router|summary) <VAR>link-state-id</VAR> self-originate</A>
<LI><A HREF="zebra.html#IDX308">show ip ospf database (asbr-summary|external|network|router|summary) <VAR>link-state-id</VAR> adv-router <VAR>adv-router</VAR></A>
<LI><A HREF="zebra.html#IDX311">show ip ospf database (asbr-summary|external|network|router|summary) self-originate</A>
<LI><A HREF="zebra.html#IDX312">show ip ospf database max-age</A>
<LI><A HREF="zebra.html#IDX313">show ip ospf database self-originate</A>
<LI><A HREF="zebra.html#IDX300">show ip ospf interface [INTERFACE]</A>
<LI><A HREF="zebra.html#IDX301">show ip ospf neighbor</A>
<LI><A HREF="zebra.html#IDX303">show ip ospf neighbor detail</A>
<LI><A HREF="zebra.html#IDX302">show ip ospf neighbor INTERFACE</A>
<LI><A HREF="zebra.html#IDX304">show ip ospf neighbor INTERFACE detail</A>
<LI><A HREF="zebra.html#IDX314">show ip ospf refresher</A>
<LI><A HREF="zebra.html#IDX315">show ip ospf route</A>
<LI><A HREF="zebra.html#IDX486">show ip prefix-list</A>
<LI><A HREF="zebra.html#IDX494">show ip prefix-list detail</A>
<LI><A HREF="zebra.html#IDX495">show ip prefix-list detail <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX487">show ip prefix-list <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX489">show ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR></A>
<LI><A HREF="zebra.html#IDX491">show ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR> first-match</A>
<LI><A HREF="zebra.html#IDX490">show ip prefix-list <VAR>name</VAR> <VAR>a.b.c.d/m</VAR> longer</A>
<LI><A HREF="zebra.html#IDX488">show ip prefix-list <VAR>name</VAR> seq <VAR>num</VAR></A>
<LI><A HREF="zebra.html#IDX492">show ip prefix-list summary</A>
<LI><A HREF="zebra.html#IDX493">show ip prefix-list summary <VAR>name</VAR></A>
<LI><A HREF="zebra.html#IDX175">show ip protocols</A>
<LI><A HREF="zebra.html#IDX174">show ip rip</A>
<LI><A HREF="zebra.html#IDX186">show ip ripng</A>
<LI><A HREF="zebra.html#IDX102">show ip route</A>
<LI><A HREF="zebra.html#IDX105">show ipforward</A>
<LI><A HREF="zebra.html#IDX347">show ipv6 ospf6 [INSTANCE_ID]</A>
<LI><A HREF="zebra.html#IDX348">show ipv6 ospf6 database</A>
<LI><A HREF="zebra.html#IDX349">show ipv6 ospf6 interface</A>
<LI><A HREF="zebra.html#IDX350">show ipv6 ospf6 neighbor</A>
<LI><A HREF="zebra.html#IDX351">show ipv6 ospf6 request-list A.B.C.D</A>
<LI><A HREF="zebra.html#IDX103">show ipv6 route</A>
<LI><A HREF="zebra.html#IDX352">show ipv6 route ospf6</A>
<LI><A HREF="zebra.html#IDX106">show ipv6forward</A>
<LI><A HREF="zebra.html#IDX55">show version</A>
<LI><A HREF="zebra.html#IDX88">shutdown</A>
<LI><A HREF="zebra.html#IDX515">smux peer <VAR>oid</VAR></A>
<LI><A HREF="zebra.html#IDX517">smux peer <VAR>oid</VAR> <VAR>password</VAR></A>
</DIR>
<H2><A NAME="findex_t">t</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX101">table <VAR>tableno</VAR></A>
<LI><A HREF="zebra.html#IDX49">terminal length <VAR>&#60;0-512&#62;</VAR></A>
<LI><A HREF="zebra.html#IDX172">timers basic <VAR>update</VAR> <VAR>timeout</VAR> <VAR>garbage</VAR></A>
<LI><A HREF="zebra.html#IDX202">timers spf &#60;0-4294967295&#62; &#60;0-4294967295&#62;</A>
</DIR>
<H2><A NAME="findex_v">v</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX117">version <VAR>version</VAR></A>
</DIR>
<H2><A NAME="findex_w">w</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX50">who</A>
<LI><A HREF="zebra.html#IDX47">write file</A>
<LI><A HREF="zebra.html#IDX46">write terminal</A>
</DIR>




<H1><A NAME="SEC128" HREF="zebra_toc.html#TOC128">VTY Key Index</A></H1>

<P>
Jump to:
<A HREF="#kindex_?">?</A>
-
<A HREF="#kindex_c">c</A>
-
<A HREF="#kindex_d">d</A>
-
<A HREF="#kindex_l">l</A>
-
<A HREF="#kindex_m">m</A>
-
<A HREF="#kindex_r">r</A>
-
<A HREF="#kindex_t">t</A>
-
<A HREF="#kindex_u">u</A>
<P>
<H2><A NAME="kindex_?">?</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX86">?</A>
</DIR>
<H2><A NAME="kindex_c">c</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX69">C-a</A>
<LI><A HREF="zebra.html#IDX65">C-b</A>
<LI><A HREF="zebra.html#IDX79">C-c</A>
<LI><A HREF="zebra.html#IDX73">C-d</A>
<LI><A HREF="zebra.html#IDX70">C-e</A>
<LI><A HREF="zebra.html#IDX63">C-f</A>
<LI><A HREF="zebra.html#IDX71">C-h</A>
<LI><A HREF="zebra.html#IDX76">C-k</A>
<LI><A HREF="zebra.html#IDX81">C-n</A>
<LI><A HREF="zebra.html#IDX83">C-p</A>
<LI><A HREF="zebra.html#IDX78">C-t</A>
<LI><A HREF="zebra.html#IDX77">C-u</A>
<LI><A HREF="zebra.html#IDX75">C-w</A>
<LI><A HREF="zebra.html#IDX80">C-z</A>
</DIR>
<H2><A NAME="kindex_d">d</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX72"><KBD>DEL</KBD></A>
<LI><A HREF="zebra.html#IDX82"><KBD>DOWN</KBD></A>
</DIR>
<H2><A NAME="kindex_l">l</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX66"><KBD>LEFT</KBD></A>
</DIR>
<H2><A NAME="kindex_m">m</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX68">M-b</A>
<LI><A HREF="zebra.html#IDX74">M-d</A>
<LI><A HREF="zebra.html#IDX67">M-f</A>
</DIR>
<H2><A NAME="kindex_r">r</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX64"><KBD>RIGHT</KBD></A>
</DIR>
<H2><A NAME="kindex_t">t</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX85"><KBD>TAB</KBD></A>
</DIR>
<H2><A NAME="kindex_u">u</A></H2>
<DIR>
<LI><A HREF="zebra.html#IDX84"><KBD>UP</KBD></A>
</DIR>


<P><HR><P>
This document was generated on 29 January 2003 using
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>&nbsp;1.56k.
</BODY>
</HTML>