1 This is ../../../doc/quagga.info, produced by makeinfo version 4.8 from
2 ../../../doc/quagga.texi.
4 Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
6 Permission is granted to make and distribute verbatim copies of
7 this manual provided the copyright notice and this permission
8 notice are preserved on all copies.
10 Permission is granted to copy and distribute modified versions of
11 this manual under the conditions for verbatim copying, provided
12 that the entire resulting derived work is distributed under the
13 terms of a permission notice identical to this one.
15 Permission is granted to copy and distribute translations of this
16 manual into another language, under the above conditions for
17 modified versions, except that this permission notice may be
18 stated in a translation approved by Kunihiro Ishiguro.
20 INFO-DIR-SECTION Routing Software:
22 * Quagga: (quagga). The Quagga Software Routing Suite
25 This file documents the Quagga Software Routing Suite which manages
26 common TCP/IP routing protocols.
28 This is Edition 0.99.1, last updated 10 September 2005 of `The
29 Quagga Manual', for Quagga Version 0.99.1.
31 Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
33 Permission is granted to make and distribute verbatim copies of
34 this manual provided the copyright notice and this permission
35 notice are preserved on all copies.
37 Permission is granted to copy and distribute modified versions of
38 this manual under the conditions for verbatim copying, provided
39 that the entire resulting derived work is distributed under the
40 terms of a permission notice identical to this one.
42 Permission is granted to copy and distribute translations of this
43 manual into another language, under the above conditions for
44 modified versions, except that this permission notice may be
45 stated in a translation approved by Kunihiro Ishiguro.
48 File: quagga.info, Node: Top, Next: Overview, Up: (dir)
53 Quagga is an advanced routing software package that provides a suite of
54 TCP/IP based routing protocols. This is the Manual for Quagga 0.99.1.
55 Quagga is a fork of GNU Zebra.
57 Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
59 Permission is granted to make and distribute verbatim copies of
60 this manual provided the copyright notice and this permission
61 notice are preserved on all copies.
63 Permission is granted to copy and distribute modified versions of
64 this manual under the conditions for verbatim copying, provided
65 that the entire resulting derived work is distributed under the
66 terms of a permission notice identical to this one.
68 Permission is granted to copy and distribute translations of this
69 manual into another language, under the above conditions for
70 modified versions, except that this permission notice may be
71 stated in a translation approved by Kunihiro Ishiguro.
84 * Configuring Quagga as a Route Server::
92 * Packet Binary Dump Format::
97 File: quagga.info, Node: Overview, Next: Installation, Prev: Top, Up: Top
102 Quagga is a routing software package that provides TCP/IP based routing
103 services with routing protocols support such as RIPv1, RIPv2, RIPng,
104 OSPFv2, OSPFv3, BGP-4, and BGP-4+ (*note Supported RFC::). Quagga also
105 supports special BGP Route Reflector and Route Server behavior. In
106 addition to traditional IPv4 routing protocols, Quagga also supports
107 IPv6 routing protocols. With SNMP daemon which supports SMUX protocol,
108 Quagga provides routing protocol MIBs (*note SNMP Support::).
110 Quagga uses an advanced software architecture to provide you with a
111 high quality, multi server routing engine. Quagga has an interactive
112 user interface for each routing protocol and supports common client
113 commands. Due to this design, you can add new protocol daemons to
114 Quagga easily. You can use Quagga library as your program's client
117 Quagga is distributed under the GNU General Public License.
121 * About Quagga:: Basic information about Quagga
122 * System Architecture:: The Quagga system architecture
123 * Supported Platforms:: Supported platforms and future plans
124 * Supported RFC:: Supported RFCs
125 * How to get Quagga::
126 * Mailing List:: Mailing list information
127 * Bug Reports:: Mail address for bug data
130 File: quagga.info, Node: About Quagga, Next: System Architecture, Up: Overview
135 Today, TCP/IP networks are covering all of the world. The Internet has
136 been deployed in many countries, companies, and to the home. When you
137 connect to the Internet your packet will pass many routers which have
138 TCP/IP routing functionality.
140 A system with Quagga installed acts as a dedicated router. With
141 Quagga, your machine exchanges routing information with other routers
142 using routing protocols. Quagga uses this information to update the
143 kernel routing table so that the right data goes to the right place.
144 You can dynamically change the configuration and you may view routing
145 table information from the Quagga terminal interface.
147 Adding to routing protocol support, Quagga can setup interface's
148 flags, interface's address, static routes and so on. If you have a
149 small network, or a stub network, or xDSL connection, configuring the
150 Quagga routing software is very easy. The only thing you have to do is
151 to set up the interfaces and put a few commands about static routes
152 and/or default routes. If the network is rather large, or if the
153 network structure changes frequently, you will want to take advantage
154 of Quagga's dynamic routing protocol support for protocols such as RIP,
157 Traditionally, UNIX based router configuration is done by `ifconfig'
158 and `route' commands. Status of routing table is displayed by
159 `netstat' utility. Almost of these commands work only if the user has
160 root privileges. Quagga has a different system administration method.
161 There are two user modes in Quagga. One is normal mode, the other is
162 enable mode. Normal mode user can only view system status, enable mode
163 user can change system configuration. This UNIX account independent
164 feature will be great help to the router administrator.
166 Currently, Quagga supports common unicast routing protocols.
167 Multicast routing protocols such as BGMP, PIM-SM, PIM-DM may be
168 supported in Quagga 2.0. MPLS support is going on. In the future,
169 TCP/IP filtering control, QoS control, diffserv configuration will be
170 added to Quagga. Quagga project's final goal is making a productive,
171 quality, free TCP/IP routing software.
174 File: quagga.info, Node: System Architecture, Next: Supported Platforms, Prev: About Quagga, Up: Overview
176 1.2 System Architecture
177 =======================
179 Traditional routing software is made as a one process program which
180 provides all of the routing protocol functionalities. Quagga takes a
181 different approach. It is made from a collection of several daemons
182 that work together to build the routing table. There may be several
183 protocol-specific routing daemons and zebra the kernel routing manager.
185 The `ripd' daemon handles the RIP protocol, while `ospfd' is a
186 daemon which supports OSPF version 2. `bgpd' supports the BGP-4
187 protocol. For changing the kernel routing table and for redistribution
188 of routes between different routing protocols, there is a kernel
189 routing table manager `zebra' daemon. It is easy to add a new routing
190 protocol daemons to the entire routing system without affecting any
191 other software. You need to run only the protocol daemon associated
192 with routing protocols in use. Thus, user may run a specific daemon
193 and send routing reports to a central routing console.
195 There is no need for these daemons to be running on the same
196 machine. You can even run several same protocol daemons on the same
197 machine. This architecture creates new possibilities for the routing
200 +----+ +----+ +-----+ +-----+
201 |bgpd| |ripd| |ospfd| |zebra|
202 +----+ +----+ +-----+ +-----+
204 +---------------------------|--+
206 | UNIX Kernel routing table |
208 +------------------------------+
210 Quagga System Architecture
212 Multi-process architecture brings extensibility, modularity and
213 maintainability. At the same time it also brings many configuration
214 files and terminal interfaces. Each daemon has it's own configuration
215 file and terminal interface. When you configure a static route, it
216 must be done in `zebra' configuration file. When you configure BGP
217 network it must be done in `bgpd' configuration file. This can be a
218 very annoying thing. To resolve the problem, Quagga provides
219 integrated user interface shell called `vtysh'. `vtysh' connects to
220 each daemon with UNIX domain socket and then works as a proxy for user
223 Quagga was planned to use multi-threaded mechanism when it runs with
224 a kernel that supports multi-threads. But at the moment, the thread
225 library which comes with GNU/Linux or FreeBSD has some problems with
226 running reliable services such as routing software, so we don't use
227 threads at all. Instead we use the `select(2)' system call for
228 multiplexing the events.
231 File: quagga.info, Node: Supported Platforms, Next: Supported RFC, Prev: System Architecture, Up: Overview
233 1.3 Supported Platforms
234 =======================
236 Currently Quagga supports GNU/Linux, BSD and Solaris. Porting Quagga to
237 other platforms is not too difficult as platform dependent code should
238 most be limited to the `zebra' daemon. Protocol daemons are mostly
239 platform independent. Please let us know when you find out Quagga runs
240 on a platform which is not listed below.
242 The list of officially supported platforms are listed below. Note
243 that Quagga may run correctly on other platforms, and may run with
244 partial functionality on further platforms.
247 * GNU/Linux 2.2.x and higher
249 * FreeBSD 4.x and higher
251 * NetBSD 1.6 and higher
253 * OpenBSD 2.5 and higher
255 * Solaris 2.6 and higher (IPv6 support requires a patch at moment)
258 Some IPv6 stacks are in development. Quagga supports following IPv6
259 stacks. For BSD, we recommend KAME IPv6 stack. Solaris IPv6 stack is
262 * Linux IPv6 stack for GNU/Linux 2.2.x and higher.
264 * KAME IPv6 stack for BSD.
266 * INRIA IPv6 stack for BSD.
269 File: quagga.info, Node: Supported RFC, Next: How to get Quagga, Prev: Supported Platforms, Up: Overview
274 Below is the list of currently supported RFC's.
277 `Routing Information Protocol. C.L. Hedrick. Jun-01-1988.'
280 `RIP-2 MD5 Authentication. F. Baker, R. Atkinson. January 1997.'
283 `RIP Version 2. G. Malkin. November 1998.'
286 `RIPng for IPv6. G. Malkin, R. Minnear. January 1997.'
289 `OSPF Version 2. J. Moy. April 1998.'
292 `The OSPF Opaque LSA Option R. Coltun. July 1998.'
295 `The OSPF Not-So-Stubby Area (NSSA) Option P. Murphy. January
299 `OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999.'
302 `A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March
306 `Autonomous System Confederations for BGP. P. Traina. June 1996.'
309 `BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August
313 `Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain
314 Routing. P. Marques, F. Dupont. March 1999.'
317 `BGP Route Reflection An alternative to full mesh IBGP. T. Bates &
318 R. Chandrasekeran. June 1996.'
321 `Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R.
322 Chandra, D. Katz. June 2000.'
325 `Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder.
329 `OSPF Stub Router Advertisement, A. Retana, L. Nguyen, R. White,
330 A. Zinin, D. McPherson. June 2001'
332 When SNMP support is enabled, below RFC is also supported.
335 `SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.'
338 `Definitions of Managed Objects for the Fourth Version of the
339 Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J. Burruss,
340 J. Chu, Editor. July 1994.'
343 `RIP Version 2 MIB Extension. G. Malkin & F. Baker. November 1994.'
346 `OSPF Version 2 Management Information Base. F. Baker, R. Coltun.
351 File: quagga.info, Node: How to get Quagga, Next: Mailing List, Prev: Supported RFC, Up: Overview
353 1.5 How to get Quagga
354 =====================
356 Quagga is still beta software and there is no officially released
359 Zebra's official web page is located at:
361 `http://www.gnu.org/software/zebra/zebra.html'.
363 The original Zebra web site is located at:
365 `http://www.zebra.org/'.
367 As of this writing, development by zebra.org on Zebra has slowed
368 down. Some work is being done by third-parties to try maintain
369 bug-fixes and enhancements to the current Zebra code-base, which has
370 resulted in a fork of Zebra called Quagga, see:
372 `http://www.quagga.net/'
374 for further information, as well as links to additional zebra
378 File: quagga.info, Node: Mailing List, Next: Bug Reports, Prev: How to get Quagga, Up: Overview
383 There is a mailing list for discussions about Quagga. If you have any
384 comments or suggestions to Quagga, please subscribe to:
386 `http://lists.quagga.net/mailman/listinfo/quagga-users'.
388 The Quagga site has further information on the available mailing
391 `http://www.quagga.net/lists.php'
394 File: quagga.info, Node: Bug Reports, Prev: Mailing List, Up: Overview
399 If you think you have found a bug, please send a bug report to:
401 `http://bugzilla.quagga.net'
403 When you send a bug report, please be careful about the points below.
405 * Please note what kind of OS you are using. If you use the IPv6
406 stack please note that as well.
408 * Please show us the results of `netstat -rn' and `ifconfig -a'.
409 Information from zebra's VTY command `show ip route' will also be
412 * Please send your configuration file with the report. If you
413 specify arguments to the configure script please note that too.
415 Bug reports are very important for us to improve the quality of
416 Quagga. Quagga is still in the development stage, but please don't
417 hesitate to send a bug report to `http://bugzilla.quagga.net'.
420 File: quagga.info, Node: Installation, Next: Basic commands, Prev: Overview, Up: Top
425 There are three steps for installing the software: configuration,
426 compilation, and installation.
430 * Configure the Software::
431 * Build the Software::
432 * Install the Software::
434 The easiest way to get Quagga running is to issue the following
442 File: quagga.info, Node: Configure the Software, Next: Build the Software, Up: Installation
444 2.1 Configure the Software
445 ==========================
449 * The Configure script and its options::
450 * Least-Privilege support::
454 File: quagga.info, Node: The Configure script and its options, Next: Least-Privilege support, Up: Configure the Software
456 2.1.1 The Configure script and its options
457 ------------------------------------------
459 Quagga has an excellent configure script which automatically detects
460 most host configurations. There are several additional configure
461 options you can use to turn off IPv6 support, to disable the
462 compilation of specific daemons, and to enable SNMP support.
465 Turn on compilation of the zebra-guile interpreter. You will need
466 the guile library to make this. zebra-guile implementation is not
467 yet finished. So this option is only useful for zebra-guile
471 Turn off IPv6 related features and daemons. Quagga configure
472 script automatically detects IPv6 stack. But sometimes you might
473 want to disable IPv6 support of Quagga.
476 Do not build zebra daemon.
493 `--disable-bgp-announce'
494 Make `bgpd' which does not make bgp announcements at all. This
495 feature is good for using `bgpd' as a BGP announcement listener.
498 Force to enable GNU/Linux netlink interface. Quagga configure
499 script detects netlink interface by checking a header file. When
500 the header file does not match to the current running kernel,
501 configure script will not turn on netlink support.
504 Enable SNMP support. By default, SNMP support is disabled.
506 `--enable-opaque-lsa'
507 Enable support for Opaque LSAs (RFC2370) in ospfd.
510 Disable support for OSPF-API, an API to interface directly with
511 ospfd. OSPF-API is enabled if -enable-opaque-lsa is set.
513 `--disable-ospfclient'
514 Disable building of the example OSPF-API client.
517 Enable support for OSPF Traffic Engineering Extension
518 (internet-draft) this requires support for Opaque LSAs.
520 `--enable-multipath=ARG'
521 Enable support for Equal Cost Multipath. ARG is the maximum number
522 of ECMP paths to allow, set to 0 to allow unlimited number of
526 Enable support IPV6 router advertisement in zebra.
528 You may specify any combination of the above options to the configure
529 script. By default, the executables are placed in `/usr/local/sbin'
530 and the configuration files in `/usr/local/etc'. The `/usr/local/'
531 installation prefix and other directories may be changed using the
532 following options to the configuration script.
535 Install architecture-independent files in PREFIX [/usr/local].
538 Look for configuration files in DIR [PREFIX/etc]. Note that sample
539 configuration files will be installed here.
541 `--localstatedir=DIR'
542 Configure zebra to use DIR for local state files, such as pid
543 files and unix sockets.
545 % ./configure --disable-ipv6
547 This command will configure zebra and the routing daemons.
550 File: quagga.info, Node: Least-Privilege support, Next: Linux notes, Prev: The Configure script and its options, Up: Configure the Software
552 2.1.2 Least-Privilege support
553 -----------------------------
555 Additionally, you may configure zebra to drop its elevated privileges
556 shortly after startup and switch to another user. The configure script
557 will automatically try to configure this support. There are three
558 configure options to control the behaviour of Quagga daemons.
561 Switch to user ARG shortly after startup, and run as user ARG in
564 `--enable-group=GROUP'
565 Switch real and effective group to GROUP shortly after startup.
567 `--enable-vty-group=GROUP'
568 Create Unix Vty sockets (for use with vtysh) with group owndership
569 set to GROUP. This allows one to create a seperate group which is
570 restricted to accessing only the Vty sockets, hence allowing one to
571 delegate this group to individual users, or to run vtysh setgid to
574 The default user and group which will be configured is 'quagga' if
575 no user or group is specified. Note that this user or group requires
576 write access to the local state directory (see -localstatedir) and
577 requires at least read access, and write access if you wish to allow
578 daemons to write out their configuration, to the configuration
579 directory (see -sysconfdir).
581 On systems which have the 'libcap' capabilities manipulation library
582 (currently only linux), the quagga system will retain only minimal
583 capabilities required, further it will only raise these capabilities for
584 brief periods. On systems without libcap, quagga will run as the user
585 specified and only raise its uid back to uid 0 for brief periods.
588 File: quagga.info, Node: Linux notes, Prev: Least-Privilege support, Up: Configure the Software
593 There are several options available only to GNU/Linux systems: (1). If
594 you use GNU/Linux, make sure that the current kernel configuration is
595 what you want. Quagga will run with any kernel configuration but some
596 recommendations do exist.
599 Kernel/User netlink socket. This is a brand new feature which
600 enables an advanced interface between the Linux kernel and zebra
601 (*note Kernel Interface::).
604 Routing messages. This makes it possible to receive netlink
605 routing messages. If you specify this option, `zebra' can detect
606 routing information updates directly from the kernel (*note Kernel
610 IP: multicasting. This option should be specified when you use
611 `ripd' (*note RIP::) or `ospfd' (*note OSPFv2::) because these
612 protocols use multicast.
615 IPv6 support has been added in GNU/Linux kernel version 2.2. If you
616 try to use the Quagga IPv6 feature on a GNU/Linux kernel, please make
617 sure the following libraries have been installed. Please note that
618 these libraries will not be needed when you uses GNU C library 2.1 or
622 The `inet6-apps' package includes basic IPv6 related libraries such
623 as `inet_ntop' and `inet_pton'. Some basic IPv6 programs such as
624 `ping', `ftp', and `inetd' are also included. The `inet-apps' can
625 be found at `ftp://ftp.inner.net/pub/ipv6/'.
628 The `net-tools' package provides an IPv6 enabled interface and
629 routing utility. It contains `ifconfig', `route', `netstat', and
630 other tools. `net-tools' may be found at
631 `http://www.tazenda.demon.co.uk/phil/net-tools/'.
634 ---------- Footnotes ----------
636 (1) GNU/Linux has very flexible kernel configuration features
639 File: quagga.info, Node: Build the Software, Next: Install the Software, Prev: Configure the Software, Up: Installation
641 2.2 Build the Software
642 ======================
644 After configuring the software, you will need to compile it for your
645 system. Simply issue the command `make' in the root of the source
646 directory and the software will be compiled. If you have *any* problems
647 at this stage, be certain to send a bug report *Note Bug Reports::.
660 File: quagga.info, Node: Install the Software, Prev: Build the Software, Up: Installation
662 2.3 Install the Software
663 ========================
665 Installing the software to your system consists of copying the compiled
666 programs and supporting files to a standard location. After the
667 installation process has completed, these files have been copied from
668 your work directory to `/usr/local/bin', and `/usr/local/etc'.
670 To install the Quagga suite, issue the following command at your
671 shell prompt: `make install'.
677 Quagga daemons have their own terminal interface or VTY. After
678 installation, you have to setup each beast's port number to connect to
679 them. Please add the following entries to `/etc/services'.
681 zebrasrv 2600/tcp # zebra service
682 zebra 2601/tcp # zebra vty
683 ripd 2602/tcp # RIPd vty
684 ripngd 2603/tcp # RIPngd vty
685 ospfd 2604/tcp # OSPFd vty
686 bgpd 2605/tcp # BGPd vty
687 ospf6d 2606/tcp # OSPF6d vty
688 ospfapi 2607/tcp # ospfapi
689 isisd 2608/tcp # ISISd vty
691 If you use a FreeBSD newer than 2.2.8, the above entries are already
692 added to `/etc/services' so there is no need to add it. If you specify
693 a port number when starting the daemon, these entries may not be needed.
695 You may need to make changes to the config files in
696 `/etc/quagga/*.conf'. *Note Config Commands::.
699 File: quagga.info, Node: Basic commands, Next: Zebra, Prev: Installation, Up: Top
704 There are five routing daemons in use, and there is one manager daemon.
705 These daemons may be located on separate machines from the manager
706 daemon. Each of these daemons will listen on a particular port for
707 incoming VTY connections. The routing daemons are:
709 * `ripd', `ripngd', `ospfd', `ospf6d', `bgpd'
713 The following sections discuss commands common to all the routing
718 * Terminal Mode Commands:: Common commands used in a VTY
719 * Config Commands:: Commands used in config files
720 * Common Invocation Options:: Starting the daemons
721 * Virtual Terminal Interfaces:: Interacting with the daemons
724 File: quagga.info, Node: Config Commands, Next: Common Invocation Options, Prev: Terminal Mode Commands, Up: Basic commands
731 * Basic Config Commands:: Some of the generic config commands
732 * Sample Config File:: An example config file
734 In a config file, you can write the debugging options, a vty's
735 password, routing daemon configurations, a log file name, and so forth.
736 This information forms the initial command set for a routing beast as
739 Config files are generally found in:
743 Each of the daemons has its own config file. For example, zebra's
744 default config file name is:
746 `/etc/quagga/zebra.conf'
748 The daemon name plus `.conf' is the default config file name. You
749 can specify a config file using the `-f' or `--config-file' options
750 when starting the daemon.
753 File: quagga.info, Node: Basic Config Commands, Next: Sample Config File, Up: Config Commands
755 3.1.1 Basic Config Commands
756 ---------------------------
758 -- Command: hostname HOSTNAME
759 Set hostname of the router.
761 -- Command: password PASSWORD
762 Set password for vty interface. If there is no password, a vty
763 won't accept connections.
765 -- Command: enable password PASSWORD
768 -- Command: log trap LEVEL
769 -- Command: no log trap
770 These commands are deprecated and are present only for historical
771 compatibility. The log trap command sets the current logging
772 level for all enabled logging destinations, and it sets the
773 default for all future logging commands that do not specify a
774 level. The normal default logging level is debugging. The `no'
775 form of the command resets the default level for future logging
776 commands to debugging, but it does not change the logging level of
777 existing logging destinations.
779 -- Command: log stdout
780 -- Command: log stdout LEVEL
781 -- Command: no log stdout
782 Enable logging output to stdout. If the optional second argument
783 specifying the logging level is not present, the default logging
784 level (typically debugging, but can be changed using the
785 deprecated `log trap' command) will be used. The `no' form of the
786 command disables logging to stdout. The `level' argument must
787 have one of these values: emergencies, alerts, critical, errors,
788 warnings, notifications, informational, or debugging. Note that
789 the existing code logs its most important messages with severity
792 -- Command: log file FILENAME
793 -- Command: log file FILENAME LEVEL
794 -- Command: no log file
795 If you want to log into a file, please specify `filename' as in
797 log file /var/log/quagga/bgpd.log informational
798 If the optional second argument specifying the logging level is
799 not present, the default logging level (typically debugging, but
800 can be changed using the deprecated `log trap' command) will be
801 used. The `no' form of the command disables logging to a file.
803 Note: if you do not configure any file logging, and a daemon
804 crashes due to a signal or an assertion failure, it will attempt
805 to save the crash information in a file named
806 /var/tmp/quagga.<daemon name>.crashlog. For security reasons,
807 this will not happen if the file exists already, so it is
808 important to delete the file after reporting the crash information.
810 -- Command: log syslog
811 -- Command: log syslog LEVEL
812 -- Command: no log syslog
813 Enable logging output to syslog. If the optional second argument
814 specifying the logging level is not present, the default logging
815 level (typically debugging, but can be changed using the
816 deprecated `log trap' command) will be used. The `no' form of the
817 command disables logging to syslog.
819 -- Command: log monitor
820 -- Command: log monitor LEVEL
821 -- Command: no log monitor
822 Enable logging output to vty terminals that have enabled logging
823 using the `terminal monitor' command. By default, monitor logging
824 is enabled at the debugging level, but this command (or the
825 deprecated `log trap' command) can be used to change the monitor
826 logging level. If the optional second argument specifying the
827 logging level is not present, the default logging level (typically
828 debugging, but can be changed using the deprecated `log trap'
829 command) will be used. The `no' form of the command disables
830 logging to terminal monitors.
832 -- Command: log facility FACILITY
833 -- Command: no log facility
834 This command changes the facility used in syslog messages. The
835 default facility is `daemon'. The `no' form of the command resets
836 the facility to the default `daemon' facility.
838 -- Command: log record-priority
839 -- Command: no log record-priority
840 To include the severity in all messages logged to a file, to
841 stdout, or to a terminal monitor (i.e. anything except syslog),
842 use the `log record-priority' global configuration command. To
843 disable this option, use the `no' form of the command. By default,
844 the severity level is not included in logged messages. Note: some
845 versions of syslogd (including Solaris) can be configured to
846 include the facility and level in the messages emitted.
848 -- Command: service password-encryption
851 -- Command: service advanced-vty
852 Enable advanced mode VTY.
854 -- Command: service terminal-length <0-512>
855 Set system wide line configuration. This configuration command
856 applies to all VTY interfaces.
859 Enter vty configuration mode.
861 -- Command: banner motd default
862 Set default motd string.
864 -- Command: no banner motd
865 No motd banner string will be printed.
867 -- Line Command: exec-timeout MINUTE
868 -- Line Command: exec-timeout MINUTE SECOND
869 Set VTY connection timeout value. When only one argument is
870 specified it is used for timeout value in minutes. Optional
871 second argument is used for timeout value in seconds. Default
872 timeout value is 10 minutes. When timeout value is zero, it means
875 -- Line Command: no exec-timeout
876 Do not perform timeout at all. This command is as same as
879 -- Line Command: access-class ACCESS-LIST
880 Restrict vty connections with an access list.
883 File: quagga.info, Node: Sample Config File, Prev: Basic Config Commands, Up: Config Commands
885 3.1.2 Sample Config File
886 ------------------------
888 Below is a sample configuration file for the zebra daemon.
891 ! Zebra configuration file
895 enable password zebra
901 '!' and '#' are comment characters. If the first character of the
902 word is one of the comment characters then from the rest of the line
903 forward will be ignored as a comment.
905 password zebra!password
907 If a comment character is not the first character of the word, it's a
908 normal character. So in the above example '!' will not be regarded as a
909 comment and the password is set to 'zebra!password'.
912 File: quagga.info, Node: Terminal Mode Commands, Next: Config Commands, Up: Basic commands
914 3.2 Terminal Mode Commands
915 ==========================
917 -- Command: write terminal
918 Displays the current configuration to the vty interface.
920 -- Command: write file
921 Write current configuration to configuration file.
923 -- Command: configure terminal
924 Change to configuration mode. This command is the first step to
927 -- Command: terminal length <0-512>
928 Set terminal display length to <0-512>. If length is 0, no
929 display control is performed.
932 Show a list of currently connected vty sessions.
935 List all available commands.
937 -- Command: show version
938 Show the current version of Quagga and its build host information.
940 -- Command: show logging
941 Shows the current configuration of the logging system. This
942 includes the status of all logging destinations.
944 -- Command: logmsg LEVEL MESSAGE
945 Send a message to all logging destinations that are enabled for
946 messages of the given severity.
949 File: quagga.info, Node: Common Invocation Options, Next: Virtual Terminal Interfaces, Prev: Config Commands, Up: Basic commands
951 3.3 Common Invocation Options
952 =============================
954 These options apply to all Quagga daemons.
962 Set configuration file name.
966 Display this help and exit.
970 Upon startup the process identifier of the daemon is written to a
971 file, typically in `/var/run'. This file can be used by the init
972 system to implement commands such as `.../init.d/zebra status',
973 `.../init.d/zebra restart' or `.../init.d/zebra stop'.
975 The file name is an run-time option rather than a configure-time
976 option so that multiple routing daemons can be run simultaneously.
977 This is useful when using Quagga to implement a routing looking
978 glass. One machine can be used to collect differing routing views
979 from differing points in the network.
983 Set the VTY local address to bind to. If set, the VTY socket will
984 only be bound to this address.
988 Set the VTY TCP port number. If set to 0 then the TCP VTY sockets
993 Set the user and group to run as.
997 Print program version.
1001 File: quagga.info, Node: Virtual Terminal Interfaces, Prev: Common Invocation Options, Up: Basic commands
1003 3.4 Virtual Terminal Interfaces
1004 ===============================
1006 VTY - Virtual Terminal [aka TeletYpe] Interface is a command line
1007 interface (CLI) for user interaction with the routing daemon.
1011 * VTY Overview:: Basics about VTYs
1012 * VTY Modes:: View, Enable, and Other VTY modes
1013 * VTY CLI Commands:: Commands for movement, edition, and management
1016 File: quagga.info, Node: VTY Overview, Next: VTY Modes, Up: Virtual Terminal Interfaces
1021 VTY stands for Virtual TeletYpe interface. It means you can connect to
1022 the daemon via the telnet protocol.
1024 To enable a VTY interface, you have to setup a VTY password. If
1025 there is no VTY password, one cannot connect to the VTY interface at
1028 % telnet localhost 2601
1030 Connected to localhost.
1031 Escape character is '^]'.
1033 Hello, this is Quagga (version 0.99.1)
1034 Copyright (C) 1999-2005 Kunihiro Ishiguro, et al.
1036 User Access Verification
1040 enable Turn on privileged commands
1041 exit Exit current mode and down to previous mode
1042 help Description of the interactive help system
1043 list Print command list
1044 show Show running system information
1045 who Display who is on a vty
1048 Router# configure terminal
1049 Router(config)# interface eth0
1050 Router(config-if)# ip address 10.0.0.1/8
1051 Router(config-if)# ^Z
1054 '?' is very useful for looking up commands.
1057 File: quagga.info, Node: VTY Modes, Next: VTY CLI Commands, Prev: VTY Overview, Up: Virtual Terminal Interfaces
1062 There are three basic VTY modes:
1066 * VTY View Mode:: Mode for read-only interaction
1067 * VTY Enable Mode:: Mode for read-write interaction
1068 * VTY Other Modes:: Special modes (tftp, etc)
1070 There are commands that may be restricted to specific VTY modes.
1073 File: quagga.info, Node: VTY View Mode, Next: VTY Enable Mode, Up: VTY Modes
1075 3.4.2.1 VTY View Mode
1076 .....................
1078 This mode is for read-only access to the CLI. One may exit the mode by
1079 leaving the system, or by entering `enable' mode.
1082 File: quagga.info, Node: VTY Enable Mode, Next: VTY Other Modes, Prev: VTY View Mode, Up: VTY Modes
1084 3.4.2.2 VTY Enable Mode
1085 .......................
1087 This mode is for read-write access to the CLI. One may exit the mode by
1088 leaving the system, or by escaping to view mode.
1091 File: quagga.info, Node: VTY Other Modes, Prev: VTY Enable Mode, Up: VTY Modes
1093 3.4.2.3 VTY Other Modes
1094 .......................
1096 This page is for describing other modes.
1099 File: quagga.info, Node: VTY CLI Commands, Prev: VTY Modes, Up: Virtual Terminal Interfaces
1101 3.4.3 VTY CLI Commands
1102 ----------------------
1104 Commands that you may use at the command-line are described in the
1105 following three subsubsections.
1109 * CLI Movement Commands:: Commands for moving the cursor about
1110 * CLI Editing Commands:: Commands for changing text
1111 * CLI Advanced Commands:: Other commands, session management and so on
1114 File: quagga.info, Node: CLI Movement Commands, Next: CLI Editing Commands, Up: VTY CLI Commands
1116 3.4.3.1 CLI Movement Commands
1117 .............................
1119 These commands are used for moving the CLI cursor. The <C> character
1120 means press the Control Key.
1124 Move forward one character.
1128 Move backward one character.
1131 Move forward one word.
1134 Move backward one word.
1137 Move to the beginning of the line.
1140 Move to the end of the line.
1144 File: quagga.info, Node: CLI Editing Commands, Next: CLI Advanced Commands, Prev: CLI Movement Commands, Up: VTY CLI Commands
1146 3.4.3.2 CLI Editing Commands
1147 ............................
1149 These commands are used for editing text on a line. The <C> character
1150 means press the Control Key.
1154 Delete the character before point.
1157 Delete the character after point.
1166 Kill to the end of the line.
1169 Kill line from the beginning, erasing input.
1172 Transpose character.
1176 File: quagga.info, Node: CLI Advanced Commands, Prev: CLI Editing Commands, Up: VTY CLI Commands
1178 3.4.3.3 CLI Advanced Commands
1179 .............................
1181 There are several additional CLI commands for command line completions,
1182 insta-help, and VTY session management.
1185 Interrupt current input and moves to the next line.
1188 End current configuration session and move to top node.
1192 Move down to next line in the history buffer.
1196 Move up to previous line in the history buffer.
1199 Use command line completion by typing <TAB>.
1202 You can use command line help by typing `help' at the beginning of
1203 the line. Typing `?' at any point in the line will show possible
1208 File: quagga.info, Node: Zebra, Next: RIP, Prev: Basic commands, Up: Top
1213 `zebra' is an IP routing manager. It provides kernel routing table
1214 updates, interface lookups, and redistribution of routes between
1215 different routing protocols.
1219 * Invoking zebra:: Running the program
1220 * Interface Commands:: Commands for zebra interfaces
1221 * Static Route Commands:: Commands for adding static routes
1222 * zebra Terminal Mode Commands:: Commands for zebra's VTY
1225 File: quagga.info, Node: Invoking zebra, Next: Interface Commands, Up: Zebra
1230 Besides the common invocation options (*note Common Invocation
1231 Options::), the `zebra' specific invocation options are listed below.
1235 Runs in batch mode. `zebra' parses configuration file and
1236 terminates immediately.
1240 When zebra starts up, don't delete old self inserted routes.
1244 Set verbose logging on.
1248 When program terminates, retain routes added by zebra.
1252 File: quagga.info, Node: Interface Commands, Next: Static Route Commands, Prev: Invoking zebra, Up: Zebra
1254 4.2 Interface Commands
1255 ======================
1257 -- Command: interface IFNAME
1259 -- Interface Command: shutdown
1260 -- Interface Command: no shutdown
1261 Up or down the current interface.
1263 -- Interface Command: ip address ADDRESS/PREFIX
1264 -- Interface Command: ip6 address ADDRESS/PREFIX
1265 -- Interface Command: no ip address ADDRESS/PREFIX
1266 -- Interface Command: no ip6 address ADDRESS/PREFIX
1267 Set the IPv4 or IPv6 address/prefix for the interface.
1269 -- Interface Command: ip address ADDRESS/PREFIX secondary
1270 -- Interface Command: no ip address ADDRESS/PREFIX secondary
1271 Set the secondary flag for this address. This causes ospfd to not
1272 treat the address as a distinct subnet.
1274 -- Interface Command: description DESCRIPTION ...
1275 Set description for the interface.
1277 -- Interface Command: multicast
1278 -- Interface Command: no multicast
1279 Enable or disables multicast flag for the interface.
1281 -- Interface Command: bandwidth <1-10000000>
1282 -- Interface Command: no bandwidth <1-10000000>
1283 Set bandwidth value of the interface in kilobits/sec. This is for
1284 calculating OSPF cost. This command does not affect the actual
1285 device configuration.
1287 -- Interface Command: link-detect
1288 -- Interface Command: no link-detect
1289 Enable/disable link-detect on platforms which support this.
1290 Currently only linux and with certain drivers - those which
1291 properly support the IFF_RUNNING flag.
1294 File: quagga.info, Node: Static Route Commands, Next: zebra Terminal Mode Commands, Prev: Interface Commands, Up: Zebra
1296 4.3 Static Route Commands
1297 =========================
1299 Static routing is a very fundamental feature of routing technology. It
1300 defines static prefix and gateway.
1302 -- Command: ip route NETWORK GATEWAY
1303 NETWORK is destination prefix with format of A.B.C.D/M. GATEWAY
1304 is gateway for the prefix. When GATEWAY is A.B.C.D format. It is
1305 taken as a IPv4 address gateway. Otherwise it is treated as an
1306 interface name. If the interface name is NULL0 then zebra installs
1309 ip route 10.0.0.0/8 10.0.0.2
1310 ip route 10.0.0.0/8 ppp0
1311 ip route 10.0.0.0/8 null0
1313 First example defines 10.0.0.0/8 static route with gateway
1314 10.0.0.2. Second one defines the same prefix but with gateway to
1315 interface ppp0. The third install a blackhole route.
1317 -- Command: ip route NETWORK NETMASK GATEWAY
1318 This is alternate version of above command. When NETWORK is
1319 A.B.C.D format, user must define NETMASK value with A.B.C.D
1320 format. GATEWAY is same option as above command
1322 ip route 10.0.0.0 255.255.255.0 10.0.0.2
1323 ip route 10.0.0.0 255.255.255.0 ppp0
1324 ip route 10.0.0.0 255.255.255.0 null0
1326 These statements are equivalent to those in the previous example.
1328 -- Command: ip route NETWORK GATEWAY DISTANCE
1329 Installs the route with the specified distance.
1331 Multiple nexthop static route
1333 ip route 10.0.0.1/32 10.0.0.2
1334 ip route 10.0.0.1/32 10.0.0.3
1335 ip route 10.0.0.1/32 eth0
1337 If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0 is
1338 reachable, then the last route is installed into the kernel.
1340 If zebra has been compiled with multipath support, and both 10.0.0.2
1341 and 10.0.0.3 are reachable, zebra will install a multipath route via
1342 both nexthops, if the platform supports this.
1344 zebra> show ip route
1345 S> 10.0.0.1/32 [1/0] via 10.0.0.2 inactive
1346 via 10.0.0.3 inactive
1347 * is directly connected, eth0
1349 ip route 10.0.0.0/8 10.0.0.2
1350 ip route 10.0.0.0/8 10.0.0.3
1351 ip route 10.0.0.0/8 null0 255
1353 This will install a multihop route via the specified next-hops if
1354 they are reachable, as well as a high-metric blackhole route, which can
1355 be useful to prevent traffic destined for a prefix to match
1356 less-specific routes (eg default) should the specified gateways not be
1359 zebra> show ip route 10.0.0.0/8
1360 Routing entry for 10.0.0.0/8
1361 Known via "static", distance 1, metric 0
1365 Routing entry for 10.0.0.0/8
1366 Known via "static", distance 255, metric 0
1367 directly connected, Null0
1369 -- Command: ipv6 route NETWORK GATEWAY
1370 -- Command: ipv6 route NETWORK GATEWAY DISTANCE
1371 These behave similarly to their ipv4 counterparts.
1373 -- Command: table TABLENO
1374 Select the primary kernel routing table to be used. This only
1375 works for kernels supporting multiple routing tables (like
1376 GNU/Linux 2.2.x and later). After setting TABLENO with this
1377 command, static routes defined after this are added to the
1381 File: quagga.info, Node: zebra Terminal Mode Commands, Prev: Static Route Commands, Up: Zebra
1383 4.4 zebra Terminal Mode Commands
1384 ================================
1386 -- Command: show ip route
1387 Display current routes which zebra holds in its database.
1389 Router# show ip route
1390 Codes: K - kernel route, C - connected, S - static, R - RIP,
1391 B - BGP * - FIB route.
1393 K* 0.0.0.0/0 203.181.89.241
1394 S 0.0.0.0/0 203.181.89.1
1396 C* 203.181.89.240/28 eth0
1398 -- Command: show ipv6 route
1400 -- Command: show interface
1402 -- Command: show ipforward
1403 Display whether the host's IP forwarding function is enabled or
1404 not. Almost any UNIX kernel can be configured with IP forwarding
1405 disabled. If so, the box can't work as a router.
1407 -- Command: show ipv6forward
1408 Display whether the host's IP v6 forwarding is enabled or not.
1411 File: quagga.info, Node: RIP, Next: RIPng, Prev: Zebra, Up: Top
1416 RIP - Routing Information Protocol is widely deployed interior gateway
1417 protocol. RIP was developed in the 1970s at Xerox Labs as part of the
1418 XNS routing protocol. RIP is a "distance-vector" protocol and is based
1419 on the "Bellman-Ford" algorithms. As a distance-vector protocol, RIP
1420 router send updates to its neighbors periodically, thus allowing the
1421 convergence to a known topology. In each update, the distance to any
1422 given network will be broadcasted to its neighboring router.
1424 `ripd' supports RIP version 2 as described in RFC2453 and RIP
1425 version 1 as described in RFC1058.
1429 * Starting and Stopping ripd::
1430 * RIP Configuration::
1431 * How to Announce RIP route::
1432 * Filtering RIP Routes::
1433 * RIP Metric Manipulation::
1436 * RIP Authentication::
1438 * Show RIP Information::
1439 * RIP Debug Commands::
1442 File: quagga.info, Node: Starting and Stopping ripd, Next: RIP Configuration, Up: RIP
1444 5.1 Starting and Stopping ripd
1445 ==============================
1447 The default configuration file name of `ripd''s is `ripd.conf'. When
1448 invocation `ripd' searches directory /etc/quagga. If `ripd.conf' is
1449 not there next search current directory.
1451 RIP uses UDP port 520 to send and receive RIP packets. So the user
1452 must have the capability to bind the port, generally this means that
1453 the user must have superuser privileges. RIP protocol requires
1454 interface information maintained by `zebra' daemon. So running `zebra'
1455 is mandatory to run `ripd'. Thus minimum sequence for running RIP is
1461 Please note that `zebra' must be invoked before `ripd'.
1463 To stop `ripd'. Please use `kill `cat /var/run/ripd.pid`'. Certain
1464 signals have special meaningss to `ripd'.
1467 Reload configuration file `ripd.conf'. All configurations are
1468 reseted. All routes learned so far are cleared and removed from
1472 Rotate `ripd' logfile.
1476 `ripd' sweeps all installed RIP routes then terminates properly.
1478 `ripd' invocation options. Common options that can be specified
1479 (*note Common Invocation Options::).
1483 When the program terminates, retain routes added by `ripd'.
1490 File: quagga.info, Node: RIP netmask, Up: Starting and Stopping ripd
1495 The netmask features of `ripd' support both version 1 and version 2 of
1496 RIP. Version 1 of RIP originally contained no netmask information. In
1497 RIP version 1, network classes were originally used to determine the
1498 size of the netmask. Class A networks use 8 bits of mask, Class B
1499 networks use 16 bits of masks, while Class C networks use 24 bits of
1500 mask. Today, the most widely used method of a network mask is assigned
1501 to the packet on the basis of the interface that received the packet.
1502 Version 2 of RIP supports a variable length subnet mask (VLSM). By
1503 extending the subnet mask, the mask can be divided and reused. Each
1504 subnet can be used for different purposes such as large to middle size
1505 LANs and WAN links. Quagga `ripd' does not support the non-sequential
1506 netmasks that are included in RIP Version 2.
1508 In a case of similar information with the same prefix and metric, the
1509 old information will be suppressed. Ripd does not currently support
1510 equal cost multipath routing.
1513 File: quagga.info, Node: RIP Configuration, Next: How to Announce RIP route, Prev: Starting and Stopping ripd, Up: RIP
1515 5.2 RIP Configuration
1516 =====================
1518 -- Command: router rip
1519 The `router rip' command is necessary to enable RIP. To disable
1520 RIP, use the `no router rip' command. RIP must be enabled before
1521 carrying out any of the RIP commands.
1523 -- Command: no router rip
1526 RIP can be configured to process either Version 1 or Version 2
1527 packets, the default mode is Version 2. If no version is specified,
1528 then the RIP daemon will default to Version 2. If RIP is set to Version
1529 1, the setting "Version 1" will be displayed, but the setting "Version
1530 2" will not be displayed whether or not Version 2 is set explicitly as
1531 the version of RIP being used. The version can be specified globally,
1532 and also on a per-interface basis (see below).
1534 -- RIP Command: version VERSION
1535 Set RIP process's version. VERSION can be `1" or `2".
1537 -- RIP Command: network NETWORK
1538 -- RIP Command: no network NETWORK
1539 Set the RIP enable interface by NETWORK. The interfaces which
1540 have addresses matching with NETWORK are enabled.
1542 This group of commands either enables or disables RIP interfaces
1543 between certain numbers of a specified network address. For
1544 example, if the network for 10.0.0.0/24 is RIP enabled, this would
1545 result in all the addresses from 10.0.0.0 to 10.0.0.255 being
1546 enabled for RIP. The `no network' command will disable RIP for
1547 the specified network.
1549 -- RIP Command: network IFNAME
1550 -- RIP Command: no network IFNAME
1551 Set a RIP enabled interface by IFNAME. Both the sending and
1552 receiving of RIP packets will be enabled on the port specified in
1553 the `network ifname' command. The `no network ifname' command
1554 will disable RIP on the specified interface.
1556 -- RIP Command: neighbor A.B.C.D
1557 -- RIP Command: no neighbor A.B.C.D
1558 Specify RIP neighbor. When a neighbor doesn't understand
1559 multicast, this command is used to specify neighbors. In some
1560 cases, not all routers will be able to understand multicasting,
1561 where packets are sent to a network or a group of addresses. In a
1562 situation where a neighbor cannot process multicast packets, it is
1563 necessary to establish a direct link between routers. The
1564 neighbor command allows the network administrator to specify a
1565 router as a RIP neighbor. The `no neighbor a.b.c.d' command will
1566 disable the RIP neighbor.
1568 Below is very simple RIP configuration. Interface `eth0' and
1569 interface which address match to `10.0.0.0/8' are RIP enabled.
1579 -- RIP command: passive-interface (IFNAME|default)
1580 -- RIP command: no passive-interface IFNAME
1581 This command sets the specified interface to passive mode. On
1582 passive mode interface, all receiving packets are processed as
1583 normal and ripd does not send either multicast or unicast RIP
1584 packets except to RIP neighbors specified with `neighbor' command.
1585 The interface may be specified as DEFAULT to make ripd default to
1586 passive on all interfaces.
1588 The default is to be passive on all interfaces.
1590 RIP version handling
1592 -- Interface command: ip rip send version VERSION
1593 VERSION can be `1', `2', `1 2'. This configuration command
1594 overrides the router's rip version setting. The command will
1595 enable the selected interface to send packets with RIP Version 1,
1596 RIP Version 2, or both. In the case of '1 2', packets will be
1597 both broadcast and multicast.
1599 The default is to send only version 2.
1601 -- Interface command: ip rip receive version VERSION
1602 Version setting for incoming RIP packets. This command will
1603 enable the selected interface to receive packets in RIP Version 1,
1604 RIP Version 2, or both.
1606 The default is to receive both versions.
1610 -- Interface command: ip split-horizon
1611 -- Interface command: no ip split-horizon
1612 Control split-horizon on the interface. Default is `ip
1613 split-horizon'. If you don't perform split-horizon on the
1614 interface, please specify `no ip split-horizon'.
1617 File: quagga.info, Node: How to Announce RIP route, Next: Filtering RIP Routes, Prev: RIP Configuration, Up: RIP
1619 5.3 How to Announce RIP route
1620 =============================
1622 -- RIP command: redistribute kernel
1623 -- RIP command: redistribute kernel metric <0-16>
1624 -- RIP command: redistribute kernel route-map ROUTE-MAP
1625 -- RIP command: no redistribute kernel
1626 `redistribute kernel' redistributes routing information from
1627 kernel route entries into the RIP tables. `no redistribute kernel'
1628 disables the routes.
1630 -- RIP command: redistribute static
1631 -- RIP command: redistribute static metric <0-16>
1632 -- RIP command: redistribute static route-map ROUTE-MAP
1633 -- RIP command: no redistribute static
1634 `redistribute static' redistributes routing information from
1635 static route entries into the RIP tables. `no redistribute static'
1636 disables the routes.
1638 -- RIP command: redistribute connected
1639 -- RIP command: redistribute connected metric <0-16>
1640 -- RIP command: redistribute connected route-map ROUTE-MAP
1641 -- RIP command: no redistribute connected
1642 Redistribute connected routes into the RIP tables. `no
1643 redistribute connected' disables the connected routes in the RIP
1644 tables. This command redistribute connected of the interface
1645 which RIP disabled. The connected route on RIP enabled interface
1646 is announced by default.
1648 -- RIP command: redistribute ospf
1649 -- RIP command: redistribute ospf metric <0-16>
1650 -- RIP command: redistribute ospf route-map ROUTE-MAP
1651 -- RIP command: no redistribute ospf
1652 `redistribute ospf' redistributes routing information from ospf
1653 route entries into the RIP tables. `no redistribute ospf' disables
1656 -- RIP command: redistribute bgp
1657 -- RIP command: redistribute bgp metric <0-16>
1658 -- RIP command: redistribute bgp route-map ROUTE-MAP
1659 -- RIP command: no redistribute bgp
1660 `redistribute bgp' redistributes routing information from bgp
1661 route entries into the RIP tables. `no redistribute bgp' disables
1664 If you want to specify RIP only static routes:
1666 -- RIP command: default-information originate
1668 -- RIP command: route A.B.C.D/M
1669 -- RIP command: no route A.B.C.D/M
1670 This command is specific to Quagga. The `route' command makes a
1671 static route only inside RIP. This command should be used only by
1672 advanced users who are particularly knowledgeable about the RIP
1673 protocol. In most cases, we recommend creating a static route in
1674 Quagga and redistributing it in RIP using `redistribute static'.
1677 File: quagga.info, Node: Filtering RIP Routes, Next: RIP Metric Manipulation, Prev: How to Announce RIP route, Up: RIP
1679 5.4 Filtering RIP Routes
1680 ========================
1682 RIP routes can be filtered by a distribute-list.
1684 -- Command: distribute-list ACCESS_LIST DIRECT IFNAME
1685 You can apply access lists to the interface with a
1686 `distribute-list' command. ACCESS_LIST is the access list name.
1687 DIRECT is `in' or `out'. If DIRECT is `in' the access list is
1688 applied to input packets.
1690 The `distribute-list' command can be used to filter the RIP path.
1691 `distribute-list' can apply access-lists to a chosen interface.
1692 First, one should specify the access-list. Next, the name of the
1693 access-list is used in the distribute-list command. For example,
1694 in the following configuration `eth0' will permit only the paths
1695 that match the route 10.0.0.0/8
1699 distribute-list private in eth0
1701 access-list private permit 10 10.0.0.0/8
1702 access-list private deny any
1705 `distribute-list' can be applied to both incoming and outgoing data.
1707 -- Command: distribute-list prefix PREFIX_LIST (in|out) IFNAME
1708 You can apply prefix lists to the interface with a
1709 `distribute-list' command. PREFIX_LIST is the prefix list name.
1710 Next is the direction of `in' or `out'. If DIRECT is `in' the
1711 access list is applied to input packets.
1714 File: quagga.info, Node: RIP Metric Manipulation, Next: RIP distance, Prev: Filtering RIP Routes, Up: RIP
1716 5.5 RIP Metric Manipulation
1717 ===========================
1719 RIP metric is a value for distance for the network. Usually `ripd'
1720 increment the metric when the network information is received.
1721 Redistributed routes' metric is set to 1.
1723 -- RIP command: default-metric <1-16>
1724 -- RIP command: no default-metric <1-16>
1725 This command modifies the default metric value for redistributed
1726 routes. The default value is 1. This command does not affect
1727 connected route even if it is redistributed by `redistribute
1728 connected'. To modify connected route's metric value, please use
1729 `redistribute connected metric' or `route-map'. `offset-list' also
1730 affects connected routes.
1732 -- RIP command: offset-list ACCESS-LIST (in|out)
1733 -- RIP command: offset-list ACCESS-LIST (in|out) IFNAME
1736 File: quagga.info, Node: RIP distance, Next: RIP route-map, Prev: RIP Metric Manipulation, Up: RIP
1741 Distance value is used in zebra daemon. Default RIP distance is 120.
1743 -- RIP command: distance <1-255>
1744 -- RIP command: no distance <1-255>
1745 Set default RIP distance to specified value.
1747 -- RIP command: distance <1-255> A.B.C.D/M
1748 -- RIP command: no distance <1-255> A.B.C.D/M
1749 Set default RIP distance to specified value when the route's
1750 source IP address matches the specified prefix.
1752 -- RIP command: distance <1-255> A.B.C.D/M ACCESS-LIST
1753 -- RIP command: no distance <1-255> A.B.C.D/M ACCESS-LIST
1754 Set default RIP distance to specified value when the route's
1755 source IP address matches the specified prefix and the specified
1759 File: quagga.info, Node: RIP route-map, Next: RIP Authentication, Prev: RIP distance, Up: RIP
1764 Usage of `ripd''s route-map support.
1766 Optional argument route-map MAP_NAME can be added to each
1767 `redistribute' statement.
1769 redistribute static [route-map MAP_NAME]
1770 redistribute connected [route-map MAP_NAME]
1773 Cisco applies route-map _before_ routes will exported to rip route
1774 table. In current Quagga's test implementation, `ripd' applies
1775 route-map after routes are listed in the route table and before routes
1776 will be announced to an interface (something like output filter). I
1777 think it is not so clear, but it is draft and it may be changed at
1780 Route-map statement (*note Route Map::) is needed to use route-map
1783 -- Route Map: match interface WORD
1784 This command match to incoming interface. Notation of this match
1785 is different from Cisco. Cisco uses a list of interfaces - NAME1
1786 NAME2 ... NAMEN. Ripd allows only one name (maybe will change in
1787 the future). Next - Cisco means interface which includes next-hop
1788 of routes (it is somewhat similar to "ip next-hop" statement).
1789 Ripd means interface where this route will be sent. This
1790 difference is because "next-hop" of same routes which sends to
1791 different interfaces must be different. Maybe it'd be better to
1792 made new matches - say "match interface-out NAME" or something
1795 -- Route Map: match ip address WORD
1796 -- Route Map: match ip address prefix-list WORD
1797 Match if route destination is permitted by access-list.
1799 -- Route Map: match ip next-hop A.B.C.D
1800 Cisco uses here <access-list>, `ripd' IPv4 address. Match if route
1801 has this next-hop (meaning next-hop listed in the rip route table
1804 -- Route Map: match metric <0-4294967295>
1805 This command match to the metric value of RIP updates. For other
1806 protocol compatibility metric range is shown as <0-4294967295>.
1807 But for RIP protocol only the value range <0-16> make sense.
1809 -- Route Map: set ip next-hop A.B.C.D
1810 This command set next hop value in RIPv2 protocol. This command
1811 does not affect RIPv1 because there is no next hop field in the
1814 -- Route Map: set metric <0-4294967295>
1815 Set a metric for matched route when sending announcement. The
1816 metric value range is very large for compatibility with other
1817 protocols. For RIP, valid metric values are from 1 to 16.
1820 File: quagga.info, Node: RIP Authentication, Next: RIP Timers, Prev: RIP route-map, Up: RIP
1822 5.8 RIP Authentication
1823 ======================
1825 -- Interface command: ip rip authentication mode md5
1826 -- Interface command: no ip rip authentication mode md5
1827 Set the interface with RIPv2 MD5 authentication.
1829 -- Interface command: ip rip authentication mode text
1830 -- Interface command: no ip rip authentication mode text
1831 Set the interface with RIPv2 simple password authentication.
1833 -- Interface command: ip rip authentication string STRING
1834 -- Interface command: no ip rip authentication string STRING
1835 RIP version 2 has simple text authentication. This command sets
1836 authentication string. The string must be shorter than 16
1839 -- Interface command: ip rip authentication key-chain KEY-CHAIN
1840 -- Interface command: no ip rip authentication key-chain KEY-CHAIN
1841 Specifiy Keyed MD5 chain.
1849 ip rip authentication mode md5
1850 ip rip authentication key-chain test
1854 File: quagga.info, Node: RIP Timers, Next: Show RIP Information, Prev: RIP Authentication, Up: RIP
1859 -- RIP command: timers basic UPDATE TIMEOUT GARBAGE
1860 RIP protocol has several timers. User can configure those timers'
1861 values by `timers basic' command.
1863 The default settings for the timers are as follows:
1865 * The update timer is 30 seconds. Every update timer seconds,
1866 the RIP process is awakened to send an unsolicited Response
1867 message containing the complete routing table to all
1868 neighboring RIP routers.
1870 * The timeout timer is 180 seconds. Upon expiration of the
1871 timeout, the route is no longer valid; however, it is
1872 retained in the routing table for a short time so that
1873 neighbors can be notified that the route has been dropped.
1875 * The garbage collect timer is 120 seconds. Upon expiration of
1876 the garbage-collection timer, the route is finally removed
1877 from the routing table.
1880 The `timers basic' command allows the the default values of the
1881 timers listed above to be changed.
1883 -- RIP command: no timers basic
1884 The `no timers basic' command will reset the timers to the default
1885 settings listed above.
1888 File: quagga.info, Node: Show RIP Information, Next: RIP Debug Commands, Prev: RIP Timers, Up: RIP
1890 5.10 Show RIP Information
1891 =========================
1893 To display RIP routes.
1895 -- Command: show ip rip
1898 The command displays all RIP routes. For routes that are received
1899 through RIP, this command will display the time the packet was sent and
1900 the tag information. This command will also display this information
1901 for routes redistributed into RIP.
1903 -- Command: show ip protocols
1904 The command displays current RIP status. It includes RIP timer,
1905 filtering, version, RIP enabled interface and RIP peer inforation.
1907 ripd> show ip protocols
1908 Routing Protocol is "rip"
1909 Sending updates every 30 seconds with +/-50%, next due in 35 seconds
1910 Timeout after 180 seconds, garbage collect after 120 seconds
1911 Outgoing update filter list for all interface is not set
1912 Incoming update filter list for all interface is not set
1913 Default redistribution metric is 1
1914 Redistributing: kernel connected
1915 Default version control: send version 2, receive version 2
1917 Routing for Networks:
1922 Routing Information Sources:
1923 Gateway BadPackets BadRoutes Distance Last Update
1926 File: quagga.info, Node: RIP Debug Commands, Prev: Show RIP Information, Up: RIP
1928 5.11 RIP Debug Commands
1929 =======================
1931 Debug for RIP protocol.
1933 -- Command: debug rip events
1936 `debug rip' will show RIP events. Sending and receiving packets,
1937 timers, and changes in interfaces are events shown with `ripd'.
1939 -- Command: debug rip packet
1942 `debug rip packet' will display detailed information about the RIP
1943 packets. The origin and port number of the packet as well as a packet
1946 -- Command: debug rip zebra
1947 Debug rip between zebra communication.
1949 This command will show the communication between `ripd' and `zebra'.
1950 The main information will include addition and deletion of paths to
1951 the kernel and the sending and receiving of interface information.
1953 -- Command: show debugging rip
1954 Display `ripd''s debugging option.
1956 `show debugging rip' will show all information currently set for ripd
1960 File: quagga.info, Node: RIPng, Next: OSPFv2, Prev: RIP, Up: Top
1965 `ripngd' supports the RIPng protocol as described in RFC2080. It's an
1966 IPv6 reincarnation of the RIP protocol.
1971 * ripngd Configuration::
1972 * ripngd Terminal Mode Commands::
1973 * ripngd Filtering Commands::
1976 File: quagga.info, Node: Invoking ripngd, Next: ripngd Configuration, Up: RIPng
1981 There are no `ripngd' specific invocation options. Common options can
1982 be specified (*note Common Invocation Options::).
1985 File: quagga.info, Node: ripngd Configuration, Next: ripngd Terminal Mode Commands, Prev: Invoking ripngd, Up: RIPng
1987 6.2 ripngd Configuration
1988 ========================
1990 Currently ripngd supports the following commands:
1992 -- Command: router ripng
1995 -- RIPng Command: flush_timer TIME
1998 -- RIPng Command: network NETWORK
1999 Set RIPng enabled interface by NETWORK
2001 -- RIPng Command: network IFNAME
2002 Set RIPng enabled interface by IFNAME
2004 -- RIPng Command: route NETWORK
2005 Set RIPng static routing announcement of NETWORK.
2007 -- Command: router zebra
2008 This command is the default and does not appear in the
2009 configuration. With this statement, RIPng routes go to the
2013 File: quagga.info, Node: ripngd Terminal Mode Commands, Next: ripngd Filtering Commands, Prev: ripngd Configuration, Up: RIPng
2015 6.3 ripngd Terminal Mode Commands
2016 =================================
2018 -- Command: show ip ripng
2020 -- Command: show debugging ripng
2022 -- Command: debug ripng events
2024 -- Command: debug ripng packet
2026 -- Command: debug ripng zebra
2029 File: quagga.info, Node: ripngd Filtering Commands, Prev: ripngd Terminal Mode Commands, Up: RIPng
2031 6.4 ripngd Filtering Commands
2032 =============================
2034 -- Command: distribute-list ACCESS_LIST (in|out) IFNAME
2035 You can apply an access-list to the interface using the
2036 `distribute-list' command. ACCESS_LIST is an access-list name.
2037 DIRECT is `in' or `out'. If DIRECT is `in', the access-list is
2038 applied only to incoming packets.
2040 distribute-list local-only out sit1
2043 File: quagga.info, Node: OSPFv2, Next: OSPFv3, Prev: RIPng, Up: Top
2048 OSPF (Open Shortest Path First) version 2 is a routing protocol which
2049 is described in `RFC2328, OSPF Version 2'. OSPF is an IGP (Interior
2050 Gateway Protocol).. Compared with RIP, OSPF can provide scalable
2051 network support and faster convergence times. OSPF is widely used in
2052 large networks such as ISP (Internet Service Provider) backbone and
2053 enterprise networks.
2057 * Configuring ospfd::
2061 * Redistribute routes to OSPF::
2062 * Showing OSPF information::
2064 * OSPF Configuration Examples::
2067 File: quagga.info, Node: Configuring ospfd, Next: OSPF router, Up: OSPFv2
2069 7.1 Configuring ospfd
2070 =====================
2072 There are no `ospfd' specific options. Common options can be specified
2073 (*note Common Invocation Options::) to `ospfd'. `ospfd' needs to
2074 acquire interface information from `zebra' in order to function.
2075 Therefore `zebra' must be running before invoking `ospfd'. Also, if
2076 `zebra' is restarted then `ospfd' must be too.
2078 Like other daemons, `ospfd' configuration is done in OSPF specific
2079 configuration file `ospfd.conf'.
2082 File: quagga.info, Node: OSPF router, Next: OSPF area, Prev: Configuring ospfd, Up: OSPFv2
2087 To start OSPF process you have to specify the OSPF router. As of this
2088 writing, `ospfd' does not support multiple OSPF processes.
2090 -- Command: router ospf
2091 -- Command: no router ospf
2092 Enable or disable the OSPF process. `ospfd' does not yet support
2093 multiple OSPF processes. So you can not specify an OSPF process
2096 -- OSPF Command: ospf router-id A.B.C.D
2097 -- OSPF Command: no ospf router-id
2098 This sets the router-ID of the OSPF process. The router-ID may be
2099 an IP address of the router, but need not be - it can be any
2100 arbitrary 32bit number. However it MUST be unique within the
2101 entire OSPF domain to the OSPF speaker - bad things will happen if
2102 multiple OSPF speakers are configured with the same router-ID! If
2103 one is not specified then `ospfd' will obtain a router-ID
2104 automatically from `zebra'.
2106 -- OSPF Command: ospf abr-type TYPE
2107 -- OSPF Command: no ospf abr-type TYPE
2108 TYPE can be cisco|ibm|shortcut|standard.
2110 More information regarding the behaviour controlled by this
2111 command can be found in `RFC 3509, Alternative Implementations of
2112 OSPF Area Border Routers', and
2113 `draft-ietf-ospf-shortcut-abr-02.txt'.
2115 Quote: "Though the definition of the ABR (Area Border Router) in
2116 the OSPF specification does not require a router with multiple
2117 attached areas to have a backbone connection, it is actually
2118 necessary to provide successful routing to the inter-area and
2119 external destinations. If this requirement is not met, all traffic
2120 destined for the areas not connected to such an ABR or out of the
2121 OSPF domain, is dropped. This document describes alternative ABR
2122 behaviors implemented in Cisco and IBM routers."
2124 The default ABR type is 'Cisco', allowing an ABR to consider
2125 summaries from non-backbone areas if, and only if, it has lost its
2126 link(s) to the backbone area.
2128 -- OSPF Command: ospf rfc1583compatibility
2129 -- OSPF Command: no ospf rfc1583compatibility
2130 This `RFC2328', the sucessor to `RFC1583', suggests according to
2131 section G.2 (changes) in section 16.4 a change to the path
2132 preference algorithm that prevents possible routing loops that were
2133 possible in the old version of OSPFv2. More specifically it demands
2134 that inter-area paths and intra-area path are now of equal
2135 preference but still both preferred to external paths.
2137 This command should NOT be set normally.
2139 -- OSPF Command: passive interface INTERFACE
2140 -- OSPF Command: no passive interface INTERFACE
2141 Do not speak OSPF interface on the given interface, but do
2142 advertise the interface as a stub link in the router-LSA (Link
2143 State Advertisement) for this router. This allows one to advertise
2144 addresses on such connected interfaces without having to originate
2145 AS-External/Type-5 LSAs (which have global flooding scope) - as
2146 would occur if connected addresses were redistributed into OSPF,
2147 *Note Redistribute routes to OSPF::.
2150 -- OSPF Command: timers throttle spf DELAY INITIAL-HOLDTIME
2152 -- OSPF Command: no timers throttle spf
2153 This command sets the initial DELAY, the INITIAL-HOLDTIME and the
2154 MAXIMUM-HOLDTIME between when SPF is calculated and the event
2155 which triggered the calculation. The times are specified in
2156 milliseconds and must be in the range of 0 to 600000 milliseconds.
2158 The DELAY specifies the minimum amount of time to delay SPF
2159 calculation (hence it affects how long SPF calculation is delayed
2160 after an event which occurs outside of the holdtime of any
2161 previous SPF calculation, and also serves as a minimum holdtime).
2163 Consecutive SPF calculations will always be seperated by at least
2164 'hold-time' milliseconds. The hold-time is adaptive and initially
2165 is set to the INITIAL-HOLDTIME configured with the above command.
2166 Events which occur within the holdtime of the previous SPF
2167 calculation will cause the holdtime to be increased by
2168 INITIAL-HOLDTIME, bounded by the MAXIMUM-HOLDTIME configured with
2169 this command. If the adaptive hold-time elapses without any
2170 SPF-triggering event occuring then the current holdtime is reset
2171 to the INITIAL-HOLDTIME. The current holdtime can be viewed with
2172 *Note show ip ospf::, where it is expressed as a multiplier of the
2176 timers throttle spf 200 400 10000
2178 In this example, the DELAY is set to 200ms, the INITIAL HOLDTIME
2179 is set to 400ms and the MAXIMUM HOLDTIME to 10s. Hence there will
2180 always be at least 200ms between an event which requires SPF
2181 calculation and the actual SPF calculation. Further consecutive SPF
2182 calculations will always be seperated by between 400ms to 10s, the
2183 hold-time increasing by 400ms each time an SPF-triggering event
2184 occurs within the hold-time of the previous SPF calculation.
2186 This command supercedes the `timers spf' command in previous Quagga
2189 -- OSPF Command: max-metric router-lsa [on-startup|on-shutdown]
2191 -- OSPF Command: max-metric router-lsa administrative
2192 -- OSPF Command: no max-metric router-lsa
2193 [on-startup|on-shutdown|administrative]
2194 This enables `RFC3137, OSPF Stub Router Advertisement' support,
2195 where the OSPF process describes its transit links in its
2196 router-LSA as having infinite distance so that other routers will
2197 avoid calculating transit paths through the router while still
2198 being able to reach networks through the router.
2200 This support may be enabled administratively (and indefinitely) or
2201 conditionally. Conditional enabling of max-metric router-lsas can
2202 be for a period of seconds after startup and/or for a period of
2203 seconds prior to shutdown.
2205 Enabling this for a period after startup allows OSPF to converge
2206 fully first without affecting any existing routes used by other
2207 routers, while still allowing any connected stub links and/or
2208 redistributed routes to be reachable. Enabling this for a period
2209 of time in advance of shutdown allows the router to gracefully
2210 excuse itself from the OSPF domain.
2212 Enabling this feature administratively allows for administrative
2213 intervention for whatever reason, for an indefinite period of time.
2214 Note that if the configuration is written to file, this
2215 administrative form of the stub-router command will also be
2216 written to file. If `ospfd' is restarted later, the command will
2217 then take effect until manually deconfigured.
2219 Configured state of this feature as well as current status, such
2220 as the number of second remaining till on-startup or on-shutdown
2221 ends, can be viewed with the *Note show ip ospf:: command.
2223 -- OSPF Command: auto-cost reference-bandwidth <1-4294967>
2224 -- OSPF Command: no auto-cost reference-bandwidth
2225 This sets the reference bandwidth for cost calculations, where this
2226 bandwidth is considered equivalent to an OSPF cost of 1, specified
2227 in Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth
2228 100Mbit/s or higher will have a cost of 1. Cost of lower bandwidth
2229 links will be scaled with reference to this cost).
2231 This configuration setting MUST be consistent across all routers
2232 within the OSPF domain.
2234 -- OSPF Command: network A.B.C.D/M area A.B.C.D
2235 -- OSPF Command: network A.B.C.D/M area <0-4294967295>
2236 -- OSPF Command: no network A.B.C.D/M area A.B.C.D
2237 -- OSPF Command: no network A.B.C.D/M area <0-4294967295>
2238 This command specifies the OSPF enabled interface(s). If the
2239 interface has an address from range 192.168.1.0/24 then the
2240 command below enables ospf on this interface so router can provide
2241 network information to the other ospf routers via this interface.
2244 network 192.168.1.0/24 area 0.0.0.0
2246 Prefix length in interface must be equal or bigger (ie. smaller
2247 network) than prefix length in network statement. For example
2248 statement above doesn't enable ospf on interface with address
2249 192.168.1.1/23, but it does on interface with address
2253 File: quagga.info, Node: OSPF area, Next: OSPF interface, Prev: OSPF router, Up: OSPFv2
2258 -- OSPF Command: area A.B.C.D range A.B.C.D/M
2259 -- OSPF Command: area <0-4294967295> range A.B.C.D/M
2260 -- OSPF Command: no area A.B.C.D range A.B.C.D/M
2261 -- OSPF Command: no area <0-4294967295> range A.B.C.D/M
2262 Summarize intra area paths from specified area into one Type-3
2263 summary-LSA announced to other areas. This command can be used
2264 only in ABR and ONLY router-LSAs (Type-1) and network-LSAs
2265 (Type-2) (ie. LSAs with scope area) can be summarized. Type-5
2266 AS-external-LSAs can't be summarized - their scope is AS.
2267 Summarizing Type-7 AS-external-LSAs isn't supported yet by Quagga.
2270 network 192.168.1.0/24 area 0.0.0.0
2271 network 10.0.0.0/8 area 0.0.0.10
2272 area 0.0.0.10 range 10.0.0.0/8
2274 With configuration above one Type-3 Summary-LSA with routing info
2275 10.0.0.0/8 is announced into backbone area if area 0.0.0.10
2276 contains at least one intra-area network (ie. described with
2277 router or network LSA) from this range.
2279 -- OSPF Command: area A.B.C.D range IPV4_PREFIX not-advertise
2280 -- OSPF Command: no area A.B.C.D range IPV4_PREFIX not-advertise
2281 Instead of summarizing intra area paths filter them - ie. intra
2282 area paths from this range are not advertised into other areas.
2283 This command makes sense in ABR only.
2285 -- OSPF Command: area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX
2286 -- OSPF Command: no area A.B.C.D range IPV4_PREFIX substitute
2288 Substitute summarized prefix with another prefix.
2291 network 192.168.1.0/24 area 0.0.0.0
2292 network 10.0.0.0/8 area 0.0.0.10
2293 area 0.0.0.10 range 10.0.0.0/8 substitute 11.0.0.0/8
2295 One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced
2296 into backbone area if area 0.0.0.10 contains at least one
2297 intra-area network (ie. described with router-LSA or network-LSA)
2298 from range 10.0.0.0/8. This command makes sense in ABR only.
2300 -- OSPF Command: area A.B.C.D virtual-link A.B.C.D
2301 -- OSPF Command: area <0-4294967295> virtual-link A.B.C.D
2302 -- OSPF Command: no area A.B.C.D virtual-link A.B.C.D
2303 -- OSPF Command: no area <0-4294967295> virtual-link A.B.C.D
2305 -- OSPF Command: area A.B.C.D shortcut
2306 -- OSPF Command: area <0-4294967295> shortcut
2307 -- OSPF Command: no area A.B.C.D shortcut
2308 -- OSPF Command: no area <0-4294967295> shortcut
2309 Configure th area as Shortcut capable. See `RFC3509'. This requires
2310 that the 'abr-type' be set to 'shortcut'.
2312 -- OSPF Command: area A.B.C.D stub
2313 -- OSPF Command: area <0-4294967295> stub
2314 -- OSPF Command: no area A.B.C.D stub
2315 -- OSPF Command: no area <0-4294967295> stub
2316 Configure the area to be a stub area. That is, an area where no
2317 router originates routes external to OSPF and hence an area where
2318 all external routes are via the ABR(s). Hence, ABRs for such an
2319 area do not need to pass AS-External LSAs (type-5s) or
2320 ASBR-Summary LSAs (type-4) into the area. They need only pass
2321 Network-Summary (type-3) LSAs into such an area, just a default
2324 -- OSPF Command: area A.B.C.D stub no-summary
2325 -- OSPF Command: area <0-4294967295> stub no-summary
2326 -- OSPF Command: no area A.B.C.D stub no-summary
2327 -- OSPF Command: no area <0-4294967295> stub no-summary
2328 Prevents an `ospfd' ABR from injecting inter-area summaries into
2329 the specified stub area.
2331 -- OSPF Command: area A.B.C.D default-cost <0-16777215>
2332 -- OSPF Command: no area A.B.C.D default-cost <0-16777215>
2333 Set the cost of default-summary LSAs announced to stubby areas.
2335 -- OSPF Command: area A.B.C.D export-list NAME
2336 -- OSPF Command: area <0-4294967295> export-list NAME
2337 -- OSPF Command: no area A.B.C.D export-list NAME
2338 -- OSPF Command: no area <0-4294967295> export-list NAME
2339 Filter Type-3 summary-LSAs announced to other areas originated
2340 from intra- area paths from specified area.
2343 network 192.168.1.0/24 area 0.0.0.0
2344 network 10.0.0.0/8 area 0.0.0.10
2345 area 0.0.0.10 export-list foo
2347 access-list foo permit 10.10.0.0/16
2348 access-list foo deny any
2350 With example above any intra-area paths from area 0.0.0.10 and
2351 from range 10.10.0.0/16 (for example 10.10.1.0/24 and
2352 10.10.2.128/30) are announced into other areas as Type-3
2353 summary-LSA's, but any others (for example 10.11.0.0/16 or
2354 10.128.30.16/30) aren't.
2356 This command is only relevant if the router is an ABR for the
2359 -- OSPF Command: area A.B.C.D import-list NAME
2360 -- OSPF Command: area <0-4294967295> import-list NAME
2361 -- OSPF Command: no area A.B.C.D import-list NAME
2362 -- OSPF Command: no area <0-4294967295> import-list NAME
2363 Same as export-list, but it applies to paths announced into
2364 specified area as Type-3 summary-LSAs.
2366 -- OSPF Command: area A.B.C.D filter-list prefix NAME in
2367 -- OSPF Command: area A.B.C.D filter-list prefix NAME out
2368 -- OSPF Command: area <0-4294967295> filter-list prefix NAME in
2369 -- OSPF Command: area <0-4294967295> filter-list prefix NAME out
2370 -- OSPF Command: no area A.B.C.D filter-list prefix NAME in
2371 -- OSPF Command: no area A.B.C.D filter-list prefix NAME out
2372 -- OSPF Command: no area <0-4294967295> filter-list prefix NAME in
2373 -- OSPF Command: no area <0-4294967295> filter-list prefix NAME out
2374 Filtering Type-3 summary-LSAs to/from area using prefix lists.
2375 This command makes sense in ABR only.
2377 -- OSPF Command: area A.B.C.D authentication
2378 -- OSPF Command: area <0-4294967295> authentication
2379 -- OSPF Command: no area A.B.C.D authentication
2380 -- OSPF Command: no area <0-4294967295> authentication
2381 Specify that simple password authentication should be used for the
2384 -- OSPF Command: area A.B.C.D authentication message-digest
2385 -- OSPF Command: area <0-4294967295> authentication message-digest
2386 Specify that OSPF packets should be authenticated with MD5 HMACs
2390 File: quagga.info, Node: OSPF interface, Next: Redistribute routes to OSPF, Prev: OSPF area, Up: OSPFv2
2395 -- Interface Command: ip ospf authentication-key AUTH_KEY
2396 -- Interface Command: no ip ospf authentication-key
2397 Set OSPF authentication key to a simple password. After setting
2398 AUTH_KEY, all OSPF packets are authenticated. AUTH_KEY has length
2401 -- Interface Command: ip ospf message-digest-key KEYID md5 KEY
2402 -- Interface Command: no ip ospf message-digest-key
2403 Set OSPF authentication key to a cryptographic password. The
2404 cryptographic algorithm is MD5. KEYID identifies secret key used
2405 to create the message digest. KEY is the actual message digest
2408 Note that OSPF MD5 authentication requires that time never go
2409 backwards (correct time is NOT important, only that it never goes
2410 backwards), even across resets, if ospfd is to be able to promptly
2411 reestabish adjacencies with its neighbours after restarts/reboots.
2412 The host should have system time be set at boot from an external
2413 source (eg battery backed clock, NTP, etc.) or else the system
2414 clock should be periodically saved to non-volative storage and
2415 restored at boot if MD5 authentication is to be expected to work
2418 -- Interface Command: ip ospf cost <1-65535>
2419 -- Interface Command: no ip ospf cost
2420 Set link cost for the specified interface. The cost value is set
2421 to router-LSA's metric field and used for SPF calculation.
2423 -- Interface Command: ip ospf dead-interval <1-65535>
2424 -- Interface Command: ip ospf dead-interval minimal hello-multiplier
2426 -- Interface Command: no ip ospf dead-interval
2427 Set number of seconds for RouterDeadInterval timer value used for
2428 Wait Timer and Inactivity Timer. This value must be the same for
2429 all routers attached to a common network. The default value is 40
2432 If 'minimal' is specified instead, then the dead-interval is set
2433 to 1 second and one must specify a hello-multiplier. The
2434 hello-multiplier specifies how many Hellos to send per second,
2435 from 2 (every 500ms) to 20 (every 50ms). Thus one can have 1s
2436 convergence time for OSPF. If this form is specified, then the
2437 hello-interval advertised in Hello packets is set to 0 and the
2438 hello-interval on received Hello packets is not checked, thus the
2439 hello-multiplier need NOT be the same across multiple routers on a
2442 -- Interface Command: ip ospf hello-interval <1-65535>
2443 -- Interface Command: no ip ospf hello-interval
2444 Set number of seconds for HelloInterval timer value. Setting this
2445 value, Hello packet will be sent every timer value seconds on the
2446 specified interface. This value must be the same for all routers
2447 attached to a common network. The default value is 10 seconds.
2449 This command has no effect if *Note ip ospf dead-interval
2450 minimal:: is also specified for the interface.
2452 -- Interface Command: ip ospf network
2453 (broadcast|non-broadcast|point-to-multipoint|point-to-point)
2454 -- Interface Command: no ip ospf network
2455 Set explicitly network type for specifed interface.
2457 -- Interface Command: ip ospf priority <0-255>
2458 -- Interface Command: no ip ospf priority
2459 Set RouterPriority integer value. Setting higher value, router
2460 will be more eligible to become Designated Router. Setting the
2461 value to 0, router is no longer eligible to Designated Router.
2462 The default value is 1.
2464 -- Interface Command: ip ospf retransmit-interval <1-65535>
2465 -- Interface Command: no ip ospf retransmit interval
2466 Set number of seconds for RxmtInterval timer value. This value is
2467 used when retransmitting Database Description and Link State
2468 Request packets. The default value is 5 seconds.
2470 -- Interface Command: ip ospf transmit-delay
2471 -- Interface Command: no ip ospf transmit-delay
2472 Set number of seconds for InfTransDelay value. LSAs' age should be
2473 incremented by this value when transmitting. The default value is
2477 File: quagga.info, Node: Redistribute routes to OSPF, Next: Showing OSPF information, Prev: OSPF interface, Up: OSPFv2
2479 7.5 Redistribute routes to OSPF
2480 ===============================
2482 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
2483 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
2485 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
2487 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
2488 metric-type (1|2) route-map WORD
2489 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) metric
2491 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp) metric
2492 <0-16777214> route-map WORD
2493 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
2494 metric-type (1|2) metric <0-16777214>
2495 -- OSPF Command: redistribute (kernel|connected|static|rip|bgp)
2496 metric-type (1|2) metric <0-16777214> route-map WORD
2497 -- OSPF Command: no redistribute (kernel|connected|static|rip|bgp)
2498 Redistribute routes of the specified protocol or kind into OSPF,
2499 with the metric type and metric set if specified, filtering the
2500 routes using the given route-map if specified.
2502 -- OSPF Command: default-information originate
2503 -- OSPF Command: default-information originate metric <0-16777214>
2504 -- OSPF Command: default-information originate metric <0-16777214>
2506 -- OSPF Command: default-information originate metric <0-16777214>
2507 metric-type (1|2) route-map WORD
2508 -- OSPF Command: default-information originate always
2509 -- OSPF Command: default-information originate always metric
2511 -- OSPF Command: default-information originate always metric
2512 <0-16777214> metric-type (1|2)
2513 -- OSPF Command: default-information originate always metric
2514 <0-16777214> metric-type (1|2) route-map WORD
2515 -- OSPF Command: no default-information originate
2516 Originate an AS-External (type-5) LSA describing a default route
2517 into all external-routing capable areas, of the specified metric
2518 and metric type. If the 'always' keyword is given then the default
2519 is always advertised, even when there is no default present in the
2522 -- OSPF Command: distribute-list NAME out
2523 (kernel|connected|static|rip|ospf
2524 -- OSPF Command: no distribute-list NAME out
2525 (kernel|connected|static|rip|ospf
2527 -- OSPF Command: default-metric <0-16777214>
2528 -- OSPF Command: no default-metric
2530 -- OSPF Command: distance <1-255>
2531 -- OSPF Command: no distance <1-255>
2533 -- OSPF Command: distance ospf (intra-area|inter-area|external)
2535 -- OSPF Command: no distance ospf
2537 -- Command: router zebra
2538 -- Command: no router zebra
2541 File: quagga.info, Node: Showing OSPF information, Next: Debugging OSPF, Prev: Redistribute routes to OSPF, Up: OSPFv2
2543 7.6 Showing OSPF information
2544 ============================
2546 -- Command: show ip ospf
2547 Show information on a variety of general OSPF and area state and
2548 configuration information.
2550 -- Command: show ip ospf interface [INTERFACE]
2551 Show state and configuration of OSPF the specified interface, or
2552 all interfaces if no interface is given.
2554 -- Command: show ip ospf neighbor
2555 -- Command: show ip ospf neighbor INTERFACE
2556 -- Command: show ip ospf neighbor detail
2557 -- Command: show ip ospf neighbor INTERFACE detail
2559 -- Command: show ip ospf database
2561 -- Command: show ip ospf database
2562 (asbr-summary|external|network|router|summary)
2563 -- Command: show ip ospf database
2564 (asbr-summary|external|network|router|summary) LINK-STATE-ID
2565 -- Command: show ip ospf database
2566 (asbr-summary|external|network|router|summary) LINK-STATE-ID adv-router
2568 -- Command: show ip ospf database
2569 (asbr-summary|external|network|router|summary) adv-router ADV-ROUTER
2570 -- Command: show ip ospf database
2571 (asbr-summary|external|network|router|summary) LINK-STATE-ID
2573 -- Command: show ip ospf database
2574 (asbr-summary|external|network|router|summary) self-originate
2576 -- Command: show ip ospf database max-age
2578 -- Command: show ip ospf database self-originate
2580 -- Command: show ip ospf route
2581 Show the OSPF routing table, as determined by the most recent SPF
2585 File: quagga.info, Node: Debugging OSPF, Next: OSPF Configuration Examples, Prev: Showing OSPF information, Up: OSPFv2
2590 -- Command: debug ospf packet
2591 (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]
2592 -- Command: no debug ospf packet
2593 (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]
2595 -- Command: debug ospf ism
2596 -- Command: debug ospf ism (status|events|timers)
2597 -- Command: no debug ospf ism
2598 -- Command: no debug ospf ism (status|events|timers)
2600 -- Command: debug ospf nsm
2601 -- Command: debug ospf nsm (status|events|timers)
2602 -- Command: no debug ospf nsm
2603 -- Command: no debug ospf nsm (status|events|timers)
2605 -- Command: debug ospf lsa
2606 -- Command: debug ospf lsa (generate|flooding|refresh)
2607 -- Command: no debug ospf lsa
2608 -- Command: no debug ospf lsa (generate|flooding|refresh)
2610 -- Command: debug ospf zebra
2611 -- Command: debug ospf zebra (interface|redistribute)
2612 -- Command: no debug ospf zebra
2613 -- Command: no debug ospf zebra (interface|redistribute)
2615 -- Command: show debugging ospf
2618 File: quagga.info, Node: OSPF Configuration Examples, Prev: Debugging OSPF, Up: OSPFv2
2620 7.8 OSPF Configuration Examples
2621 ===============================
2623 A simple example, with MD5 authentication enabled:
2627 ip ospf authentication message-digest
2628 ip ospf message-digest-key 1 md5 ABCDEFGHIJK
2631 network 192.168.0.0/16 area 0.0.0.1
2632 area 0.0.0.1 authentication message-digest
2634 An ABR router, with MD5 authentication and performing summarisation
2635 of networks between the areas:
2639 log file /var/log/quagga/ospfd.log
2640 service advanced-vty
2643 ip ospf authentication message-digest
2644 ip ospf message-digest-key 1 md5 ABCDEFGHIJK
2649 ip ospf authentication message-digest
2650 ip ospf message-digest-key 2 md5 XYZ12345
2653 ospf router-id 192.168.0.1
2654 redistribute connected
2655 passive interface ppp0
2656 network 192.168.0.0/24 area 0.0.0.0
2657 network 10.0.0.0/16 area 0.0.0.0
2658 network 192.168.1.0/24 area 0.0.0.1
2659 area 0.0.0.0 authentication message-digest
2660 area 0.0.0.0 range 10.0.0.0/16
2661 area 0.0.0.0 range 192.168.0.0/24
2662 area 0.0.0.1 authentication message-digest
2663 area 0.0.0.1 range 10.2.0.0/16
2667 File: quagga.info, Node: OSPFv3, Next: BGP, Prev: OSPFv2, Up: Top
2672 `ospf6d' is a daemon support OSPF version 3 for IPv6 network. OSPF for
2673 IPv6 is described in RFC2740.
2680 * Redistribute routes to OSPF6::
2681 * Showing OSPF6 information::
2682 * OSPF6 Configuration Examples::
2685 File: quagga.info, Node: OSPF6 router, Next: OSPF6 area, Up: OSPFv3
2690 -- Command: router ospf6
2692 -- OSPF6 Command: router-id A.B.C.D
2693 Set router's Router-ID.
2695 -- OSPF6 Command: interface IFNAME area AREA
2696 Bind interface to specified area, and start sending OSPF packets.
2697 AREA can be specified as 0.
2700 File: quagga.info, Node: OSPF6 area, Next: OSPF6 interface, Prev: OSPF6 router, Up: OSPFv3
2705 Area support for OSPFv3 is not yet implemented.
2708 File: quagga.info, Node: OSPF6 interface, Next: Redistribute routes to OSPF6, Prev: OSPF6 area, Up: OSPFv3
2713 -- Interface Command: ipv6 ospf6 cost COST
2714 Sets interface's output cost. Default value is 1.
2716 -- Interface Command: ipv6 ospf6 hello-interval HELLOINTERVAL
2717 Sets interface's Hello Interval. Default 40
2719 -- Interface Command: ipv6 ospf6 dead-interval DEADINTERVAL
2720 Sets interface's Router Dead Interval. Default value is 40.
2722 -- Interface Command: ipv6 ospf6 retransmit-interval
2724 Sets interface's Rxmt Interval. Default value is 5.
2726 -- Interface Command: ipv6 ospf6 priority PRIORITY
2727 Sets interface's Router Priority. Default value is 1.
2729 -- Interface Command: ipv6 ospf6 transmit-delay TRANSMITDELAY
2730 Sets interface's Inf-Trans-Delay. Default value is 1.
2733 File: quagga.info, Node: Redistribute routes to OSPF6, Next: Showing OSPF6 information, Prev: OSPF6 interface, Up: OSPFv3
2735 8.4 Redistribute routes to OSPF6
2736 ================================
2738 -- OSPF6 Command: redistribute static
2739 -- OSPF6 Command: redistribute connected
2740 -- OSPF6 Command: redistribute ripng
2743 File: quagga.info, Node: Showing OSPF6 information, Next: OSPF6 Configuration Examples, Prev: Redistribute routes to OSPF6, Up: OSPFv3
2745 8.5 Showing OSPF6 information
2746 =============================
2748 -- Command: show ipv6 ospf6 [INSTANCE_ID]
2749 INSTANCE_ID is an optional OSPF instance ID. To see router ID and
2750 OSPF instance ID, simply type "show ipv6 ospf6 <cr>".
2752 -- Command: show ipv6 ospf6 database
2753 This command shows LSA database summary. You can specify the type
2756 -- Command: show ipv6 ospf6 interface
2757 To see OSPF interface configuration like costs.
2759 -- Command: show ipv6 ospf6 neighbor
2760 Shows state and chosen (Backup) DR of neighbor.
2762 -- Command: show ipv6 ospf6 request-list A.B.C.D
2763 Shows requestlist of neighbor.
2765 -- Command: show ipv6 route ospf6
2766 This command shows internal routing table.
2769 File: quagga.info, Node: OSPF6 Configuration Examples, Prev: Showing OSPF6 information, Up: OSPFv3
2771 8.6 OSPF6 Configuration Examples
2772 ================================
2774 Example of ospf6d configured on one interface and area:
2777 ipv6 ospf6 instance-id 0
2780 router-id 212.17.55.53
2781 area 0.0.0.0 range 2001:770:105:2::/64
2782 interface eth0 area 0.0.0.0
2786 File: quagga.info, Node: BGP, Next: Configuring Quagga as a Route Server, Prev: OSPFv3, Up: Top
2791 BGP stands for a Border Gateway Protocol. The lastest BGP version is
2792 4. It is referred as BGP-4. BGP-4 is one of the Exterior Gateway
2793 Protocols and de-fact standard of Inter Domain routing protocol. BGP-4
2794 is described in `RFC1771, A Border Gateway Protocol 4 (BGP-4)'.
2796 Many extensions have been added to `RFC1771'. `RFC2858,
2797 Multiprotocol Extensions for BGP-4' provides multiprotocol support to
2807 * BGP Address Family::
2808 * Autonomous System::
2809 * BGP Communities Attribute::
2810 * BGP Extended Communities Attribute::
2811 * Displaying BGP routes::
2812 * Capability Negotiation::
2815 * How to set up a 6-Bone connection::
2816 * Dump BGP packets and table::
2817 * BGP Configuration Examples::
2820 File: quagga.info, Node: Starting BGP, Next: BGP router, Up: BGP
2825 Default configuration file of `bgpd' is `bgpd.conf'. `bgpd' searches
2826 the current directory first then /etc/quagga/bgpd.conf. All of bgpd's
2827 command must be configured in `bgpd.conf'.
2829 `bgpd' specific invocation options are described below. Common
2830 options may also be specified (*note Common Invocation Options::).
2834 Set the bgp protocol's port number.
2838 When program terminates, retain BGP routes added by zebra.
2841 File: quagga.info, Node: BGP router, Next: BGP network, Prev: Starting BGP, Up: BGP
2846 First of all you must configure BGP router with `router bgp' command.
2847 To configure BGP router, you need AS number. AS number is an
2848 identification of autonomous system. BGP protocol uses the AS number
2849 for detecting whether the BGP connection is internal one or external
2852 -- Command: router bgp ASN
2853 Enable a BGP protocol process with the specified ASN. After this
2854 statement you can input any `BGP Commands'. You can not create
2855 different BGP process under different ASN without specifying
2856 `multiple-instance' (*note Multiple instance::).
2858 -- Command: no router bgp ASN
2859 Destroy a BGP protocol process with the specified ASN.
2861 -- BGP: bgp router-id A.B.C.D
2862 This command specifies the router-ID. If `bgpd' connects to
2863 `zebra' it gets interface and address information. In that case
2864 default router ID value is selected as the largest IP Address of
2865 the interfaces. When `router zebra' is not enabled `bgpd' can't
2866 get interface information so `router-id' is set to 0.0.0.0. So
2867 please set router-id by hand.
2872 * BGP decision process::
2875 File: quagga.info, Node: BGP distance, Next: BGP decision process, Up: BGP router
2880 -- BGP: distance bgp <1-255> <1-255> <1-255>
2881 This command change distance value of BGP. Each argument is
2882 distance value for external routes, internal routes and local
2885 -- BGP: distance <1-255> A.B.C.D/M
2886 -- BGP: distance <1-255> A.B.C.D/M WORD
2887 This command set distance value to
2890 File: quagga.info, Node: BGP decision process, Prev: BGP distance, Up: BGP router
2892 9.2.2 BGP decision process
2893 --------------------------
2897 2. Local preference check.
2899 3. Local route check.
2901 4. AS path length check.
2907 -- BGP: bgp bestpath as-path confed
2908 This command specifies that the length of confederation path sets
2909 and sequences should should be taken into account during the BGP
2910 best path decision process.
2913 File: quagga.info, Node: BGP network, Next: BGP Peer, Prev: BGP router, Up: BGP
2921 * Route Aggregation::
2922 * Redistribute to BGP::
2925 File: quagga.info, Node: BGP route, Next: Route Aggregation, Up: BGP network
2930 -- BGP: network A.B.C.D/M
2931 This command adds the announcement network.
2934 This configuration example says that network 10.0.0.0/8 will
2935 be announced to all neighbors. Some vendors' routers don't
2936 advertise routes if they aren't present in their IGP routing
2937 tables; `bgp' doesn't care about IGP routes when announcing its
2940 -- BGP: no network A.B.C.D/M
2943 File: quagga.info, Node: Route Aggregation, Next: Redistribute to BGP, Prev: BGP route, Up: BGP network
2945 9.3.2 Route Aggregation
2946 -----------------------
2948 -- BGP: aggregate-address A.B.C.D/M
2949 This command specifies an aggregate address.
2951 -- BGP: aggregate-address A.B.C.D/M as-set
2952 This command specifies an aggregate address. Resulting routes
2955 -- BGP: aggregate-address A.B.C.D/M summary-only
2956 This command specifies an aggregate address. Aggreated routes will
2959 -- BGP: no aggregate-address A.B.C.D/M
2962 File: quagga.info, Node: Redistribute to BGP, Prev: Route Aggregation, Up: BGP network
2964 9.3.3 Redistribute to BGP
2965 -------------------------
2967 -- BGP: redistribute kernel
2968 Redistribute kernel route to BGP process.
2970 -- BGP: redistribute static
2971 Redistribute static route to BGP process.
2973 -- BGP: redistribute connected
2974 Redistribute connected route to BGP process.
2976 -- BGP: redistribute rip
2977 Redistribute RIP route to BGP process.
2979 -- BGP: redistribute ospf
2980 Redistribute OSPF route to BGP process.
2983 File: quagga.info, Node: BGP Peer, Next: BGP Peer Group, Prev: BGP network, Up: BGP
2991 * BGP Peer commands::
2995 File: quagga.info, Node: Defining Peer, Next: BGP Peer commands, Up: BGP Peer
3000 -- BGP: neighbor PEER remote-as ASN
3001 Creates a new neighbor whose remote-as is ASN. PEER can be an
3002 IPv4 address or an IPv6 address.
3004 neighbor 10.0.0.1 remote-as 2
3005 In this case my router, in AS-1, is trying to peer with AS-2
3008 This command must be the first command used when configuring a
3009 neighbor. If the remote-as is not specified, `bgpd' will complain
3011 can't find neighbor 10.0.0.1
3014 File: quagga.info, Node: BGP Peer commands, Next: Peer filtering, Prev: Defining Peer, Up: BGP Peer
3016 9.4.2 BGP Peer commands
3017 -----------------------
3019 In a `router bgp' clause there are neighbor specific configurations
3022 -- BGP: neighbor PEER shutdown
3023 -- BGP: no neighbor PEER shutdown
3024 Shutdown the peer. We can delete the neighbor's configuration by
3025 `no neighbor PEER remote-as AS-NUMBER' but all configuration of
3026 the neighbor will be deleted. When you want to preserve the
3027 configuration, but want to drop the BGP peer, use this syntax.
3029 -- BGP: neighbor PEER ebgp-multihop
3030 -- BGP: no neighbor PEER ebgp-multihop
3032 -- BGP: neighbor PEER description ...
3033 -- BGP: no neighbor PEER description ...
3034 Set description of the peer.
3036 -- BGP: neighbor PEER version VERSION
3037 Set up the neighbor's BGP version. VERSION can be 4, 4+ or 4-.
3038 BGP version 4 is the default value used for BGP peering. BGP
3039 version 4+ means that the neighbor supports Multiprotocol
3040 Extensions for BGP-4. BGP version 4- is similar but the neighbor
3041 speaks the old Internet-Draft revision 00's Multiprotocol
3042 Extensions for BGP-4. Some routing software is still using this
3045 -- BGP: neighbor PEER interface IFNAME
3046 -- BGP: no neighbor PEER interface IFNAME
3047 When you connect to a BGP peer over an IPv6 link-local address,
3048 you have to specify the IFNAME of the interface used for the
3051 -- BGP: neighbor PEER next-hop-self
3052 -- BGP: no neighbor PEER next-hop-self
3053 This command specifies an announced route's nexthop as being
3054 equivalent to the address of the bgp router.
3056 -- BGP: neighbor PEER update-source
3057 -- BGP: no neighbor PEER update-source
3059 -- BGP: neighbor PEER default-originate
3060 -- BGP: no neighbor PEER default-originate
3061 `bgpd''s default is to not announce the default route (0.0.0.0/0)
3062 even it is in routing table. When you want to announce default
3063 routes to the peer, use this command.
3065 -- BGP: neighbor PEER port PORT
3066 -- BGP: neighbor PEER port PORT
3068 -- BGP: neighbor PEER send-community
3069 -- BGP: neighbor PEER send-community
3071 -- BGP: neighbor PEER weight WEIGHT
3072 -- BGP: no neighbor PEER weight WEIGHT
3073 This command specifies a default WEIGHT value for the neighbor's
3076 -- BGP: neighbor PEER maximum-prefix NUMBER
3077 -- BGP: no neighbor PEER maximum-prefix NUMBER
3080 File: quagga.info, Node: Peer filtering, Prev: BGP Peer commands, Up: BGP Peer
3082 9.4.3 Peer filtering
3083 --------------------
3085 -- BGP: neighbor PEER distribute-list NAME [in|out]
3086 This command specifies a distribute-list for the peer. DIRECT is
3089 -- BGP command: neighbor PEER prefix-list NAME [in|out]
3091 -- BGP command: neighbor PEER filter-list NAME [in|out]
3093 -- BGP: neighbor PEER route-map NAME [in|out]
3094 Apply a route-map on the neighbor. DIRECT must be `in' or `out'.
3097 File: quagga.info, Node: BGP Peer Group, Next: BGP Address Family, Prev: BGP Peer, Up: BGP
3102 -- BGP: neighbor WORD peer-group
3103 This command defines a new peer group.
3105 -- BGP: neighbor PEER peer-group WORD
3106 This command bind specific peer to peer group WORD.
3109 File: quagga.info, Node: BGP Address Family, Next: Autonomous System, Prev: BGP Peer Group, Up: BGP
3111 9.6 BGP Address Family
3112 ======================
3115 File: quagga.info, Node: Autonomous System, Next: BGP Communities Attribute, Prev: BGP Address Family, Up: BGP
3117 9.7 Autonomous System
3118 =====================
3120 The AS (Autonomous System) number is one of the essential element of
3121 BGP. BGP is a distance vector routing protocol, and the AS-Path
3122 framework provides distance vector metric and loop detection to BGP.
3123 `RFC1930, Guidelines for creation, selection, and registration of an
3124 Autonomous System (AS)' provides some background on the concepts of an
3127 The AS number is a two octet value, ranging in value from 1 to 65535.
3128 The AS numbers 64512 through 65535 are defined as private AS numbers.
3129 Private AS numbers must not to be advertised in the global Internet.
3133 * AS Path Regular Expression::
3134 * Display BGP Routes by AS Path::
3135 * AS Path Access List::
3136 * Using AS Path in Route Map::
3137 * Private AS Numbers::
3140 File: quagga.info, Node: AS Path Regular Expression, Next: Display BGP Routes by AS Path, Up: Autonomous System
3142 9.7.1 AS Path Regular Expression
3143 --------------------------------
3145 AS path regular expression can be used for displaying BGP routes and AS
3146 path access list. AS path regular expression is based on `POSIX
3147 1003.2' regular expressions. Following description is just a subset of
3148 `POSIX' regular expression. User can use full `POSIX' regular
3149 expression. Adding to that special character '_' is added for AS path
3153 Matches any single character.
3156 Matches 0 or more occurrences of pattern.
3159 Matches 1 or more occurrences of pattern.
3162 Match 0 or 1 occurrences of pattern.
3165 Matches the beginning of the line.
3168 Matches the end of the line.
3171 Character `_' has special meanings in AS path regular expression.
3172 It matches to space and comma , and AS set delimiter { and } and AS
3173 confederation delimiter `(' and `)'. And it also matches to the
3174 beginning of the line and the end of the line. So `_' can be used
3175 for AS value boundaries match. `show ip bgp regexp _7675_'
3176 matches to all of BGP routes which as AS number include 7675.
3179 File: quagga.info, Node: Display BGP Routes by AS Path, Next: AS Path Access List, Prev: AS Path Regular Expression, Up: Autonomous System
3181 9.7.2 Display BGP Routes by AS Path
3182 -----------------------------------
3184 To show BGP routes which has specific AS path information `show ip bgp'
3185 command can be used.
3187 -- Command: show ip bgp regexp LINE
3188 This commands display BGP routes that matches AS path regular
3192 File: quagga.info, Node: AS Path Access List, Next: Using AS Path in Route Map, Prev: Display BGP Routes by AS Path, Up: Autonomous System
3194 9.7.3 AS Path Access List
3195 -------------------------
3197 AS path access list is user defined AS path.
3199 -- Command: ip as-path access-list WORD {permit|deny} LINE
3200 This command defines a new AS path access list.
3202 -- Command: no ip as-path access-list WORD
3203 -- Command: no ip as-path access-list WORD {permit|deny} LINE
3206 File: quagga.info, Node: Using AS Path in Route Map, Next: Private AS Numbers, Prev: AS Path Access List, Up: Autonomous System
3208 9.7.4 Using AS Path in Route Map
3209 --------------------------------
3211 -- Route Map: match as-path WORD
3213 -- Route Map: set as-path prepend AS-PATH
3216 File: quagga.info, Node: Private AS Numbers, Prev: Using AS Path in Route Map, Up: Autonomous System
3218 9.7.5 Private AS Numbers
3219 ------------------------
3222 File: quagga.info, Node: BGP Communities Attribute, Next: BGP Extended Communities Attribute, Prev: Autonomous System, Up: BGP
3224 9.8 BGP Communities Attribute
3225 =============================
3227 BGP communities attribute is widely used for implementing policy
3228 routing. Network operators can manipulate BGP communities attribute
3229 based on their network policy. BGP communities attribute is defined in
3230 `RFC1997, BGP Communities Attribute' and `RFC1998, An Application of
3231 the BGP Community Attribute in Multi-home Routing'. It is an optional
3232 transitive attribute, therefore local policy can travel through
3233 different autonomous system.
3235 Communities attribute is a set of communities values. Each
3236 communities value is 4 octet long. The following format is used to
3237 define communities value.
3240 This format represents 4 octet communities value. `AS' is high
3241 order 2 octet in digit format. `VAL' is low order 2 octet in
3242 digit format. This format is useful to define AS oriented policy
3243 value. For example, `7675:80' can be used when AS 7675 wants to
3244 pass local policy value 80 to neighboring peer.
3247 `internet' represents well-known communities value 0.
3250 `no-export' represents well-known communities value `NO_EXPORT'
3251 (0xFFFFFF01). All routes carry this value must not be advertised
3252 to outside a BGP confederation boundary. If neighboring BGP peer
3253 is part of BGP confederation, the peer is considered as inside a
3254 BGP confederation boundary, so the route will be announced to the
3258 `no-advertise' represents well-known communities value
3260 (0xFFFFFF02). All routes carry this value must not be advertise
3264 `local-AS' represents well-known communities value
3265 `NO_EXPORT_SUBCONFED' (0xFFFFFF03). All routes carry this value
3266 must not be advertised to external BGP peers. Even if the
3267 neighboring router is part of confederation, it is considered as
3268 external BGP peer, so the route will not be announced to the peer.
3270 When BGP communities attribute is received, duplicated communities
3271 value in the communities attribute is ignored and each communities
3272 values are sorted in numerical order.
3276 * BGP Community Lists::
3277 * Numbered BGP Community Lists::
3278 * BGP Community in Route Map::
3279 * Display BGP Routes by Community::
3280 * Using BGP Communities Attribute::
3283 File: quagga.info, Node: BGP Community Lists, Next: Numbered BGP Community Lists, Up: BGP Communities Attribute
3285 9.8.1 BGP Community Lists
3286 -------------------------
3288 BGP community list is a user defined BGP communites attribute list.
3289 BGP community list can be used for matching or manipulating BGP
3290 communities attribute in updates.
3292 There are two types of community list. One is standard community
3293 list and another is expanded community list. Standard community list
3294 defines communities attribute. Expanded community list defines
3295 communities attribute string with regular expression. Standard
3296 community list is compiled into binary format when user define it.
3297 Standard community list will be directly compared to BGP communities
3298 attribute in BGP updates. Therefore the comparison is faster than
3299 expanded community list.
3301 -- Command: ip community-list standard NAME {permit|deny} COMMUNITY
3302 This command defines a new standard community list. COMMUNITY is
3303 communities value. The COMMUNITY is compiled into community
3304 structure. We can define multiple community list under same name.
3305 In that case match will happen user defined order. Once the
3306 community list matches to communities attribute in BGP updates it
3307 return permit or deny by the community list definition. When
3308 there is no matched entry, deny will be returned. When COMMUNITY
3309 is empty it matches to any routes.
3311 -- Command: ip community-list expanded NAME {permit|deny} LINE
3312 This command defines a new expanded community list. LINE is a
3313 string expression of communities attribute. LINE can include
3314 regular expression to match communities attribute in BGP updates.
3316 -- Command: no ip community-list NAME
3317 -- Command: no ip community-list standard NAME
3318 -- Command: no ip community-list expanded NAME
3319 These commands delete community lists specified by NAME. All of
3320 community lists shares a single name space. So community lists
3321 can be removed simpley specifying community lists name.
3323 -- Command: show ip community-list
3324 -- Command: show ip community-list NAME
3325 This command display current community list information. When
3326 NAME is specified the specified community list's information is
3329 # show ip community-list
3330 Named Community standard list CLIST
3331 permit 7675:80 7675:100 no-export
3333 Named Community expanded list EXPAND
3336 # show ip community-list CLIST
3337 Named Community standard list CLIST
3338 permit 7675:80 7675:100 no-export
3342 File: quagga.info, Node: Numbered BGP Community Lists, Next: BGP Community in Route Map, Prev: BGP Community Lists, Up: BGP Communities Attribute
3344 9.8.2 Numbered BGP Community Lists
3345 ----------------------------------
3347 When number is used for BGP community list name, the number has special
3348 meanings. Community list number in the range from 1 and 99 is standard
3349 community list. Community list number in the range from 100 to 199 is
3350 expanded community list. These community lists are called as numbered
3351 community lists. On the other hand normal community lists is called as
3352 named community lists.
3354 -- Command: ip community-list <1-99> {permit|deny} COMMUNITY
3355 This command defines a new community list. <1-99> is standard
3356 community list number. Community list name within this range
3357 defines standard community list. When COMMUNITY is empty it
3358 matches to any routes.
3360 -- Command: ip community-list <100-199> {permit|deny} COMMUNITY
3361 This command defines a new community list. <100-199> is expanded
3362 community list number. Community list name within this range
3363 defines expanded community list.
3365 -- Command: ip community-list NAME {permit|deny} COMMUNITY
3366 When community list type is not specifed, the community list type
3367 is automatically detected. If COMMUNITY can be compiled into
3368 communities attribute, the community list is defined as a standard
3369 community list. Otherwise it is defined as an expanded community
3370 list. This feature is left for backward compability. Use of this
3371 feature is not recommended.
3374 File: quagga.info, Node: BGP Community in Route Map, Next: Display BGP Routes by Community, Prev: Numbered BGP Community Lists, Up: BGP Communities Attribute
3376 9.8.3 BGP Community in Route Map
3377 --------------------------------
3379 In Route Map (*note Route Map::), we can match or set BGP communities
3380 attribute. Using this feature network operator can implement their
3381 network policy based on BGP communities attribute.
3383 Following commands can be used in Route Map.
3385 -- Route Map: match community WORD
3386 -- Route Map: match community WORD exact-match
3387 This command perform match to BGP updates using community list
3388 WORD. When the one of BGP communities value match to the one of
3389 communities value in community list, it is match. When
3390 `exact-match' keyword is spcified, match happen only when BGP
3391 updates have completely same communities value specified in the
3394 -- Route Map: set community none
3395 -- Route Map: set community COMMUNITY
3396 -- Route Map: set community COMMUNITY additive
3397 This command manipulate communities value in BGP updates. When
3398 `none' is specified as communities value, it removes entire
3399 communities attribute from BGP updates. When COMMUNITY is not
3400 `none', specified communities value is set to BGP updates. If BGP
3401 updates already has BGP communities value, the existing BGP
3402 communities value is replaced with specified COMMUNITY value.
3403 When `additive' keyword is specified, COMMUNITY is appended to the
3404 existing communities value.
3406 -- Route Map: set comm-list WORD delete
3407 This command remove communities value from BGP communities
3408 attribute. The WORD is community list name. When BGP route's
3409 communities value matches to the community list WORD, the
3410 communities value is removed. When all of communities value is
3411 removed eventually, the BGP update's communities attribute is
3415 File: quagga.info, Node: Display BGP Routes by Community, Next: Using BGP Communities Attribute, Prev: BGP Community in Route Map, Up: BGP Communities Attribute
3417 9.8.4 Display BGP Routes by Community
3418 -------------------------------------
3420 To show BGP routes which has specific BGP communities attribute, `show
3421 ip bgp' command can be used. The COMMUNITY value and community list
3422 can be used for `show ip bgp' command.
3424 -- Command: show ip bgp community
3425 -- Command: show ip bgp community COMMUNITY
3426 -- Command: show ip bgp community COMMUNITY exact-match
3427 `show ip bgp community' displays BGP routes which has communities
3428 attribute. When COMMUNITY is specified, BGP routes that matches
3429 COMMUNITY value is displayed. For this command, `internet'
3430 keyword can't be used for COMMUNITY value. When `exact-match' is
3431 specified, it display only routes that have an exact match.
3433 -- Command: show ip bgp community-list WORD
3434 -- Command: show ip bgp community-list WORD exact-match
3435 This commands display BGP routes that matches community list WORD.
3436 When `exact-match' is specified, display only routes that have an
3440 File: quagga.info, Node: Using BGP Communities Attribute, Prev: Display BGP Routes by Community, Up: BGP Communities Attribute
3442 9.8.5 Using BGP Communities Attribute
3443 -------------------------------------
3445 Following configuration is the most typical usage of BGP communities
3446 attribute. AS 7675 provides upstream Internet connection to AS 100.
3447 When following configuration exists in AS 7675, AS 100 networks
3448 operator can set local preference in AS 7675 network by setting BGP
3449 communities attribute to the updates.
3452 neighbor 192.168.0.1 remote-as 100
3453 neighbor 192.168.0.1 route-map RMAP in
3455 ip community-list 70 permit 7675:70
3456 ip community-list 70 deny
3457 ip community-list 80 permit 7675:80
3458 ip community-list 80 deny
3459 ip community-list 90 permit 7675:90
3460 ip community-list 90 deny
3462 route-map RMAP permit 10
3464 set local-preference 70
3466 route-map RMAP permit 20
3468 set local-preference 80
3470 route-map RMAP permit 30
3472 set local-preference 90
3474 Following configuration announce 10.0.0.0/8 from AS 100 to AS 7675.
3475 The route has communities value 7675:80 so when above configuration
3476 exists in AS 7675, announced route's local preference will be set to
3481 neighbor 192.168.0.2 remote-as 7675
3482 neighbor 192.168.0.2 route-map RMAP out
3484 ip prefix-list PLIST permit 10.0.0.0/8
3486 route-map RMAP permit 10
3487 match ip address prefix-list PLIST
3488 set community 7675:80
3490 Following configuration is an example of BGP route filtering using
3491 communities attribute. This configuration only permit BGP routes which
3492 has BGP communities value 0:80 or 0:90. Network operator can put
3493 special internal communities value at BGP border router, then limit the
3494 BGP routes announcement into the internal network.
3497 neighbor 192.168.0.1 remote-as 100
3498 neighbor 192.168.0.1 route-map RMAP in
3500 ip community-list 1 permit 0:80 0:90
3502 route-map RMAP permit in
3505 Following exmaple filter BGP routes which has communities value 1:1.
3506 When there is no match community-list returns deny. To avoid filtering
3507 all of routes, we need to define permit any at last.
3510 neighbor 192.168.0.1 remote-as 100
3511 neighbor 192.168.0.1 route-map RMAP in
3513 ip community-list standard FILTER deny 1:1
3514 ip community-list standard FILTER permit
3516 route-map RMAP permit 10
3517 match community FILTER
3519 Communities value keyword `internet' has special meanings in
3520 standard community lists. In below example `internet' act as match
3521 any. It matches all of BGP routes even if the route does not have
3522 communities attribute at all. So community list `INTERNET' is same as
3523 above example's `FILTER'.
3525 ip community-list standard INTERNET deny 1:1
3526 ip community-list standard INTERNET permit internet
3528 Following configuration is an example of communities value deletion.
3529 With this configuration communities value 100:1 and 100:2 is removed
3530 from BGP updates. For communities value deletion, only `permit'
3531 community-list is used. `deny' community-list is ignored.
3534 neighbor 192.168.0.1 remote-as 100
3535 neighbor 192.168.0.1 route-map RMAP in
3537 ip community-list standard DEL permit 100:1 100:2
3539 route-map RMAP permit 10
3540 set comm-list DEL delete
3543 File: quagga.info, Node: BGP Extended Communities Attribute, Next: Displaying BGP routes, Prev: BGP Communities Attribute, Up: BGP
3545 9.9 BGP Extended Communities Attribute
3546 ======================================
3548 BGP extended communities attribute is introduced with MPLS VPN/BGP
3549 technology. MPLS VPN/BGP expands capability of network infrastructure
3550 to provide VPN functionality. At the same time it requires a new
3551 framework for policy routing. With BGP Extended Communities Attribute
3552 we can use Route Target or Site of Origin for implementing network
3553 policy for MPLS VPN/BGP.
3555 BGP Extended Communities Attribute is similar to BGP Communities
3556 Attribute. It is an optional transitive attribute. BGP Extended
3557 Communities Attribute can carry multiple Extended Community value.
3558 Each Extended Community value is eight octet length.
3560 BGP Extended Communities Attribute provides an extended range
3561 compared with BGP Communities Attribute. Adding to that there is a
3562 type field in each value to provides community space structure.
3564 There are two format to define Extended Community value. One is AS
3565 based format the other is IP address based format.
3568 This is a format to define AS based Extended Community value.
3569 `AS' part is 2 octets Global Administrator subfield in Extended
3570 Community value. `VAL' part is 4 octets Local Administrator
3571 subfield. `7675:100' represents AS 7675 policy value 100.
3574 This is a format to define IP address based Extended Community
3575 value. `IP-Address' part is 4 octets Global Administrator
3576 subfield. `VAL' part is 2 octets Local Administrator subfield.
3577 `10.0.0.1:100' represents
3581 * BGP Extended Community Lists::
3582 * BGP Extended Communities in Route Map::
3585 File: quagga.info, Node: BGP Extended Community Lists, Next: BGP Extended Communities in Route Map, Up: BGP Extended Communities Attribute
3587 9.9.1 BGP Extended Community Lists
3588 ----------------------------------
3590 Expanded Community Lists is a user defined BGP Expanded Community Lists.
3592 -- Command: ip extcommunity-list standard NAME {permit|deny}
3594 This command defines a new standard extcommunity-list.
3595 EXTCOMMUNITY is extended communities value. The EXTCOMMUNITY is
3596 compiled into extended community structure. We can define
3597 multiple extcommunity-list under same name. In that case match
3598 will happen user defined order. Once the extcommunity-list
3599 matches to extended communities attribute in BGP updates it return
3600 permit or deny based upon the extcommunity-list definition. When
3601 there is no matched entry, deny will be returned. When
3602 EXTCOMMUNITY is empty it matches to any routes.
3604 -- Command: ip extcommunity-list expanded NAME {permit|deny} LINE
3605 This command defines a new expanded extcommunity-list. LINE is a
3606 string expression of extended communities attribute. LINE can
3607 include regular expression to match extended communities attribute
3610 -- Command: no ip extcommunity-list NAME
3611 -- Command: no ip extcommunity-list standard NAME
3612 -- Command: no ip extcommunity-list expanded NAME
3613 These commands delete extended community lists specified by NAME.
3614 All of extended community lists shares a single name space. So
3615 extended community lists can be removed simpley specifying the
3618 -- Command: show ip extcommunity-list
3619 -- Command: show ip extcommunity-list NAME
3620 This command display current extcommunity-list information. When
3621 NAME is specified the community list's information is shown.
3623 # show ip extcommunity-list
3626 File: quagga.info, Node: BGP Extended Communities in Route Map, Prev: BGP Extended Community Lists, Up: BGP Extended Communities Attribute
3628 9.9.2 BGP Extended Communities in Route Map
3629 -------------------------------------------
3631 -- Route Map: match extcommunity WORD
3633 -- Route Map: set extcommunity rt EXTCOMMUNITY
3634 This command set Route Target value.
3636 -- Route Map: set extcommunity soo EXTCOMMUNITY
3637 This command set Site of Origin value.
3640 File: quagga.info, Node: Displaying BGP routes, Next: Capability Negotiation, Prev: BGP Extended Communities Attribute, Up: BGP
3642 9.10 Displaying BGP Routes
3643 ==========================
3648 * More Show IP BGP::
3651 File: quagga.info, Node: Show IP BGP, Next: More Show IP BGP, Up: Displaying BGP routes
3656 -- Command: show ip bgp
3657 -- Command: show ip bgp A.B.C.D
3658 -- Command: show ip bgp X:X::X:X
3659 This command displays BGP routes. When no route is specified it
3660 display all of IPv4 BGP routes.
3662 BGP table version is 0, local router ID is 10.1.1.1
3663 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
3664 Origin codes: i - IGP, e - EGP, ? - incomplete
3666 Network Next Hop Metric LocPrf Weight Path
3667 *> 1.1.1.1/32 0.0.0.0 0 32768 i
3669 Total number of prefixes 1
3672 File: quagga.info, Node: More Show IP BGP, Prev: Show IP BGP, Up: Displaying BGP routes
3674 9.10.2 More Show IP BGP
3675 -----------------------
3677 -- Command: show ip bgp regexp LINE
3678 This command display BGP routes using AS path regular expression
3679 (*note Display BGP Routes by AS Path::).
3681 -- Command: show ip bgp community COMMUNITY
3682 -- Command: show ip bgp community COMMUNITY exact-match
3683 This command display BGP routes using COMMUNITY (*note Display BGP
3684 Routes by Community::).
3686 -- Command: show ip bgp community-list WORD
3687 -- Command: show ip bgp community-list WORD exact-match
3688 This command display BGP routes using community list (*note
3689 Display BGP Routes by Community::).
3691 -- Command: show ip bgp summary
3693 -- Command: show ip bgp neighbor [PEER]
3695 -- Command: clear ip bgp PEER
3696 Clear peers which have addresses of X.X.X.X
3698 -- Command: clear ip bgp PEER soft in
3699 Clear peer using soft reconfiguration.
3701 -- Command: show debug
3703 -- Command: debug event
3705 -- Command: debug update
3707 -- Command: debug keepalive
3709 -- Command: no debug event
3711 -- Command: no debug update
3713 -- Command: no debug keepalive
3716 File: quagga.info, Node: Capability Negotiation, Next: Route Reflector, Prev: Displaying BGP routes, Up: BGP
3718 9.11 Capability Negotiation
3719 ===========================
3721 When adding IPv6 routing information exchange feature to BGP. There
3722 were some proposals. IETF (Internet Engineering Task Force) IDR (Inter
3723 Domain Routing) WG (Working group) adopted a proposal called
3724 Multiprotocol Extension for BGP. The specification is described in
3725 `RFC2283'. The protocol does not define new protocols. It defines new
3726 attributes to existing BGP. When it is used exchanging IPv6 routing
3727 information it is called BGP-4+. When it is used for exchanging
3728 multicast routing information it is called MBGP.
3730 `bgpd' supports Multiprotocol Extension for BGP. So if remote peer
3731 supports the protocol, `bgpd' can exchange IPv6 and/or multicast
3732 routing information.
3734 Traditional BGP did not have the feature to detect remote peer's
3735 capabilities, e.g. whether it can handle prefix types other than IPv4
3736 unicast routes. This was a big problem using Multiprotocol Extension
3737 for BGP to operational network. `RFC2842, Capabilities Advertisement
3738 with BGP-4' adopted a feature called Capability Negotiation. `bgpd' use
3739 this Capability Negotiation to detect the remote peer's capabilities.
3740 If the peer is only configured as IPv4 unicast neighbor, `bgpd' does
3741 not send these Capability Negotiation packets (at least not unless
3742 other optional BGP features require capability negotation).
3744 By default, Quagga will bring up peering with minimal common
3745 capability for the both sides. For example, local router has unicast
3746 and multicast capabilitie and remote router has unicast capability. In
3747 this case, the local router will establish the connection with unicast
3748 only capability. When there are no common capabilities, Quagga sends
3749 Unsupported Capability error and then resets the connection.
3751 If you want to completely match capabilities with remote peer.
3752 Please use `strict-capability-match' command.
3754 -- BGP: neighbor PEER strict-capability-match
3755 -- BGP: no neighbor PEER strict-capability-match
3756 Strictly compares remote capabilities and local capabilities. If
3757 capabilities are different, send Unsupported Capability error then
3760 You may want to disable sending Capability Negotiation OPEN message
3761 optional parameter to the peer when remote peer does not implement
3762 Capability Negotiation. Please use `dont-capability-negotiate' command
3763 to disable the feature.
3765 -- BGP: neighbor PEER dont-capability-negotiate
3766 -- BGP: no neighbor PEER dont-capability-negotiate
3767 Suppress sending Capability Negotiation as OPEN message optional
3768 parameter to the peer. This command only affects the peer is
3769 configured other than IPv4 unicast configuration.
3771 When remote peer does not have capability negotiation feature, remote
3772 peer will not send any capabilities at all. In that case, bgp
3773 configures the peer with configured capabilities.
3775 You may prefer locally configured capabilities more than the
3776 negotiated capabilities even though remote peer sends capabilities. If
3777 the peer is configured by `override-capability', `bgpd' ignores
3778 received capabilities then override negotiated capabilities with
3781 -- BGP: neighbor PEER override-capability
3782 -- BGP: no neighbor PEER override-capability
3783 Override the result of Capability Negotiation with local
3784 configuration. Ignore remote peer's capability value.
3787 File: quagga.info, Node: Route Reflector, Next: Route Server, Prev: Capability Negotiation, Up: BGP
3789 9.12 Route Reflector
3790 ====================
3792 -- BGP: bgp cluster-id A.B.C.D
3794 -- BGP: neighbor PEER route-reflector-client
3795 -- BGP: no neighbor PEER route-reflector-client
3798 File: quagga.info, Node: Route Server, Next: How to set up a 6-Bone connection, Prev: Route Reflector, Up: BGP
3803 At an Internet Exchange point, many ISPs are connected to each other by
3804 external BGP peering. Normally these external BGP connection are done
3805 by `full mesh' method. As with internal BGP full mesh formation, this
3806 method has a scaling problem.
3808 This scaling problem is well known. Route Server is a method to
3809 resolve the problem. Each ISP's BGP router only peers to Route Server.
3810 Route Server serves as BGP information exchange to other BGP routers.
3811 By applying this method, numbers of BGP connections is reduced from
3812 O(n*(n-1)/2) to O(n).
3814 Unlike normal BGP router, Route Server must have several routing
3815 tables for managing different routing policies for each BGP speaker.
3816 We call the routing tables as different `view's. `bgpd' can work as
3817 normal BGP router or Route Server or both at the same time.
3821 * Multiple instance::
3822 * BGP instance and view::
3824 * Viewing the view::
3827 File: quagga.info, Node: Multiple instance, Next: BGP instance and view, Up: Route Server
3829 9.13.1 Multiple instance
3830 ------------------------
3832 To enable multiple view function of `bgpd', you must turn on multiple
3833 instance feature beforehand.
3835 -- Command: bgp multiple-instance
3836 Enable BGP multiple instance feature. After this feature is
3837 enabled, you can make multiple BGP instances or multiple BGP views.
3839 -- Command: no bgp multiple-instance
3840 Disable BGP multiple instance feature. You can not disable this
3841 feature when BGP multiple instances or views exist.
3843 When you want to make configuration more Cisco like one,
3845 -- Command: bgp config-type cisco
3846 Cisco compatible BGP configuration output.
3848 When bgp config-type cisco is specified,
3850 "no synchronization" is displayed. "no auto-summary" is desplayed.
3852 "network" and "aggregate-address" argument is displayed as "A.B.C.D
3855 Quagga: network 10.0.0.0/8 Cisco: network 10.0.0.0
3857 Quagga: aggregate-address 192.168.0.0/24 Cisco: aggregate-address
3858 192.168.0.0 255.255.255.0
3860 Community attribute handling is also different. If there is no
3861 configuration is specified community attribute and extended community
3862 attribute are sent to neighbor. When user manually disable the feature
3863 community attribute is not sent to the neighbor. In case of `bgp
3864 config-type cisco' is specified, community attribute is not sent to the
3865 neighbor by default. To send community attribute user has to specify
3866 `neighbor A.B.C.D send-community' command.
3870 neighbor 10.0.0.1 remote-as 1
3871 no neighbor 10.0.0.1 send-community
3874 neighbor 10.0.0.1 remote-as 1
3875 neighbor 10.0.0.1 send-community
3878 -- Command: bgp config-type zebra
3879 Quagga style BGP configuration. This is default.
3882 File: quagga.info, Node: BGP instance and view, Next: Routing policy, Prev: Multiple instance, Up: Route Server
3884 9.13.2 BGP instance and view
3885 ----------------------------
3887 BGP instance is a normal BGP process. The result of route selection
3888 goes to the kernel routing table. You can setup different AS at the
3889 same time when BGP multiple instance feature is enabled.
3891 -- Command: router bgp AS-NUMBER
3892 Make a new BGP instance. You can use arbitrary word for the NAME.
3894 bgp multiple-instance
3897 neighbor 10.0.0.1 remote-as 2
3898 neighbor 10.0.0.2 remote-as 3
3901 neighbor 10.0.0.3 remote-as 4
3902 neighbor 10.0.0.4 remote-as 5
3904 BGP view is almost same as normal BGP process. The result of route
3905 selection does not go to the kernel routing table. BGP view is only
3906 for exchanging BGP routing information.
3908 -- Command: router bgp AS-NUMBER view NAME
3909 Make a new BGP view. You can use arbitrary word for the NAME.
3910 This view's route selection result does not go to the kernel
3913 With this command, you can setup Route Server like below.
3915 bgp multiple-instance
3918 neighbor 10.0.0.1 remote-as 2
3919 neighbor 10.0.0.2 remote-as 3
3922 neighbor 10.0.0.3 remote-as 4
3923 neighbor 10.0.0.4 remote-as 5
3926 File: quagga.info, Node: Routing policy, Next: Viewing the view, Prev: BGP instance and view, Up: Route Server
3928 9.13.3 Routing policy
3929 ---------------------
3931 You can set different routing policy for a peer. For example, you can
3932 set different filter for a peer.
3934 bgp multiple-instance
3937 neighbor 10.0.0.1 remote-as 2
3938 neighbor 10.0.0.1 distribute-list 1 in
3941 neighbor 10.0.0.1 remote-as 2
3942 neighbor 10.0.0.1 distribute-list 2 in
3944 This means BGP update from a peer 10.0.0.1 goes to both BGP view 1
3945 and view 2. When the update is inserted into view 1, distribute-list 1
3946 is applied. On the other hand, when the update is inserted into view 2,
3947 distribute-list 2 is applied.
3950 File: quagga.info, Node: Viewing the view, Prev: Routing policy, Up: Route Server
3952 9.13.4 Viewing the view
3953 -----------------------
3955 To display routing table of BGP view, you must specify view name.
3957 -- Command: show ip bgp view NAME
3958 Display routing table of BGP view NAME.
3961 File: quagga.info, Node: How to set up a 6-Bone connection, Next: Dump BGP packets and table, Prev: Route Server, Up: BGP
3963 9.14 How to set up a 6-Bone connection
3964 ======================================
3969 ! Actually there is no need to configure zebra
3975 ! This means that routes go through zebra and into the kernel.
3979 ! MP-BGP configuration
3982 bgp router-id 10.0.0.1
3983 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 remote-as AS-NUMBER
3986 network 3ffe:506::/32
3987 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 activate
3988 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 route-map set-nexthop out
3989 neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 remote-as AS-NUMBER
3990 neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 route-map set-nexthop out
3993 ipv6 access-list all permit any
3995 ! Set output nexthop address.
3997 route-map set-nexthop permit 10
3998 match ipv6 address all
3999 set ipv6 nexthop global 3ffe:1cfa:0:2:2c0:4fff:fe68:a225
4000 set ipv6 nexthop local fe80::2c0:4fff:fe68:a225
4002 ! logfile FILENAME is obsolete. Please use log file FILENAME
4008 File: quagga.info, Node: Dump BGP packets and table, Next: BGP Configuration Examples, Prev: How to set up a 6-Bone connection, Up: BGP
4010 9.15 Dump BGP packets and table
4011 ===============================
4013 -- Command: dump bgp all PATH
4014 -- Command: dump bgp all PATH INTERVAL
4015 Dump all BGP packet and events to PATH file.
4017 -- Command: dump bgp updates PATH
4018 -- Command: dump bgp updates PATH INTERVAL
4019 Dump BGP updates to PATH file.
4021 -- Command: dump bgp routes PATH
4022 -- Command: dump bgp routes PATH
4023 Dump whole BGP routing table to PATH. This is heavy process.
4026 File: quagga.info, Node: BGP Configuration Examples, Prev: Dump BGP packets and table, Up: BGP
4028 9.16 BGP Configuration Examples
4029 ===============================
4031 Example of a session to an upstream, advertising only one prefix to it.
4034 bgp router-id 10.236.87.1
4035 network 10.236.87.0/24
4036 neighbor upstream peer-group
4037 neighbor upstream remote-as 64515
4038 neighbor upstream capability dynamic
4039 neighbor upstream prefix-list pl-allowed-adv out
4040 neighbor 10.1.1.1 peer-group upstream
4041 neighbor 10.1.1.1 description ACME ISP
4043 ip prefix-list pl-allowed-adv seq 5 permit 82.195.133.0/25
4044 ip prefix-list pl-allowed-adv seq 10 deny any
4046 A more complex example. With upstream, peer and customer sessions.
4047 Advertising global prefixes and NO_EXPORT prefixes and providing
4048 actions for customer routes based on community values. Extensive use of
4049 route-maps and the 'call' feature to support selective advertising of
4050 prefixes. This example is intended as guidance only, it has NOT been
4051 tested and almost certainly containts silly mistakes, if not serious
4055 bgp router-id 10.236.87.1
4056 network 10.123.456.0/24
4057 network 10.123.456.128/25 route-map rm-no-export
4058 neighbor upstream capability dynamic
4059 neighbor upstream route-map rm-upstream-out out
4060 neighbor cust capability dynamic
4061 neighbor cust route-map rm-cust-in in
4062 neighbor cust route-map rm-cust-out out
4063 neighbor cust send-community both
4064 neighbor peer capability dynamic
4065 neighbor peer route-map rm-peer-in in
4066 neighbor peer route-map rm-peer-out out
4067 neighbor peer send-community both
4068 neighbor 10.1.1.1 remote-as 64515
4069 neighbor 10.1.1.1 peer-group upstream
4070 neighbor 10.2.1.1 remote-as 64516
4071 neighbor 10.2.1.1 peer-group upstream
4072 neighbor 10.3.1.1 remote-as 64517
4073 neighbor 10.3.1.1 peer-group cust-default
4074 neighbor 10.3.1.1 description customer1
4075 neighbor 10.3.1.1 prefix-list pl-cust1-network in
4076 neighbor 10.4.1.1 remote-as 64518
4077 neighbor 10.4.1.1 peer-group cust
4078 neighbor 10.4.1.1 prefix-list pl-cust2-network in
4079 neighbor 10.4.1.1 description customer2
4080 neighbor 10.5.1.1 remote-as 64519
4081 neighbor 10.5.1.1 peer-group peer
4082 neighbor 10.5.1.1 prefix-list pl-peer1-network in
4083 neighbor 10.5.1.1 description peer AS 1
4084 neighbor 10.6.1.1 remote-as 64520
4085 neighbor 10.6.1.1 peer-group peer
4086 neighbor 10.6.1.1 prefix-list pl-peer2-network in
4087 neighbor 10.6.1.1 description peer AS 2
4089 ip prefix-list pl-default permit 0.0.0.0/0
4091 ip prefix-list pl-upstream-peers permit 10.1.1.1/32
4092 ip prefix-list pl-upstream-peers permit 10.2.1.1/32
4094 ip prefix-list pl-cust1-network permit 10.3.1.0/24
4095 ip prefix-list pl-cust1-network permit 10.3.2.0/24
4097 ip prefix-list pl-cust2-network permit 10.4.1.0/24
4099 ip prefix-list pl-peer1-network permit 10.5.1.0/24
4100 ip prefix-list pl-peer1-network permit 10.5.2.0/24
4101 ip prefix-list pl-peer1-network permit 192.168.0.0/24
4103 ip prefix-list pl-peer2-network permit 10.6.1.0/24
4104 ip prefix-list pl-peer2-network permit 10.6.2.0/24
4105 ip prefix-list pl-peer2-network permit 192.168.1.0/24
4106 ip prefix-list pl-peer2-network permit 192.168.2.0/24
4107 ip prefix-list pl-peer2-network permit 172.16.1/24
4109 ip as-path access-list asp-own-as permit ^$
4110 ip as-path access-list asp-own-as permit _64512_
4112 ! #################################################################
4113 ! Match communities we provide actions for, on routes receives from
4114 ! customers. Communities values of <our-ASN>:X, with X, have actions:
4116 ! 100 - blackhole the prefix
4117 ! 200 - set no_export
4118 ! 300 - advertise only to other customers
4119 ! 400 - advertise only to upstreams
4120 ! 500 - set no_export when advertising to upstreams
4121 ! 2X00 - set local_preference to X00
4123 ! blackhole the prefix of the route
4124 ip community-list standard cm-blackhole permit 64512:100
4126 ! set no-export community before advertising
4127 ip community-list standard cm-set-no-export permit 64512:200
4129 ! advertise only to other customers
4130 ip community-list standard cm-cust-only permit 64512:300
4132 ! advertise only to upstreams
4133 ip community-list standard cm-upstream-only permit 64512:400
4135 ! advertise to upstreams with no-export
4136 ip community-list standard cm-upstream-noexport permit 64512:500
4138 ! set local-pref to least significant 3 digits of the community
4139 ip community-list standard cm-prefmod-100 permit 64512:2100
4140 ip community-list standard cm-prefmod-200 permit 64512:2200
4141 ip community-list standard cm-prefmod-300 permit 64512:2300
4142 ip community-list standard cm-prefmod-400 permit 64512:2400
4143 ip community-list expanded cme-prefmod-range permit 64512:2...
4145 ! Informational communities
4147 ! 3000 - learned from upstream
4148 ! 3100 - learned from customer
4149 ! 3200 - learned from peer
4151 ip community-list standard cm-learnt-upstream permit 64512:3000
4152 ip community-list standard cm-learnt-cust permit 64512:3100
4153 ip community-list standard cm-learnt-peer permit 64512:3200
4155 ! ###################################################################
4156 ! Utility route-maps
4158 ! These utility route-maps generally should not used to permit/deny
4159 ! routes, i.e. they do not have meaning as filters, and hence probably
4160 ! should be used with 'on-match next'. These all finish with an empty
4161 ! permit entry so as not interfere with processing in the caller.
4163 route-map rm-no-export permit 10
4164 set community additive no-export
4165 route-map rm-no-export permit 20
4167 route-map rm-blackhole permit 10
4168 description blackhole, up-pref and ensure it cant escape this AS
4169 set ip next-hop 127.0.0.1
4170 set local-preference 10
4171 set community additive no-export
4172 route-map rm-blackhole permit 20
4174 ! Set local-pref as requested
4175 route-map rm-prefmod permit 10
4176 match community cm-prefmod-100
4177 set local-preference 100
4178 route-map rm-prefmod permit 20
4179 match community cm-prefmod-200
4180 set local-preference 200
4181 route-map rm-prefmod permit 30
4182 match community cm-prefmod-300
4183 set local-preference 300
4184 route-map rm-prefmod permit 40
4185 match community cm-prefmod-400
4186 set local-preference 400
4187 route-map rm-prefmod permit 50
4189 ! Community actions to take on receipt of route.
4190 route-map rm-community-in permit 10
4191 description check for blackholing, no point continuing if it matches.
4192 match community cm-blackhole
4194 route-map rm-community-in permit 20
4195 match community cm-set-no-export
4198 route-map rm-community-in permit 30
4199 match community cme-prefmod-range
4201 route-map rm-community-in permit 40
4203 ! #####################################################################
4204 ! Community actions to take when advertising a route.
4205 ! These are filtering route-maps,
4207 ! Deny customer routes to upstream with cust-only set.
4208 route-map rm-community-filt-to-upstream deny 10
4209 match community cm-learnt-cust
4210 match community cm-cust-only
4211 route-map rm-community-filt-to-upstream permit 20
4213 ! Deny customer routes to other customers with upstream-only set.
4214 route-map rm-community-filt-to-cust deny 10
4215 match community cm-learnt-cust
4216 match community cm-upstream-only
4217 route-map rm-community-filt-to-cust permit 20
4219 ! ###################################################################
4220 ! The top-level route-maps applied to sessions. Further entries could
4221 ! be added obviously..
4224 route-map rm-cust-in permit 10
4225 call rm-community-in
4227 route-map rm-cust-in permit 20
4228 set community additive 64512:3100
4229 route-map rm-cust-in permit 30
4231 route-map rm-cust-out permit 10
4232 call rm-community-filt-to-cust
4234 route-map rm-cust-out permit 20
4236 ! Upstream transit ASes
4237 route-map rm-upstream-out permit 10
4238 description filter customer prefixes which are marked cust-only
4239 call rm-community-filt-to-upstream
4241 route-map rm-upstream-out permit 20
4242 description only customer routes are provided to upstreams/peers
4243 match community cm-learnt-cust
4246 ! outbound policy is same as for upstream
4247 route-map rm-peer-out permit 10
4248 call rm-upstream-out
4250 route-map rm-peer-in permit 10
4251 set community additive 64512:3200
4254 File: quagga.info, Node: Configuring Quagga as a Route Server, Next: VTY shell, Prev: BGP, Up: Top
4256 10 Configuring Quagga as a Route Server
4257 ***************************************
4259 The purpose of a Route Server is to centralize the peerings between BGP
4260 speakers. For example if we have an exchange point scenario with four
4261 BGP speakers, each of which maintaining a BGP peering with the other
4262 three (*note fig:full-mesh::), we can convert it into a centralized
4263 scenario where each of the four establishes a single BGP peering
4264 against the Route Server (*note fig:route-server::).
4266 We will first describe briefly the Route Server model implemented by
4267 Quagga. We will explain the commands that have been added for
4268 configuring that model. And finally we will show a full example of
4269 Quagga configured as Route Server.
4273 * Description of the Route Server model::
4274 * Commands for configuring a Route Server::
4275 * Example of Route Server Configuration::
4278 File: quagga.info, Node: Description of the Route Server model, Next: Commands for configuring a Route Server, Up: Configuring Quagga as a Route Server
4280 10.1 Description of the Route Server model
4281 ==========================================
4283 First we are going to describe the normal processing that BGP
4284 announcements suffer inside a standard BGP speaker, as shown in *Note
4285 fig:normal-processing::, it consists of three steps:
4287 * When an announcement is received from some peer, the `In' filters
4288 configured for that peer are applied to the announcement. These
4289 filters can reject the announcement, accept it unmodified, or
4290 accept it with some of its attributes modified.
4292 * The announcements that pass the `In' filters go into the Best Path
4293 Selection process, where they are compared to other announcements
4294 referred to the same destination that have been received from
4295 different peers (in case such other announcements exist). For each
4296 different destination, the announcement which is selected as the
4297 best is inserted into the BGP speaker's Loc-RIB.
4299 * The routes which are inserted in the Loc-RIB are considered for
4300 announcement to all the peers (except the one from which the route
4301 came). This is done by passing the routes in the Loc-RIB through
4302 the `Out' filters corresponding to each peer. These filters can
4303 reject the route, accept it unmodified, or accept it with some of
4304 its attributes modified. Those routes which are accepted by the
4305 `Out' filters of a peer are announced to that peer.
4307 Figure 10.1: Announcement processing inside a "normal" BGP speaker
4309 Figure 10.2: Full Mesh
4311 Figure 10.3: Route Server and clients
4313 Of course we want that the routing tables obtained in each of the
4314 routers are the same when using the route server than when not. But as
4315 a consequence of having a single BGP peering (against the route
4316 server), the BGP speakers can no longer distinguish from/to which peer
4317 each announce comes/goes. This means that the routers connected to the
4318 route server are not able to apply by themselves the same input/output
4319 filters as in the full mesh scenario, so they have to delegate those
4320 functions to the route server.
4322 Even more, the "best path" selection must be also performed inside
4323 the route server on behalf of its clients. The reason is that if, after
4324 applying the filters of the announcer and the (potential) receiver, the
4325 route server decides to send to some client two or more different
4326 announcements referred to the same destination, the client will only
4327 retain the last one, considering it as an implicit withdrawal of the
4328 previous announcements for the same destination. This is the expected
4329 behavior of a BGP speaker as defined in `RFC1771', and even though
4330 there are some proposals of mechanisms that permit multiple paths for
4331 the same destination to be sent through a single BGP peering, none of
4332 them are currently supported by most of the existing BGP
4335 As a consequence a route server must maintain additional information
4336 and perform additional tasks for a RS-client that those necessary for
4337 common BGP peerings. Essentially a route server must:
4339 * Maintain a separated Routing Information Base (Loc-RIB) for each
4340 peer configured as RS-client, containing the routes selected as a
4341 result of the "Best Path Selection" process that is performed on
4342 behalf of that RS-client.
4344 * Whenever it receives an announcement from a RS-client, it must
4345 consider it for the Loc-RIBs of the other RS-clients.
4347 * This means that for each of them the route server must pass
4348 the announcement through the appropriate `Out' filter of the
4351 * Then through the appropriate `In' filter of the potential
4354 * Only if the announcement is accepted by both filters it will
4355 be passed to the "Best Path Selection" process.
4357 * Finally, it might go into the Loc-RIB of the receiver.
4359 When we talk about the "appropriate" filter, both the announcer and
4360 the receiver of the route must be taken into account. Suppose that the
4361 route server receives an announcement from client A, and the route
4362 server is considering it for the Loc-RIB of client B. The filters that
4363 should be applied are the same that would be used in the full mesh
4364 scenario, i.e., first the `Out' filter of router A for announcements
4365 going to router B, and then the `In' filter of router B for
4366 announcements coming from router A.
4368 We call "Export Policy" of a RS-client to the set of `Out' filters
4369 that the client would use if there was no route server. The same
4370 applies for the "Import Policy" of a RS-client and the set of `In'
4371 filters of the client if there was no route server.
4373 It is also common to demand from a route server that it does not
4374 modify some BGP attributes (next-hop, as-path and MED) that are usually
4375 modified by standard BGP speakers before announcing a route.
4377 The announcement processing model implemented by Quagga is shown in
4378 *Note fig:rs-processing::. The figure shows a mixture of RS-clients (B,
4379 C and D) with normal BGP peers (A). There are some details that worth
4380 additional comments:
4382 * Announcements coming from a normal BGP peer are also considered
4383 for the Loc-RIBs of all the RS-clients. But logically they do not
4384 pass through any export policy.
4386 * Those peers that are configured as RS-clients do not receive any
4387 announce from the `Main' Loc-RIB.
4389 * Apart from import and export policies, `In' and `Out' filters can
4390 also be set for RS-clients. `In' filters might be useful when the
4391 route server has also normal BGP peers. On the other hand, `Out'
4392 filters for RS-clients are probably unnecessary, but we decided
4393 not to remove them as they do not hurt anybody (they can always be
4396 \0\b[image src="fig-rs-processing.png" alt="Route Server Processing Model"
\0\b]
4398 Figure 10.4: Announcement processing model implemented by the Route Server
4401 File: quagga.info, Node: Commands for configuring a Route Server, Next: Example of Route Server Configuration, Prev: Description of the Route Server model, Up: Configuring Quagga as a Route Server
4403 10.2 Commands for configuring a Route Server
4404 ============================================
4406 Now we will describe the commands that have been added to quagga in
4407 order to support the route server features.
4409 -- Route-Server: neighbor PEER-GROUP route-server-client
4410 -- Route-Server: neighbor A.B.C.D route-server-client
4411 -- Route-Server: neighbor X:X::X:X route-server-client
4412 This command configures the peer given by PEER, A.B.C.D or
4413 X:X::X:X as an RS-client.
4415 Actually this command is not new, it already existed in standard
4416 Quagga. It enables the transparent mode for the specified peer.
4417 This means that some BGP attributes (as-path, next-hop and MED) of
4418 the routes announced to that peer are not modified.
4420 With the route server patch, this command, apart from setting the
4421 transparent mode, creates a new Loc-RIB dedicated to the specified
4422 peer (those named `Loc-RIB for X' in *Note Figure 10.4:
4423 fig:rs-processing.). Starting from that moment, every announcement
4424 received by the route server will be also considered for the new
4427 -- Route-Server: neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD
4429 This set of commands can be used to specify the route-map that
4430 represents the Import or Export policy of a peer which is
4431 configured as a RS-client (with the previous command).
4433 -- Route-Server: match peer {A.B.C.D|X:X::X:X}
4434 This is a new _match_ statement for use in route-maps, enabling
4435 them to describe import/export policies. As we said before, an
4436 import/export policy represents a set of input/output filters of
4437 the RS-client. This statement makes possible that a single
4438 route-map represents the full set of filters that a BGP speaker
4439 would use for its different peers in a non-RS scenario.
4441 The _match peer_ statement has different semantics whether it is
4442 used inside an import or an export route-map. In the first case
4443 the statement matches if the address of the peer who sends the
4444 announce is the same that the address specified by
4445 {A.B.C.D|X:X::X:X}. For export route-maps it matches when
4446 {A.B.C.D|X:X::X:X} is the address of the RS-Client into whose
4447 Loc-RIB the announce is going to be inserted (how the same export
4448 policy is applied before different Loc-RIBs is shown in *Note
4449 Figure 10.4: fig:rs-processing.).
4451 -- Route-map Command: call WORD
4452 This command (also used inside a route-map) jumps into a different
4453 route-map, whose name is specified by WORD. When the called
4454 route-map finishes, depending on its result the original route-map
4455 continues or not. Apart from being useful for making import/export
4456 route-maps easier to write, this command can also be used inside
4457 any normal (in or out) route-map.
4460 File: quagga.info, Node: Example of Route Server Configuration, Prev: Commands for configuring a Route Server, Up: Configuring Quagga as a Route Server
4462 10.3 Example of Route Server Configuration
4463 ==========================================
4465 Finally we are going to show how to configure a Quagga daemon to act as
4466 a Route Server. For this purpose we are going to present a scenario
4467 without route server, and then we will show how to use the
4468 configurations of the BGP routers to generate the configuration of the
4471 All the configuration files shown in this section have been taken
4472 from scenarios which were tested using the VNUML tool VNUML
4473 (http://www.dit.upm.es/vnuml).
4477 * Configuration of the BGP routers without Route Server::
4478 * Configuration of the BGP routers with Route Server::
4479 * Configuration of the Route Server itself::
4480 * Further considerations about Import and Export route-maps::
4483 File: quagga.info, Node: Configuration of the BGP routers without Route Server, Next: Configuration of the BGP routers with Route Server, Up: Example of Route Server Configuration
4485 10.3.1 Configuration of the BGP routers without Route Server
4486 ------------------------------------------------------------
4488 We will suppose that our initial scenario is an exchange point with
4489 three BGP capable routers, named RA, RB and RC. Each of the BGP
4490 speakers generates some routes (with the NETWORK command), and
4491 establishes BGP peerings against the other two routers. These peerings
4492 have In and Out route-maps configured, named like "PEER-X-IN" or
4493 "PEER-X-OUT". For example the configuration file for router RA could be
4496 #Configuration for router 'RA'
4502 no bgp default ipv4-unicast
4503 neighbor 2001:0DB8::B remote-as 65002
4504 neighbor 2001:0DB8::C remote-as 65003
4507 network 2001:0DB8:AAAA:1::/64
4508 network 2001:0DB8:AAAA:2::/64
4509 network 2001:0DB8:0000:1::/64
4510 network 2001:0DB8:0000:2::/64
4512 neighbor 2001:0DB8::B activate
4513 neighbor 2001:0DB8::B soft-reconfiguration inbound
4514 neighbor 2001:0DB8::B route-map PEER-B-IN in
4515 neighbor 2001:0DB8::B route-map PEER-B-OUT out
4517 neighbor 2001:0DB8::C activate
4518 neighbor 2001:0DB8::C soft-reconfiguration inbound
4519 neighbor 2001:0DB8::C route-map PEER-C-IN in
4520 neighbor 2001:0DB8::C route-map PEER-C-OUT out
4523 ipv6 prefix-list COMMON-PREFIXES seq 5 permit 2001:0DB8:0000::/48 ge 64 le 64
4524 ipv6 prefix-list COMMON-PREFIXES seq 10 deny any
4526 ipv6 prefix-list PEER-A-PREFIXES seq 5 permit 2001:0DB8:AAAA::/48 ge 64 le 64
4527 ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any
4529 ipv6 prefix-list PEER-B-PREFIXES seq 5 permit 2001:0DB8:BBBB::/48 ge 64 le 64
4530 ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any
4532 ipv6 prefix-list PEER-C-PREFIXES seq 5 permit 2001:0DB8:CCCC::/48 ge 64 le 64
4533 ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any
4535 route-map PEER-B-IN permit 10
4536 match ipv6 address prefix-list COMMON-PREFIXES
4538 route-map PEER-B-IN permit 20
4539 match ipv6 address prefix-list PEER-B-PREFIXES
4540 set community 65001:11111
4542 route-map PEER-C-IN permit 10
4543 match ipv6 address prefix-list COMMON-PREFIXES
4545 route-map PEER-C-IN permit 20
4546 match ipv6 address prefix-list PEER-C-PREFIXES
4547 set community 65001:22222
4549 route-map PEER-B-OUT permit 10
4550 match ipv6 address prefix-list PEER-A-PREFIXES
4552 route-map PEER-C-OUT permit 10
4553 match ipv6 address prefix-list PEER-A-PREFIXES
4559 File: quagga.info, Node: Configuration of the BGP routers with Route Server, Next: Configuration of the Route Server itself, Prev: Configuration of the BGP routers without Route Server, Up: Example of Route Server Configuration
4561 10.3.2 Configuration of the BGP routers with Route Server
4562 ---------------------------------------------------------
4564 To convert the initial scenario into one with route server, first we
4565 must modify the configuration of routers RA, RB and RC. Now they must
4566 not peer between them, but only with the route server. For example, RA's
4567 configuration would turn into:
4569 # Configuration for router 'RA'
4575 no bgp default ipv4-unicast
4576 neighbor 2001:0DB8::FFFF remote-as 65000
4579 network 2001:0DB8:AAAA:1::/64
4580 network 2001:0DB8:AAAA:2::/64
4581 network 2001:0DB8:0000:1::/64
4582 network 2001:0DB8:0000:2::/64
4584 neighbor 2001:0DB8::FFFF activate
4585 neighbor 2001:0DB8::FFFF soft-reconfiguration inbound
4591 Which is logically much simpler than its initial configuration, as
4592 it now maintains only one BGP peering and all the filters (route-maps)
4596 File: quagga.info, Node: Configuration of the Route Server itself, Next: Further considerations about Import and Export route-maps, Prev: Configuration of the BGP routers with Route Server, Up: Example of Route Server Configuration
4598 10.3.3 Configuration of the Route Server itself
4599 -----------------------------------------------
4601 As we said when we described the functions of a route server (*note
4602 Description of the Route Server model::), it is in charge of all the
4603 route filtering. To achieve that, the In and Out filters from the RA,
4604 RB and RC configurations must be converted into Import and Export
4605 policies in the route server.
4607 This is a fragment of the route server configuration (we only show
4608 the policies for client RA):
4610 # Configuration for Route Server ('RS')
4615 bgp multiple-instance
4617 router bgp 65000 view RS
4618 no bgp default ipv4-unicast
4619 neighbor 2001:0DB8::A remote-as 65001
4620 neighbor 2001:0DB8::B remote-as 65002
4621 neighbor 2001:0DB8::C remote-as 65003
4624 neighbor 2001:0DB8::A activate
4625 neighbor 2001:0DB8::A route-server-client
4626 neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import
4627 neighbor 2001:0DB8::A route-map RSCLIENT-A-EXPORT export
4628 neighbor 2001:0DB8::A soft-reconfiguration inbound
4630 neighbor 2001:0DB8::B activate
4631 neighbor 2001:0DB8::B route-server-client
4632 neighbor 2001:0DB8::B route-map RSCLIENT-B-IMPORT import
4633 neighbor 2001:0DB8::B route-map RSCLIENT-B-EXPORT export
4634 neighbor 2001:0DB8::B soft-reconfiguration inbound
4636 neighbor 2001:0DB8::C activate
4637 neighbor 2001:0DB8::C route-server-client
4638 neighbor 2001:0DB8::C route-map RSCLIENT-C-IMPORT import
4639 neighbor 2001:0DB8::C route-map RSCLIENT-C-EXPORT export
4640 neighbor 2001:0DB8::C soft-reconfiguration inbound
4643 ipv6 prefix-list COMMON-PREFIXES seq 5 permit 2001:0DB8:0000::/48 ge 64 le 64
4644 ipv6 prefix-list COMMON-PREFIXES seq 10 deny any
4646 ipv6 prefix-list PEER-A-PREFIXES seq 5 permit 2001:0DB8:AAAA::/48 ge 64 le 64
4647 ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any
4649 ipv6 prefix-list PEER-B-PREFIXES seq 5 permit 2001:0DB8:BBBB::/48 ge 64 le 64
4650 ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any
4652 ipv6 prefix-list PEER-C-PREFIXES seq 5 permit 2001:0DB8:CCCC::/48 ge 64 le 64
4653 ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any
4655 route-map RSCLIENT-A-IMPORT permit 10
4656 match peer 2001:0DB8::B
4657 call A-IMPORT-FROM-B
4658 route-map RSCLIENT-A-IMPORT permit 20
4659 match peer 2001:0DB8::C
4660 call A-IMPORT-FROM-C
4662 route-map A-IMPORT-FROM-B permit 10
4663 match ipv6 address prefix-list COMMON-PREFIXES
4665 route-map A-IMPORT-FROM-B permit 20
4666 match ipv6 address prefix-list PEER-B-PREFIXES
4667 set community 65001:11111
4669 route-map A-IMPORT-FROM-C permit 10
4670 match ipv6 address prefix-list COMMON-PREFIXES
4672 route-map A-IMPORT-FROM-C permit 20
4673 match ipv6 address prefix-list PEER-C-PREFIXES
4674 set community 65001:22222
4676 route-map RSCLIENT-A-EXPORT permit 10
4677 match peer 2001:0DB8::B
4678 match ipv6 address prefix-list PEER-A-PREFIXES
4679 route-map RSCLIENT-A-EXPORT permit 20
4680 match peer 2001:0DB8::C
4681 match ipv6 address prefix-list PEER-A-PREFIXES
4687 If you compare the initial configuration of RA with the route server
4688 configuration above, you can see how easy it is to generate the Import
4689 and Export policies for RA from the In and Out route-maps of RA's
4690 original configuration.
4692 When there was no route server, RA maintained two peerings, one with
4693 RB and another with RC. Each of this peerings had an In route-map
4694 configured. To build the Import route-map for client RA in the route
4695 server, simply add route-map entries following this scheme:
4697 route-map <NAME> permit 10
4698 match peer <Peer Address>
4699 call <In Route-Map for this Peer>
4700 route-map <NAME> permit 20
4701 match peer <Another Peer Address>
4702 call <In Route-Map for this Peer>
4704 This is exactly the process that has been followed to generate the
4705 route-map RSCLIENT-A-IMPORT. The route-maps that are called inside it
4706 (A-IMPORT-FROM-B and A-IMPORT-FROM-C) are exactly the same than the In
4707 route-maps from the original configuration of RA (PEER-B-IN and
4708 PEER-C-IN), only the name is different.
4710 The same could have been done to create the Export policy for RA
4711 (route-map RSCLIENT-A-EXPORT), but in this case the original Out
4712 route-maps where so simple that we decided not to use the CALL WORD
4713 commands, and we integrated all in a single route-map
4714 (RSCLIENT-A-EXPORT).
4716 The Import and Export policies for RB and RC are not shown, but the
4717 process would be identical.
4720 File: quagga.info, Node: Further considerations about Import and Export route-maps, Prev: Configuration of the Route Server itself, Up: Example of Route Server Configuration
4722 10.3.4 Further considerations about Import and Export route-maps
4723 ----------------------------------------------------------------
4725 The current version of the route server patch only allows to specify a
4726 route-map for import and export policies, while in a standard BGP
4727 speaker apart from route-maps there are other tools for performing
4728 input and output filtering (access-lists, community-lists, ...). But
4729 this does not represent any limitation, as all kinds of filters can be
4730 included in import/export route-maps. For example suppose that in the
4731 non-route-server scenario peer RA had the following filters configured
4732 for input from peer B:
4734 neighbor 2001:0DB8::B prefix-list LIST-1 in
4735 neighbor 2001:0DB8::B filter-list LIST-2 in
4736 neighbor 2001:0DB8::B route-map PEER-B-IN in
4739 route-map PEER-B-IN permit 10
4740 match ipv6 address prefix-list COMMON-PREFIXES
4741 set local-preference 100
4742 route-map PEER-B-IN permit 20
4743 match ipv6 address prefix-list PEER-B-PREFIXES
4744 set community 65001:11111
4746 It is posible to write a single route-map which is equivalent to the
4747 three filters (the community-list, the prefix-list and the route-map).
4748 That route-map can then be used inside the Import policy in the route
4749 server. Lets see how to do it:
4751 neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import
4755 route-map RSCLIENT-A-IMPORT permit 10
4756 match peer 2001:0DB8::B
4757 call A-IMPORT-FROM-B
4761 route-map A-IMPORT-FROM-B permit 1
4762 match ipv6 address prefix-list LIST-1
4763 match as-path LIST-2
4765 route-map A-IMPORT-FROM-B deny 2
4766 route-map A-IMPORT-FROM-B permit 10
4767 match ipv6 address prefix-list COMMON-PREFIXES
4768 set local-preference 100
4769 route-map A-IMPORT-FROM-B permit 20
4770 match ipv6 address prefix-list PEER-B-PREFIXES
4771 set community 65001:11111
4776 The route-map A-IMPORT-FROM-B is equivalent to the three filters
4777 (LIST-1, LIST-2 and PEER-B-IN). The first entry of route-map
4778 A-IMPORT-FROM-B (sequence number 1) matches if and only if both the
4779 prefix-list LIST-1 and the filter-list LIST-2 match. If that happens,
4780 due to the "on-match goto 10" statement the next route-map entry to be
4781 processed will be number 10, and as of that point route-map
4782 A-IMPORT-FROM-B is identical to PEER-B-IN. If the first entry does not
4783 match, `on-match goto 10" will be ignored and the next processed entry
4784 will be number 2, which will deny the route.
4786 Thus, the result is the same that with the three original filters,
4787 i.e., if either LIST-1 or LIST-2 rejects the route, it does not reach
4788 the route-map PEER-B-IN. In case both LIST-1 and LIST-2 accept the
4789 route, it passes to PEER-B-IN, which can reject, accept or modify the
4793 File: quagga.info, Node: VTY shell, Next: Filtering, Prev: Configuring Quagga as a Route Server, Up: Top
4798 `vtysh' is integrated shell of Quagga software.
4800 To use vtysh please specify --enable-vtysh to configure script. To
4801 use PAM for authentication use --with-libpam option to configure script.
4803 vtysh only searches /etc/quagga path for vtysh.conf which is the
4804 vtysh configuration file. Vtysh does not search current directory for
4805 configuration file because the file includes user authentication
4808 Currently, vtysh.conf has only two commands.
4812 * VTY shell username::
4813 * VTY shell integrated configuration::
4816 File: quagga.info, Node: VTY shell username, Next: VTY shell integrated configuration, Up: VTY shell
4818 11.1 VTY shell username
4819 =======================
4821 -- Command: username USERNAME nopassword
4822 With this set, user foo does not need password authentication for
4823 user vtysh. With PAM vtysh uses PAM authentication mechanism.
4825 If vtysh is compiled without PAM authentication, every user can
4826 use vtysh without authentication. vtysh requires read/write
4827 permission to the various daemons vty sockets, this can be
4828 accomplished through use of unix groups and the -enable-vty-group
4833 File: quagga.info, Node: VTY shell integrated configuration, Prev: VTY shell username, Up: VTY shell
4835 11.2 VTY shell integrated configuration
4836 =======================================
4838 -- Command: service integrated-vtysh-config
4839 Write out integrated Quagga.conf file when 'write file' is issued.
4841 This command controls the behaviour of vtysh when it is told to
4842 write out the configuration. Per default, vtysh will instruct
4843 each daemon to write out their own config files when `write file'
4844 is issued. However, if `service integrated-vtysh-config' is set,
4845 when `write file' is issued, vtysh will instruct the daemons will
4846 write out a Quagga.conf with all daemons' commands integrated into
4849 Vtysh per default behaves as if `write-conf daemon' is set. Note
4850 that both may be set at same time if one wishes to have both
4851 Quagga.conf and daemon specific files written out. Further, note
4852 that the daemons are hard-coded to first look for the integrated
4853 Quagga.conf file before looking for their own file.
4855 We recommend you do not mix the use of the two types of files.
4856 Further, it is better not to use the integrated Quagga.conf file,
4857 as any syntax error in it can lead to /all/ of your daemons being
4858 unable to start up. Per daemon files are more robust as impact of
4859 errors in configuration are limited to the daemon in whose file
4864 File: quagga.info, Node: Filtering, Next: Route Map, Prev: VTY shell, Up: Top
4869 Quagga provides many very flexible filtering features. Filtering is
4870 used for both input and output of the routing information. Once
4871 filtering is defined, it can be applied in any direction.
4879 File: quagga.info, Node: IP Access List, Next: IP Prefix List, Up: Filtering
4884 -- Command: access-list NAME permit IPV4-NETWORK
4885 -- Command: access-list NAME deny IPV4-NETWORK
4887 Basic filtering is done by `access-list' as shown in the following
4890 access-list filter deny 10.0.0.0/9
4891 access-list filter permit 10.0.0.0/8
4894 File: quagga.info, Node: IP Prefix List, Prev: IP Access List, Up: Filtering
4899 `ip prefix-list' provides the most powerful prefix based filtering
4900 mechanism. In addition to `access-list' functionality, `ip
4901 prefix-list' has prefix length range specification and sequential
4902 number specification. You can add or delete prefix based filters to
4903 arbitrary points of prefix-list using sequential number specification.
4905 If no ip prefix-list is specified, it acts as permit. If `ip
4906 prefix-list' is defined, and no match is found, default deny is applied.
4908 -- Command: ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]
4909 -- Command: ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le
4911 You can create `ip prefix-list' using above commands.
4914 seq NUMBER can be set either automatically or manually. In
4915 the case that sequential numbers are set manually, the user
4916 may pick any number less than 4294967295. In the case that
4917 sequential number are set automatically, the sequential
4918 number will increase by a unit of five (5) per list. If a
4919 list with no specified sequential number is created after a
4920 list with a specified sequential number, the list will
4921 automatically pick the next multiple of five (5) as the list
4922 number. For example, if a list with number 2 already exists
4923 and a new list with no specified number is created, the next
4924 list will be numbered 5. If lists 2 and 7 already exist and
4925 a new list with no specified number is created, the new list
4926 will be numbered 10.
4929 `le' command specifies prefix length. The prefix list will be
4930 applied if the prefix length is less than or equal to the le
4934 `ge' command specifies prefix length. The prefix list will be
4935 applied if the prefix length is greater than or equal to the
4940 Less than or equal to prefix numbers and greater than or equal to
4941 prefix numbers can be used together. The order of the le and ge
4942 commands does not matter.
4944 If a prefix list with a different sequential number but with the
4945 exact same rules as a previous list is created, an error will result.
4946 However, in the case that the sequential number and the rules are
4947 exactly similar, no error will result.
4949 If a list with the same sequential number as a previous list is
4950 created, the new list will overwrite the old list.
4952 Matching of IP Prefix is performed from the smaller sequential
4953 number to the larger. The matching will stop once any rule has been
4956 In the case of no le or ge command, the prefix length must match
4957 exactly the length specified in the prefix list.
4959 -- Command: no ip prefix-list NAME
4963 * ip prefix-list description::
4964 * ip prefix-list sequential number control::
4965 * Showing ip prefix-list::
4966 * Clear counter of ip prefix-list::
4969 File: quagga.info, Node: ip prefix-list description, Next: ip prefix-list sequential number control, Up: IP Prefix List
4971 12.2.1 ip prefix-list description
4972 ---------------------------------
4974 -- Command: ip prefix-list NAME description DESC
4975 Descriptions may be added to prefix lists. This command adds a
4976 description to the prefix list.
4978 -- Command: no ip prefix-list NAME description [DESC]
4979 Deletes the description from a prefix list. It is possible to use
4980 the command without the full description.
4983 File: quagga.info, Node: ip prefix-list sequential number control, Next: Showing ip prefix-list, Prev: ip prefix-list description, Up: IP Prefix List
4985 12.2.2 ip prefix-list sequential number control
4986 -----------------------------------------------
4988 -- Command: ip prefix-list sequence-number
4989 With this command, the IP prefix list sequential number is
4990 displayed. This is the default behavior.
4992 -- Command: no ip prefix-list sequence-number
4993 With this command, the IP prefix list sequential number is not
4997 File: quagga.info, Node: Showing ip prefix-list, Next: Clear counter of ip prefix-list, Prev: ip prefix-list sequential number control, Up: IP Prefix List
4999 12.2.3 Showing ip prefix-list
5000 -----------------------------
5002 -- Command: show ip prefix-list
5003 Display all IP prefix lists.
5005 -- Command: show ip prefix-list NAME
5006 Show IP prefix list can be used with a prefix list name.
5008 -- Command: show ip prefix-list NAME seq NUM
5009 Show IP prefix list can be used with a prefix list name and
5012 -- Command: show ip prefix-list NAME A.B.C.D/M
5013 If the command longer is used, all prefix lists with prefix
5014 lengths equal to or longer than the specified length will be
5015 displayed. If the command first match is used, the first prefix
5016 length match will be displayed.
5018 -- Command: show ip prefix-list NAME A.B.C.D/M longer
5020 -- Command: show ip prefix-list NAME A.B.C.D/M first-match
5022 -- Command: show ip prefix-list summary
5024 -- Command: show ip prefix-list summary NAME
5026 -- Command: show ip prefix-list detail
5028 -- Command: show ip prefix-list detail NAME
5031 File: quagga.info, Node: Clear counter of ip prefix-list, Prev: Showing ip prefix-list, Up: IP Prefix List
5033 12.2.4 Clear counter of ip prefix-list
5034 --------------------------------------
5036 -- Command: clear ip prefix-list
5037 Clears the counters of all IP prefix lists. Clear IP Prefix List
5038 can be used with a specified name and prefix.
5040 -- Command: clear ip prefix-list NAME
5042 -- Command: clear ip prefix-list NAME A.B.C.D/M
5045 File: quagga.info, Node: Route Map, Next: IPv6 Support, Prev: Filtering, Up: Top
5050 Route maps provide a means to both filter and/or apply actions to
5051 route, hence allowing policy to be applied to routes.
5055 * Route Map Command::
5056 * Route Map Match Command::
5057 * Route Map Set Command::
5058 * Route Map Call Command::
5059 * Route Map Exit Action Command::
5060 * Route Map Examples::
5062 Route-maps are an ordered list of route-map entries. Each entry may
5063 specify up to four distincts sets of clauses:
5066 This specifies the policy implied if the `Matching Conditions' are
5067 met or not met, and which actions of the route-map are to be
5068 taken, if any. The two possibilities are:
5070 - `permit': If the entry matches, then carry out the `Set
5071 Actions'. Then finish processing the route-map, permitting
5072 the route, unless an `Exit Action' indicates otherwise.
5074 - `deny': If the entry matches, then finish processing the
5075 route-map and deny the route (return `deny').
5077 The `Matching Policy' is specified as part of the command which
5078 defines the ordered entry in the route-map. See below.
5080 `Matching Conditions'
5081 A route-map entry may, optionally, specify one or more conditions
5082 which must be matched if the entry is to be considered further, as
5083 governed by the Match Policy. If a route-map entry does not
5084 explicitely specify any matching conditions, then it always
5088 A route-map entry may, optionally, specify one or more `Set
5089 Actions' to set or modify attributes of the route.
5092 Call to another route-map, after any `Set Actions' have been
5093 carried out. If the route-map called returns `deny' then
5094 processing of the route-map finishes and the route is denied,
5095 regardless of the `Matching Policy' or the `Exit Policy'. If the
5096 called route-map returns `permit', then `Matching Policy' and
5097 `Exit Policy' govern further behaviour, as normal.
5100 An entry may, optionally, specify an alternative `Exit Policy' to
5101 take if the entry matched, rather than the normal policy of
5102 exiting the route-map and permitting the route. The two
5105 - `next': Continue on with processing of the route-map entries.
5107 - `goto N': Jump ahead to the first route-map entry whose order
5108 in the route-map is >= N. Jumping to a previous entry is not
5111 The default action of a route-map, if no entries match, is to deny.
5112 I.e. a route-map essentially has as its last entry an empty `deny'
5113 entry, which matches all routes. To change this behaviour, one must
5114 specify an empty `permit' entry as the last entry in the route-map.
5116 To summarise the above:
5119 -----------------------------
5120 _Permit_ action cont
5124 - Apply _set_ statements
5126 - If _call_ is present, call given route-map. If that returns a
5127 `deny', finish processing and return `deny'.
5129 - If `Exit Policy' is _next_, goto next route-map entry
5131 - If `Exit Policy' is _goto_, goto first entry whose order in
5132 the list is >= the given order.
5134 - Finish processing the route-map and permit the route.
5137 - The route is denied by the route-map (return `deny').
5140 - goto next route-map entry
5143 File: quagga.info, Node: Route Map Command, Next: Route Map Match Command, Up: Route Map
5145 13.1 Route Map Command
5146 ======================
5148 -- Command: route-map ROUTE-MAP-NAME (permit|deny) ORDER
5149 Configure the ORDER'th entry in ROUTE-MAP-NAME with `Match Policy'
5150 of either _permit_ or _deny_.
5154 File: quagga.info, Node: Route Map Match Command, Next: Route Map Set Command, Prev: Route Map Command, Up: Route Map
5156 13.2 Route Map Match Command
5157 ============================
5159 -- Route-map Command: match ip address ACCESS_LIST
5160 Matches the specified ACCESS_LIST
5162 -- Route-map Command: match ip next-hop IPV4_ADDR
5163 Matches the specified IPV4_ADDR.
5165 -- Route-map Command: match aspath AS_PATH
5166 Matches the specified AS_PATH.
5168 -- Route-map Command: match metric METRIC
5169 Matches the specified METRIC.
5171 -- Route-map Command: match community COMMUNITY_LIST
5172 Matches the specified COMMUNITY_LIST
5175 File: quagga.info, Node: Route Map Set Command, Next: Route Map Call Command, Prev: Route Map Match Command, Up: Route Map
5177 13.3 Route Map Set Command
5178 ==========================
5180 -- Route-map Command: set ip next-hop IPV4_ADDRESS
5181 Set the BGP nexthop address.
5183 -- Route-map Command: set local-preference LOCAL_PREF
5184 Set the BGP local preference.
5186 -- Route-map Command: set weight WEIGHT
5187 Set the route's weight.
5189 -- Route-map Command: set metric METRIC
5190 Set the BGP attribute MED.
5192 -- Route-map Command: set as-path prepend AS_PATH
5193 Set the BGP AS path to prepend.
5195 -- Route-map Command: set community COMMUNITY
5196 Set the BGP community attribute.
5198 -- Route-map Command: set ipv6 next-hop global IPV6_ADDRESS
5199 Set the BGP-4+ global IPv6 nexthop address.
5201 -- Route-map Command: set ipv6 next-hop local IPV6_ADDRESS
5202 Set the BGP-4+ link local IPv6 nexthop address.
5205 File: quagga.info, Node: Route Map Call Command, Next: Route Map Exit Action Command, Prev: Route Map Set Command, Up: Route Map
5207 13.4 Route Map Call Command
5208 ===========================
5210 -- Route-map Command: call NAME
5211 Call route-map NAME. If it returns deny, deny the route and finish
5212 processing the route-map.
5215 File: quagga.info, Node: Route Map Exit Action Command, Next: Route Map Examples, Prev: Route Map Call Command, Up: Route Map
5217 13.5 Route Map Exit Action Command
5218 ==================================
5220 -- Route-map Command: on-match next
5221 -- Route-map Command: continue
5222 Proceed on to the next entry in the route-map.
5224 -- Route-map Command: on-match goto N
5225 -- Route-map Command: continue N
5226 Proceed processing the route-map at the first entry whose order is
5230 File: quagga.info, Node: Route Map Examples, Prev: Route Map Exit Action Command, Up: Route Map
5232 13.6 Route Map Examples
5233 =======================
5235 A simple example of a route-map:
5237 route-map test permit 10
5239 set local-preference 200
5241 This means that if a route matches ip access-list number 10 it's
5242 local-preference value is set to 200.
5244 See *Note BGP Configuration Examples:: for examples of more
5245 sophisticated useage of route-maps, including of the `call' action.
5248 File: quagga.info, Node: IPv6 Support, Next: Kernel Interface, Prev: Route Map, Up: Top
5253 Quagga fully supports IPv6 routing. As described so far, Quagga
5254 supports RIPng, OSPFv3 and BGP-4+. You can give IPv6 addresses to an
5255 interface and configure static IPv6 routing information. Quagga IPv6
5256 also provides automatic address configuration via a feature called
5257 `address auto configuration'. To do it, the router must send router
5258 advertisement messages to the all nodes that exist on the network.
5262 * Router Advertisement::
5265 File: quagga.info, Node: Router Advertisement, Up: IPv6 Support
5267 14.1 Router Advertisement
5268 =========================
5270 -- Interface Command: no ipv6 nd suppress-ra
5271 Send router advertisment messages.
5273 -- Interface Command: ipv6 nd suppress-ra
5274 Don't send router advertisment messages.
5276 -- Interface Command: ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME]
5277 [PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]
5278 Configuring the IPv6 prefix to include in router advertisements.
5279 Several prefix specific optional parameters and flags may follow:
5280 * VALID-LIFETIME - the length of time in seconds during what
5281 the prefix is valid for the purpose of on-link determination.
5282 Value INFINITE represents infinity (i.e. a value of all one
5283 bits (`0xffffffff')).
5285 Range: `<0-4294967295>' Default: `2592000'
5287 * PREFERRED-LIFETIME - the length of time in seconds during
5288 what addresses generated from the prefix remain preferred.
5289 Value INFINITE represents infinity.
5291 Range: `<0-4294967295>' Default: `604800'
5293 * OFF-LINK - indicates that advertisement makes no statement
5294 about on-link or off-link properties of the prefix.
5296 Default: not set, i.e. this prefix can be used for on-link
5299 * NO-AUTOCONFIG - indicates to hosts on the local link that the
5300 specified prefix cannot be used for IPv6 autoconfiguration.
5302 Default: not set, i.e. prefix can be used for
5305 * ROUTER-ADDRESS - indicates to hosts on the local link that
5306 the specified prefix contains a complete IP address by
5309 Default: not set, i.e. hosts do not assume a complete IP
5312 -- Interface Command: ipv6 nd ra-interval SECONDS
5313 -- Interface Command: no ipv6 nd ra-interval
5314 The maximum time allowed between sending unsolicited multicast
5315 router advertisements from the interface, in seconds. Must be no
5316 less than 3 seconds.
5320 -- Interface Command: ipv6 nd ra-interval msec MILLISECONDS
5321 -- Interface Command: no ipv6 nd ra-interval msec
5322 The maximum time allowed between sending unsolicited multicast
5323 router advertisements from the interface, in milliseconds. Must be
5324 no less than 30 milliseconds.
5328 -- Interface Command: ipv6 nd ra-lifetime SECONDS
5329 -- Interface Command: no ipv6 nd ra-lifetime
5330 The value to be placed in the Router Lifetime field of router
5331 advertisements sent from the interface, in seconds. Indicates the
5332 usefulness of the router as a default router on this interface.
5333 Setting the value to zero indicates that the router should not be
5334 considered a default router on this interface. Must be either
5335 zero or between value specified with IPV6 ND RA-INTERVAL (or
5336 default) and 9000 seconds.
5340 -- Interface Command: ipv6 nd reachable-time MILLISECONDS
5341 -- Interface Command: no ipv6 nd reachable-time
5342 The value to be placed in the Reachable Time field in the Router
5343 Advertisement messages sent by the router, in milliseconds. The
5344 configured time enables the router to detect unavailable
5345 neighbors. The value zero means unspecified (by this router). Must
5346 be no greater than `3,600,000' milliseconds (1 hour).
5350 -- Interface Command: ipv6 nd managed-config-flag
5351 -- Interface Command: no ipv6 nd managed-config-flag
5352 Set/unset flag in IPv6 router advertisements which indicates to
5353 hosts that they should use managed (stateful) protocol for
5354 addresses autoconfiguration in addition to any addresses
5355 autoconfigured using stateless address autoconfiguration.
5359 -- Interface Command: ipv6 nd other-config-flag
5360 -- Interface Command: no ipv6 nd other-config-flag
5361 Set/unset flag in IPv6 router advertisements which indicates to
5362 hosts that they should use administered (stateful) protocol to
5363 obtain autoconfiguration information other than addresses.
5367 -- Interface Command: ipv6 nd home-agent-config-flag
5368 -- Interface Command: no ipv6 nd home-agent-config-flag
5369 Set/unset flag in IPv6 router advertisements which indicates to
5370 hosts that the router acts as a Home Agent and includes a Home
5375 -- Interface Command: ipv6 nd home-agent-preference
5376 -- Interface Command: no ipv6 nd home-agent-preference
5377 The value to be placed in Home Agent Option, when Home Agent
5378 config flag is set, which indicates to hosts Home Agent preference.
5382 -- Interface Command: ipv6 nd home-agent-lifetime
5383 -- Interface Command: no ipv6 nd home-agent-lifetime
5384 The value to be placed in Home Agent Option, when Home Agent
5385 config flag is set, which indicates to hosts Home Agent Lifetime.
5386 A value of 0 means to place Router Lifetime value.
5390 -- Interface Command: ipv6 nd adv-interval-option
5391 -- Interface Command: no ipv6 nd adv-interval-option
5392 Include an Advertisement Interval option which indicates to hosts
5393 the maximum time, in milliseconds, between successive unsolicited
5394 Router Advertisements.
5399 no ipv6 nd suppress-ra
5400 ipv6 nd prefix 2001:0DB8:5009::/64
5402 For more information see `RFC2462 (IPv6 Stateless Address
5403 Autoconfiguration)' , `RFC2461 (Neighbor Discovery for IP Version 6
5404 (IPv6))' and `RFC3775 (Mobility Support in IPv6 (Mobile IPv6))'.
5407 File: quagga.info, Node: Kernel Interface, Next: SNMP Support, Prev: IPv6 Support, Up: Top
5412 There are several different methods for reading kernel routing table
5413 information, updating kernel routing tables, and for looking up
5417 The `ioctl' method is a very traditional way for reading or writing
5418 kernel information. `ioctl' can be used for looking up interfaces
5419 and for modifying interface addresses, flags, mtu settings and
5420 other types of information. Also, `ioctl' can insert and delete
5421 kernel routing table entries. It will soon be available on almost
5422 any platform which zebra supports, but it is a little bit ugly
5423 thus far, so if a better method is supported by the kernel, zebra
5427 `sysctl' can lookup kernel information using MIB (Management
5428 Information Base) syntax. Normally, it only provides a way of
5429 getting information from the kernel. So one would usually want to
5430 change kernel information using another method such as `ioctl'.
5433 `proc filesystem' provides an easy way of getting kernel
5439 On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
5440 communication support called `netlink'. It makes asynchronous
5441 communication between kernel and Quagga possible, similar to a
5442 routing socket on BSD systems.
5444 Before you use this feature, be sure to select (in kernel
5445 configuration) the kernel/netlink support option 'Kernel/User
5446 network link driver' and 'Routing messages'.
5448 Today, the /dev/route special device file is obsolete. Netlink
5449 communication is done by reading/writing over netlink socket.
5451 After the kernel configuration, please reconfigure and rebuild
5452 Quagga. You can use netlink as a dynamic routing update channel
5453 between Quagga and the kernel.
5456 File: quagga.info, Node: SNMP Support, Next: Zebra Protocol, Prev: Kernel Interface, Up: Top
5461 SNMP (Simple Network Managing Protocol) is a widely implemented feature
5462 for collecting network information from router and/or host. Quagga
5463 itself does not support SNMP agent (server daemon) functionality but is
5464 able to connect to a SNMP agent using the SMUX protocol (`RFC1227') and
5465 make the routing protocol MIBs available through it.
5469 * Getting and installing an SNMP agent::
5470 * SMUX configuration::
5471 * MIB and command reference::
5472 * Handling SNMP Traps::
5475 File: quagga.info, Node: Getting and installing an SNMP agent, Next: SMUX configuration, Up: SNMP Support
5477 16.1 Getting and installing an SNMP agent
5478 =========================================
5480 There are several SNMP agent which support SMUX. We recommend to use
5481 the latest version of `net-snmp' which was formerly known as `ucd-snmp'.
5482 It is free and open software and available at `http://www.net-snmp.org/'
5483 and as binary package for most Linux distributions. `net-snmp' has to
5484 be compiled with `--with-mib-modules=smux' to be able to accept
5485 connections from Quagga.
5488 File: quagga.info, Node: SMUX configuration, Next: MIB and command reference, Prev: Getting and installing an SNMP agent, Up: SNMP Support
5490 16.2 SMUX configuration
5491 =======================
5493 To enable SMUX protocol support, Quagga must have been build with the
5494 `--enable-snmp' option.
5496 A separate connection has then to be established between between the
5497 SNMP agent (snmpd) and each of the Quagga daemons. This connections
5498 each use different OID numbers and passwords. Be aware that this OID
5499 number is not the one that is used in queries by clients, it is solely
5500 used for the intercommunication of the daemons.
5502 In the following example the ospfd daemon will be connected to the
5503 snmpd daemon using the password "quagga_ospfd". For testing it is
5504 recommending to take exactly the below snmpd.conf as wrong access
5505 restrictions can be hard to debug.
5507 /etc/snmp/snmpd.conf:
5509 # example access restrictions setup
5511 com2sec readonly default public
5512 group MyROGroup v1 readonly
5513 view all included .1 80
5514 access MyROGroup "" any noauth exact all none none
5516 # the following line is relevant for Quagga
5518 smuxpeer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
5521 ! ... the rest of ospfd.conf has been omitted for clarity ...
5523 smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
5526 After restarting snmpd and quagga, a successful connection can be
5527 verified in the syslog and by querying the SNMP daemon:
5529 snmpd[12300]: [smux_accept] accepted fd 12 from 127.0.0.1:36255
5530 snmpd[12300]: accepted smux peer: \
5531 oid GNOME-PRODUCT-ZEBRA-MIB::ospfd, quagga-0.96.5
5533 # snmpwalk -c public -v1 localhost .1.3.6.1.2.1.14.1.1
5534 OSPF-MIB::ospfRouterId.0 = IpAddress: 192.168.42.109
5536 Be warned that the current version (5.1.1) of the Net-SNMP daemon
5537 writes a line for every SNMP connect to the syslog which can lead to
5538 enormous log file sizes. If that is a problem you should consider to
5539 patch snmpd and comment out the troublesome `snmp_log()' line in the
5540 function `netsnmp_agent_check_packet()' in `agent/snmp_agent.c'.
5543 File: quagga.info, Node: MIB and command reference, Next: Handling SNMP Traps, Prev: SMUX configuration, Up: SNMP Support
5545 16.3 MIB and command reference
5546 ==============================
5548 The following OID numbers are used for the interprocess communication
5549 of snmpd and the Quagga daemons. Sadly, SNMP has not been implemented
5551 (OIDs below .iso.org.dod.internet.private.enterprises)
5552 zebra .1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv
5553 bgpd .1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd
5554 ripd .1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd
5555 ospfd .1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zebra.ospfd
5556 ospf6d .1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d
5558 The following OID numbers are used for querying the SNMP daemon by a
5560 zebra .1.3.6.1.2.1.4.24 .iso.org.dot.internet.mgmt.mib-2.ip.ipForward
5561 ospfd .1.3.6.1.2.1.14 .iso.org.dot.internet.mgmt.mib-2.ospf
5562 bgpd .1.3.6.1.2.1.15 .iso.org.dot.internet.mgmt.mib-2.bgp
5563 ripd .1.3.6.1.2.1.23 .iso.org.dot.internet.mgmt.mib-2.rip2
5564 ospf6d .1.3.6.1.3.102 .iso.org.dod.internet.experimental.ospfv3
5566 The following syntax is understood by the Quagga daemons for
5569 -- Command: smux peer OID
5570 -- Command: no smux peer OID
5572 -- Command: smux peer OID PASSWORD
5573 -- Command: no smux peer OID PASSWORD
5576 File: quagga.info, Node: Handling SNMP Traps, Prev: MIB and command reference, Up: SNMP Support
5578 16.4 Handling SNMP Traps
5579 ========================
5581 To handle snmp traps make sure your snmp setup of quagga works
5582 correctly as described in the quagga documentation in *Note SNMP
5585 The BGP4 mib will send traps on peer up/down events. These should be
5586 visible in your snmp logs with a message similar to:
5588 `snmpd[13733]: Got trap from peer on fd 14'
5590 To react on these traps they should be handled by a trapsink.
5591 Configure your trapsink by adding the following lines to
5592 `/etc/snmpd/snmpd.conf':
5594 # send traps to the snmptrapd on localhost
5597 This will send all traps to an snmptrapd running on localhost. You
5598 can of course also use a dedicated management station to catch traps.
5599 Configure the snmptrapd daemon by adding the following line to
5600 `/etc/snmpd/snmptrapd.conf':
5602 traphandle .1.3.6.1.4.1.3317.1.2.2 /etc/snmp/snmptrap_handle.sh
5604 This will use the bash script `/etc/snmp/snmptrap_handle.sh' to
5605 handle the BGP4 traps. To add traps for other protocol daemons, lookup
5606 their appropriate OID from their mib. (For additional information about
5607 which traps are supported by your mib, lookup the mib on
5608 `http://www.oidview.com/mibs/detail.html').
5610 Make sure snmptrapd is started.
5612 The snmptrap_handle.sh script I personally use for handling BGP4
5613 traps is below. You can of course do all sorts of things when handling
5614 traps, like sound a siren, have your display flash, etc., be creative
5621 ROUTER=`hostname -s`
5623 #email address use to sent out notification
5624 EMAILADDR="john@doe.com"
5625 #email address used (allongside above) where warnings should be sent
5626 EMAILADDR_WARN="sms-john@doe.com"
5628 # type of notification
5631 # local snmp community for getting AS belonging to peer
5632 COMMUNITY="<community>"
5634 # if a peer address is in $WARN_PEERS a warning should be sent
5635 WARN_PEERS="192.0.2.1"
5641 # get some vars from stdin
5642 uptime=`echo $INPUT | cut -d' ' -f5`
5643 peer=`echo $INPUT | cut -d' ' -f8 | sed -e 's/SNMPv2-SMI::mib-2.15.3.1.14.//g'`
5644 peerstate=`echo $INPUT | cut -d' ' -f13`
5645 errorcode=`echo $INPUT | cut -d' ' -f9 | sed -e 's/\"//g'`
5646 suberrorcode=`echo $INPUT | cut -d' ' -f10 | sed -e 's/\"//g'`
5647 remoteas=`snmpget -v2c -c $COMMUNITY localhost SNMPv2-SMI::mib-2.15.3.1.9.$peer | cut -d' ' -f4`
5649 WHOISINFO=`whois -h whois.ripe.net " -r AS$remoteas" | egrep '(as-name|descr)'`
5650 asname=`echo "$WHOISINFO" | grep "^as-name:" | sed -e 's/^as-name://g' -e 's/ //g' -e 's/^ //g' | uniq`
5651 asdescr=`echo "$WHOISINFO" | grep "^descr:" | sed -e 's/^descr://g' -e 's/ //g' -e 's/^ //g' | uniq`
5653 # if peer address is in $WARN_PEER, the email should also
5654 # be sent to $EMAILADDR_WARN
5655 for ip in $WARN_PEERS; do
5656 if [ "x$ip" == "x$peer" ]; then
5657 EMAILADDR="$EMAILADDR,$EMAILADDR_WARN"
5664 # convert peer state
5665 case "$peerstate" in
5666 1) peerstate="Idle" ;;
5667 2) peerstate="Connect" ;;
5668 3) peerstate="Active" ;;
5669 4) peerstate="Opensent" ;;
5670 5) peerstate="Openconfirm" ;;
5671 6) peerstate="Established" ;;
5672 *) peerstate="Unknown" ;;
5675 # get textual messages for errors
5676 case "$errorcode" in
5682 error="Message Header Error"
5683 case "$suberrorcode" in
5684 01) suberror="Connection Not Synchronized" ;;
5685 02) suberror="Bad Message Length" ;;
5686 03) suberror="Bad Message Type" ;;
5687 *) suberror="Unknown" ;;
5691 error="OPEN Message Error"
5692 case "$suberrorcode" in
5693 01) suberror="Unsupported Version Number" ;;
5694 02) suberror="Bad Peer AS" ;;
5695 03) suberror="Bad BGP Identifier" ;;
5696 04) suberror="Unsupported Optional Parameter" ;;
5697 05) suberror="Authentication Failure" ;;
5698 06) suberror="Unacceptable Hold Time" ;;
5699 *) suberror="Unknown" ;;
5703 error="UPDATE Message Error"
5704 case "$suberrorcode" in
5705 01) suberror="Malformed Attribute List" ;;
5706 02) suberror="Unrecognized Well-known Attribute" ;;
5707 03) suberror="Missing Well-known Attribute" ;;
5708 04) suberror="Attribute Flags Error" ;;
5709 05) suberror="Attribute Length Error" ;;
5710 06) suberror="Invalid ORIGIN Attribute" ;;
5711 07) suberror="AS Routing Loop" ;;
5712 08) suberror="Invalid NEXT_HOP Attribute" ;;
5713 09) suberror="Optional Attribute Error" ;;
5714 10) suberror="Invalid Network Field" ;;
5715 11) suberror="Malformed AS_PATH" ;;
5716 *) suberror="Unknown" ;;
5720 error="Hold Timer Expired"
5724 error="Finite State Machine Error"
5729 case "$suberrorcode" in
5730 01) suberror="Maximum Number of Prefixes Reached" ;;
5731 02) suberror="Administratively Shutdown" ;;
5732 03) suberror="Peer Unconfigured" ;;
5733 04) suberror="Administratively Reset" ;;
5734 05) suberror="Connection Rejected" ;;
5735 06) suberror="Other Configuration Change" ;;
5736 07) suberror="Connection collision resolution" ;;
5737 08) suberror="Out of Resource" ;;
5738 09) suberror="MAX" ;;
5739 *) suberror="Unknown" ;;
5748 # create textual message from errorcodes
5749 if [ "x$suberror" == "x" ]; then
5750 NOTIFY="$errorcode ($error)"
5752 NOTIFY="$errorcode/$suberrorcode ($error/$suberror)"
5756 # form a decent subject
5757 SUBJECT="$TYPE: $ROUTER [bgp] $peer is $peerstate: $NOTIFY"
5758 # create the email body
5760 BGP notification on router $ROUTER.
5764 New state: $peerstate
5765 Notification: $NOTIFY
5771 Snmpd uptime: $uptime
5774 # mail the notification
5775 echo "$MAIL" | mail -s "$SUBJECT" $EMAILADDR
5778 File: quagga.info, Node: Zebra Protocol, Next: Packet Binary Dump Format, Prev: SNMP Support, Up: Top
5780 Appendix A Zebra Protocol
5781 *************************
5783 Zebra Protocol is a protocol which is used between protocol daemon and
5784 zebra. Each protocol daemon sends selected routes to zebra daemon.
5785 Then zebra manages which route is installed into the forwarding table.
5787 Zebra Protocol is a TCP-based protocol. Below is common header of
5791 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
5792 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5793 | Length (2) | Command (1) |
5794 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5796 Length is total packet length including this header length. So
5797 minimum length is three. Command is Zebra Protocol command.
5799 ZEBRA_INTERFACE_ADD 1
5800 ZEBRA_INTERFACE_DELETE 2
5801 ZEBRA_INTERFACE_ADDRESS_ADD 3
5802 ZEBRA_INTERFACE_ADDRESS_DELETE 4
5803 ZEBRA_INTERFACE_UP 5
5804 ZEBRA_INTERFACE_DOWN 6
5805 ZEBRA_IPV4_ROUTE_ADD 7
5806 ZEBRA_IPV4_ROUTE_DELETE 8
5807 ZEBRA_IPV6_ROUTE_ADD 9
5808 ZEBRA_IPV6_ROUTE_DELETE 10
5809 ZEBRA_REDISTRIBUTE_ADD 11
5810 ZEBRA_REDISTRIBUTE_DELETE 12
5811 ZEBRA_REDISTRIBUTE_DEFAULT_ADD 13
5812 ZEBRA_REDISTRIBUTE_DEFAULT_DELETE 14
5813 ZEBRA_IPV4_NEXTHOP_LOOKUP 15
5814 ZEBRA_IPV6_NEXTHOP_LOOKUP 16
5817 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
5818 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5820 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5823 File: quagga.info, Node: Packet Binary Dump Format, Next: Command Index, Prev: Zebra Protocol, Up: Top
5825 Appendix B Packet Binary Dump Format
5826 ************************************
5828 Quagga can dump routing protocol packet into file with a binary format
5829 (*note Dump BGP packets and table::).
5831 It seems to be better that we share the MRT's header format for
5832 backward compatibility with MRT's dump logs. We should also define the
5833 binary format excluding the header, because we must support both IP v4
5834 and v6 addresses as socket addresses and / or routing entries.
5836 In the last meeting, we discussed to have a version field in the
5837 header. But Masaki told us that we can define new `type' value rather
5838 than having a `version' field, and it seems to be better because we
5839 don't need to change header format.
5841 Here is the common header format. This is same as that of MRT.
5844 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
5845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5847 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5849 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5851 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5853 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
5854 Address Family == IP (version 4)
5857 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
5858 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5859 | Source AS number | Destination AS number |
5860 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5861 | Interface Index | Address Family |
5862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5863 | Source IP address |
5864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5865 | Destination IP address |
5866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5867 | Old State | New State |
5868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5870 Where State is the value defined in RFC1771.
5872 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
5873 Address Family == IP version 6
5876 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
5877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5878 | Source AS number | Destination AS number |
5879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5880 | Interface Index | Address Family |
5881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5882 | Source IP address |
5883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5884 | Source IP address (Cont'd) |
5885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5886 | Source IP address (Cont'd) |
5887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5888 | Source IP address (Cont'd) |
5889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5890 | Destination IP address |
5891 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5892 | Destination IP address (Cont'd) |
5893 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5894 | Destination IP address (Cont'd) |
5895 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5896 | Destination IP address (Cont'd) |
5897 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5898 | Old State | New State |
5899 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5901 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and
5902 Address Family == IP (version 4)
5905 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
5906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5907 | Source AS number | Destination AS number |
5908 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5909 | Interface Index | Address Family |
5910 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5911 | Source IP address |
5912 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5913 | Destination IP address |
5914 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5915 | BGP Message Packet |
5917 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5919 Where BGP Message Packet is the whole contents of the BGP4 message
5920 including header portion.
5922 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and
5923 Address Family == IP version 6
5926 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
5927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5928 | Source AS number | Destination AS number |
5929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5930 | Interface Index | Address Family |
5931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5932 | Source IP address |
5933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5934 | Source IP address (Cont'd) |
5935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5936 | Source IP address (Cont'd) |
5937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5938 | Source IP address (Cont'd) |
5939 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5940 | Destination IP address |
5941 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5942 | Destination IP address (Cont'd) |
5943 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5944 | Destination IP address (Cont'd) |
5945 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5946 | Destination IP address (Cont'd) |
5947 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5948 | BGP Message Packet |
5950 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5952 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address
5953 Family == IP (version 4)
5956 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
5957 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5959 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5960 | Time Last Change |
5961 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5962 | Address Family | SAFI | Next-Hop-Len |
5963 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5964 | Next Hop Address |
5965 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5966 | Prefix Length | Address Prefix [variable] |
5967 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5968 | Attribute Length |
5969 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5970 | BGP Attribute [variable length] |
5971 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5973 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address
5974 Family == IP version 6
5977 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
5978 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5980 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5981 | Time Last Change |
5982 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5983 | Address Family | SAFI | Next-Hop-Len |
5984 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5985 | Next Hop Address |
5986 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5987 | Next Hop Address (Cont'd) |
5988 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5989 | Next Hop Address (Cont'd) |
5990 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5991 | Next Hop Address (Cont'd) |
5992 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5993 | Prefix Length | Address Prefix [variable] |
5994 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5995 | Address Prefix (cont'd) [variable] |
5996 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5997 | Attribute Length |
5998 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5999 | BGP Attribute [variable length] |
6000 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6002 BGP4 Attribute must not contain MP_UNREACH_NLRI. If BGP Attribute
6003 has MP_REACH_NLRI field, it must has zero length NLRI, e.g.,
6004 MP_REACH_NLRI has only Address Family, SAFI and next-hop values.
6006 If `type' is PROTOCOL_BGP4MP and `subtype' is BGP4MP_SNAPSHOT,
6009 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
6010 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6011 | View # | File Name [variable] |
6012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6014 The file specified in "File Name" contains all routing entries,
6015 which are in the format of "subtype == BGP4MP_ENTRY".
6019 #define MSG_PROTOCOL_BGP4MP 16
6021 #define BGP4MP_STATE_CHANGE 0
6022 #define BGP4MP_MESSAGE 1
6023 #define BGP4MP_ENTRY 2
6024 #define BGP4MP_SNAPSHOT 3
6027 File: quagga.info, Node: Command Index, Next: VTY Key Index, Prev: Packet Binary Dump Format, Up: Top
6035 * access-class ACCESS-LIST: Basic Config Commands.
6037 * access-list NAME deny IPV4-NETWORK: IP Access List. (line 8)
6038 * access-list NAME permit IPV4-NETWORK: IP Access List. (line 7)
6039 * aggregate-address A.B.C.D/M: Route Aggregation. (line 7)
6040 * aggregate-address A.B.C.D/M as-set: Route Aggregation. (line 10)
6041 * aggregate-address A.B.C.D/M summary-only: Route Aggregation.
6043 * area <0-4294967295> authentication: OSPF area. (line 127)
6044 * area <0-4294967295> authentication message-digest: OSPF area.
6046 * area <0-4294967295> export-list NAME: OSPF area. (line 85)
6047 * area <0-4294967295> filter-list prefix NAME in: OSPF area. (line 117)
6048 * area <0-4294967295> filter-list prefix NAME out: OSPF area. (line 118)
6049 * area <0-4294967295> import-list NAME: OSPF area. (line 109)
6050 * area <0-4294967295> range A.B.C.D/M: OSPF area. (line 8)
6051 * area <0-4294967295> shortcut: OSPF area. (line 55)
6052 * area <0-4294967295> stub: OSPF area. (line 62)
6053 * area <0-4294967295> stub no-summary: OSPF area. (line 74)
6054 * area <0-4294967295> virtual-link A.B.C.D: OSPF area. (line 50)
6055 * area A.B.C.D authentication: OSPF area. (line 126)
6056 * area A.B.C.D authentication message-digest: OSPF area. (line 133)
6057 * area A.B.C.D default-cost <0-16777215>: OSPF area. (line 80)
6058 * area A.B.C.D export-list NAME: OSPF area. (line 84)
6059 * area A.B.C.D filter-list prefix NAME in: OSPF area. (line 115)
6060 * area A.B.C.D filter-list prefix NAME out: OSPF area. (line 116)
6061 * area A.B.C.D import-list NAME: OSPF area. (line 108)
6062 * area A.B.C.D range A.B.C.D/M: OSPF area. (line 7)
6063 * area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area. (line 28)
6064 * area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area.
6066 * area A.B.C.D shortcut: OSPF area. (line 54)
6067 * area A.B.C.D stub: OSPF area. (line 61)
6068 * area A.B.C.D stub no-summary: OSPF area. (line 73)
6069 * area A.B.C.D virtual-link A.B.C.D: OSPF area. (line 49)
6070 * auto-cost reference-bandwidth <1-4294967>: OSPF router. (line 143)
6071 * bandwidth <1-10000000>: Interface Commands. (line 31)
6072 * banner motd default: Basic Config Commands.
6074 * bgp bestpath as-path confed: BGP decision process.
6076 * bgp cluster-id A.B.C.D: Route Reflector. (line 7)
6077 * bgp config-type cisco: Multiple instance. (line 20)
6078 * bgp config-type zebra: Multiple instance. (line 53)
6079 * bgp multiple-instance: Multiple instance. (line 10)
6080 * bgp router-id A.B.C.D: BGP router. (line 22)
6081 * call NAME: Route Map Call Command.
6083 * call WORD: Commands for configuring a Route Server.
6085 * clear ip bgp PEER: More Show IP BGP. (line 25)
6086 * clear ip bgp PEER soft in: More Show IP BGP. (line 28)
6087 * clear ip prefix-list: Clear counter of ip prefix-list.
6089 * clear ip prefix-list NAME: Clear counter of ip prefix-list.
6091 * clear ip prefix-list NAME A.B.C.D/M: Clear counter of ip prefix-list.
6093 * configure terminal: Terminal Mode Commands.
6095 * continue: Route Map Exit Action Command.
6097 * continue N: Route Map Exit Action Command.
6099 * debug event: More Show IP BGP. (line 33)
6100 * debug keepalive: More Show IP BGP. (line 37)
6101 * debug ospf ism: Debugging OSPF. (line 12)
6102 * debug ospf ism (status|events|timers): Debugging OSPF. (line 13)
6103 * debug ospf lsa: Debugging OSPF. (line 22)
6104 * debug ospf lsa (generate|flooding|refresh): Debugging OSPF. (line 23)
6105 * debug ospf nsm: Debugging OSPF. (line 17)
6106 * debug ospf nsm (status|events|timers): Debugging OSPF. (line 18)
6107 * debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF.
6109 * debug ospf zebra: Debugging OSPF. (line 27)
6110 * debug ospf zebra (interface|redistribute): Debugging OSPF. (line 28)
6111 * debug rip events: RIP Debug Commands. (line 9)
6112 * debug rip packet: RIP Debug Commands. (line 15)
6113 * debug rip zebra: RIP Debug Commands. (line 22)
6114 * debug ripng events: ripngd Terminal Mode Commands.
6116 * debug ripng packet: ripngd Terminal Mode Commands.
6118 * debug ripng zebra: ripngd Terminal Mode Commands.
6120 * debug update: More Show IP BGP. (line 35)
6121 * default-information originate <1>: Redistribute routes to OSPF.
6123 * default-information originate: How to Announce RIP route.
6125 * default-information originate always: Redistribute routes to OSPF.
6127 * default-information originate always metric <0-16777214>: Redistribute routes to OSPF.
6129 * default-information originate always metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF.
6131 * default-information originate always metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
6133 * default-information originate metric <0-16777214>: Redistribute routes to OSPF.
6135 * default-information originate metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF.
6137 * default-information originate metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
6139 * default-metric <0-16777214>: Redistribute routes to OSPF.
6141 * default-metric <1-16>: RIP Metric Manipulation.
6143 * description DESCRIPTION ...: Interface Commands. (line 24)
6144 * distance <1-255> <1>: Redistribute routes to OSPF.
6146 * distance <1-255>: RIP distance. (line 9)
6147 * distance <1-255> A.B.C.D/M <1>: BGP distance. (line 12)
6148 * distance <1-255> A.B.C.D/M: RIP distance. (line 13)
6149 * distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance. (line 18)
6150 * distance <1-255> A.B.C.D/M WORD: BGP distance. (line 13)
6151 * distance bgp <1-255> <1-255> <1-255>: BGP distance. (line 7)
6152 * distance ospf (intra-area|inter-area|external) <1-255>: Redistribute routes to OSPF.
6154 * distribute-list ACCESS_LIST (in|out) IFNAME: ripngd Filtering Commands.
6156 * distribute-list ACCESS_LIST DIRECT IFNAME: Filtering RIP Routes.
6158 * distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF.
6160 * distribute-list prefix PREFIX_LIST (in|out) IFNAME: Filtering RIP Routes.
6162 * dump bgp all PATH: Dump BGP packets and table.
6164 * dump bgp all PATH INTERVAL: Dump BGP packets and table.
6166 * dump bgp routes PATH: Dump BGP packets and table.
6168 * dump bgp updates PATH: Dump BGP packets and table.
6170 * dump bgp updates PATH INTERVAL: Dump BGP packets and table.
6172 * enable password PASSWORD: Basic Config Commands.
6174 * exec-timeout MINUTE: Basic Config Commands.
6176 * exec-timeout MINUTE SECOND: Basic Config Commands.
6178 * flush_timer TIME: ripngd Configuration.
6180 * hostname HOSTNAME: Basic Config Commands.
6182 * interface IFNAME: Interface Commands. (line 7)
6183 * interface IFNAME area AREA: OSPF6 router. (line 12)
6184 * ip address ADDRESS/PREFIX: Interface Commands. (line 13)
6185 * ip address ADDRESS/PREFIX secondary: Interface Commands. (line 19)
6186 * ip as-path access-list WORD {permit|deny} LINE: AS Path Access List.
6188 * ip community-list <1-99> {permit|deny} COMMUNITY: Numbered BGP Community Lists.
6190 * ip community-list <100-199> {permit|deny} COMMUNITY: Numbered BGP Community Lists.
6192 * ip community-list expanded NAME {permit|deny} LINE: BGP Community Lists.
6194 * ip community-list NAME {permit|deny} COMMUNITY: Numbered BGP Community Lists.
6196 * ip community-list standard NAME {permit|deny} COMMUNITY: BGP Community Lists.
6198 * ip extcommunity-list expanded NAME {permit|deny} LINE: BGP Extended Community Lists.
6200 * ip extcommunity-list standard NAME {permit|deny} EXTCOMMUNITY: BGP Extended Community Lists.
6202 * ip ospf authentication-key AUTH_KEY: OSPF interface. (line 7)
6203 * ip ospf cost <1-65535>: OSPF interface. (line 30)
6204 * ip ospf dead-interval <1-65535>: OSPF interface. (line 35)
6205 * ip ospf dead-interval minimal hello-multiplier <2-20>: OSPF interface.
6207 * ip ospf hello-interval <1-65535>: OSPF interface. (line 54)
6208 * ip ospf message-digest-key KEYID md5 KEY: OSPF interface. (line 13)
6209 * ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point): OSPF interface.
6211 * ip ospf priority <0-255>: OSPF interface. (line 69)
6212 * ip ospf retransmit-interval <1-65535>: OSPF interface. (line 76)
6213 * ip ospf transmit-delay: OSPF interface. (line 82)
6214 * ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List.
6216 * ip prefix-list NAME description DESC: ip prefix-list description.
6218 * ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List.
6220 * ip prefix-list sequence-number: ip prefix-list sequential number control.
6222 * ip rip authentication key-chain KEY-CHAIN: RIP Authentication.
6224 * ip rip authentication mode md5: RIP Authentication. (line 7)
6225 * ip rip authentication mode text: RIP Authentication. (line 11)
6226 * ip rip authentication string STRING: RIP Authentication. (line 15)
6227 * ip rip receive version VERSION: RIP Configuration. (line 90)
6228 * ip rip send version VERSION: RIP Configuration. (line 81)
6229 * ip route NETWORK GATEWAY: Static Route Commands.
6231 * ip route NETWORK GATEWAY DISTANCE: Static Route Commands.
6233 * ip route NETWORK NETMASK GATEWAY: Static Route Commands.
6235 * ip split-horizon: RIP Configuration. (line 99)
6236 * ip6 address ADDRESS/PREFIX: Interface Commands. (line 14)
6237 * ipv6 nd adv-interval-option: Router Advertisement.
6239 * ipv6 nd home-agent-config-flag: Router Advertisement.
6241 * ipv6 nd home-agent-lifetime: Router Advertisement.
6243 * ipv6 nd home-agent-preference: Router Advertisement.
6245 * ipv6 nd managed-config-flag: Router Advertisement.
6247 * ipv6 nd other-config-flag: Router Advertisement.
6249 * ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME] [PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]: Router Advertisement.
6251 * ipv6 nd ra-interval msec MILLISECONDS: Router Advertisement.
6253 * ipv6 nd ra-interval SECONDS: Router Advertisement.
6255 * ipv6 nd ra-lifetime SECONDS: Router Advertisement.
6257 * ipv6 nd reachable-time MILLISECONDS: Router Advertisement.
6259 * ipv6 nd suppress-ra: Router Advertisement.
6261 * ipv6 ospf6 cost COST: OSPF6 interface. (line 7)
6262 * ipv6 ospf6 dead-interval DEADINTERVAL: OSPF6 interface. (line 13)
6263 * ipv6 ospf6 hello-interval HELLOINTERVAL: OSPF6 interface. (line 10)
6264 * ipv6 ospf6 priority PRIORITY: OSPF6 interface. (line 20)
6265 * ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL: OSPF6 interface.
6267 * ipv6 ospf6 transmit-delay TRANSMITDELAY: OSPF6 interface. (line 23)
6268 * ipv6 route NETWORK GATEWAY: Static Route Commands.
6270 * ipv6 route NETWORK GATEWAY DISTANCE: Static Route Commands.
6272 * line vty: Basic Config Commands.
6274 * link-detect: Interface Commands. (line 37)
6275 * list: Terminal Mode Commands.
6277 * log facility FACILITY: Basic Config Commands.
6279 * log file FILENAME: Basic Config Commands.
6281 * log file FILENAME LEVEL: Basic Config Commands.
6283 * log monitor: Basic Config Commands.
6285 * log monitor LEVEL: Basic Config Commands.
6287 * log record-priority: Basic Config Commands.
6289 * log stdout: Basic Config Commands.
6291 * log stdout LEVEL: Basic Config Commands.
6293 * log syslog: Basic Config Commands.
6295 * log syslog LEVEL: Basic Config Commands.
6297 * log trap LEVEL: Basic Config Commands.
6299 * logmsg LEVEL MESSAGE: Terminal Mode Commands.
6301 * match as-path WORD: Using AS Path in Route Map.
6303 * match aspath AS_PATH: Route Map Match Command.
6305 * match community COMMUNITY_LIST: Route Map Match Command.
6307 * match community WORD: BGP Community in Route Map.
6309 * match community WORD exact-match: BGP Community in Route Map.
6311 * match extcommunity WORD: BGP Extended Communities in Route Map.
6313 * match interface WORD: RIP route-map. (line 26)
6314 * match ip address ACCESS_LIST: Route Map Match Command.
6316 * match ip address prefix-list WORD: RIP route-map. (line 39)
6317 * match ip address WORD: RIP route-map. (line 38)
6318 * match ip next-hop A.B.C.D: RIP route-map. (line 42)
6319 * match ip next-hop IPV4_ADDR: Route Map Match Command.
6321 * match metric <0-4294967295>: RIP route-map. (line 47)
6322 * match metric METRIC: Route Map Match Command.
6324 * match peer {A.B.C.D|X:X::X:X}: Commands for configuring a Route Server.
6326 * max-metric router-lsa [on-startup|on-shutdown] <5-86400>: OSPF router.
6328 * max-metric router-lsa administrative: OSPF router. (line 111)
6329 * multicast: Interface Commands. (line 27)
6330 * neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD {import|export}: Commands for configuring a Route Server.
6332 * neighbor A.B.C.D: RIP Configuration. (line 45)
6333 * neighbor A.B.C.D route-server-client: Commands for configuring a Route Server.
6335 * neighbor PEER default-originate: BGP Peer commands. (line 47)
6336 * neighbor PEER description ...: BGP Peer commands. (line 20)
6337 * neighbor PEER distribute-list NAME [in|out]: Peer filtering.
6339 * neighbor PEER dont-capability-negotiate: Capability Negotiation.
6341 * neighbor PEER ebgp-multihop: BGP Peer commands. (line 17)
6342 * neighbor PEER filter-list NAME [in|out]: Peer filtering. (line 13)
6343 * neighbor PEER interface IFNAME: BGP Peer commands. (line 33)
6344 * neighbor PEER maximum-prefix NUMBER: BGP Peer commands. (line 64)
6345 * neighbor PEER next-hop-self: BGP Peer commands. (line 39)
6346 * neighbor PEER override-capability: Capability Negotiation.
6348 * neighbor PEER peer-group WORD: BGP Peer Group. (line 10)
6349 * neighbor PEER port PORT: BGP Peer commands. (line 53)
6350 * neighbor PEER prefix-list NAME [in|out]: Peer filtering. (line 11)
6351 * neighbor PEER remote-as ASN: Defining Peer. (line 7)
6352 * neighbor PEER route-map NAME [in|out]: Peer filtering. (line 15)
6353 * neighbor PEER route-reflector-client: Route Reflector. (line 9)
6354 * neighbor PEER send-community: BGP Peer commands. (line 56)
6355 * neighbor PEER shutdown: BGP Peer commands. (line 10)
6356 * neighbor PEER strict-capability-match: Capability Negotiation.
6358 * neighbor PEER update-source: BGP Peer commands. (line 44)
6359 * neighbor PEER version VERSION: BGP Peer commands. (line 24)
6360 * neighbor PEER weight WEIGHT: BGP Peer commands. (line 59)
6361 * neighbor PEER-GROUP route-server-client: Commands for configuring a Route Server.
6363 * neighbor WORD peer-group: BGP Peer Group. (line 7)
6364 * neighbor X:X::X:X route-server-client: Commands for configuring a Route Server.
6366 * network A.B.C.D/M: BGP route. (line 7)
6367 * network A.B.C.D/M area <0-4294967295>: OSPF router. (line 155)
6368 * network A.B.C.D/M area A.B.C.D: OSPF router. (line 154)
6369 * network IFNAME <1>: ripngd Configuration.
6371 * network IFNAME: RIP Configuration. (line 38)
6372 * network NETWORK <1>: ripngd Configuration.
6374 * network NETWORK: RIP Configuration. (line 26)
6375 * no aggregate-address A.B.C.D/M: Route Aggregation. (line 18)
6376 * no area <0-4294967295> authentication: OSPF area. (line 129)
6377 * no area <0-4294967295> export-list NAME: OSPF area. (line 87)
6378 * no area <0-4294967295> filter-list prefix NAME in: OSPF area.
6380 * no area <0-4294967295> filter-list prefix NAME out: OSPF area.
6382 * no area <0-4294967295> import-list NAME: OSPF area. (line 111)
6383 * no area <0-4294967295> range A.B.C.D/M: OSPF area. (line 10)
6384 * no area <0-4294967295> shortcut: OSPF area. (line 57)
6385 * no area <0-4294967295> stub: OSPF area. (line 64)
6386 * no area <0-4294967295> stub no-summary: OSPF area. (line 76)
6387 * no area <0-4294967295> virtual-link A.B.C.D: OSPF area. (line 52)
6388 * no area A.B.C.D authentication: OSPF area. (line 128)
6389 * no area A.B.C.D default-cost <0-16777215>: OSPF area. (line 81)
6390 * no area A.B.C.D export-list NAME: OSPF area. (line 86)
6391 * no area A.B.C.D filter-list prefix NAME in: OSPF area. (line 119)
6392 * no area A.B.C.D filter-list prefix NAME out: OSPF area. (line 120)
6393 * no area A.B.C.D import-list NAME: OSPF area. (line 110)
6394 * no area A.B.C.D range A.B.C.D/M: OSPF area. (line 9)
6395 * no area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area. (line 29)
6396 * no area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area.
6398 * no area A.B.C.D shortcut: OSPF area. (line 56)
6399 * no area A.B.C.D stub: OSPF area. (line 63)
6400 * no area A.B.C.D stub no-summary: OSPF area. (line 75)
6401 * no area A.B.C.D virtual-link A.B.C.D: OSPF area. (line 51)
6402 * no auto-cost reference-bandwidth: OSPF router. (line 144)
6403 * no bandwidth <1-10000000>: Interface Commands. (line 32)
6404 * no banner motd: Basic Config Commands.
6406 * no bgp multiple-instance: Multiple instance. (line 14)
6407 * no debug event: More Show IP BGP. (line 39)
6408 * no debug keepalive: More Show IP BGP. (line 43)
6409 * no debug ospf ism: Debugging OSPF. (line 14)
6410 * no debug ospf ism (status|events|timers): Debugging OSPF. (line 15)
6411 * no debug ospf lsa: Debugging OSPF. (line 24)
6412 * no debug ospf lsa (generate|flooding|refresh): Debugging OSPF.
6414 * no debug ospf nsm: Debugging OSPF. (line 19)
6415 * no debug ospf nsm (status|events|timers): Debugging OSPF. (line 20)
6416 * no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF.
6418 * no debug ospf zebra: Debugging OSPF. (line 29)
6419 * no debug ospf zebra (interface|redistribute): Debugging OSPF.
6421 * no debug update: More Show IP BGP. (line 41)
6422 * no default-information originate: Redistribute routes to OSPF.
6424 * no default-metric: Redistribute routes to OSPF.
6426 * no default-metric <1-16>: RIP Metric Manipulation.
6428 * no distance <1-255> <1>: Redistribute routes to OSPF.
6430 * no distance <1-255>: RIP distance. (line 10)
6431 * no distance <1-255> A.B.C.D/M: RIP distance. (line 14)
6432 * no distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance. (line 19)
6433 * no distance ospf: Redistribute routes to OSPF.
6435 * no distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF.
6437 * no exec-timeout: Basic Config Commands.
6439 * no ip address ADDRESS/PREFIX: Interface Commands. (line 15)
6440 * no ip address ADDRESS/PREFIX secondary: Interface Commands. (line 20)
6441 * no ip as-path access-list WORD: AS Path Access List. (line 12)
6442 * no ip as-path access-list WORD {permit|deny} LINE: AS Path Access List.
6444 * no ip community-list expanded NAME: BGP Community Lists. (line 37)
6445 * no ip community-list NAME: BGP Community Lists. (line 35)
6446 * no ip community-list standard NAME: BGP Community Lists. (line 36)
6447 * no ip extcommunity-list expanded NAME: BGP Extended Community Lists.
6449 * no ip extcommunity-list NAME: BGP Extended Community Lists.
6451 * no ip extcommunity-list standard NAME: BGP Extended Community Lists.
6453 * no ip ospf authentication-key: OSPF interface. (line 8)
6454 * no ip ospf cost: OSPF interface. (line 31)
6455 * no ip ospf dead-interval: OSPF interface. (line 38)
6456 * no ip ospf hello-interval: OSPF interface. (line 55)
6457 * no ip ospf message-digest-key: OSPF interface. (line 14)
6458 * no ip ospf network: OSPF interface. (line 66)
6459 * no ip ospf priority: OSPF interface. (line 70)
6460 * no ip ospf retransmit interval: OSPF interface. (line 77)
6461 * no ip ospf transmit-delay: OSPF interface. (line 83)
6462 * no ip prefix-list NAME: IP Prefix List. (line 67)
6463 * no ip prefix-list NAME description [DESC]: ip prefix-list description.
6465 * no ip prefix-list sequence-number: ip prefix-list sequential number control.
6467 * no ip rip authentication key-chain KEY-CHAIN: RIP Authentication.
6469 * no ip rip authentication mode md5: RIP Authentication. (line 8)
6470 * no ip rip authentication mode text: RIP Authentication. (line 12)
6471 * no ip rip authentication string STRING: RIP Authentication. (line 16)
6472 * no ip split-horizon: RIP Configuration. (line 100)
6473 * no ip6 address ADDRESS/PREFIX: Interface Commands. (line 16)
6474 * no ipv6 nd adv-interval-option: Router Advertisement.
6476 * no ipv6 nd home-agent-config-flag: Router Advertisement.
6478 * no ipv6 nd home-agent-lifetime: Router Advertisement.
6480 * no ipv6 nd home-agent-preference: Router Advertisement.
6482 * no ipv6 nd managed-config-flag: Router Advertisement.
6484 * no ipv6 nd other-config-flag: Router Advertisement.
6486 * no ipv6 nd ra-interval: Router Advertisement.
6488 * no ipv6 nd ra-interval msec: Router Advertisement.
6490 * no ipv6 nd ra-lifetime: Router Advertisement.
6492 * no ipv6 nd reachable-time: Router Advertisement.
6494 * no ipv6 nd suppress-ra: Router Advertisement.
6496 * no link-detect: Interface Commands. (line 38)
6497 * no log facility: Basic Config Commands.
6499 * no log file: Basic Config Commands.
6501 * no log monitor: Basic Config Commands.
6503 * no log record-priority: Basic Config Commands.
6505 * no log stdout: Basic Config Commands.
6507 * no log syslog: Basic Config Commands.
6509 * no log trap: Basic Config Commands.
6511 * no max-metric router-lsa [on-startup|on-shutdown|administrative]: OSPF router.
6513 * no multicast: Interface Commands. (line 28)
6514 * no neighbor A.B.C.D: RIP Configuration. (line 46)
6515 * no neighbor PEER default-originate: BGP Peer commands. (line 48)
6516 * no neighbor PEER description ...: BGP Peer commands. (line 21)
6517 * no neighbor PEER dont-capability-negotiate: Capability Negotiation.
6519 * no neighbor PEER ebgp-multihop: BGP Peer commands. (line 18)
6520 * no neighbor PEER interface IFNAME: BGP Peer commands. (line 34)
6521 * no neighbor PEER maximum-prefix NUMBER: BGP Peer commands. (line 65)
6522 * no neighbor PEER next-hop-self: BGP Peer commands. (line 40)
6523 * no neighbor PEER override-capability: Capability Negotiation.
6525 * no neighbor PEER route-reflector-client: Route Reflector. (line 10)
6526 * no neighbor PEER shutdown: BGP Peer commands. (line 11)
6527 * no neighbor PEER strict-capability-match: Capability Negotiation.
6529 * no neighbor PEER update-source: BGP Peer commands. (line 45)
6530 * no neighbor PEER weight WEIGHT: BGP Peer commands. (line 60)
6531 * no network A.B.C.D/M: BGP route. (line 17)
6532 * no network A.B.C.D/M area <0-4294967295>: OSPF router. (line 157)
6533 * no network A.B.C.D/M area A.B.C.D: OSPF router. (line 156)
6534 * no network IFNAME: RIP Configuration. (line 39)
6535 * no network NETWORK: RIP Configuration. (line 27)
6536 * no ospf abr-type TYPE: OSPF router. (line 27)
6537 * no ospf rfc1583compatibility: OSPF router. (line 49)
6538 * no ospf router-id: OSPF router. (line 17)
6539 * no passive interface INTERFACE: OSPF router. (line 60)
6540 * no passive-interface IFNAME: RIP Configuration. (line 69)
6541 * no redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF.
6543 * no redistribute bgp: How to Announce RIP route.
6545 * no redistribute connected: How to Announce RIP route.
6547 * no redistribute kernel: How to Announce RIP route.
6549 * no redistribute ospf: How to Announce RIP route.
6551 * no redistribute static: How to Announce RIP route.
6553 * no route A.B.C.D/M: How to Announce RIP route.
6555 * no router bgp ASN: BGP router. (line 19)
6556 * no router ospf: OSPF router. (line 11)
6557 * no router rip: RIP Configuration. (line 12)
6558 * no router zebra: Redistribute routes to OSPF.
6560 * no shutdown: Interface Commands. (line 10)
6561 * no smux peer OID: MIB and command reference.
6563 * no smux peer OID PASSWORD: MIB and command reference.
6565 * no timers basic: RIP Timers. (line 31)
6566 * no timers throttle spf: OSPF router. (line 72)
6567 * offset-list ACCESS-LIST (in|out): RIP Metric Manipulation.
6569 * offset-list ACCESS-LIST (in|out) IFNAME: RIP Metric Manipulation.
6571 * on-match goto N: Route Map Exit Action Command.
6573 * on-match next: Route Map Exit Action Command.
6575 * ospf abr-type TYPE: OSPF router. (line 26)
6576 * ospf rfc1583compatibility: OSPF router. (line 48)
6577 * ospf router-id A.B.C.D: OSPF router. (line 16)
6578 * passive interface INTERFACE: OSPF router. (line 59)
6579 * passive-interface (IFNAME|default): RIP Configuration. (line 68)
6580 * password PASSWORD: Basic Config Commands.
6582 * redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF.
6584 * redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>: Redistribute routes to OSPF.
6586 * redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map WORD: Redistribute routes to OSPF.
6588 * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2): Redistribute routes to OSPF.
6590 * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>: Redistribute routes to OSPF.
6592 * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map WORD: Redistribute routes to OSPF.
6594 * redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
6596 * redistribute (kernel|connected|static|rip|bgp) ROUTE-MAP: Redistribute routes to OSPF.
6598 * redistribute bgp: How to Announce RIP route.
6600 * redistribute bgp metric <0-16>: How to Announce RIP route.
6602 * redistribute bgp route-map ROUTE-MAP: How to Announce RIP route.
6604 * redistribute connected <1>: Redistribute to BGP. (line 13)
6605 * redistribute connected <2>: Redistribute routes to OSPF6.
6607 * redistribute connected: How to Announce RIP route.
6609 * redistribute connected metric <0-16>: How to Announce RIP route.
6611 * redistribute connected route-map ROUTE-MAP: How to Announce RIP route.
6613 * redistribute kernel <1>: Redistribute to BGP. (line 7)
6614 * redistribute kernel: How to Announce RIP route.
6616 * redistribute kernel metric <0-16>: How to Announce RIP route.
6618 * redistribute kernel route-map ROUTE-MAP: How to Announce RIP route.
6620 * redistribute ospf <1>: Redistribute to BGP. (line 19)
6621 * redistribute ospf: How to Announce RIP route.
6623 * redistribute ospf metric <0-16>: How to Announce RIP route.
6625 * redistribute ospf route-map ROUTE-MAP: How to Announce RIP route.
6627 * redistribute rip: Redistribute to BGP. (line 16)
6628 * redistribute ripng: Redistribute routes to OSPF6.
6630 * redistribute static <1>: Redistribute to BGP. (line 10)
6631 * redistribute static <2>: Redistribute routes to OSPF6.
6633 * redistribute static: How to Announce RIP route.
6635 * redistribute static metric <0-16>: How to Announce RIP route.
6637 * redistribute static route-map ROUTE-MAP: How to Announce RIP route.
6639 * route A.B.C.D/M: How to Announce RIP route.
6641 * route NETWORK: ripngd Configuration.
6643 * route-map ROUTE-MAP-NAME (permit|deny) ORDER: Route Map Command.
6645 * router bgp AS-NUMBER: BGP instance and view.
6647 * router bgp AS-NUMBER view NAME: BGP instance and view.
6649 * router bgp ASN: BGP router. (line 13)
6650 * router ospf: OSPF router. (line 10)
6651 * router ospf6: OSPF6 router. (line 7)
6652 * router rip: RIP Configuration. (line 7)
6653 * router ripng: ripngd Configuration.
6655 * router zebra <1>: Redistribute routes to OSPF.
6657 * router zebra: ripngd Configuration.
6659 * router-id A.B.C.D: OSPF6 router. (line 9)
6660 * service advanced-vty: Basic Config Commands.
6662 * service integrated-vtysh-config: VTY shell integrated configuration.
6664 * service password-encryption: Basic Config Commands.
6666 * service terminal-length <0-512>: Basic Config Commands.
6668 * set as-path prepend AS-PATH: Using AS Path in Route Map.
6670 * set as-path prepend AS_PATH: Route Map Set Command.
6672 * set comm-list WORD delete: BGP Community in Route Map.
6674 * set community COMMUNITY <1>: Route Map Set Command.
6676 * set community COMMUNITY: BGP Community in Route Map.
6678 * set community COMMUNITY additive: BGP Community in Route Map.
6680 * set community none: BGP Community in Route Map.
6682 * set extcommunity rt EXTCOMMUNITY: BGP Extended Communities in Route Map.
6684 * set extcommunity soo EXTCOMMUNITY: BGP Extended Communities in Route Map.
6686 * set ip next-hop A.B.C.D: RIP route-map. (line 52)
6687 * set ip next-hop IPV4_ADDRESS: Route Map Set Command.
6689 * set ipv6 next-hop global IPV6_ADDRESS: Route Map Set Command.
6691 * set ipv6 next-hop local IPV6_ADDRESS: Route Map Set Command.
6693 * set local-preference LOCAL_PREF: Route Map Set Command.
6695 * set metric <0-4294967295>: RIP route-map. (line 57)
6696 * set metric METRIC: Route Map Set Command.
6698 * set weight WEIGHT: Route Map Set Command.
6700 * show debug: More Show IP BGP. (line 31)
6701 * show debugging ospf: Debugging OSPF. (line 32)
6702 * show debugging rip: RIP Debug Commands. (line 29)
6703 * show debugging ripng: ripngd Terminal Mode Commands.
6705 * show interface: zebra Terminal Mode Commands.
6707 * show ip bgp: Show IP BGP. (line 7)
6708 * show ip bgp A.B.C.D: Show IP BGP. (line 8)
6709 * show ip bgp community: Display BGP Routes by Community.
6711 * show ip bgp community COMMUNITY <1>: More Show IP BGP. (line 11)
6712 * show ip bgp community COMMUNITY: Display BGP Routes by Community.
6714 * show ip bgp community COMMUNITY exact-match <1>: More Show IP BGP.
6716 * show ip bgp community COMMUNITY exact-match: Display BGP Routes by Community.
6718 * show ip bgp community-list WORD <1>: More Show IP BGP. (line 16)
6719 * show ip bgp community-list WORD: Display BGP Routes by Community.
6721 * show ip bgp community-list WORD exact-match <1>: More Show IP BGP.
6723 * show ip bgp community-list WORD exact-match: Display BGP Routes by Community.
6725 * show ip bgp neighbor [PEER]: More Show IP BGP. (line 23)
6726 * show ip bgp regexp LINE <1>: More Show IP BGP. (line 7)
6727 * show ip bgp regexp LINE: Display BGP Routes by AS Path.
6729 * show ip bgp summary: More Show IP BGP. (line 21)
6730 * show ip bgp view NAME: Viewing the view. (line 9)
6731 * show ip bgp X:X::X:X: Show IP BGP. (line 9)
6732 * show ip community-list: BGP Community Lists. (line 42)
6733 * show ip community-list NAME: BGP Community Lists. (line 43)
6734 * show ip extcommunity-list: BGP Extended Community Lists.
6736 * show ip extcommunity-list NAME: BGP Extended Community Lists.
6738 * show ip ospf: Showing OSPF information.
6740 * show ip ospf database: Showing OSPF information.
6742 * show ip ospf database (asbr-summary|external|network|router|summary): Showing OSPF information.
6744 * show ip ospf database (asbr-summary|external|network|router|summary) adv-router ADV-ROUTER: Showing OSPF information.
6746 * show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID: Showing OSPF information.
6748 * show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID adv-router ADV-ROUTER: Showing OSPF information.
6750 * show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID self-originate: Showing OSPF information.
6752 * show ip ospf database (asbr-summary|external|network|router|summary) self-originate: Showing OSPF information.
6754 * show ip ospf database max-age: Showing OSPF information.
6756 * show ip ospf database self-originate: Showing OSPF information.
6758 * show ip ospf interface [INTERFACE]: Showing OSPF information.
6760 * show ip ospf neighbor: Showing OSPF information.
6762 * show ip ospf neighbor detail: Showing OSPF information.
6764 * show ip ospf neighbor INTERFACE: Showing OSPF information.
6766 * show ip ospf neighbor INTERFACE detail: Showing OSPF information.
6768 * show ip ospf route: Showing OSPF information.
6770 * show ip prefix-list: Showing ip prefix-list.
6772 * show ip prefix-list detail: Showing ip prefix-list.
6774 * show ip prefix-list detail NAME: Showing ip prefix-list.
6776 * show ip prefix-list NAME: Showing ip prefix-list.
6778 * show ip prefix-list NAME A.B.C.D/M: Showing ip prefix-list.
6780 * show ip prefix-list NAME A.B.C.D/M first-match: Showing ip prefix-list.
6782 * show ip prefix-list NAME A.B.C.D/M longer: Showing ip prefix-list.
6784 * show ip prefix-list NAME seq NUM: Showing ip prefix-list.
6786 * show ip prefix-list summary: Showing ip prefix-list.
6788 * show ip prefix-list summary NAME: Showing ip prefix-list.
6790 * show ip protocols: Show RIP Information.
6792 * show ip rip: Show RIP Information.
6794 * show ip ripng: ripngd Terminal Mode Commands.
6796 * show ip route: zebra Terminal Mode Commands.
6798 * show ipforward: zebra Terminal Mode Commands.
6800 * show ipv6 ospf6 [INSTANCE_ID]: Showing OSPF6 information.
6802 * show ipv6 ospf6 database: Showing OSPF6 information.
6804 * show ipv6 ospf6 interface: Showing OSPF6 information.
6806 * show ipv6 ospf6 neighbor: Showing OSPF6 information.
6808 * show ipv6 ospf6 request-list A.B.C.D: Showing OSPF6 information.
6810 * show ipv6 route: zebra Terminal Mode Commands.
6812 * show ipv6 route ospf6: Showing OSPF6 information.
6814 * show ipv6forward: zebra Terminal Mode Commands.
6816 * show logging: Terminal Mode Commands.
6818 * show version: Terminal Mode Commands.
6820 * shutdown: Interface Commands. (line 9)
6821 * smux peer OID: MIB and command reference.
6823 * smux peer OID PASSWORD: MIB and command reference.
6825 * table TABLENO: Static Route Commands.
6827 * terminal length <0-512>: Terminal Mode Commands.
6829 * timers basic UPDATE TIMEOUT GARBAGE: RIP Timers. (line 7)
6830 * timers throttle spf DELAY INITIAL-HOLDTIME MAX-HOLDTIME: OSPF router.
6832 * username USERNAME nopassword: VTY shell username. (line 7)
6833 * version VERSION: RIP Configuration. (line 23)
6834 * who: Terminal Mode Commands.
6836 * write file: Terminal Mode Commands.
6838 * write terminal: Terminal Mode Commands.
6842 File: quagga.info, Node: VTY Key Index, Prev: Command Index, Up: Top
6850 * <DEL>: CLI Editing Commands. (line 11)
6851 * <DOWN>: CLI Advanced Commands.
6853 * <LEFT>: CLI Movement Commands.
6855 * <RIGHT>: CLI Movement Commands.
6857 * <TAB>: CLI Advanced Commands.
6859 * <UP>: CLI Advanced Commands.
6861 * ?: CLI Advanced Commands.
6863 * C-a: CLI Movement Commands.
6865 * C-b: CLI Movement Commands.
6867 * C-c: CLI Advanced Commands.
6869 * C-d: CLI Editing Commands. (line 14)
6870 * C-e: CLI Movement Commands.
6872 * C-f: CLI Movement Commands.
6874 * C-h: CLI Editing Commands. (line 11)
6875 * C-k: CLI Editing Commands. (line 23)
6876 * C-n: CLI Advanced Commands.
6878 * C-p: CLI Advanced Commands.
6880 * C-t: CLI Editing Commands. (line 29)
6881 * C-u: CLI Editing Commands. (line 26)
6882 * C-w: CLI Editing Commands. (line 20)
6883 * C-z: CLI Advanced Commands.
6885 * M-b: CLI Movement Commands.
6887 * M-d: CLI Editing Commands. (line 17)
6888 * M-f: CLI Movement Commands.
6895 Node: Overview
\x7f3329
6896 Node: About Quagga
\x7f4730
6897 Node: System Architecture
\x7f6983
6898 Node: Supported Platforms
\x7f9673
6899 Node: Supported RFC
\x7f10814
6900 Node: How to get Quagga
\x7f12896
6901 Node: Mailing List
\x7f13650
6902 Node: Bug Reports
\x7f14097
6903 Node: Installation
\x7f14975
6904 Node: Configure the Software
\x7f15409
6905 Node: The Configure script and its options
\x7f15657
6906 Node: Least-Privilege support
\x7f18845
6907 Node: Linux notes
\x7f20581
6908 Ref: Linux notes-Footnote-1
\x7f22439
6909 Node: Build the Software
\x7f22505
6910 Node: Install the Software
\x7f23053
6911 Node: Basic commands
\x7f24513
6912 Node: Config Commands
\x7f25288
6913 Node: Basic Config Commands
\x7f26181
6914 Node: Sample Config File
\x7f31671
6915 Node: Terminal Mode Commands
\x7f32441
6916 Node: Common Invocation Options
\x7f33538
6917 Node: Virtual Terminal Interfaces
\x7f34945
6918 Node: VTY Overview
\x7f35456
6919 Node: VTY Modes
\x7f36707
6920 Node: VTY View Mode
\x7f37157
6921 Node: VTY Enable Mode
\x7f37407
6922 Node: VTY Other Modes
\x7f37685
6923 Node: VTY CLI Commands
\x7f37861
6924 Node: CLI Movement Commands
\x7f38321
6925 Node: CLI Editing Commands
\x7f38844
6926 Node: CLI Advanced Commands
\x7f39432
6927 Node: Zebra
\x7f40198
6928 Node: Invoking zebra
\x7f40707
6929 Node: Interface Commands
\x7f41286
6930 Node: Static Route Commands
\x7f42818
6931 Node: zebra Terminal Mode Commands
\x7f46091
6933 Node: Starting and Stopping ripd
\x7f47993
6934 Node: RIP netmask
\x7f49406
6935 Node: RIP Configuration
\x7f50505
6936 Node: How to Announce RIP route
\x7f54770
6937 Node: Filtering RIP Routes
\x7f57333
6938 Node: RIP Metric Manipulation
\x7f58800
6939 Node: RIP distance
\x7f59713
6940 Node: RIP route-map
\x7f60528
6941 Node: RIP Authentication
\x7f63044
6942 Node: RIP Timers
\x7f64151
6943 Node: Show RIP Information
\x7f65437
6944 Node: RIP Debug Commands
\x7f66810
6945 Node: RIPng
\x7f67806
6946 Node: Invoking ripngd
\x7f68126
6947 Node: ripngd Configuration
\x7f68375
6948 Node: ripngd Terminal Mode Commands
\x7f69126
6949 Node: ripngd Filtering Commands
\x7f69490
6950 Node: OSPFv2
\x7f69999
6951 Node: Configuring ospfd
\x7f70651
6952 Node: OSPF router
\x7f71199
6953 Node: OSPF area
\x7f79525
6954 Node: OSPF interface
\x7f85650
6955 Ref: ip ospf dead-interval minimal
\x7f87219
6956 Node: Redistribute routes to OSPF
\x7f89791
6957 Node: Showing OSPF information
\x7f92449
6958 Ref: show ip ospf
\x7f92634
6959 Node: Debugging OSPF
\x7f93965
6960 Node: OSPF Configuration Examples
\x7f95040
6961 Node: OSPFv3
\x7f96410
6962 Node: OSPF6 router
\x7f96763
6963 Node: OSPF6 area
\x7f97117
6964 Node: OSPF6 interface
\x7f97295
6965 Node: Redistribute routes to OSPF6
\x7f98172
6966 Node: Showing OSPF6 information
\x7f98488
6967 Node: OSPF6 Configuration Examples
\x7f99345
6969 Node: Starting BGP
\x7f100688
6970 Node: BGP router
\x7f101265
6971 Node: BGP distance
\x7f102509
6972 Node: BGP decision process
\x7f102947
6973 Node: BGP network
\x7f103429
6974 Node: BGP route
\x7f103619
6975 Node: Route Aggregation
\x7f104175
6976 Node: Redistribute to BGP
\x7f104744
6977 Node: BGP Peer
\x7f105271
6978 Node: Defining Peer
\x7f105458
6979 Node: BGP Peer commands
\x7f106071
6980 Node: Peer filtering
\x7f108475
6981 Node: BGP Peer Group
\x7f108983
6982 Node: BGP Address Family
\x7f109296
6983 Node: Autonomous System
\x7f109450
6984 Node: AS Path Regular Expression
\x7f110327
6985 Node: Display BGP Routes by AS Path
\x7f111574
6986 Node: AS Path Access List
\x7f112014
6987 Node: Using AS Path in Route Map
\x7f112481
6988 Node: Private AS Numbers
\x7f112762
6989 Node: BGP Communities Attribute
\x7f112920
6990 Node: BGP Community Lists
\x7f115381
6991 Node: Numbered BGP Community Lists
\x7f118035
6992 Node: BGP Community in Route Map
\x7f119622
6993 Node: Display BGP Routes by Community
\x7f121565
6994 Node: Using BGP Communities Attribute
\x7f122734
6995 Node: BGP Extended Communities Attribute
\x7f126302
6996 Node: BGP Extended Community Lists
\x7f128074
6997 Node: BGP Extended Communities in Route Map
\x7f129949
6998 Node: Displaying BGP routes
\x7f130408
6999 Node: Show IP BGP
\x7f130645
7000 Node: More Show IP BGP
\x7f131345
7001 Node: Capability Negotiation
\x7f132496
7002 Node: Route Reflector
\x7f135968
7003 Node: Route Server
\x7f136247
7004 Node: Multiple instance
\x7f137313
7005 Node: BGP instance and view
\x7f139158
7006 Node: Routing policy
\x7f140538
7007 Node: Viewing the view
\x7f141306
7008 Node: How to set up a 6-Bone connection
\x7f141591
7009 Node: Dump BGP packets and table
\x7f142963
7010 Node: BGP Configuration Examples
\x7f143545
7011 Node: Configuring Quagga as a Route Server
\x7f152496
7012 Node: Description of the Route Server model
\x7f153457
7013 Ref: fig:normal-processing
\x7f155034
7014 Ref: fig:full-mesh
\x7f155103
7015 Ref: fig:route-server
\x7f155128
7016 Ref: filter-delegation
\x7f155470
7017 Ref: Route Server tasks
\x7f156654
7018 Ref: Route-server path filter process
\x7f157025
7019 Ref: fig:rs-processing
\x7f159339
7020 Node: Commands for configuring a Route Server
\x7f159492
7021 Node: Example of Route Server Configuration
\x7f162519
7022 Node: Configuration of the BGP routers without Route Server
\x7f163440
7023 Node: Configuration of the BGP routers with Route Server
\x7f166323
7024 Node: Configuration of the Route Server itself
\x7f167624
7025 Node: Further considerations about Import and Export route-maps
\x7f172623
7026 Node: VTY shell
\x7f175667
7027 Node: VTY shell username
\x7f176336
7028 Node: VTY shell integrated configuration
\x7f176968
7029 Node: Filtering
\x7f178416
7030 Node: IP Access List
\x7f178769
7031 Node: IP Prefix List
\x7f179155
7032 Node: ip prefix-list description
\x7f182174
7033 Node: ip prefix-list sequential number control
\x7f182701
7034 Node: Showing ip prefix-list
\x7f183243
7035 Node: Clear counter of ip prefix-list
\x7f184351
7036 Node: Route Map
\x7f184790
7037 Node: Route Map Command
\x7f188235
7038 Node: Route Map Match Command
\x7f188544
7039 Node: Route Map Set Command
\x7f189168
7040 Node: Route Map Call Command
\x7f190076
7041 Node: Route Map Exit Action Command
\x7f190406
7042 Node: Route Map Examples
\x7f190888
7043 Node: IPv6 Support
\x7f191400
7044 Node: Router Advertisement
\x7f191972
7045 Node: Kernel Interface
\x7f197588
7046 Node: SNMP Support
\x7f199545
7047 Node: Getting and installing an SNMP agent
\x7f200144
7048 Node: SMUX configuration
\x7f200717
7049 Node: MIB and command reference
\x7f202853
7050 Node: Handling SNMP Traps
\x7f204268
7051 Node: Zebra Protocol
\x7f210347
7052 Node: Packet Binary Dump Format
\x7f212261
7053 Node: Command Index
\x7f223871
7054 Node: VTY Key Index
\x7f282532