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