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