blob: ba1ccf8dad77d9c02ea9df2c37ccd89dd373547d [file] [log] [blame]
paula3957e32005-11-04 12:48: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
pauld751f002005-10-11 04:01:09 +000028 This is Edition 0.99.1, last updated 10 September 2005 of `The
29Quagga Manual', for Quagga Version 0.99.1.
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
paul30d03832005-04-29 03:16:42 +000054TCP/IP based routing protocols. This is the Manual for Quagga 0.99.1.
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
paul30d03832005-04-29 03:16:42 +00001033 Hello, this is Quagga (version 0.99.1)
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::
2682
2683
2684File: quagga.info, Node: OSPF6 router, Next: OSPF6 area, Up: OSPFv3
2685
26868.1 OSPF6 router
2687================
2688
2689 -- Command: router ospf6
2690
2691 -- OSPF6 Command: router-id A.B.C.D
2692 Set router's Router-ID.
2693
2694 -- OSPF6 Command: interface IFNAME area AREA
2695 Bind interface to specified area, and start sending OSPF packets.
2696 AREA can be specified as 0.
2697
2698
2699File: quagga.info, Node: OSPF6 area, Next: OSPF6 interface, Prev: OSPF6 router, Up: OSPFv3
2700
27018.2 OSPF6 area
2702==============
2703
2704Area support for OSPFv3 is not yet implemented.
2705
2706
2707File: quagga.info, Node: OSPF6 interface, Next: Redistribute routes to OSPF6, Prev: OSPF6 area, Up: OSPFv3
2708
27098.3 OSPF6 interface
2710===================
2711
2712 -- Interface Command: ipv6 ospf6 cost COST
2713 Sets interface's output cost. Default value is 1.
2714
2715 -- Interface Command: ipv6 ospf6 hello-interval HELLOINTERVAL
2716 Sets interface's Hello Interval. Default 40
2717
2718 -- Interface Command: ipv6 ospf6 dead-interval DEADINTERVAL
2719 Sets interface's Router Dead Interval. Default value is 40.
2720
2721 -- Interface Command: ipv6 ospf6 retransmit-interval
2722 RETRANSMITINTERVAL
2723 Sets interface's Rxmt Interval. Default value is 5.
2724
2725 -- Interface Command: ipv6 ospf6 priority PRIORITY
2726 Sets interface's Router Priority. Default value is 1.
2727
2728 -- Interface Command: ipv6 ospf6 transmit-delay TRANSMITDELAY
2729 Sets interface's Inf-Trans-Delay. Default value is 1.
2730
2731
2732File: quagga.info, Node: Redistribute routes to OSPF6, Next: Showing OSPF6 information, Prev: OSPF6 interface, Up: OSPFv3
2733
27348.4 Redistribute routes to OSPF6
2735================================
2736
2737 -- OSPF6 Command: redistribute static
2738 -- OSPF6 Command: redistribute connected
2739 -- OSPF6 Command: redistribute ripng
2740
2741
2742File: quagga.info, Node: Showing OSPF6 information, Prev: Redistribute routes to OSPF6, Up: OSPFv3
2743
27448.5 Showing OSPF6 information
2745=============================
2746
2747 -- Command: show ipv6 ospf6 [INSTANCE_ID]
2748 INSTANCE_ID is an optional OSPF instance ID. To see router ID and
2749 OSPF instance ID, simply type "show ipv6 ospf6 <cr>".
2750
2751 -- Command: show ipv6 ospf6 database
2752 This command shows LSA database summary. You can specify the type
2753 of LSA.
2754
2755 -- Command: show ipv6 ospf6 interface
2756 To see OSPF interface configuration like costs.
2757
2758 -- Command: show ipv6 ospf6 neighbor
2759 Shows state and chosen (Backup) DR of neighbor.
2760
2761 -- Command: show ipv6 ospf6 request-list A.B.C.D
2762 Shows requestlist of neighbor.
2763
2764 -- Command: show ipv6 route ospf6
2765 This command shows internal routing table.
2766
2767
2768File: quagga.info, Node: BGP, Next: Configuring Quagga as a Route Server, Prev: OSPFv3, Up: Top
2769
27709 BGP
2771*****
2772
2773BGP stands for a Border Gateway Protocol. The lastest BGP version is
27744. It is referred as BGP-4. BGP-4 is one of the Exterior Gateway
2775Protocols and de-fact standard of Inter Domain routing protocol. BGP-4
2776is described in `RFC1771' - `A Border Gateway Protocol 4 (BGP-4)'.
2777
2778 Many extentions are added to `RFC1771'. `RFC2858' - `Multiprotocol
2779Extensions for BGP-4' provide multiprotocol support to BGP-4.
2780
2781* Menu:
2782
2783* Starting BGP::
2784* BGP router::
2785* BGP network::
2786* BGP Peer::
2787* BGP Peer Group::
2788* BGP Address Family::
2789* Autonomous System::
2790* BGP Communities Attribute::
2791* BGP Extended Communities Attribute::
2792* Displaying BGP routes::
2793* Capability Negotiation::
2794* Route Reflector::
2795* Route Server::
2796* How to set up a 6-Bone connection::
2797* Dump BGP packets and table::
2798
2799
2800File: quagga.info, Node: Starting BGP, Next: BGP router, Up: BGP
2801
28029.1 Starting BGP
2803================
2804
2805Default configuration file of `bgpd' is `bgpd.conf'. `bgpd' searches
2806the current directory first then /etc/quagga/bgpd.conf. All of bgpd's
2807command must be configured in `bgpd.conf'.
2808
2809 `bgpd' specific invocation options are described below. Common
2810options may also be specified (*note Common Invocation Options::).
2811
2812`-p PORT'
2813`--bgp_port=PORT'
2814 Set the bgp protocol's port number.
2815
2816`-r'
2817`--retain'
2818 When program terminates, retain BGP routes added by zebra.
2819
2820
2821File: quagga.info, Node: BGP router, Next: BGP network, Prev: Starting BGP, Up: BGP
2822
28239.2 BGP router
2824==============
2825
2826First of all you must configure BGP router with `router bgp' command.
2827To configure BGP router, you need AS number. AS number is an
2828identification of autonomous system. BGP protocol uses the AS number
2829for detecting whether the BGP connection is internal one or external
2830one.
2831
2832 -- Command: router bgp ASN
2833 Enable a BGP protocol process with the specified ASN. After this
2834 statement you can input any `BGP Commands'. You can not create
2835 different BGP process under different ASN without specifying
2836 `multiple-instance' (*note Multiple instance::).
2837
2838 -- Command: no router bgp ASN
2839 Destroy a BGP protocol process with the specified ASN.
2840
2841 -- BGP: bgp router-id A.B.C.D
2842 This command specifies the router-ID. If `bgpd' connects to
2843 `zebra' it gets interface and address information. In that case
2844 default router ID value is selected as the largest IP Address of
2845 the interfaces. When `router zebra' is not enabled `bgpd' can't
2846 get interface information so `router-id' is set to 0.0.0.0. So
2847 please set router-id by hand.
2848
2849* Menu:
2850
2851* BGP distance::
2852* BGP decision process::
2853
2854
2855File: quagga.info, Node: BGP distance, Next: BGP decision process, Up: BGP router
2856
28579.2.1 BGP distance
2858------------------
2859
2860 -- BGP: distance bgp <1-255> <1-255> <1-255>
2861 This command change distance value of BGP. Each argument is
2862 distance value for external routes, internal routes and local
2863 routes.
2864
2865 -- BGP: distance <1-255> A.B.C.D/M
2866 -- BGP: distance <1-255> A.B.C.D/M WORD
2867 This command set distance value to
2868
2869
2870File: quagga.info, Node: BGP decision process, Prev: BGP distance, Up: BGP router
2871
28729.2.2 BGP decision process
2873--------------------------
2874
28751. Weight check
2876
28772. Local preference check.
2878
28793. Local route check.
2880
28814. AS path length check.
2882
28835. Origin check.
2884
28856. MED check.
2886
paulc7959912005-04-10 16:43:40 +00002887 -- BGP: bgp bestpath as-path confed
2888 This command specifies that the length of confederation path sets
2889 and sequences should should be taken into account during the BGP
2890 best path decision process.
2891
paul56d1d202004-11-15 21:56:53 +00002892
2893File: quagga.info, Node: BGP network, Next: BGP Peer, Prev: BGP router, Up: BGP
2894
28959.3 BGP network
2896===============
2897
2898* Menu:
2899
2900* BGP route::
2901* Route Aggregation::
2902* Redistribute to BGP::
2903
2904
2905File: quagga.info, Node: BGP route, Next: Route Aggregation, Up: BGP network
2906
29079.3.1 BGP route
2908---------------
2909
2910 -- BGP: network A.B.C.D/M
2911 This command adds the announcement network.
2912 router bgp 1
2913 network 10.0.0.0/8
2914 This configuration example says that network 10.0.0.0/8 will
2915 be announced to all neighbors. Some vendors' routers don't
2916 advertise routes if they aren't present in their IGP routing
2917 tables; `bgp' doesn't care about IGP routes when announcing its
2918 routes.
2919
2920 -- BGP: no network A.B.C.D/M
2921
2922
2923File: quagga.info, Node: Route Aggregation, Next: Redistribute to BGP, Prev: BGP route, Up: BGP network
2924
29259.3.2 Route Aggregation
2926-----------------------
2927
2928 -- BGP: aggregate-address A.B.C.D/M
2929 This command specifies an aggregate address.
2930
2931 -- BGP: aggregate-address A.B.C.D/M as-set
2932 This command specifies an aggregate address. Resulting routes
2933 inlucde AS set.
2934
2935 -- BGP: aggregate-address A.B.C.D/M summary-only
2936 This command specifies an aggregate address. Aggreated routes will
2937 not be announce.
2938
2939 -- BGP: no aggregate-address A.B.C.D/M
2940
2941
2942File: quagga.info, Node: Redistribute to BGP, Prev: Route Aggregation, Up: BGP network
2943
29449.3.3 Redistribute to BGP
2945-------------------------
2946
2947 -- BGP: redistribute kernel
2948 Redistribute kernel route to BGP process.
2949
2950 -- BGP: redistribute static
2951 Redistribute static route to BGP process.
2952
2953 -- BGP: redistribute connected
2954 Redistribute connected route to BGP process.
2955
2956 -- BGP: redistribute rip
2957 Redistribute RIP route to BGP process.
2958
2959 -- BGP: redistribute ospf
2960 Redistribute OSPF route to BGP process.
2961
2962
2963File: quagga.info, Node: BGP Peer, Next: BGP Peer Group, Prev: BGP network, Up: BGP
2964
29659.4 BGP Peer
2966============
2967
2968* Menu:
2969
2970* Defining Peer::
2971* BGP Peer commands::
2972* Peer filtering::
2973
2974
2975File: quagga.info, Node: Defining Peer, Next: BGP Peer commands, Up: BGP Peer
2976
29779.4.1 Defining Peer
2978-------------------
2979
2980 -- BGP: neighbor PEER remote-as ASN
2981 Creates a new neighbor whose remote-as is ASN. PEER can be an
2982 IPv4 address or an IPv6 address.
2983 router bgp 1
2984 neighbor 10.0.0.1 remote-as 2
2985 In this case my router, in AS-1, is trying to peer with AS-2
2986 at 10.0.0.1.
2987
2988 This command must be the first command used when configuring a
2989 neighbor. If the remote-as is not specified, `bgpd' will complain
2990 like this:
2991 can't find neighbor 10.0.0.1
2992
2993
2994File: quagga.info, Node: BGP Peer commands, Next: Peer filtering, Prev: Defining Peer, Up: BGP Peer
2995
29969.4.2 BGP Peer commands
2997-----------------------
2998
2999In a `router bgp' clause there are neighbor specific configurations
3000required.
3001
3002 -- BGP: neighbor PEER shutdown
3003 -- BGP: no neighbor PEER shutdown
3004 Shutdown the peer. We can delete the neighbor's configuration by
3005 `no neighbor PEER remote-as AS-NUMBER' but all configuration of
3006 the neighbor will be deleted. When you want to preserve the
3007 configuration, but want to drop the BGP peer, use this syntax.
3008
3009 -- BGP: neighbor PEER ebgp-multihop
3010 -- BGP: no neighbor PEER ebgp-multihop
3011
3012 -- BGP: neighbor PEER description ...
3013 -- BGP: no neighbor PEER description ...
3014 Set description of the peer.
3015
3016 -- BGP: neighbor PEER version VERSION
3017 Set up the neighbor's BGP version. VERSION can be 4, 4+ or 4-.
3018 BGP version 4 is the default value used for BGP peering. BGP
3019 version 4+ means that the neighbor supports Multiprotocol
3020 Extensions for BGP-4. BGP version 4- is similar but the neighbor
3021 speaks the old Internet-Draft revision 00's Multiprotocol
3022 Extensions for BGP-4. Some routing software is still using this
3023 version.
3024
3025 -- BGP: neighbor PEER interface IFNAME
3026 -- BGP: no neighbor PEER interface IFNAME
3027 When you connect to a BGP peer over an IPv6 link-local address,
3028 you have to specify the IFNAME of the interface used for the
3029 connection.
3030
3031 -- BGP: neighbor PEER next-hop-self
3032 -- BGP: no neighbor PEER next-hop-self
3033 This command specifies an announced route's nexthop as being
3034 equivalent to the address of the bgp router.
3035
3036 -- BGP: neighbor PEER update-source
3037 -- BGP: no neighbor PEER update-source
3038
3039 -- BGP: neighbor PEER default-originate
3040 -- BGP: no neighbor PEER default-originate
3041 `bgpd''s default is to not announce the default route (0.0.0.0/0)
3042 even it is in routing table. When you want to announce default
3043 routes to the peer, use this command.
3044
3045 -- BGP: neighbor PEER port PORT
3046 -- BGP: neighbor PEER port PORT
3047
3048 -- BGP: neighbor PEER send-community
3049 -- BGP: neighbor PEER send-community
3050
3051 -- BGP: neighbor PEER weight WEIGHT
3052 -- BGP: no neighbor PEER weight WEIGHT
3053 This command specifies a default WEIGHT value for the neighbor's
3054 routes.
3055
3056 -- BGP: neighbor PEER maximum-prefix NUMBER
3057 -- BGP: no neighbor PEER maximum-prefix NUMBER
3058
3059
3060File: quagga.info, Node: Peer filtering, Prev: BGP Peer commands, Up: BGP Peer
3061
30629.4.3 Peer filtering
3063--------------------
3064
3065 -- BGP: neighbor PEER distribute-list NAME [in|out]
3066 This command specifies a distribute-list for the peer. DIRECT is
3067 `in' or `out'.
3068
3069 -- BGP command: neighbor PEER prefix-list NAME [in|out]
3070
3071 -- BGP command: neighbor PEER filter-list NAME [in|out]
3072
3073 -- BGP: neighbor PEER route-map NAME [in|out]
3074 Apply a route-map on the neighbor. DIRECT must be `in' or `out'.
3075
3076
3077File: quagga.info, Node: BGP Peer Group, Next: BGP Address Family, Prev: BGP Peer, Up: BGP
3078
30799.5 BGP Peer Group
3080==================
3081
3082 -- BGP: neighbor WORD peer-group
3083 This command defines a new peer group.
3084
3085 -- BGP: neighbor PEER peer-group WORD
3086 This command bind specific peer to peer group WORD.
3087
3088
3089File: quagga.info, Node: BGP Address Family, Next: Autonomous System, Prev: BGP Peer Group, Up: BGP
3090
30919.6 BGP Address Family
3092======================
3093
3094
3095File: quagga.info, Node: Autonomous System, Next: BGP Communities Attribute, Prev: BGP Address Family, Up: BGP
3096
30979.7 Autonomous System
3098=====================
3099
3100AS (Autonomous System) is one of the essential element of BGP. BGP is
3101a distance vector routing protocol. AS framework provides distance
3102vector metric and loop detection to BGP. `RFC1930' - `Guidelines for
3103creation, selection, and registration of an Autonomous System (AS)'
3104describes how to use AS.
3105
3106 AS number is tow octet digita value. So the value range is from 1
3107to 65535. AS numbers 64512 through 65535 are defined as private AS
3108numbers. Private AS numbers must not to be advertised in the global
3109Internet.
3110
3111* Menu:
3112
3113* AS Path Regular Expression::
3114* Display BGP Routes by AS Path::
3115* AS Path Access List::
3116* Using AS Path in Route Map::
3117* Private AS Numbers::
3118
3119
3120File: quagga.info, Node: AS Path Regular Expression, Next: Display BGP Routes by AS Path, Up: Autonomous System
3121
31229.7.1 AS Path Regular Expression
3123--------------------------------
3124
3125AS path regular expression can be used for displaying BGP routes and AS
3126path access list. AS path regular expression is based on `POSIX
31271003.2' regular expressions. Following description is just a subset of
3128`POSIX' regular expression. User can use full `POSIX' regular
3129expression. Adding to that special character '_' is added for AS path
3130regular expression.
3131
3132`.'
3133 Matches any single character.
3134
3135`*'
3136 Matches 0 or more occurrences of pattern.
3137
3138`+'
3139 Matches 1 or more occurrences of pattern.
3140
3141`?'
3142 Match 0 or 1 occurrences of pattern.
3143
3144`^'
3145 Matches the beginning of the line.
3146
3147`$'
3148 Matches the end of the line.
3149
3150`_'
3151 Character `_' has special meanings in AS path regular expression.
3152 It matches to space and comma , and AS set delimiter { and } and AS
3153 confederation delimiter `(' and `)'. And it also matches to the
3154 beginning of the line and the end of the line. So `_' can be used
3155 for AS value boundaries match. `show ip bgp regexp _7675_'
3156 matches to all of BGP routes which as AS number include 7675.
3157
3158
3159File: quagga.info, Node: Display BGP Routes by AS Path, Next: AS Path Access List, Prev: AS Path Regular Expression, Up: Autonomous System
3160
31619.7.2 Display BGP Routes by AS Path
3162-----------------------------------
3163
3164To show BGP routes which has specific AS path information `show ip bgp'
3165command can be used.
3166
3167 -- Command: show ip bgp regexp LINE
3168 This commands display BGP routes that matches AS path regular
3169 expression LINE.
3170
3171
3172File: quagga.info, Node: AS Path Access List, Next: Using AS Path in Route Map, Prev: Display BGP Routes by AS Path, Up: Autonomous System
3173
31749.7.3 AS Path Access List
3175-------------------------
3176
3177AS path access list is user defined AS path.
3178
3179 -- Command: ip as-path access-list WORD {permit|deny} LINE
3180 This command defines a new AS path access list.
3181
3182 -- Command: no ip as-path access-list WORD
3183 -- Command: no ip as-path access-list WORD {permit|deny} LINE
3184
3185
3186File: quagga.info, Node: Using AS Path in Route Map, Next: Private AS Numbers, Prev: AS Path Access List, Up: Autonomous System
3187
31889.7.4 Using AS Path in Route Map
3189--------------------------------
3190
3191 -- Route Map: match as-path WORD
3192
3193 -- Route Map: set as-path prepend AS-PATH
3194
3195
3196File: quagga.info, Node: Private AS Numbers, Prev: Using AS Path in Route Map, Up: Autonomous System
3197
31989.7.5 Private AS Numbers
3199------------------------
3200
3201
3202File: quagga.info, Node: BGP Communities Attribute, Next: BGP Extended Communities Attribute, Prev: Autonomous System, Up: BGP
3203
32049.8 BGP Communities Attribute
3205=============================
3206
3207BGP communities attribute is widely used for implementing policy
3208routing. Network operators can manipulate BGP communities attribute
3209based on their network policy. BGP communities attribute is defined in
3210`RFC1997' - `BGP Communities Attribute' and `RFC1998' - `An Application
3211of the BGP Community Attribute in Multi-home Routing'. It is an
3212optional transitive attribute, therefore local policy can travel
3213through different autonomous system.
3214
3215 Communities attribute is a set of communities values. Each
3216communities value is 4 octet long. The following format is used to
3217define communities value.
3218
3219`AS:VAL'
3220 This format represents 4 octet communities value. `AS' is high
3221 order 2 octet in digit format. `VAL' is low order 2 octet in
3222 digit format. This format is useful to define AS oriented policy
3223 value. For example, `7675:80' can be used when AS 7675 wants to
3224 pass local policy value 80 to neighboring peer.
3225
3226`internet'
3227 `internet' represents well-known communities value 0.
3228
3229`no-export'
3230 `no-export' represents well-known communities value `NO_EXPORT'
3231 (0xFFFFFF01). All routes carry this value must not be advertised
3232 to outside a BGP confederation boundary. If neighboring BGP peer
3233 is part of BGP confederation, the peer is considered as inside a
3234 BGP confederation boundary, so the route will be announced to the
3235 peer.
3236
3237`no-advertise'
3238 `no-advertise' represents well-known communities value
3239 `NO_ADVERTISE'
3240 (0xFFFFFF02). All routes carry this value must not be advertise
3241 to other BGP peers.
3242
3243`local-AS'
3244 `local-AS' represents well-known communities value
3245 `NO_EXPORT_SUBCONFED' (0xFFFFFF03). All routes carry this value
3246 must not be advertised to external BGP peers. Even if the
3247 neighboring router is part of confederation, it is considered as
3248 external BGP peer, so the route will not be announced to the peer.
3249
3250 When BGP communities attribute is received, duplicated communities
3251value in the communities attribute is ignored and each communities
3252values are sorted in numerical order.
3253
3254* Menu:
3255
3256* BGP Community Lists::
3257* Numbered BGP Community Lists::
3258* BGP Community in Route Map::
3259* Display BGP Routes by Community::
3260* Using BGP Communities Attribute::
3261
3262
3263File: quagga.info, Node: BGP Community Lists, Next: Numbered BGP Community Lists, Up: BGP Communities Attribute
3264
32659.8.1 BGP Community Lists
3266-------------------------
3267
3268BGP community list is a user defined BGP communites attribute list.
3269BGP community list can be used for matching or manipulating BGP
3270communities attribute in updates.
3271
3272 There are two types of community list. One is standard community
3273list and another is expanded community list. Standard community list
3274defines communities attribute. Expanded community list defines
3275communities attribute string with regular expression. Standard
3276community list is compiled into binary format when user define it.
3277Standard community list will be directly compared to BGP communities
3278attribute in BGP updates. Therefore the comparison is faster than
3279expanded community list.
3280
3281 -- Command: ip community-list standard NAME {permit|deny} COMMUNITY
3282 This command defines a new standard community list. COMMUNITY is
3283 communities value. The COMMUNITY is compiled into community
3284 structure. We can define multiple community list under same name.
3285 In that case match will happen user defined order. Once the
3286 community list matches to communities attribute in BGP updates it
3287 return permit or deny by the community list definition. When
3288 there is no matched entry, deny will be returned. When COMMUNITY
3289 is empty it matches to any routes.
3290
3291 -- Command: ip community-list expanded NAME {permit|deny} LINE
3292 This command defines a new expanded community list. LINE is a
3293 string expression of communities attribute. LINE can include
3294 regular expression to match communities attribute in BGP updates.
3295
3296 -- Command: no ip community-list NAME
3297 -- Command: no ip community-list standard NAME
3298 -- Command: no ip community-list expanded NAME
3299 These commands delete community lists specified by NAME. All of
3300 community lists shares a single name space. So community lists
3301 can be removed simpley specifying community lists name.
3302
3303 -- Command: show ip community-list
3304 -- Command: show ip community-list NAME
3305 This command display current community list information. When
3306 NAME is specified the specified community list's information is
3307 shown.
3308
3309 # show ip community-list
3310 Named Community standard list CLIST
3311 permit 7675:80 7675:100 no-export
3312 deny internet
3313 Named Community expanded list EXPAND
3314 permit :
3315
3316 # show ip community-list CLIST
3317 Named Community standard list CLIST
3318 permit 7675:80 7675:100 no-export
3319 deny internet
3320
3321
3322File: quagga.info, Node: Numbered BGP Community Lists, Next: BGP Community in Route Map, Prev: BGP Community Lists, Up: BGP Communities Attribute
3323
33249.8.2 Numbered BGP Community Lists
3325----------------------------------
3326
3327When number is used for BGP community list name, the number has special
3328meanings. Community list number in the range from 1 and 99 is standard
3329community list. Community list number in the range from 100 to 199 is
3330expanded community list. These community lists are called as numbered
3331community lists. On the other hand normal community lists is called as
3332named community lists.
3333
3334 -- Command: ip community-list <1-99> {permit|deny} COMMUNITY
3335 This command defines a new community list. <1-99> is standard
3336 community list number. Community list name within this range
3337 defines standard community list. When COMMUNITY is empty it
3338 matches to any routes.
3339
3340 -- Command: ip community-list <100-199> {permit|deny} COMMUNITY
3341 This command defines a new community list. <100-199> is expanded
3342 community list number. Community list name within this range
3343 defines expanded community list.
3344
3345 -- Command: ip community-list NAME {permit|deny} COMMUNITY
3346 When community list type is not specifed, the community list type
3347 is automatically detected. If COMMUNITY can be compiled into
3348 communities attribute, the community list is defined as a standard
3349 community list. Otherwise it is defined as an expanded community
3350 list. This feature is left for backward compability. Use of this
3351 feature is not recommended.
3352
3353
3354File: quagga.info, Node: BGP Community in Route Map, Next: Display BGP Routes by Community, Prev: Numbered BGP Community Lists, Up: BGP Communities Attribute
3355
33569.8.3 BGP Community in Route Map
3357--------------------------------
3358
3359In Route Map (*note Route Map::), we can match or set BGP communities
3360attribute. Using this feature network operator can implement their
3361network policy based on BGP communities attribute.
3362
3363 Following commands can be used in Route Map.
3364
3365 -- Route Map: match community WORD
3366 -- Route Map: match community WORD exact-match
3367 This command perform match to BGP updates using community list
3368 WORD. When the one of BGP communities value match to the one of
3369 communities value in community list, it is match. When
3370 `exact-match' keyword is spcified, match happen only when BGP
3371 updates have completely same communities value specified in the
3372 community list.
3373
3374 -- Route Map: set community none
3375 -- Route Map: set community COMMUNITY
3376 -- Route Map: set community COMMUNITY additive
3377 This command manipulate communities value in BGP updates. When
3378 `none' is specified as communities value, it removes entire
3379 communities attribute from BGP updates. When COMMUNITY is not
3380 `none', specified communities value is set to BGP updates. If BGP
3381 updates already has BGP communities value, the existing BGP
3382 communities value is replaced with specified COMMUNITY value.
3383 When `additive' keyword is specified, COMMUNITY is appended to the
3384 existing communities value.
3385
3386 -- Route Map: set comm-list WORD delete
3387 This command remove communities value from BGP communities
3388 attribute. The WORD is community list name. When BGP route's
3389 communities value matches to the community list WORD, the
3390 communities value is removed. When all of communities value is
3391 removed eventually, the BGP update's communities attribute is
3392 completely removed.
3393
3394
3395File: quagga.info, Node: Display BGP Routes by Community, Next: Using BGP Communities Attribute, Prev: BGP Community in Route Map, Up: BGP Communities Attribute
3396
33979.8.4 Display BGP Routes by Community
3398-------------------------------------
3399
3400To show BGP routes which has specific BGP communities attribute, `show
3401ip bgp' command can be used. The COMMUNITY value and community list
3402can be used for `show ip bgp' command.
3403
3404 -- Command: show ip bgp community
3405 -- Command: show ip bgp community COMMUNITY
3406 -- Command: show ip bgp community COMMUNITY exact-match
3407 `show ip bgp community' displays BGP routes which has communities
3408 attribute. When COMMUNITY is specified, BGP routes that matches
3409 COMMUNITY value is displayed. For this command, `internet'
3410 keyword can't be used for COMMUNITY value. When `exact-match' is
3411 specified, it display only routes that have an exact match.
3412
3413 -- Command: show ip bgp community-list WORD
3414 -- Command: show ip bgp community-list WORD exact-match
3415 This commands display BGP routes that matches community list WORD.
3416 When `exact-match' is specified, display only routes that have an
3417 exact match.
3418
3419
3420File: quagga.info, Node: Using BGP Communities Attribute, Prev: Display BGP Routes by Community, Up: BGP Communities Attribute
3421
34229.8.5 Using BGP Communities Attribute
3423-------------------------------------
3424
3425Following configuration is the most typical usage of BGP communities
3426attribute. AS 7675 provides upstream Internet connection to AS 100.
3427When following configuration exists in AS 7675, AS 100 networks
3428operator can set local preference in AS 7675 network by setting BGP
3429communities attribute to the updates.
3430
3431 router bgp 7675
3432 neighbor 192.168.0.1 remote-as 100
3433 neighbor 192.168.0.1 route-map RMAP in
3434 !
3435 ip community-list 70 permit 7675:70
3436 ip community-list 70 deny
3437 ip community-list 80 permit 7675:80
3438 ip community-list 80 deny
3439 ip community-list 90 permit 7675:90
3440 ip community-list 90 deny
3441 !
3442 route-map RMAP permit 10
3443 match community 70
3444 set local-preference 70
3445 !
3446 route-map RMAP permit 20
3447 match community 80
3448 set local-preference 80
3449 !
3450 route-map RMAP permit 30
3451 match community 90
3452 set local-preference 90
3453
3454 Following configuration announce 10.0.0.0/8 from AS 100 to AS 7675.
3455The route has communities value 7675:80 so when above configuration
3456exists in AS 7675, announced route's local preference will be set to
3457value 80.
3458
3459 router bgp 100
3460 network 10.0.0.0/8
3461 neighbor 192.168.0.2 remote-as 7675
3462 neighbor 192.168.0.2 route-map RMAP out
3463 !
3464 ip prefix-list PLIST permit 10.0.0.0/8
3465 !
3466 route-map RMAP permit 10
3467 match ip address prefix-list PLIST
3468 set community 7675:80
3469
3470 Following configuration is an example of BGP route filtering using
3471communities attribute. This configuration only permit BGP routes which
3472has BGP communities value 0:80 or 0:90. Network operator can put
3473special internal communities value at BGP border router, then limit the
3474BGP routes announcement into the internal network.
3475
3476 router bgp 7675
3477 neighbor 192.168.0.1 remote-as 100
3478 neighbor 192.168.0.1 route-map RMAP in
3479 !
3480 ip community-list 1 permit 0:80 0:90
3481 !
3482 route-map RMAP permit in
3483 match community 1
3484
3485 Following exmaple filter BGP routes which has communities value 1:1.
3486When there is no match community-list returns deny. To avoid filtering
3487all of routes, we need to define permit any at last.
3488
3489 router bgp 7675
3490 neighbor 192.168.0.1 remote-as 100
3491 neighbor 192.168.0.1 route-map RMAP in
3492 !
3493 ip community-list standard FILTER deny 1:1
3494 ip community-list standard FILTER permit
3495 !
3496 route-map RMAP permit 10
3497 match community FILTER
3498
3499 Communities value keyword `internet' has special meanings in
3500standard community lists. In below example `internet' act as match
3501any. It matches all of BGP routes even if the route does not have
3502communities attribute at all. So community list `INTERNET' is same as
3503above example's `FILTER'.
3504
3505 ip community-list standard INTERNET deny 1:1
3506 ip community-list standard INTERNET permit internet
3507
3508 Following configuration is an example of communities value deletion.
3509With this configuration communities value 100:1 and 100:2 is removed
3510from BGP updates. For communities value deletion, only `permit'
3511community-list is used. `deny' community-list is ignored.
3512
3513 router bgp 7675
3514 neighbor 192.168.0.1 remote-as 100
3515 neighbor 192.168.0.1 route-map RMAP in
3516 !
3517 ip community-list standard DEL permit 100:1 100:2
3518 !
3519 route-map RMAP permit 10
3520 set comm-list DEL delete
3521
3522
3523File: quagga.info, Node: BGP Extended Communities Attribute, Next: Displaying BGP routes, Prev: BGP Communities Attribute, Up: BGP
3524
35259.9 BGP Extended Communities Attribute
3526======================================
3527
3528BGP extended communities attribute is introduced with MPLS VPN/BGP
3529technology. MPLS VPN/BGP expands capability of network infrastructure
3530to provide VPN functionality. At the same time it requires a new
3531framework for policy routing. With BGP Extended Communities Attribute
3532we can use Route Target or Site of Origin for implementing network
3533policy for MPLS VPN/BGP.
3534
3535 BGP Extended Communities Attribute is similar to BGP Communities
3536Attribute. It is an optional transitive attribute. BGP Extended
3537Communities Attribute can carry multiple Extended Community value.
3538Each Extended Community value is eight octet length.
3539
3540 BGP Extended Communities Attribute provides an extended range
3541compared with BGP Communities Attribute. Adding to that there is a
3542type field in each value to provides community space structure.
3543
3544 There are two format to define Extended Community value. One is AS
3545based format the other is IP address based format.
3546
3547`AS:VAL'
3548 This is a format to define AS based Extended Community value.
3549 `AS' part is 2 octets Global Administrator subfield in Extended
3550 Community value. `VAL' part is 4 octets Local Administrator
3551 subfield. `7675:100' represents AS 7675 policy value 100.
3552
3553`IP-Address:VAL'
3554 This is a format to define IP address based Extended Community
3555 value. `IP-Address' part is 4 octets Global Administrator
3556 subfield. `VAL' part is 2 octets Local Administrator subfield.
3557 `10.0.0.1:100' represents
3558
3559* Menu:
3560
3561* BGP Extended Community Lists::
3562* BGP Extended Communities in Route Map::
3563
3564
3565File: quagga.info, Node: BGP Extended Community Lists, Next: BGP Extended Communities in Route Map, Up: BGP Extended Communities Attribute
3566
35679.9.1 BGP Extended Community Lists
3568----------------------------------
3569
3570Expanded Community Lists is a user defined BGP Expanded Community Lists.
3571
3572 -- Command: ip extcommunity-list standard NAME {permit|deny}
3573EXTCOMMUNITY
3574 This command defines a new standard extcommunity-list.
3575 EXTCOMMUNITY is extended communities value. The EXTCOMMUNITY is
3576 compiled into extended community structure. We can define
3577 multiple extcommunity-list under same name. In that case match
3578 will happen user defined order. Once the extcommunity-list
3579 matches to extended communities attribute in BGP updates it return
3580 permit or deny based upon the extcommunity-list definition. When
3581 there is no matched entry, deny will be returned. When
3582 EXTCOMMUNITY is empty it matches to any routes.
3583
3584 -- Command: ip extcommunity-list expanded NAME {permit|deny} LINE
3585 This command defines a new expanded extcommunity-list. LINE is a
3586 string expression of extended communities attribute. LINE can
3587 include regular expression to match extended communities attribute
3588 in BGP updates.
3589
3590 -- Command: no ip extcommunity-list NAME
3591 -- Command: no ip extcommunity-list standard NAME
3592 -- Command: no ip extcommunity-list expanded NAME
3593 These commands delete extended community lists specified by NAME.
3594 All of extended community lists shares a single name space. So
3595 extended community lists can be removed simpley specifying the
3596 name.
3597
3598 -- Command: show ip extcommunity-list
3599 -- Command: show ip extcommunity-list NAME
3600 This command display current extcommunity-list information. When
3601 NAME is specified the community list's information is shown.
3602
3603 # show ip extcommunity-list
3604
3605
3606File: quagga.info, Node: BGP Extended Communities in Route Map, Prev: BGP Extended Community Lists, Up: BGP Extended Communities Attribute
3607
36089.9.2 BGP Extended Communities in Route Map
3609-------------------------------------------
3610
3611 -- Route Map: match extcommunity WORD
3612
3613 -- Route Map: set extcommunity rt EXTCOMMUNITY
3614 This command set Route Target value.
3615
3616 -- Route Map: set extcommunity soo EXTCOMMUNITY
3617 This command set Site of Origin value.
3618
3619
3620File: quagga.info, Node: Displaying BGP routes, Next: Capability Negotiation, Prev: BGP Extended Communities Attribute, Up: BGP
3621
36229.10 Displaying BGP Routes
3623==========================
3624
3625* Menu:
3626
3627* Show IP BGP::
3628* More Show IP BGP::
3629
3630
3631File: quagga.info, Node: Show IP BGP, Next: More Show IP BGP, Up: Displaying BGP routes
3632
36339.10.1 Show IP BGP
3634------------------
3635
3636 -- Command: show ip bgp
3637 -- Command: show ip bgp A.B.C.D
3638 -- Command: show ip bgp X:X::X:X
3639 This command displays BGP routes. When no route is specified it
3640 display all of IPv4 BGP routes.
3641
3642 BGP table version is 0, local router ID is 10.1.1.1
3643 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
3644 Origin codes: i - IGP, e - EGP, ? - incomplete
3645
3646 Network Next Hop Metric LocPrf Weight Path
3647 *> 1.1.1.1/32 0.0.0.0 0 32768 i
3648
3649 Total number of prefixes 1
3650
3651
3652File: quagga.info, Node: More Show IP BGP, Prev: Show IP BGP, Up: Displaying BGP routes
3653
36549.10.2 More Show IP BGP
3655-----------------------
3656
3657 -- Command: show ip bgp regexp LINE
3658 This command display BGP routes using AS path regular expression
3659 (*note Display BGP Routes by AS Path::).
3660
3661 -- Command: show ip bgp community COMMUNITY
3662 -- Command: show ip bgp community COMMUNITY exact-match
3663 This command display BGP routes using COMMUNITY (*note Display BGP
3664 Routes by Community::).
3665
3666 -- Command: show ip bgp community-list WORD
3667 -- Command: show ip bgp community-list WORD exact-match
3668 This command display BGP routes using community list (*note
3669 Display BGP Routes by Community::).
3670
3671 -- Command: show ip bgp summary
3672
3673 -- Command: show ip bgp neighbor [PEER]
3674
3675 -- Command: clear ip bgp PEER
3676 Clear peers which have addresses of X.X.X.X
3677
3678 -- Command: clear ip bgp PEER soft in
3679 Clear peer using soft reconfiguration.
3680
3681 -- Command: show debug
3682
3683 -- Command: debug event
3684
3685 -- Command: debug update
3686
3687 -- Command: debug keepalive
3688
3689 -- Command: no debug event
3690
3691 -- Command: no debug update
3692
3693 -- Command: no debug keepalive
3694
3695
3696File: quagga.info, Node: Capability Negotiation, Next: Route Reflector, Prev: Displaying BGP routes, Up: BGP
3697
36989.11 Capability Negotiation
3699===========================
3700
3701When adding IPv6 routing information exchange feature to BGP. There
3702were some proposals. IETF IDR working group finally take a proposal
3703called Multiprotocol Extension for BGP. The specification is described
3704in RFC2283. The protocol does not define new protocols. It defines
3705new attributes to existing BGP. When it is used exchanging IPv6
3706routing information it is called BGP-4+. When it is used for
3707exchanging multicast routing information it is called MBGP.
3708
3709 `bgpd' supports Multiprotocol Extension for BGP. So if remote peer
3710supports the protocol, `bgpd' can exchange IPv6 and/or multicast routing
3711information.
3712
3713 Traditional BGP does not have the feature to detect remote peer's
3714capability whether it can handle other than IPv4 unicast routes. This
3715is a big problem using Multiprotocol Extension for BGP to operational
3716network. `draft-ietf-idr-bgp4-cap-neg-04.txt' is proposing a feature
3717called Capability Negotiation. `bgpd' use this Capability Negotiation
3718to detect remote peer's capabilities. If the peer is only configured
3719as IPv4 unicast neighbor, `bgpd' does not send these Capability
3720Negotiation packets.
3721
3722 By default, Quagga will bring up peering with minimal common
3723capability for the both sides. For example, local router has unicast
3724and multicast capabilitie and remote router has unicast capability. In
3725this case, the local router will establish the connection with unicast
3726only capability. When there are no common capabilities, Quagga sends
3727Unsupported Capability error and then resets the connection.
3728
3729 If you want to completely match capabilities with remote peer.
3730Please use `strict-capability-match' command.
3731
3732 -- BGP: neighbor PEER strict-capability-match
3733 -- BGP: no neighbor PEER strict-capability-match
3734 Strictly compares remote capabilities and local capabilities. If
3735 capabilities are different, send Unsupported Capability error then
3736 reset connection.
3737
3738 You may want to disable sending Capability Negotiation OPEN message
3739optional parameter to the peer when remote peer does not implement
3740Capability Negotiation. Please use `dont-capability-negotiate' command
3741to disable the feature.
3742
3743 -- BGP: neighbor PEER dont-capability-negotiate
3744 -- BGP: no neighbor PEER dont-capability-negotiate
3745 Suppress sending Capability Negotiation as OPEN message optional
3746 parameter to the peer. This command only affects the peer is
3747 configured other than IPv4 unicast configuration.
3748
3749 When remote peer does not have capability negotiation feature, remote
3750peer will not send any capabilities at all. In that case, bgp
3751configures the peer with configured capabilities.
3752
3753 You may prefer locally configured capabilities more than the
3754negotiated capabilities even though remote peer sends capabilities. If
3755the peer is configured by `override-capability', `bgpd' ignores received
3756capabilities then override negotiated capabilities with configured
3757values.
3758
3759 -- BGP: neighbor PEER override-capability
3760 -- BGP: no neighbor PEER override-capability
3761 Override the result of Capability Negotiation with local
3762 configuration. Ignore remote peer's capability value.
3763
3764
3765File: quagga.info, Node: Route Reflector, Next: Route Server, Prev: Capability Negotiation, Up: BGP
3766
37679.12 Route Reflector
3768====================
3769
3770 -- BGP: bgp cluster-id A.B.C.D
3771
3772 -- BGP: neighbor PEER route-reflector-client
3773 -- BGP: no neighbor PEER route-reflector-client
3774
3775
3776File: quagga.info, Node: Route Server, Next: How to set up a 6-Bone connection, Prev: Route Reflector, Up: BGP
3777
37789.13 Route Server
3779=================
3780
3781At an Internet Exchange point, many ISPs are connected to each other by
3782external BGP peering. Normally these external BGP connection are done
3783by `full mesh' method. As with internal BGP full mesh formation, this
3784method has a scaling problem.
3785
3786 This scaling problem is well known. Route Server is a method to
3787resolve the problem. Each ISP's BGP router only peers to Route Server.
3788Route Server serves as BGP information exchange to other BGP routers.
3789By applying this method, numbers of BGP connections is reduced from
3790O(n*(n-1)/2) to O(n).
3791
3792 Unlike normal BGP router, Route Server must have several routing
3793tables for managing different routing policies for each BGP speaker.
3794We call the routing tables as different `view's. `bgpd' can work as
3795normal BGP router or Route Server or both at the same time.
3796
3797* Menu:
3798
3799* Multiple instance::
3800* BGP instance and view::
3801* Routing policy::
3802* Viewing the view::
3803
3804
3805File: quagga.info, Node: Multiple instance, Next: BGP instance and view, Up: Route Server
3806
38079.13.1 Multiple instance
3808------------------------
3809
3810To enable multiple view function of `bgpd', you must turn on multiple
3811instance feature beforehand.
3812
3813 -- Command: bgp multiple-instance
3814 Enable BGP multiple instance feature. After this feature is
3815 enabled, you can make multiple BGP instances or multiple BGP views.
3816
3817 -- Command: no bgp multiple-instance
3818 Disable BGP multiple instance feature. You can not disable this
3819 feature when BGP multiple instances or views exist.
3820
3821 When you want to make configuration more Cisco like one,
3822
3823 -- Command: bgp config-type cisco
3824 Cisco compatible BGP configuration output.
3825
3826 When bgp config-type cisco is specified,
3827
3828 "no synchronization" is displayed. "no auto-summary" is desplayed.
3829
3830 "network" and "aggregate-address" argument is displayed as "A.B.C.D
3831M.M.M.M"
3832
3833 Quagga: network 10.0.0.0/8 Cisco: network 10.0.0.0
3834
3835 Quagga: aggregate-address 192.168.0.0/24 Cisco: aggregate-address
3836192.168.0.0 255.255.255.0
3837
3838 Community attribute handling is also different. If there is no
3839configuration is specified community attribute and extended community
3840attribute are sent to neighbor. When user manually disable the feature
3841community attribute is not sent to the neighbor. In case of "bgp
3842config-type cisco" is specified, community attribute is not sent to the
3843neighbor by default. To send community attribute user has to specify
3844"neighbor A.B.C.D send-community" command.
3845
3846 ! router bgp 1 neighbor 10.0.0.1 remote-as 1 no neighbor 10.0.0.1
3847send-community !
3848
3849 ! router bgp 1 neighbor 10.0.0.1 remote-as 1 neighbor 10.0.0.1
3850send-community !
3851
3852 -- Command: bgp config-type zebra
3853 Quagga style BGP configuration. This is default.
3854
3855
3856File: quagga.info, Node: BGP instance and view, Next: Routing policy, Prev: Multiple instance, Up: Route Server
3857
38589.13.2 BGP instance and view
3859----------------------------
3860
3861BGP instance is a normal BGP process. The result of route selection
3862goes to the kernel routing table. You can setup different AS at the
3863same time when BGP multiple instance feature is enabled.
3864
3865 -- Command: router bgp AS-NUMBER
3866 Make a new BGP instance. You can use arbitrary word for the NAME.
3867
3868 bgp multiple-instance
3869 !
3870 router bgp 1
3871 neighbor 10.0.0.1 remote-as 2
3872 neighbor 10.0.0.2 remote-as 3
3873 !
3874 router bgp 2
3875 neighbor 10.0.0.3 remote-as 4
3876 neighbor 10.0.0.4 remote-as 5
3877
3878 BGP view is almost same as normal BGP process. The result of route
3879selection does not go to the kernel routing table. BGP view is only
3880for exchanging BGP routing information.
3881
3882 -- Command: router bgp AS-NUMBER view NAME
3883 Make a new BGP view. You can use arbitrary word for the NAME.
3884 This view's route selection result does not go to the kernel
3885 routing table.
3886
3887 With this command, you can setup Route Server like below.
3888
3889 bgp multiple-instance
3890 !
3891 router bgp 1 view 1
3892 neighbor 10.0.0.1 remote-as 2
3893 neighbor 10.0.0.2 remote-as 3
3894 !
3895 router bgp 2 view 2
3896 neighbor 10.0.0.3 remote-as 4
3897 neighbor 10.0.0.4 remote-as 5
3898
3899
3900File: quagga.info, Node: Routing policy, Next: Viewing the view, Prev: BGP instance and view, Up: Route Server
3901
39029.13.3 Routing policy
3903---------------------
3904
3905You can set different routing policy for a peer. For example, you can
3906set different filter for a peer.
3907
3908 bgp multiple-instance
3909 !
3910 router bgp 1 view 1
3911 neighbor 10.0.0.1 remote-as 2
3912 neighbor 10.0.0.1 distribute-list 1 in
3913 !
3914 router bgp 1 view 2
3915 neighbor 10.0.0.1 remote-as 2
3916 neighbor 10.0.0.1 distribute-list 2 in
3917
3918 This means BGP update from a peer 10.0.0.1 goes to both BGP view 1
3919and view 2. When the update is inserted into view 1, distribute-list 1
3920is applied. On the other hand, when the update is inserted into view 2,
3921distribute-list 2 is applied.
3922
3923
3924File: quagga.info, Node: Viewing the view, Prev: Routing policy, Up: Route Server
3925
39269.13.4 Viewing the view
3927-----------------------
3928
3929To display routing table of BGP view, you must specify view name.
3930
3931 -- Command: show ip bgp view NAME
3932 Display routing table of BGP view NAME.
3933
3934
3935File: quagga.info, Node: How to set up a 6-Bone connection, Next: Dump BGP packets and table, Prev: Route Server, Up: BGP
3936
39379.14 How to set up a 6-Bone connection
3938======================================
3939
3940 zebra configuration
3941 ===================
3942 !
3943 ! Actually there is no need to configure zebra
3944 !
3945
3946 bgpd configuration
3947 ==================
3948 !
3949 ! This means that routes go through zebra and into the kernel.
3950 !
3951 router zebra
3952 !
3953 ! MP-BGP configuration
3954 !
3955 router bgp 7675
3956 bgp router-id 10.0.0.1
3957 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 remote-as AS-NUMBER
3958 !
3959 address-family ipv6
3960 network 3ffe:506::/32
3961 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 activate
3962 neighbor 3ffe:1cfa:0:2:2a0:c9ff:fe9e:f56 route-map set-nexthop out
3963 neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 remote-as AS-NUMBER
3964 neighbor 3ffe:1cfa:0:2:2c0:4fff:fe68:a231 route-map set-nexthop out
3965 exit-address-family
3966 !
3967 ipv6 access-list all permit any
3968 !
3969 ! Set output nexthop address.
3970 !
3971 route-map set-nexthop permit 10
3972 match ipv6 address all
3973 set ipv6 nexthop global 3ffe:1cfa:0:2:2c0:4fff:fe68:a225
3974 set ipv6 nexthop local fe80::2c0:4fff:fe68:a225
3975 !
3976 ! logfile FILENAME is obsolete. Please use log file FILENAME
3977
3978 log file bgpd.log
3979 !
3980
3981
3982File: quagga.info, Node: Dump BGP packets and table, Prev: How to set up a 6-Bone connection, Up: BGP
3983
39849.15 Dump BGP packets and table
3985===============================
3986
3987 -- Command: dump bgp all PATH
3988 -- Command: dump bgp all PATH INTERVAL
3989 Dump all BGP packet and events to PATH file.
3990
3991 -- Command: dump bgp updates PATH
3992 -- Command: dump bgp updates PATH INTERVAL
3993 Dump BGP updates to PATH file.
3994
3995 -- Command: dump bgp routes PATH
3996 -- Command: dump bgp routes PATH
3997 Dump whole BGP routing table to PATH. This is heavy process.
3998
3999
4000File: quagga.info, Node: Configuring Quagga as a Route Server, Next: VTY shell, Prev: BGP, Up: Top
4001
400210 Configuring Quagga as a Route Server
4003***************************************
4004
4005The purpose of a Route Server is to centralize the peerings between BGP
4006speakers. For example if we have an exchange point scenario with four
4007BGP speakers, each of which maintaining a BGP peering with the other
4008three (*note fig:full-mesh::), we can convert it into a centralized
4009scenario where each of the four establishes a single BGP peering
4010against the Route Server (*note fig:route-server::).
4011
4012 We will first describe briefly the Route Server model implemented by
4013Quagga. We will explain the commands that have been added for
4014configuring that model. And finally we will show a full example of
4015Quagga configured as Route Server.
4016
4017* Menu:
4018
4019* Description of the Route Server model::
4020* Commands for configuring a Route Server::
4021* Example of Route Server Configuration::
4022
4023
4024File: quagga.info, Node: Description of the Route Server model, Next: Commands for configuring a Route Server, Up: Configuring Quagga as a Route Server
4025
402610.1 Description of the Route Server model
4027==========================================
4028
4029First we are going to describe the normal processing that BGP
4030announcements suffer inside a standard BGP speaker, as shown in *Note
4031fig:normal-processing::, it consists of three steps:
4032
4033 * When an announcement is received from some peer, the `In' filters
4034 configured for that peer are applied to the announcement. These
4035 filters can reject the announcement, accept it unmodified, or
4036 accept it with some of its attributes modified.
4037
4038 * The announcements that pass the `In' filters go into the Best Path
4039 Selection process, where they are compared to other announcements
4040 referred to the same destination that have been received from
4041 different peers (in case such other announcements exist). For each
4042 different destination, the announcement which is selected as the
4043 best is inserted into the BGP speaker's Loc-RIB.
4044
4045 * The routes which are inserted in the Loc-RIB are considered for
4046 announcement to all the peers (except the one from which the route
4047 came). This is done by passing the routes in the Loc-RIB through
4048 the `Out' filters corresponding to each peer. These filters can
4049 reject the route, accept it unmodified, or accept it with some of
4050 its attributes modified. Those routes which are accepted by the
4051 `Out' filters of a peer are announced to that peer.
4052
pauld751f002005-10-11 04:01:09 +00004053 Figure 10.1: Announcement processing inside a "normal" BGP speaker
paul56d1d202004-11-15 21:56:53 +00004054
pauld751f002005-10-11 04:01:09 +00004055 Figure 10.2: Full Mesh
paul56d1d202004-11-15 21:56:53 +00004056
pauld751f002005-10-11 04:01:09 +00004057 Figure 10.3: Route Server and clients
paul56d1d202004-11-15 21:56:53 +00004058
4059 Of course we want that the routing tables obtained in each of the
4060routers are the same when using the route server than when not. But as
4061a consequence of having a single BGP peering (against the route
4062server), the BGP speakers can no longer distinguish from/to which peer
4063each announce comes/goes. This means that the routers connected to the
4064route server are not able to apply by themselves the same input/output
4065filters as in the full mesh scenario, so they have to delegate those
4066functions to the route server.
4067
4068 Even more, the "best path" selection must be also performed inside
4069the route server on behalf of its clients. The reason is that if, after
4070applying the filters of the announcer and the (potential) receiver, the
4071route server decides to send to some client two or more different
4072announcements referred to the same destination, the client will only
4073retain the last one, considering it as an implicit withdrawal of the
4074previous announcements for the same destination. This is the expected
4075behavior of a BGP speaker as defined in `RFC1771', and even though
4076there are some proposals of mechanisms that permit multiple paths for
4077the same destination to be sent through a single BGP peering, none of
4078them are currently supported by most of the existing BGP
4079implementations.
4080
4081 As a consequence a route server must maintain additional information
4082and perform additional tasks for a RS-client that those necessary for
4083common BGP peerings. Essentially a route server must:
4084
4085 * Maintain a separated Routing Information Base (Loc-RIB) for each
4086 peer configured as RS-client, containing the routes selected as a
4087 result of the "Best Path Selection" process that is performed on
4088 behalf of that RS-client.
4089
4090 * Whenever it receives an announcement from a RS-client, it must
4091 consider it for the Loc-RIBs of the other RS-clients.
4092
4093 * This means that for each of them the route server must pass
4094 the announcement through the appropriate `Out' filter of the
4095 announcer.
4096
4097 * Then through the appropriate `In' filter of the potential
4098 receiver.
4099
4100 * Only if the announcement is accepted by both filters it will
4101 be passed to the "Best Path Selection" process.
4102
4103 * Finally, it might go into the Loc-RIB of the receiver.
4104
4105 When we talk about the "appropriate" filter, both the announcer and
4106the receiver of the route must be taken into account. Suppose that the
4107route server receives an announcement from client A, and the route
4108server is considering it for the Loc-RIB of client B. The filters that
4109should be applied are the same that would be used in the full mesh
4110scenario, i.e., first the `Out' filter of router A for announcements
4111going to router B, and then the `In' filter of router B for
4112announcements coming from router A.
4113
4114 We call "Export Policy" of a RS-client to the set of `Out' filters
4115that the client would use if there was no route server. The same
4116applies for the "Import Policy" of a RS-client and the set of `In'
4117filters of the client if there was no route server.
4118
4119 It is also common to demand from a route server that it does not
4120modify some BGP attributes (next-hop, as-path and MED) that are usually
4121modified by standard BGP speakers before announcing a route.
4122
4123 The announcement processing model implemented by Quagga is shown in
4124*Note fig:rs-processing::. The figure shows a mixture of RS-clients (B,
4125C and D) with normal BGP peers (A). There are some details that worth
4126additional comments:
4127
4128 * Announcements coming from a normal BGP peer are also considered
4129 for the Loc-RIBs of all the RS-clients. But logically they do not
4130 pass through any export policy.
4131
4132 * Those peers that are configured as RS-clients do not receive any
4133 announce from the `Main' Loc-RIB.
4134
4135 * Apart from import and export policies, `In' and `Out' filters can
4136 also be set for RS-clients. `In' filters might be useful when the
4137 route server has also normal BGP peers. On the other hand, `Out'
4138 filters for RS-clients are probably unnecessary, but we decided
4139 not to remove them as they do not hurt anybody (they can always be
4140 left empty).
4141
paula3957e32005-11-04 12:48:25 +00004142�[image src="fig-rs-processing.png" alt="Route Server Processing Model"�]
4143
4144Figure 10.4: Announcement processing model implemented by the Route Server
paul56d1d202004-11-15 21:56:53 +00004145
4146
4147File: 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
4148
414910.2 Commands for configuring a Route Server
4150============================================
4151
4152Now we will describe the commands that have been added to quagga in
4153order to support the route server features.
4154
4155 -- Route-Server: neighbor PEER-GROUP route-server-client
4156 -- Route-Server: neighbor A.B.C.D route-server-client
4157 -- Route-Server: neighbor X:X::X:X route-server-client
4158 This command configures the peer given by PEER, A.B.C.D or
4159 X:X::X:X as an RS-client.
4160
4161 Actually this command is not new, it already existed in standard
4162 Quagga. It enables the transparent mode for the specified peer.
4163 This means that some BGP attributes (as-path, next-hop and MED) of
4164 the routes announced to that peer are not modified.
4165
4166 With the route server patch, this command, apart from setting the
4167 transparent mode, creates a new Loc-RIB dedicated to the specified
4168 peer (those named `Loc-RIB for X' in *Note Figure 10.4:
4169 fig:rs-processing.). Starting from that moment, every announcement
4170 received by the route server will be also considered for the new
4171 Loc-RIB.
4172
4173 -- Route-Server: neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD
4174{import|export}
4175 This set of commands can be used to specify the route-map that
4176 represents the Import or Export policy of a peer which is
4177 configured as a RS-client (with the previous command).
4178
4179 -- Route-Server: match peer {A.B.C.D|X:X::X:X}
4180 This is a new _match_ statement for use in route-maps, enabling
4181 them to describe import/export policies. As we said before, an
4182 import/export policy represents a set of input/output filters of
4183 the RS-client. This statement makes possible that a single
4184 route-map represents the full set of filters that a BGP speaker
4185 would use for its different peers in a non-RS scenario.
4186
4187 The _match peer_ statement has different semantics whether it is
4188 used inside an import or an export route-map. In the first case
4189 the statement matches if the address of the peer who sends the
4190 announce is the same that the address specified by
4191 {A.B.C.D|X:X::X:X}. For export route-maps it matches when
4192 {A.B.C.D|X:X::X:X} is the address of the RS-Client into whose
4193 Loc-RIB the announce is going to be inserted (how the same export
4194 policy is applied before different Loc-RIBs is shown in *Note
4195 Figure 10.4: fig:rs-processing.).
4196
4197 -- Route-map Command: call WORD
4198 This command (also used inside a route-map) jumps into a different
4199 route-map, whose name is specified by WORD. When the called
4200 route-map finishes, depending on its result the original route-map
4201 continues or not. Apart from being useful for making import/export
4202 route-maps easier to write, this command can also be used inside
4203 any normal (in or out) route-map.
4204
4205
4206File: quagga.info, Node: Example of Route Server Configuration, Prev: Commands for configuring a Route Server, Up: Configuring Quagga as a Route Server
4207
420810.3 Example of Route Server Configuration
4209==========================================
4210
4211Finally we are going to show how to configure a Quagga daemon to act as
4212a Route Server. For this purpose we are going to present a scenario
4213without route server, and then we will show how to use the
4214configurations of the BGP routers to generate the configuration of the
4215route server.
4216
4217 All the configuration files shown in this section have been taken
4218from scenarios which were tested using the VNUML tool VNUML
4219(http://www.dit.upm.es/vnuml).
4220
4221* Menu:
4222
4223* Configuration of the BGP routers without Route Server::
4224* Configuration of the BGP routers with Route Server::
4225* Configuration of the Route Server itself::
4226* Further considerations about Import and Export route-maps::
4227
4228
4229File: 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
4230
423110.3.1 Configuration of the BGP routers without Route Server
4232------------------------------------------------------------
4233
4234We will suppose that our initial scenario is an exchange point with
4235three BGP capable routers, named RA, RB and RC. Each of the BGP
4236speakers generates some routes (with the NETWORK command), and
4237establishes BGP peerings against the other two routers. These peerings
4238have In and Out route-maps configured, named like "PEER-X-IN" or
4239"PEER-X-OUT". For example the configuration file for router RA could be
4240the following:
4241
4242 #Configuration for router 'RA'
4243 !
4244 hostname RA
4245 password ****
4246 !
4247 router bgp 65001
4248 no bgp default ipv4-unicast
4249 neighbor 2001:0DB8::B remote-as 65002
4250 neighbor 2001:0DB8::C remote-as 65003
4251 !
4252 address-family ipv6
4253 network 2001:0DB8:AAAA:1::/64
4254 network 2001:0DB8:AAAA:2::/64
4255 network 2001:0DB8:0000:1::/64
4256 network 2001:0DB8:0000:2::/64
4257
4258 neighbor 2001:0DB8::B activate
4259 neighbor 2001:0DB8::B soft-reconfiguration inbound
4260 neighbor 2001:0DB8::B route-map PEER-B-IN in
4261 neighbor 2001:0DB8::B route-map PEER-B-OUT out
4262
4263 neighbor 2001:0DB8::C activate
4264 neighbor 2001:0DB8::C soft-reconfiguration inbound
4265 neighbor 2001:0DB8::C route-map PEER-C-IN in
4266 neighbor 2001:0DB8::C route-map PEER-C-OUT out
4267 exit-address-family
4268 !
4269 ipv6 prefix-list COMMON-PREFIXES seq 5 permit 2001:0DB8:0000::/48 ge 64 le 64
4270 ipv6 prefix-list COMMON-PREFIXES seq 10 deny any
4271 !
4272 ipv6 prefix-list PEER-A-PREFIXES seq 5 permit 2001:0DB8:AAAA::/48 ge 64 le 64
4273 ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any
4274 !
4275 ipv6 prefix-list PEER-B-PREFIXES seq 5 permit 2001:0DB8:BBBB::/48 ge 64 le 64
4276 ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any
4277 !
4278 ipv6 prefix-list PEER-C-PREFIXES seq 5 permit 2001:0DB8:CCCC::/48 ge 64 le 64
4279 ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any
4280 !
4281 route-map PEER-B-IN permit 10
4282 match ipv6 address prefix-list COMMON-PREFIXES
4283 set metric 100
4284 route-map PEER-B-IN permit 20
4285 match ipv6 address prefix-list PEER-B-PREFIXES
4286 set community 65001:11111
4287 !
4288 route-map PEER-C-IN permit 10
4289 match ipv6 address prefix-list COMMON-PREFIXES
4290 set metric 200
4291 route-map PEER-C-IN permit 20
4292 match ipv6 address prefix-list PEER-C-PREFIXES
4293 set community 65001:22222
4294 !
4295 route-map PEER-B-OUT permit 10
4296 match ipv6 address prefix-list PEER-A-PREFIXES
4297 !
4298 route-map PEER-C-OUT permit 10
4299 match ipv6 address prefix-list PEER-A-PREFIXES
4300 !
4301 line vty
4302 !
4303
4304
4305File: 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
4306
430710.3.2 Configuration of the BGP routers with Route Server
4308---------------------------------------------------------
4309
4310To convert the initial scenario into one with route server, first we
4311must modify the configuration of routers RA, RB and RC. Now they must
4312not peer between them, but only with the route server. For example, RA's
4313configuration would turn into:
4314
4315 # Configuration for router 'RA'
4316 !
4317 hostname RA
4318 password ****
4319 !
4320 router bgp 65001
4321 no bgp default ipv4-unicast
4322 neighbor 2001:0DB8::FFFF remote-as 65000
4323 !
4324 address-family ipv6
4325 network 2001:0DB8:AAAA:1::/64
4326 network 2001:0DB8:AAAA:2::/64
4327 network 2001:0DB8:0000:1::/64
4328 network 2001:0DB8:0000:2::/64
4329
4330 neighbor 2001:0DB8::FFFF activate
4331 neighbor 2001:0DB8::FFFF soft-reconfiguration inbound
4332 exit-address-family
4333 !
4334 line vty
4335 !
4336
4337 Which is logically much simpler than its initial configuration, as
4338it now maintains only one BGP peering and all the filters (route-maps)
4339have disappeared.
4340
4341
4342File: 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
4343
434410.3.3 Configuration of the Route Server itself
4345-----------------------------------------------
4346
4347As we said when we described the functions of a route server (*note
4348Description of the Route Server model::), it is in charge of all the
4349route filtering. To achieve that, the In and Out filters from the RA,
4350RB and RC configurations must be converted into Import and Export
4351policies in the route server.
4352
4353 This is a fragment of the route server configuration (we only show
4354the policies for client RA):
4355
4356 # Configuration for Route Server ('RS')
4357 !
4358 hostname RS
4359 password ix
4360 !
4361 bgp multiple-instance
4362 !
4363 router bgp 65000 view RS
4364 no bgp default ipv4-unicast
4365 neighbor 2001:0DB8::A remote-as 65001
4366 neighbor 2001:0DB8::B remote-as 65002
4367 neighbor 2001:0DB8::C remote-as 65003
4368 !
4369 address-family ipv6
4370 neighbor 2001:0DB8::A activate
4371 neighbor 2001:0DB8::A route-server-client
4372 neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import
4373 neighbor 2001:0DB8::A route-map RSCLIENT-A-EXPORT export
4374 neighbor 2001:0DB8::A soft-reconfiguration inbound
4375
4376 neighbor 2001:0DB8::B activate
4377 neighbor 2001:0DB8::B route-server-client
4378 neighbor 2001:0DB8::B route-map RSCLIENT-B-IMPORT import
4379 neighbor 2001:0DB8::B route-map RSCLIENT-B-EXPORT export
4380 neighbor 2001:0DB8::B soft-reconfiguration inbound
4381
4382 neighbor 2001:0DB8::C activate
4383 neighbor 2001:0DB8::C route-server-client
4384 neighbor 2001:0DB8::C route-map RSCLIENT-C-IMPORT import
4385 neighbor 2001:0DB8::C route-map RSCLIENT-C-EXPORT export
4386 neighbor 2001:0DB8::C soft-reconfiguration inbound
4387 exit-address-family
4388 !
4389 ipv6 prefix-list COMMON-PREFIXES seq 5 permit 2001:0DB8:0000::/48 ge 64 le 64
4390 ipv6 prefix-list COMMON-PREFIXES seq 10 deny any
4391 !
4392 ipv6 prefix-list PEER-A-PREFIXES seq 5 permit 2001:0DB8:AAAA::/48 ge 64 le 64
4393 ipv6 prefix-list PEER-A-PREFIXES seq 10 deny any
4394 !
4395 ipv6 prefix-list PEER-B-PREFIXES seq 5 permit 2001:0DB8:BBBB::/48 ge 64 le 64
4396 ipv6 prefix-list PEER-B-PREFIXES seq 10 deny any
4397 !
4398 ipv6 prefix-list PEER-C-PREFIXES seq 5 permit 2001:0DB8:CCCC::/48 ge 64 le 64
4399 ipv6 prefix-list PEER-C-PREFIXES seq 10 deny any
4400 !
4401 route-map RSCLIENT-A-IMPORT permit 10
4402 match peer 2001:0DB8::B
4403 call A-IMPORT-FROM-B
4404 route-map RSCLIENT-A-IMPORT permit 20
4405 match peer 2001:0DB8::C
4406 call A-IMPORT-FROM-C
4407 !
4408 route-map A-IMPORT-FROM-B permit 10
4409 match ipv6 address prefix-list COMMON-PREFIXES
4410 set metric 100
4411 route-map A-IMPORT-FROM-B permit 20
4412 match ipv6 address prefix-list PEER-B-PREFIXES
4413 set community 65001:11111
4414 !
4415 route-map A-IMPORT-FROM-C permit 10
4416 match ipv6 address prefix-list COMMON-PREFIXES
4417 set metric 200
4418 route-map A-IMPORT-FROM-C permit 20
4419 match ipv6 address prefix-list PEER-C-PREFIXES
4420 set community 65001:22222
4421 !
4422 route-map RSCLIENT-A-EXPORT permit 10
4423 match peer 2001:0DB8::B
4424 match ipv6 address prefix-list PEER-A-PREFIXES
4425 route-map RSCLIENT-A-EXPORT permit 20
4426 match peer 2001:0DB8::C
4427 match ipv6 address prefix-list PEER-A-PREFIXES
4428 !
4429 ...
4430 ...
4431 ...
4432
4433 If you compare the initial configuration of RA with the route server
4434configuration above, you can see how easy it is to generate the Import
4435and Export policies for RA from the In and Out route-maps of RA's
4436original configuration.
4437
4438 When there was no route server, RA maintained two peerings, one with
4439RB and another with RC. Each of this peerings had an In route-map
4440configured. To build the Import route-map for client RA in the route
4441server, simply add route-map entries following this scheme:
4442
4443 route-map <NAME> permit 10
4444 match peer <Peer Address>
4445 call <In Route-Map for this Peer>
4446 route-map <NAME> permit 20
4447 match peer <Another Peer Address>
4448 call <In Route-Map for this Peer>
4449
4450 This is exactly the process that has been followed to generate the
4451route-map RSCLIENT-A-IMPORT. The route-maps that are called inside it
4452(A-IMPORT-FROM-B and A-IMPORT-FROM-C) are exactly the same than the In
4453route-maps from the original configuration of RA (PEER-B-IN and
4454PEER-C-IN), only the name is different.
4455
4456 The same could have been done to create the Export policy for RA
4457(route-map RSCLIENT-A-EXPORT), but in this case the original Out
4458route-maps where so simple that we decided not to use the CALL WORD
4459commands, and we integrated all in a single route-map
4460(RSCLIENT-A-EXPORT).
4461
4462 The Import and Export policies for RB and RC are not shown, but the
4463process would be identical.
4464
4465
4466File: quagga.info, Node: Further considerations about Import and Export route-maps, Prev: Configuration of the Route Server itself, Up: Example of Route Server Configuration
4467
446810.3.4 Further considerations about Import and Export route-maps
4469----------------------------------------------------------------
4470
4471The current version of the route server patch only allows to specify a
4472route-map for import and export policies, while in a standard BGP
4473speaker apart from route-maps there are other tools for performing
4474input and output filtering (access-lists, community-lists, ...). But
4475this does not represent any limitation, as all kinds of filters can be
4476included in import/export route-maps. For example suppose that in the
4477non-route-server scenario peer RA had the following filters configured
4478for input from peer B:
4479
4480 neighbor 2001:0DB8::B prefix-list LIST-1 in
4481 neighbor 2001:0DB8::B filter-list LIST-2 in
4482 neighbor 2001:0DB8::B route-map PEER-B-IN in
4483 ...
4484 ...
4485 route-map PEER-B-IN permit 10
4486 match ipv6 address prefix-list COMMON-PREFIXES
4487 set local-preference 100
4488 route-map PEER-B-IN permit 20
4489 match ipv6 address prefix-list PEER-B-PREFIXES
4490 set community 65001:11111
4491
4492 It is posible to write a single route-map which is equivalent to the
4493three filters (the community-list, the prefix-list and the route-map).
4494That route-map can then be used inside the Import policy in the route
4495server. Lets see how to do it:
4496
4497 neighbor 2001:0DB8::A route-map RSCLIENT-A-IMPORT import
4498 ...
4499 !
4500 ...
4501 route-map RSCLIENT-A-IMPORT permit 10
4502 match peer 2001:0DB8::B
4503 call A-IMPORT-FROM-B
4504 ...
4505 ...
4506 !
4507 route-map A-IMPORT-FROM-B permit 1
4508 match ipv6 address prefix-list LIST-1
4509 match as-path LIST-2
4510 on-match goto 10
4511 route-map A-IMPORT-FROM-B deny 2
4512 route-map A-IMPORT-FROM-B permit 10
4513 match ipv6 address prefix-list COMMON-PREFIXES
4514 set local-preference 100
4515 route-map A-IMPORT-FROM-B permit 20
4516 match ipv6 address prefix-list PEER-B-PREFIXES
4517 set community 65001:11111
4518 !
4519 ...
4520 ...
4521
4522 The route-map A-IMPORT-FROM-B is equivalent to the three filters
4523(LIST-1, LIST-2 and PEER-B-IN). The first entry of route-map
4524A-IMPORT-FROM-B (sequence number 1) matches if and only if both the
4525prefix-list LIST-1 and the filter-list LIST-2 match. If that happens,
4526due to the "on-match goto 10" statement the next route-map entry to be
4527processed will be number 10, and as of that point route-map
4528A-IMPORT-FROM-B is identical to PEER-B-IN. If the first entry does not
4529match, `on-match goto 10" will be ignored and the next processed entry
4530will be number 2, which will deny the route.
4531
4532 Thus, the result is the same that with the three original filters,
4533i.e., if either LIST-1 or LIST-2 rejects the route, it does not reach
4534the route-map PEER-B-IN. In case both LIST-1 and LIST-2 accept the
4535route, it passes to PEER-B-IN, which can reject, accept or modify the
4536route.
4537
4538
4539File: quagga.info, Node: VTY shell, Next: Filtering, Prev: Configuring Quagga as a Route Server, Up: Top
4540
454111 VTY shell
4542************
4543
4544`vtysh' is integrated shell of Quagga software.
4545
4546 To use vtysh please specify --enable-vtysh to configure script. To
4547use PAM for authentication use --with-libpam option to configure script.
4548
4549 vtysh only searches /etc/quagga path for vtysh.conf which is the
4550vtysh configuration file. Vtysh does not search current directory for
4551configuration file because the file includes user authentication
4552settings.
4553
4554 Currently, vtysh.conf has only two commands.
4555
4556* Menu:
4557
4558* VTY shell username::
4559* VTY shell integrated configuration::
4560
4561
4562File: quagga.info, Node: VTY shell username, Next: VTY shell integrated configuration, Up: VTY shell
4563
456411.1 VTY shell username
4565=======================
4566
4567 -- Command: username USERNAME nopassword
4568 With this set, user foo does not need password authentication for
4569 user vtysh. With PAM vtysh uses PAM authentication mechanism.
4570
4571 If vtysh is compiled without PAM authentication, every user can
4572 use vtysh without authentication. vtysh requires read/write
4573 permission to the various daemons vty sockets, this can be
4574 accomplished through use of unix groups and the -enable-vty-group
4575 configure option.
4576
4577
4578
4579File: quagga.info, Node: VTY shell integrated configuration, Prev: VTY shell username, Up: VTY shell
4580
paulafc1e2d2005-01-10 22:31:16 +0000458111.2 VTY shell integrated configuration
4582=======================================
paul56d1d202004-11-15 21:56:53 +00004583
4584 -- Command: service integrated-vtysh-config
4585 Write out integrated Quagga.conf file when 'write file' is issued.
4586
4587 This command controls the behaviour of vtysh when it is told to
4588 write out the configuration. Per default, vtysh will instruct
4589 each daemon to write out their own config files when `write file'
4590 is issued. However, if `service integrated-vtysh-config' is set,
4591 when `write file' is issued, vtysh will instruct the daemons will
4592 write out a Quagga.conf with all daemons' commands integrated into
4593 it.
4594
4595 Vtysh per default behaves as if `write-conf daemon' is set. Note
4596 that both may be set at same time if one wishes to have both
4597 Quagga.conf and daemon specific files written out. Further, note
4598 that the daemons are hard-coded to first look for the integrated
4599 Quagga.conf file before looking for their own file.
4600
4601 We recommend you do not mix the use of the two types of files.
4602 Further, it is better not to use the integrated Quagga.conf file,
4603 as any syntax error in it can lead to /all/ of your daemons being
4604 unable to start up. Per daemon files are more robust as impact of
4605 errors in configuration are limited to the daemon in whose file
4606 the error is made.
4607
4608
4609
4610File: quagga.info, Node: Filtering, Next: Route Map, Prev: VTY shell, Up: Top
4611
461212 Filtering
4613************
4614
4615Quagga provides many very flexible filtering features. Filtering is
4616used for both input and output of the routing information. Once
4617filtering is defined, it can be applied in any direction.
4618
4619* Menu:
4620
4621* IP Access List::
4622* IP Prefix List::
4623
4624
4625File: quagga.info, Node: IP Access List, Next: IP Prefix List, Up: Filtering
4626
462712.1 IP Access List
4628===================
4629
4630 -- Command: access-list NAME permit IPV4-NETWORK
4631 -- Command: access-list NAME deny IPV4-NETWORK
4632
4633 Basic filtering is done by `access-list' as shown in the following
4634example.
4635
4636 access-list filter deny 10.0.0.0/9
4637 access-list filter permit 10.0.0.0/8
4638
4639
4640File: quagga.info, Node: IP Prefix List, Prev: IP Access List, Up: Filtering
4641
464212.2 IP Prefix List
4643===================
4644
4645`ip prefix-list' provides the most powerful prefix based filtering
4646mechanism. In addition to `access-list' functionality, `ip
4647prefix-list' has prefix length range specification and sequential
4648number specification. You can add or delete prefix based filters to
4649arbitrary points of prefix-list using sequential number specification.
4650
4651 If no ip prefix-list is specified, it acts as permit. If `ip
4652prefix-list' is defined, and no match is found, default deny is applied.
4653
4654 -- Command: ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]
4655 -- Command: ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le
4656LEN] [ge LEN]
4657 You can create `ip prefix-list' using above commands.
4658
4659 seq
4660 seq NUMBER can be set either automatically or manually. In
4661 the case that sequential numbers are set manually, the user
4662 may pick any number less than 4294967295. In the case that
4663 sequential number are set automatically, the sequential
4664 number will increase by a unit of five (5) per list. If a
4665 list with no specified sequential number is created after a
4666 list with a specified sequential number, the list will
4667 automatically pick the next multiple of five (5) as the list
4668 number. For example, if a list with number 2 already exists
4669 and a new list with no specified number is created, the next
4670 list will be numbered 5. If lists 2 and 7 already exist and
4671 a new list with no specified number is created, the new list
4672 will be numbered 10.
4673
4674 le
4675 `le' command specifies prefix length. The prefix list will be
4676 applied if the prefix length is less than or equal to the le
4677 prefix length.
4678
4679 ge
4680 `ge' command specifies prefix length. The prefix list will be
4681 applied if the prefix length is greater than or equal to the
4682 ge prefix length.
4683
4684
4685
4686 Less than or equal to prefix numbers and greater than or equal to
4687prefix numbers can be used together. The order of the le and ge
4688commands does not matter.
4689
4690 If a prefix list with a different sequential number but with the
4691exact same rules as a previous list is created, an error will result.
4692However, in the case that the sequential number and the rules are
4693exactly similar, no error will result.
4694
4695 If a list with the same sequential number as a previous list is
4696created, the new list will overwrite the old list.
4697
4698 Matching of IP Prefix is performed from the smaller sequential
4699number to the larger. The matching will stop once any rule has been
4700applied.
4701
4702 In the case of no le or ge command, the prefix length must match
4703exactly the length specified in the prefix list.
4704
4705 -- Command: no ip prefix-list NAME
4706
4707* Menu:
4708
4709* ip prefix-list description::
4710* ip prefix-list sequential number control::
4711* Showing ip prefix-list::
4712* Clear counter of ip prefix-list::
4713
4714
4715File: quagga.info, Node: ip prefix-list description, Next: ip prefix-list sequential number control, Up: IP Prefix List
4716
471712.2.1 ip prefix-list description
4718---------------------------------
4719
4720 -- Command: ip prefix-list NAME description DESC
4721 Descriptions may be added to prefix lists. This command adds a
4722 description to the prefix list.
4723
4724 -- Command: no ip prefix-list NAME description [DESC]
4725 Deletes the description from a prefix list. It is possible to use
4726 the command without the full description.
4727
4728
4729File: quagga.info, Node: ip prefix-list sequential number control, Next: Showing ip prefix-list, Prev: ip prefix-list description, Up: IP Prefix List
4730
473112.2.2 ip prefix-list sequential number control
4732-----------------------------------------------
4733
4734 -- Command: ip prefix-list sequence-number
4735 With this command, the IP prefix list sequential number is
4736 displayed. This is the default behavior.
4737
4738 -- Command: no ip prefix-list sequence-number
4739 With this command, the IP prefix list sequential number is not
4740 displayed.
4741
4742
4743File: 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
4744
474512.2.3 Showing ip prefix-list
4746-----------------------------
4747
4748 -- Command: show ip prefix-list
4749 Display all IP prefix lists.
4750
4751 -- Command: show ip prefix-list NAME
4752 Show IP prefix list can be used with a prefix list name.
4753
4754 -- Command: show ip prefix-list NAME seq NUM
4755 Show IP prefix list can be used with a prefix list name and
4756 sequential number.
4757
4758 -- Command: show ip prefix-list NAME A.B.C.D/M
4759 If the command longer is used, all prefix lists with prefix
4760 lengths equal to or longer than the specified length will be
4761 displayed. If the command first match is used, the first prefix
4762 length match will be displayed.
4763
4764 -- Command: show ip prefix-list NAME A.B.C.D/M longer
4765
4766 -- Command: show ip prefix-list NAME A.B.C.D/M first-match
4767
4768 -- Command: show ip prefix-list summary
4769
4770 -- Command: show ip prefix-list summary NAME
4771
4772 -- Command: show ip prefix-list detail
4773
4774 -- Command: show ip prefix-list detail NAME
4775
4776
4777File: quagga.info, Node: Clear counter of ip prefix-list, Prev: Showing ip prefix-list, Up: IP Prefix List
4778
477912.2.4 Clear counter of ip prefix-list
4780--------------------------------------
4781
4782 -- Command: clear ip prefix-list
4783 Clears the counters of all IP prefix lists. Clear IP Prefix List
4784 can be used with a specified name and prefix.
4785
4786 -- Command: clear ip prefix-list NAME
4787
4788 -- Command: clear ip prefix-list NAME A.B.C.D/M
4789
4790
4791File: quagga.info, Node: Route Map, Next: IPv6 Support, Prev: Filtering, Up: Top
4792
479313 Route Map
4794************
4795
4796Route map is a very useful function in zebra. There is a match and set
4797statement permitted in a route map.
4798
4799 route-map test permit 10
4800 match ip address 10
4801 set local-preference 200
4802
4803 This means that if a route matches ip access-list number 10 it's
4804local-preference value is set to 200.
4805
4806* Menu:
4807
4808* Route Map Command::
4809* Route Map Match Command::
4810* Route Map Set Command::
4811
4812
4813File: quagga.info, Node: Route Map Command, Next: Route Map Match Command, Up: Route Map
4814
481513.1 Route Map Command
4816======================
4817
4818 -- Command: route-map ROUTE-MAP-NAME permit PRIORITY
4819
4820
4821File: quagga.info, Node: Route Map Match Command, Next: Route Map Set Command, Prev: Route Map Command, Up: Route Map
4822
482313.2 Route Map Match Command
4824============================
4825
4826 -- Route-map Command: match ip address ACCESS_LIST
4827 Matches the specified ACCESS_LIST
4828
4829 -- Route-map Command: match ip next-hop IPV4_ADDR
4830 Matches the specified IPV4_ADDR.
4831
4832 -- Route-map Command: match aspath AS_PATH
4833 Matches the specified AS_PATH.
4834
4835 -- Route-map Command: match metric METRIC
4836 Matches the specified METRIC.
4837
4838 -- Route-map Command: match community COMMUNITY_LIST
4839 Matches the specified COMMUNITY_LIST
4840
4841
4842File: quagga.info, Node: Route Map Set Command, Prev: Route Map Match Command, Up: Route Map
4843
484413.3 Route Map Set Command
4845==========================
4846
4847 -- Route-map Command: set ip next-hop IPV4_ADDRESS
4848 Set the BGP nexthop address.
4849
4850 -- Route-map Command: set local-preference LOCAL_PREF
4851 Set the BGP local preference.
4852
4853 -- Route-map Command: set weight WEIGHT
4854 Set the route's weight.
4855
4856 -- Route-map Command: set metric METRIC
4857 Set the BGP attribute MED.
4858
4859 -- Route-map Command: set as-path prepend AS_PATH
4860 Set the BGP AS path to prepend.
4861
4862 -- Route-map Command: set community COMMUNITY
4863 Set the BGP community attribute.
4864
4865 -- Route-map Command: set ipv6 next-hop global IPV6_ADDRESS
4866 Set the BGP-4+ global IPv6 nexthop address.
4867
4868 -- Route-map Command: set ipv6 next-hop local IPV6_ADDRESS
4869 Set the BGP-4+ link local IPv6 nexthop address.
4870
4871
4872File: quagga.info, Node: IPv6 Support, Next: Kernel Interface, Prev: Route Map, Up: Top
4873
487414 IPv6 Support
4875***************
4876
4877Quagga fully supports IPv6 routing. As described so far, Quagga
4878supports RIPng, OSPFv3 and BGP-4+. You can give IPv6 addresses to an
4879interface and configure static IPv6 routing information. Quagga IPv6
4880also provides automatic address configuration via a feature called
4881`address auto configuration'. To do it, the router must send router
4882advertisement messages to the all nodes that exist on the network.
4883
4884* Menu:
4885
4886* Router Advertisement::
4887
4888
4889File: quagga.info, Node: Router Advertisement, Up: IPv6 Support
4890
489114.1 Router Advertisement
4892=========================
4893
4894 -- Interface Command: no ipv6 nd suppress-ra
4895 Send router advertisment messages.
4896
4897 -- Interface Command: ipv6 nd suppress-ra
4898 Don't send router advertisment messages.
4899
4900 -- Interface Command: ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME]
paulbbd938e2005-04-02 10:18:42 +00004901[PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]
paul56d1d202004-11-15 21:56:53 +00004902 Configuring the IPv6 prefix to include in router advertisements.
4903 Several prefix specific optional parameters and flags may follow:
4904 * VALID-LIFETIME - the length of time in seconds during what
4905 the prefix is valid for the purpose of on-link determination.
4906 Value INFINITE represents infinity (i.e. a value of all one
4907 bits (`0xffffffff')).
4908
4909 Range: `<0-4294967295>' Default: `2592000'
4910
4911 * PREFERRED-LIFETIME - the length of time in seconds during
4912 what addresses generated from the prefix remain preferred.
4913 Value INFINITE represents infinity.
4914
4915 Range: `<0-4294967295>' Default: `604800'
4916
4917 * OFF-LINK - indicates that advertisement makes no statement
4918 about on-link or off-link properties of the prefix.
4919
4920 Default: not set, i.e. this prefix can be used for on-link
4921 determination.
4922
4923 * NO-AUTOCONFIG - indicates to hosts on the local link that the
4924 specified prefix cannot be used for IPv6 autoconfiguration.
4925
4926 Default: not set, i.e. prefix can be used for
4927 autoconfiguration.
4928
paulbbd938e2005-04-02 10:18:42 +00004929 * ROUTER-ADDRESS - indicates to hosts on the local link that
4930 the specified prefix contains a complete IP address by
4931 setting R flag.
4932
4933 Default: not set, i.e. hosts do not assume a complete IP
4934 address is placed.
4935
paul56d1d202004-11-15 21:56:53 +00004936 -- Interface Command: ipv6 nd ra-interval SECONDS
4937 -- Interface Command: no ipv6 nd ra-interval
4938 The maximum time allowed between sending unsolicited multicast
4939 router advertisements from the interface, in seconds. Must be no
4940 less than 3 seconds.
4941
4942 Default: `600'
4943
paulbbd938e2005-04-02 10:18:42 +00004944 -- Interface Command: ipv6 nd ra-interval msec MILLISECONDS
4945 -- Interface Command: no ipv6 nd ra-interval msec
4946 The maximum time allowed between sending unsolicited multicast
4947 router advertisements from the interface, in milliseconds. Must be
4948 no less than 30 milliseconds.
4949
4950 Default: `600000'
4951
paul56d1d202004-11-15 21:56:53 +00004952 -- Interface Command: ipv6 nd ra-lifetime SECONDS
4953 -- Interface Command: no ipv6 nd ra-lifetime
4954 The value to be placed in the Router Lifetime field of router
4955 advertisements sent from the interface, in seconds. Indicates the
4956 usefulness of the router as a default router on this interface.
4957 Setting the value to zero indicates that the router should not be
4958 considered a default router on this interface. Must be either
4959 zero or between value specified with IPV6 ND RA-INTERVAL (or
4960 default) and 9000 seconds.
4961
4962 Default: `1800'
4963
4964 -- Interface Command: ipv6 nd reachable-time MILLISECONDS
4965 -- Interface Command: no ipv6 nd reachable-time
4966 The value to be placed in the Reachable Time field in the Router
4967 Advertisement messages sent by the router, in milliseconds. The
4968 configured time enables the router to detect unavailable
4969 neighbors. The value zero means unspecified (by this router). Must
4970 be no greater than `3,600,000' milliseconds (1 hour).
4971
4972 Default: `0'
4973
4974 -- Interface Command: ipv6 nd managed-config-flag
4975 -- Interface Command: no ipv6 nd managed-config-flag
4976 Set/unset flag in IPv6 router advertisements which indicates to
4977 hosts that they should use managed (stateful) protocol for
4978 addresses autoconfiguration in addition to any addresses
4979 autoconfigured using stateless address autoconfiguration.
4980
4981 Default: not set
4982
4983 -- Interface Command: ipv6 nd other-config-flag
4984 -- Interface Command: no ipv6 nd other-config-flag
4985 Set/unset flag in IPv6 router advertisements which indicates to
4986 hosts that they should use administered (stateful) protocol to
4987 obtain autoconfiguration information other than addresses.
4988
4989 Default: not set
4990
paulbbd938e2005-04-02 10:18:42 +00004991 -- Interface Command: ipv6 nd home-agent-config-flag
4992 -- Interface Command: no ipv6 nd home-agent-config-flag
4993 Set/unset flag in IPv6 router advertisements which indicates to
4994 hosts that the router acts as a Home Agent and includes a Home
4995 Agent Option.
4996
4997 Default: not set
4998
4999 -- Interface Command: ipv6 nd home-agent-preference
5000 -- Interface Command: no ipv6 nd home-agent-preference
5001 The value to be placed in Home Agent Option, when Home Agent
5002 config flag is set, which indicates to hosts Home Agent preference.
5003
5004 Default: 0
5005
5006 -- Interface Command: ipv6 nd home-agent-lifetime
5007 -- Interface Command: no ipv6 nd home-agent-lifetime
5008 The value to be placed in Home Agent Option, when Home Agent
5009 config flag is set, which indicates to hosts Home Agent Lifetime.
5010 A value of 0 means to place Router Lifetime value.
5011
5012 Default: 0
5013
5014 -- Interface Command: ipv6 nd adv-interval-option
5015 -- Interface Command: no ipv6 nd adv-interval-option
5016 Include an Advertisement Interval option which indicates to hosts
5017 the maximum time, in milliseconds, between successive unsolicited
5018 Router Advertisements.
5019
5020 Default: not set
5021
paul56d1d202004-11-15 21:56:53 +00005022 interface eth0
5023 no ipv6 nd suppress-ra
5024 ipv6 nd prefix 2001:0DB8:5009::/64
5025
5026 For more information see `RFC2462 (IPv6 Stateless Address
paulbbd938e2005-04-02 10:18:42 +00005027Autoconfiguration)' , `RFC2461 (Neighbor Discovery for IP Version 6
5028(IPv6))' and `RFC3775 (Mobility Support in IPv6 (Mobile IPv6))'.
paul56d1d202004-11-15 21:56:53 +00005029
5030
5031File: quagga.info, Node: Kernel Interface, Next: SNMP Support, Prev: IPv6 Support, Up: Top
5032
503315 Kernel Interface
5034*******************
5035
5036There are several different methods for reading kernel routing table
5037information, updating kernel routing tables, and for looking up
5038interfaces.
5039
5040`ioctl'
5041 The `ioctl' method is a very traditional way for reading or writing
5042 kernel information. `ioctl' can be used for looking up interfaces
5043 and for modifying interface addresses, flags, mtu settings and
5044 other types of information. Also, `ioctl' can insert and delete
5045 kernel routing table entries. It will soon be available on almost
5046 any platform which zebra supports, but it is a little bit ugly
5047 thus far, so if a better method is supported by the kernel, zebra
5048 will use that.
5049
5050`sysctl'
5051 `sysctl' can lookup kernel information using MIB (Management
5052 Information Base) syntax. Normally, it only provides a way of
5053 getting information from the kernel. So one would usually want to
5054 change kernel information using another method such as `ioctl'.
5055
5056`proc filesystem'
5057 `proc filesystem' provides an easy way of getting kernel
5058 information.
5059
5060`routing socket'
5061
5062`netlink'
5063 On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
5064 communication support called `netlink'. It makes asynchronous
5065 communication between kernel and Quagga possible, similar to a
5066 routing socket on BSD systems.
5067
5068 Before you use this feature, be sure to select (in kernel
5069 configuration) the kernel/netlink support option 'Kernel/User
5070 network link driver' and 'Routing messages'.
5071
5072 Today, the /dev/route special device file is obsolete. Netlink
5073 communication is done by reading/writing over netlink socket.
5074
5075 After the kernel configuration, please reconfigure and rebuild
5076 Quagga. You can use netlink as a dynamic routing update channel
5077 between Quagga and the kernel.
5078
5079
5080File: quagga.info, Node: SNMP Support, Next: Zebra Protocol, Prev: Kernel Interface, Up: Top
5081
508216 SNMP Support
5083***************
5084
5085SNMP (Simple Network Managing Protocol) is a widely implemented feature
paula3957e32005-11-04 12:48:25 +00005086for collecting network information from router and/or host. Quagga
paul56d1d202004-11-15 21:56:53 +00005087itself does not support SNMP agent (server daemon) functionality but is
paula3957e32005-11-04 12:48:25 +00005088able to connect to a SNMP agent using the SMUX protocol (`RFC1227') and
paul56d1d202004-11-15 21:56:53 +00005089make the routing protocol MIBs available through it.
5090
5091* Menu:
5092
5093* Getting and installing an SNMP agent::
5094* SMUX configuration::
5095* MIB and command reference::
paula3957e32005-11-04 12:48:25 +00005096* Handling SNMP Traps::
paul56d1d202004-11-15 21:56:53 +00005097
5098
5099File: quagga.info, Node: Getting and installing an SNMP agent, Next: SMUX configuration, Up: SNMP Support
5100
510116.1 Getting and installing an SNMP agent
5102=========================================
5103
5104There are several SNMP agent which support SMUX. We recommend to use
5105the latest version of `net-snmp' which was formerly known as `ucd-snmp'.
5106It is free and open software and available at `http://www.net-snmp.org/'
5107and as binary package for most Linux distributions. `net-snmp' has to
5108be compiled with `--with-mib-modules=smux' to be able to accept
5109connections from Quagga.
5110
5111
5112File: quagga.info, Node: SMUX configuration, Next: MIB and command reference, Prev: Getting and installing an SNMP agent, Up: SNMP Support
5113
511416.2 SMUX configuration
5115=======================
5116
5117To enable SMUX protocol support, Quagga must have been build with the
5118`--enable-snmp' option.
5119
5120 A separate connection has then to be established between between the
5121SNMP agent (snmpd) and each of the Quagga daemons. This connections
5122each use different OID numbers and passwords. Be aware that this OID
5123number is not the one that is used in queries by clients, it is solely
5124used for the intercommunication of the daemons.
5125
5126 In the following example the ospfd daemon will be connected to the
5127snmpd daemon using the password "quagga_ospfd". For testing it is
5128recommending to take exactly the below snmpd.conf as wrong access
5129restrictions can be hard to debug.
5130
5131 /etc/snmp/snmpd.conf:
5132 #
5133 # example access restrictions setup
5134 #
5135 com2sec readonly default public
5136 group MyROGroup v1 readonly
5137 view all included .1 80
5138 access MyROGroup "" any noauth exact all none none
5139 #
5140 # the following line is relevant for Quagga
5141 #
5142 smuxpeer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
5143
5144 /etc/quagga/ospf:
5145 ! ... the rest of ospfd.conf has been omitted for clarity ...
5146 !
5147 smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
5148 !
5149
5150 After restarting snmpd and quagga, a successful connection can be
5151verified in the syslog and by querying the SNMP daemon:
5152
5153 snmpd[12300]: [smux_accept] accepted fd 12 from 127.0.0.1:36255
5154 snmpd[12300]: accepted smux peer: \
5155 oid GNOME-PRODUCT-ZEBRA-MIB::ospfd, quagga-0.96.5
5156
5157 # snmpwalk -c public -v1 localhost .1.3.6.1.2.1.14.1.1
5158 OSPF-MIB::ospfRouterId.0 = IpAddress: 192.168.42.109
5159
5160 Be warned that the current version (5.1.1) of the Net-SNMP daemon
5161writes a line for every SNMP connect to the syslog which can lead to
5162enormous log file sizes. If that is a problem you should consider to
5163patch snmpd and comment out the troublesome `snmp_log()' line in the
5164function `netsnmp_agent_check_packet()' in `agent/snmp_agent.c'.
5165
5166
paula3957e32005-11-04 12:48:25 +00005167File: quagga.info, Node: MIB and command reference, Next: Handling SNMP Traps, Prev: SMUX configuration, Up: SNMP Support
paul56d1d202004-11-15 21:56:53 +00005168
516916.3 MIB and command reference
5170==============================
5171
5172The following OID numbers are used for the interprocess communication
5173of snmpd and the Quagga daemons. Sadly, SNMP has not been implemented
5174in all daemons yet.
5175 (OIDs below .iso.org.dod.internet.private.enterprises)
5176 zebra .1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv
5177 bgpd .1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd
5178 ripd .1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd
5179 ospfd .1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zebra.ospfd
5180 ospf6d .1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d
5181
5182 The following OID numbers are used for querying the SNMP daemon by a
5183client:
5184 zebra .1.3.6.1.2.1.4.24 .iso.org.dot.internet.mgmt.mib-2.ip.ipForward
5185 ospfd .1.3.6.1.2.1.14 .iso.org.dot.internet.mgmt.mib-2.ospf
5186 bgpd .1.3.6.1.2.1.15 .iso.org.dot.internet.mgmt.mib-2.bgp
5187 ripd .1.3.6.1.2.1.23 .iso.org.dot.internet.mgmt.mib-2.rip2
5188 ospf6d .1.3.6.1.3.102 .iso.org.dod.internet.experimental.ospfv3
5189
5190 The following syntax is understood by the Quagga daemons for
5191configuring SNMP:
5192
5193 -- Command: smux peer OID
5194 -- Command: no smux peer OID
5195
5196 -- Command: smux peer OID PASSWORD
5197 -- Command: no smux peer OID PASSWORD
5198
5199
paula3957e32005-11-04 12:48:25 +00005200File: quagga.info, Node: Handling SNMP Traps, Prev: MIB and command reference, Up: SNMP Support
5201
520216.4 Handling SNMP Traps
5203========================
5204
5205To handle snmp traps make sure your snmp setup of quagga works
5206correctly as described in the quagga documentation in *Note SNMP
5207Support::.
5208
5209 The BGP4 mib will send traps on peer up/down events. These should be
5210visible in your snmp logs with a message similar to:
5211
5212 `snmpd[13733]: Got trap from peer on fd 14'
5213
5214 To react on these traps they should be handled by a trapsink.
5215Configure your trapsink by adding the following lines to
5216`/etc/snmpd/snmpd.conf':
5217
5218 # send traps to the snmptrapd on localhost
5219 trapsink localhost
5220
5221 This will send all traps to an snmptrapd running on localhost. You
5222can of course also use a dedicated management station to catch traps.
5223Configure the snmptrapd daemon by adding the following line to
5224`/etc/snmpd/snmptrapd.conf':
5225
5226 traphandle .1.3.6.1.4.1.3317.1.2.2 /etc/snmp/snmptrap_handle.sh
5227
5228 This will use the bash script `/etc/snmp/snmptrap_handle.sh' to
5229handle the BGP4 traps. To add traps for other protocol daemons, lookup
5230their appropriate OID from their mib. (For additional information about
5231which traps are supported by your mib, lookup the mib on
5232`http://www.oidview.com/mibs/detail.html').
5233
5234 Make sure snmptrapd is started.
5235
5236 The snmptrap_handle.sh script I personally use for handling BGP4
5237traps is below. You can of course do all sorts of things when handling
5238traps, like sound a siren, have your display flash, etc., be creative
5239;).
5240
5241
5242 #!/bin/bash
5243
5244 # routers name
5245 ROUTER=`hostname -s`
5246
5247 #email address use to sent out notification
5248 EMAILADDR="john@doe.com"
5249 #email address used (allongside above) where warnings should be sent
5250 EMAILADDR_WARN="sms-john@doe.com"
5251
5252 # type of notification
5253 TYPE="Notice"
5254
5255 # local snmp community for getting AS belonging to peer
5256 COMMUNITY="<community>"
5257
5258 # if a peer address is in $WARN_PEERS a warning should be sent
5259 WARN_PEERS="192.0.2.1"
5260
5261
5262 # get stdin
5263 INPUT=`cat -`
5264
5265 # get some vars from stdin
5266 uptime=`echo $INPUT | cut -d' ' -f5`
5267 peer=`echo $INPUT | cut -d' ' -f8 | sed -e 's/SNMPv2-SMI::mib-2.15.3.1.14.//g'`
5268 peerstate=`echo $INPUT | cut -d' ' -f13`
5269 errorcode=`echo $INPUT | cut -d' ' -f9 | sed -e 's/\"//g'`
5270 suberrorcode=`echo $INPUT | cut -d' ' -f10 | sed -e 's/\"//g'`
5271 remoteas=`snmpget -v2c -c $COMMUNITY localhost SNMPv2-SMI::mib-2.15.3.1.9.$peer | cut -d' ' -f4`
5272
5273 WHOISINFO=`whois -h whois.ripe.net " -r AS$remoteas" | egrep '(as-name|descr)'`
5274 asname=`echo "$WHOISINFO" | grep "^as-name:" | sed -e 's/^as-name://g' -e 's/ //g' -e 's/^ //g' | uniq`
5275 asdescr=`echo "$WHOISINFO" | grep "^descr:" | sed -e 's/^descr://g' -e 's/ //g' -e 's/^ //g' | uniq`
5276
5277 # if peer address is in $WARN_PEER, the email should also
5278 # be sent to $EMAILADDR_WARN
5279 for ip in $WARN_PEERS; do
5280 if [ "x$ip" == "x$peer" ]; then
5281 EMAILADDR="$EMAILADDR,$EMAILADDR_WARN"
5282 TYPE="WARNING"
5283 break
5284 fi
5285 done
5286
5287
5288 # convert peer state
5289 case "$peerstate" in
5290 1) peerstate="Idle" ;;
5291 2) peerstate="Connect" ;;
5292 3) peerstate="Active" ;;
5293 4) peerstate="Opensent" ;;
5294 5) peerstate="Openconfirm" ;;
5295 6) peerstate="Established" ;;
5296 *) peerstate="Unknown" ;;
5297 esac
5298
5299 # get textual messages for errors
5300 case "$errorcode" in
5301 00)
5302 error="No error"
5303 suberror=""
5304 ;;
5305 01)
5306 error="Message Header Error"
5307 case "$suberrorcode" in
5308 01) suberror="Connection Not Synchronized" ;;
5309 02) suberror="Bad Message Length" ;;
5310 03) suberror="Bad Message Type" ;;
5311 *) suberror="Unknown" ;;
5312 esac
5313 ;;
5314 02)
5315 error="OPEN Message Error"
5316 case "$suberrorcode" in
5317 01) suberror="Unsupported Version Number" ;;
5318 02) suberror="Bad Peer AS" ;;
5319 03) suberror="Bad BGP Identifier" ;;
5320 04) suberror="Unsupported Optional Parameter" ;;
5321 05) suberror="Authentication Failure" ;;
5322 06) suberror="Unacceptable Hold Time" ;;
5323 *) suberror="Unknown" ;;
5324 esac
5325 ;;
5326 03)
5327 error="UPDATE Message Error"
5328 case "$suberrorcode" in
5329 01) suberror="Malformed Attribute List" ;;
5330 02) suberror="Unrecognized Well-known Attribute" ;;
5331 03) suberror="Missing Well-known Attribute" ;;
5332 04) suberror="Attribute Flags Error" ;;
5333 05) suberror="Attribute Length Error" ;;
5334 06) suberror="Invalid ORIGIN Attribute" ;;
5335 07) suberror="AS Routing Loop" ;;
5336 08) suberror="Invalid NEXT_HOP Attribute" ;;
5337 09) suberror="Optional Attribute Error" ;;
5338 10) suberror="Invalid Network Field" ;;
5339 11) suberror="Malformed AS_PATH" ;;
5340 *) suberror="Unknown" ;;
5341 esac
5342 ;;
5343 04)
5344 error="Hold Timer Expired"
5345 suberror=""
5346 ;;
5347 05)
5348 error="Finite State Machine Error"
5349 suberror=""
5350 ;;
5351 06)
5352 error="Cease"
5353 case "$suberrorcode" in
5354 01) suberror="Maximum Number of Prefixes Reached" ;;
5355 02) suberror="Administratively Shutdown" ;;
5356 03) suberror="Peer Unconfigured" ;;
5357 04) suberror="Administratively Reset" ;;
5358 05) suberror="Connection Rejected" ;;
5359 06) suberror="Other Configuration Change" ;;
5360 07) suberror="Connection collision resolution" ;;
5361 08) suberror="Out of Resource" ;;
5362 09) suberror="MAX" ;;
5363 *) suberror="Unknown" ;;
5364 esac
5365 ;;
5366 *)
5367 error="Unknown"
5368 suberror=""
5369 ;;
5370 esac
5371
5372 # create textual message from errorcodes
5373 if [ "x$suberror" == "x" ]; then
5374 NOTIFY="$errorcode ($error)"
5375 else
5376 NOTIFY="$errorcode/$suberrorcode ($error/$suberror)"
5377 fi
5378
5379
5380 # form a decent subject
5381 SUBJECT="$TYPE: $ROUTER [bgp] $peer is $peerstate: $NOTIFY"
5382 # create the email body
5383 MAIL=`cat << EOF
5384 BGP notification on router $ROUTER.
5385
5386 Peer: $peer
5387 AS: $remoteas
5388 New state: $peerstate
5389 Notification: $NOTIFY
5390
5391 Info:
5392 $asname
5393 $asdescr
5394
5395 Snmpd uptime: $uptime
5396 EOF`
5397
5398 # mail the notification
5399 echo "$MAIL" | mail -s "$SUBJECT" $EMAILADDR
5400
5401
paul56d1d202004-11-15 21:56:53 +00005402File: quagga.info, Node: Zebra Protocol, Next: Packet Binary Dump Format, Prev: SNMP Support, Up: Top
5403
5404Appendix A Zebra Protocol
5405*************************
5406
5407Zebra Protocol is a protocol which is used between protocol daemon and
5408zebra. Each protocol daemon sends selected routes to zebra daemon.
5409Then zebra manages which route is installed into the forwarding table.
5410
5411 Zebra Protocol is a TCP-based protocol. Below is common header of
5412Zebra Protocol.
5413
5414 0 1 2 3
5415 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
5416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5417 | Length (2) | Command (1) |
5418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5419
5420 Length is total packet length including this header length. So
5421minimum length is three. Command is Zebra Protocol command.
5422
5423 ZEBRA_INTERFACE_ADD 1
5424 ZEBRA_INTERFACE_DELETE 2
5425 ZEBRA_INTERFACE_ADDRESS_ADD 3
5426 ZEBRA_INTERFACE_ADDRESS_DELETE 4
5427 ZEBRA_INTERFACE_UP 5
5428 ZEBRA_INTERFACE_DOWN 6
5429 ZEBRA_IPV4_ROUTE_ADD 7
5430 ZEBRA_IPV4_ROUTE_DELETE 8
5431 ZEBRA_IPV6_ROUTE_ADD 9
5432 ZEBRA_IPV6_ROUTE_DELETE 10
5433 ZEBRA_REDISTRIBUTE_ADD 11
5434 ZEBRA_REDISTRIBUTE_DELETE 12
5435 ZEBRA_REDISTRIBUTE_DEFAULT_ADD 13
5436 ZEBRA_REDISTRIBUTE_DEFAULT_DELETE 14
5437 ZEBRA_IPV4_NEXTHOP_LOOKUP 15
5438 ZEBRA_IPV6_NEXTHOP_LOOKUP 16
5439
5440 0 1 2 3
5441 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
5442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5443 | Type | Flags |
5444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5445
5446
5447File: quagga.info, Node: Packet Binary Dump Format, Next: Command Index, Prev: Zebra Protocol, Up: Top
5448
5449Appendix B Packet Binary Dump Format
5450************************************
5451
5452Quagga can dump routing protocol packet into file with a binary format
5453(*note Dump BGP packets and table::).
5454
5455 It seems to be better that we share the MRT's header format for
5456backward compatibility with MRT's dump logs. We should also define the
5457binary format excluding the header, because we must support both IP v4
5458and v6 addresses as socket addresses and / or routing entries.
5459
5460 In the last meeting, we discussed to have a version field in the
5461header. But Masaki told us that we can define new `type' value rather
5462than having a `version' field, and it seems to be better because we
5463don't need to change header format.
5464
5465 Here is the common header format. This is same as that of MRT.
5466
5467 0 1 2 3
5468 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
5469 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5470 | Time |
5471 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5472 | Type | Subtype |
5473 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5474 | Length |
5475 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5476
5477 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
5478Address Family == IP (version 4)
5479
5480 0 1 2 3
5481 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
5482 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5483 | Source AS number | Destination AS number |
5484 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5485 | Interface Index | Address Family |
5486 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5487 | Source IP address |
5488 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5489 | Destination IP address |
5490 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5491 | Old State | New State |
5492 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5493
5494 Where State is the value defined in RFC1771.
5495
5496 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_STATE_CHANGE, and
5497Address Family == IP version 6
5498
5499 0 1 2 3
5500 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
5501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5502 | Source AS number | Destination AS number |
5503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5504 | Interface Index | Address Family |
5505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5506 | Source IP address |
5507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5508 | Source IP address (Cont'd) |
5509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5510 | Source IP address (Cont'd) |
5511 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5512 | Source IP address (Cont'd) |
5513 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5514 | Destination IP address |
5515 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5516 | Destination IP address (Cont'd) |
5517 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5518 | Destination IP address (Cont'd) |
5519 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5520 | Destination IP address (Cont'd) |
5521 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5522 | Old State | New State |
5523 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5524
5525 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and
5526Address Family == IP (version 4)
5527
5528 0 1 2 3
5529 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
5530 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5531 | Source AS number | Destination AS number |
5532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5533 | Interface Index | Address Family |
5534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5535 | Source IP address |
5536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5537 | Destination IP address |
5538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5539 | BGP Message Packet |
5540 | |
5541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5542
5543 Where BGP Message Packet is the whole contents of the BGP4 message
5544including header portion.
5545
5546 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_MESSAGE, and
5547Address Family == IP version 6
5548
5549 0 1 2 3
5550 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
5551 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5552 | Source AS number | Destination AS number |
5553 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5554 | Interface Index | Address Family |
5555 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5556 | Source IP address |
5557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5558 | Source IP address (Cont'd) |
5559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5560 | Source IP address (Cont'd) |
5561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5562 | Source IP address (Cont'd) |
5563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5564 | Destination IP address |
5565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5566 | Destination IP address (Cont'd) |
5567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5568 | Destination IP address (Cont'd) |
5569 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5570 | Destination IP address (Cont'd) |
5571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5572 | BGP Message Packet |
5573 | |
5574 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5575
5576 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address
5577Family == IP (version 4)
5578
5579 0 1 2 3
5580 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
5581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5582 | View # | Status |
5583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5584 | Time Last Change |
5585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5586 | Address Family | SAFI | Next-Hop-Len |
5587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5588 | Next Hop Address |
5589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5590 | Prefix Length | Address Prefix [variable] |
5591 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5592 | Attribute Length |
5593 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5594 | BGP Attribute [variable length] |
5595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5596
5597 If `type' is PROTOCOL_BGP4MP, `subtype' is BGP4MP_ENTRY, and Address
5598Family == IP version 6
5599
5600 0 1 2 3
5601 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
5602 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5603 | View # | Status |
5604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5605 | Time Last Change |
5606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5607 | Address Family | SAFI | Next-Hop-Len |
5608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5609 | Next Hop Address |
5610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5611 | Next Hop Address (Cont'd) |
5612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5613 | Next Hop Address (Cont'd) |
5614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5615 | Next Hop Address (Cont'd) |
5616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5617 | Prefix Length | Address Prefix [variable] |
5618 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5619 | Address Prefix (cont'd) [variable] |
5620 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5621 | Attribute Length |
5622 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5623 | BGP Attribute [variable length] |
5624 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5625
5626 BGP4 Attribute must not contain MP_UNREACH_NLRI. If BGP Attribute
5627has MP_REACH_NLRI field, it must has zero length NLRI, e.g.,
5628MP_REACH_NLRI has only Address Family, SAFI and next-hop values.
5629
5630 If `type' is PROTOCOL_BGP4MP and `subtype' is BGP4MP_SNAPSHOT,
5631
5632 0 1 2 3
5633 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
5634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5635 | View # | File Name [variable] |
5636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5637
5638 The file specified in "File Name" contains all routing entries,
5639which are in the format of "subtype == BGP4MP_ENTRY".
5640
5641 Constants:
5642 /* type value */
5643 #define MSG_PROTOCOL_BGP4MP 16
5644 /* subtype value */
5645 #define BGP4MP_STATE_CHANGE 0
5646 #define BGP4MP_MESSAGE 1
5647 #define BGP4MP_ENTRY 2
5648 #define BGP4MP_SNAPSHOT 3
5649
5650
5651File: quagga.info, Node: Command Index, Next: VTY Key Index, Prev: Packet Binary Dump Format, Up: Top
5652
5653Command Index
5654*************
5655
5656�[index�]
5657* Menu:
5658
5659* access-class ACCESS-LIST: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005660 (line 128)
paul56d1d202004-11-15 21:56:53 +00005661* access-list NAME deny IPV4-NETWORK: IP Access List. (line 8)
5662* access-list NAME permit IPV4-NETWORK: IP Access List. (line 7)
5663* aggregate-address A.B.C.D/M: Route Aggregation. (line 7)
5664* aggregate-address A.B.C.D/M as-set: Route Aggregation. (line 10)
5665* aggregate-address A.B.C.D/M summary-only: Route Aggregation.
5666 (line 14)
paula3957e32005-11-04 12:48:25 +00005667* area <0-4294967295> authentication: OSPF area. (line 127)
paul56d1d202004-11-15 21:56:53 +00005668* area <0-4294967295> authentication message-digest: OSPF area.
paula3957e32005-11-04 12:48:25 +00005669 (line 134)
5670* area <0-4294967295> export-list NAME: OSPF area. (line 85)
5671* area <0-4294967295> filter-list prefix NAME in: OSPF area. (line 117)
5672* area <0-4294967295> filter-list prefix NAME out: OSPF area. (line 118)
5673* area <0-4294967295> import-list NAME: OSPF area. (line 109)
paul56d1d202004-11-15 21:56:53 +00005674* area <0-4294967295> range A.B.C.D/M: OSPF area. (line 8)
paula3957e32005-11-04 12:48:25 +00005675* area <0-4294967295> shortcut: OSPF area. (line 55)
5676* area <0-4294967295> stub: OSPF area. (line 62)
5677* area <0-4294967295> stub no-summary: OSPF area. (line 74)
5678* area <0-4294967295> virtual-link A.B.C.D: OSPF area. (line 50)
5679* area A.B.C.D authentication: OSPF area. (line 126)
5680* area A.B.C.D authentication message-digest: OSPF area. (line 133)
5681* area A.B.C.D default-cost <0-16777215>: OSPF area. (line 80)
5682* area A.B.C.D export-list NAME: OSPF area. (line 84)
5683* area A.B.C.D filter-list prefix NAME in: OSPF area. (line 115)
5684* area A.B.C.D filter-list prefix NAME out: OSPF area. (line 116)
5685* area A.B.C.D import-list NAME: OSPF area. (line 108)
paul56d1d202004-11-15 21:56:53 +00005686* area A.B.C.D range A.B.C.D/M: OSPF area. (line 7)
paula3957e32005-11-04 12:48:25 +00005687* area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area. (line 28)
paul56d1d202004-11-15 21:56:53 +00005688* area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area.
paula3957e32005-11-04 12:48:25 +00005689 (line 34)
5690* area A.B.C.D shortcut: OSPF area. (line 54)
5691* area A.B.C.D stub: OSPF area. (line 61)
5692* area A.B.C.D stub no-summary: OSPF area. (line 73)
5693* area A.B.C.D virtual-link A.B.C.D: OSPF area. (line 49)
5694* auto-cost reference-bandwidth <1-4294967>: OSPF router. (line 143)
paul56d1d202004-11-15 21:56:53 +00005695* bandwidth <1-10000000>: Interface Commands. (line 31)
5696* banner motd default: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005697 (line 110)
paulc7959912005-04-10 16:43:40 +00005698* bgp bestpath as-path confed: BGP decision process.
5699 (line 19)
paul56d1d202004-11-15 21:56:53 +00005700* bgp cluster-id A.B.C.D: Route Reflector. (line 7)
5701* bgp config-type cisco: Multiple instance. (line 20)
5702* bgp config-type zebra: Multiple instance. (line 49)
5703* bgp multiple-instance: Multiple instance. (line 10)
5704* bgp router-id A.B.C.D: BGP router. (line 22)
5705* call WORD: Commands for configuring a Route Server.
5706 (line 52)
5707* clear ip bgp PEER: More Show IP BGP. (line 25)
5708* clear ip bgp PEER soft in: More Show IP BGP. (line 28)
5709* clear ip prefix-list: Clear counter of ip prefix-list.
5710 (line 7)
5711* clear ip prefix-list NAME: Clear counter of ip prefix-list.
5712 (line 11)
5713* clear ip prefix-list NAME A.B.C.D/M: Clear counter of ip prefix-list.
5714 (line 13)
ajs274a4a42004-12-07 15:39:31 +00005715* configure terminal: Terminal Mode Commands.
5716 (line 13)
paul56d1d202004-11-15 21:56:53 +00005717* debug event: More Show IP BGP. (line 33)
5718* debug keepalive: More Show IP BGP. (line 37)
5719* debug ospf ism: Debugging OSPF. (line 12)
5720* debug ospf ism (status|events|timers): Debugging OSPF. (line 13)
5721* debug ospf lsa: Debugging OSPF. (line 22)
5722* debug ospf lsa (generate|flooding|refresh): Debugging OSPF. (line 23)
5723* debug ospf nsm: Debugging OSPF. (line 17)
5724* debug ospf nsm (status|events|timers): Debugging OSPF. (line 18)
5725* debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF.
5726 (line 8)
5727* debug ospf zebra: Debugging OSPF. (line 27)
5728* debug ospf zebra (interface|redistribute): Debugging OSPF. (line 28)
5729* debug rip events: RIP Debug Commands. (line 9)
5730* debug rip packet: RIP Debug Commands. (line 15)
5731* debug rip zebra: RIP Debug Commands. (line 22)
5732* debug ripng events: ripngd Terminal Mode Commands.
5733 (line 11)
5734* debug ripng packet: ripngd Terminal Mode Commands.
5735 (line 13)
5736* debug ripng zebra: ripngd Terminal Mode Commands.
5737 (line 15)
5738* debug update: More Show IP BGP. (line 35)
5739* default-information originate <1>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005740 (line 27)
paul56d1d202004-11-15 21:56:53 +00005741* default-information originate: How to Announce RIP route.
5742 (line 51)
5743* default-information originate always: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005744 (line 33)
paul56d1d202004-11-15 21:56:53 +00005745* default-information originate always metric <0-16777214>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005746 (line 35)
paul56d1d202004-11-15 21:56:53 +00005747* default-information originate always metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005748 (line 37)
paul56d1d202004-11-15 21:56:53 +00005749* default-information originate always metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005750 (line 39)
paul56d1d202004-11-15 21:56:53 +00005751* default-information originate metric <0-16777214>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005752 (line 28)
paul56d1d202004-11-15 21:56:53 +00005753* default-information originate metric <0-16777214> metric-type (1|2): Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005754 (line 30)
paul56d1d202004-11-15 21:56:53 +00005755* default-information originate metric <0-16777214> metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005756 (line 32)
paul56d1d202004-11-15 21:56:53 +00005757* default-metric <0-16777214>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005758 (line 52)
paul56d1d202004-11-15 21:56:53 +00005759* default-metric <1-16>: RIP Metric Manipulation.
5760 (line 11)
5761* description DESCRIPTION ...: Interface Commands. (line 24)
5762* distance <1-255> <1>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005763 (line 55)
paul56d1d202004-11-15 21:56:53 +00005764* distance <1-255>: RIP distance. (line 9)
5765* distance <1-255> A.B.C.D/M <1>: BGP distance. (line 12)
5766* distance <1-255> A.B.C.D/M: RIP distance. (line 13)
5767* distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance. (line 18)
5768* distance <1-255> A.B.C.D/M WORD: BGP distance. (line 13)
5769* distance bgp <1-255> <1-255> <1-255>: BGP distance. (line 7)
5770* distance ospf (intra-area|inter-area|external) <1-255>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005771 (line 59)
paul56d1d202004-11-15 21:56:53 +00005772* distribute-list ACCESS_LIST (in|out) IFNAME: ripngd Filtering Commands.
5773 (line 7)
5774* distribute-list ACCESS_LIST DIRECT IFNAME: Filtering RIP Routes.
5775 (line 9)
5776* distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00005777 (line 48)
paul56d1d202004-11-15 21:56:53 +00005778* distribute-list prefix PREFIX_LIST (in|out) IFNAME: Filtering RIP Routes.
5779 (line 32)
5780* dump bgp all PATH: Dump BGP packets and table.
5781 (line 7)
5782* dump bgp all PATH INTERVAL: Dump BGP packets and table.
5783 (line 8)
5784* dump bgp routes PATH: Dump BGP packets and table.
5785 (line 15)
5786* dump bgp updates PATH: Dump BGP packets and table.
5787 (line 11)
5788* dump bgp updates PATH INTERVAL: Dump BGP packets and table.
5789 (line 12)
5790* enable password PASSWORD: Basic Config Commands.
5791 (line 14)
5792* exec-timeout MINUTE: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005793 (line 116)
paul56d1d202004-11-15 21:56:53 +00005794* exec-timeout MINUTE SECOND: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005795 (line 117)
paul56d1d202004-11-15 21:56:53 +00005796* flush_timer TIME: ripngd Configuration.
5797 (line 12)
5798* hostname HOSTNAME: Basic Config Commands.
5799 (line 7)
5800* interface IFNAME: Interface Commands. (line 7)
5801* interface IFNAME area AREA: OSPF6 router. (line 12)
5802* ip address ADDRESS/PREFIX: Interface Commands. (line 13)
5803* ip address ADDRESS/PREFIX secondary: Interface Commands. (line 19)
5804* ip as-path access-list WORD {permit|deny} LINE: AS Path Access List.
5805 (line 9)
5806* ip community-list <1-99> {permit|deny} COMMUNITY: Numbered BGP Community Lists.
5807 (line 14)
5808* ip community-list <100-199> {permit|deny} COMMUNITY: Numbered BGP Community Lists.
5809 (line 20)
5810* ip community-list expanded NAME {permit|deny} LINE: BGP Community Lists.
5811 (line 30)
5812* ip community-list NAME {permit|deny} COMMUNITY: Numbered BGP Community Lists.
5813 (line 25)
5814* ip community-list standard NAME {permit|deny} COMMUNITY: BGP Community Lists.
5815 (line 20)
5816* ip extcommunity-list expanded NAME {permit|deny} LINE: BGP Extended Community Lists.
5817 (line 21)
5818* ip extcommunity-list standard NAME {permit|deny} EXTCOMMUNITY: BGP Extended Community Lists.
5819 (line 10)
5820* ip ospf authentication-key AUTH_KEY: OSPF interface. (line 7)
5821* ip ospf cost <1-65535>: OSPF interface. (line 30)
5822* ip ospf dead-interval <1-65535>: OSPF interface. (line 35)
paula3957e32005-11-04 12:48:25 +00005823* ip ospf dead-interval minimal hello-multiplier <2-20>: OSPF interface.
5824 (line 37)
5825* ip ospf hello-interval <1-65535>: OSPF interface. (line 54)
paul56d1d202004-11-15 21:56:53 +00005826* ip ospf message-digest-key KEYID md5 KEY: OSPF interface. (line 13)
5827* ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point): OSPF interface.
paula3957e32005-11-04 12:48:25 +00005828 (line 65)
5829* ip ospf priority <0-255>: OSPF interface. (line 69)
5830* ip ospf retransmit-interval <1-65535>: OSPF interface. (line 76)
5831* ip ospf transmit-delay: OSPF interface. (line 82)
paul56d1d202004-11-15 21:56:53 +00005832* ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List.
5833 (line 16)
5834* ip prefix-list NAME description DESC: ip prefix-list description.
5835 (line 7)
5836* ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le LEN] [ge LEN]: IP Prefix List.
5837 (line 18)
5838* ip prefix-list sequence-number: ip prefix-list sequential number control.
5839 (line 7)
5840* ip rip authentication key-chain KEY-CHAIN: RIP Authentication.
5841 (line 21)
5842* ip rip authentication mode md5: RIP Authentication. (line 7)
5843* ip rip authentication mode text: RIP Authentication. (line 11)
5844* ip rip authentication string STRING: RIP Authentication. (line 15)
5845* ip rip receive version VERSION: RIP Configuration. (line 90)
5846* ip rip send version VERSION: RIP Configuration. (line 81)
5847* ip route NETWORK GATEWAY: Static Route Commands.
5848 (line 10)
5849* ip route NETWORK GATEWAY DISTANCE: Static Route Commands.
5850 (line 36)
5851* ip route NETWORK NETMASK GATEWAY: Static Route Commands.
5852 (line 25)
5853* ip split-horizon: RIP Configuration. (line 99)
5854* ip6 address ADDRESS/PREFIX: Interface Commands. (line 14)
paulbbd938e2005-04-02 10:18:42 +00005855* ipv6 nd adv-interval-option: Router Advertisement.
5856 (line 127)
5857* ipv6 nd home-agent-config-flag: Router Advertisement.
5858 (line 104)
5859* ipv6 nd home-agent-lifetime: Router Advertisement.
5860 (line 119)
5861* ipv6 nd home-agent-preference: Router Advertisement.
5862 (line 112)
paul56d1d202004-11-15 21:56:53 +00005863* ipv6 nd managed-config-flag: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00005864 (line 87)
paul56d1d202004-11-15 21:56:53 +00005865* ipv6 nd other-config-flag: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00005866 (line 96)
5867* ipv6 nd prefix IPV6PREFIX [VALID-LIFETIME] [PREFERRED-LIFETIME] [off-link] [no-autoconfig] [router-address]: Router Advertisement.
paul56d1d202004-11-15 21:56:53 +00005868 (line 14)
paulbbd938e2005-04-02 10:18:42 +00005869* ipv6 nd ra-interval msec MILLISECONDS: Router Advertisement.
5870 (line 57)
paul56d1d202004-11-15 21:56:53 +00005871* ipv6 nd ra-interval SECONDS: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00005872 (line 49)
paul56d1d202004-11-15 21:56:53 +00005873* ipv6 nd ra-lifetime SECONDS: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00005874 (line 65)
paul56d1d202004-11-15 21:56:53 +00005875* ipv6 nd reachable-time MILLISECONDS: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00005876 (line 77)
paul56d1d202004-11-15 21:56:53 +00005877* ipv6 nd suppress-ra: Router Advertisement.
5878 (line 10)
5879* ipv6 ospf6 cost COST: OSPF6 interface. (line 7)
5880* ipv6 ospf6 dead-interval DEADINTERVAL: OSPF6 interface. (line 13)
5881* ipv6 ospf6 hello-interval HELLOINTERVAL: OSPF6 interface. (line 10)
5882* ipv6 ospf6 priority PRIORITY: OSPF6 interface. (line 20)
5883* ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL: OSPF6 interface.
5884 (line 17)
5885* ipv6 ospf6 transmit-delay TRANSMITDELAY: OSPF6 interface. (line 23)
5886* ipv6 route NETWORK GATEWAY: Static Route Commands.
5887 (line 77)
5888* ipv6 route NETWORK GATEWAY DISTANCE: Static Route Commands.
5889 (line 78)
5890* line vty: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005891 (line 107)
paul56d1d202004-11-15 21:56:53 +00005892* link-detect: Interface Commands. (line 37)
ajs274a4a42004-12-07 15:39:31 +00005893* list: Terminal Mode Commands.
5894 (line 24)
5895* log facility FACILITY: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005896 (line 81)
paul56d1d202004-11-15 21:56:53 +00005897* log file FILENAME: Basic Config Commands.
ajs274a4a42004-12-07 15:39:31 +00005898 (line 41)
5899* log file FILENAME LEVEL: Basic Config Commands.
5900 (line 42)
5901* log monitor: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005902 (line 68)
ajs274a4a42004-12-07 15:39:31 +00005903* log monitor LEVEL: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005904 (line 69)
ajs274a4a42004-12-07 15:39:31 +00005905* log record-priority: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005906 (line 87)
paul56d1d202004-11-15 21:56:53 +00005907* log stdout: Basic Config Commands.
ajs274a4a42004-12-07 15:39:31 +00005908 (line 28)
5909* log stdout LEVEL: Basic Config Commands.
5910 (line 29)
paul56d1d202004-11-15 21:56:53 +00005911* log syslog: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005912 (line 59)
ajs274a4a42004-12-07 15:39:31 +00005913* log syslog LEVEL: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00005914 (line 60)
ajs274a4a42004-12-07 15:39:31 +00005915* log trap LEVEL: Basic Config Commands.
5916 (line 17)
5917* logmsg LEVEL MESSAGE: Terminal Mode Commands.
5918 (line 34)
paul56d1d202004-11-15 21:56:53 +00005919* match as-path WORD: Using AS Path in Route Map.
5920 (line 7)
5921* match aspath AS_PATH: Route Map Match Command.
5922 (line 13)
5923* match community COMMUNITY_LIST: Route Map Match Command.
5924 (line 19)
5925* match community WORD: BGP Community in Route Map.
5926 (line 13)
5927* match community WORD exact-match: BGP Community in Route Map.
5928 (line 14)
5929* match extcommunity WORD: BGP Extended Communities in Route Map.
5930 (line 7)
5931* match interface WORD: RIP route-map. (line 26)
5932* match ip address ACCESS_LIST: Route Map Match Command.
5933 (line 7)
5934* match ip address prefix-list WORD: RIP route-map. (line 39)
5935* match ip address WORD: RIP route-map. (line 38)
5936* match ip next-hop A.B.C.D: RIP route-map. (line 42)
5937* match ip next-hop IPV4_ADDR: Route Map Match Command.
5938 (line 10)
5939* match metric <0-4294967295>: RIP route-map. (line 47)
5940* match metric METRIC: Route Map Match Command.
5941 (line 16)
5942* match peer {A.B.C.D|X:X::X:X}: Commands for configuring a Route Server.
5943 (line 34)
paula3957e32005-11-04 12:48:25 +00005944* max-metric router-lsa [on-startup|on-shutdown] <5-86400>: OSPF router.
5945 (line 110)
5946* max-metric router-lsa administrative: OSPF router. (line 111)
paul56d1d202004-11-15 21:56:53 +00005947* multicast: Interface Commands. (line 27)
5948* neigbor {A.B.C.D|X.X::X.X|peer-group} route-map WORD {import|export}: Commands for configuring a Route Server.
5949 (line 29)
5950* neighbor A.B.C.D: RIP Configuration. (line 45)
5951* neighbor A.B.C.D route-server-client: Commands for configuring a Route Server.
5952 (line 11)
5953* neighbor PEER default-originate: BGP Peer commands. (line 47)
5954* neighbor PEER description ...: BGP Peer commands. (line 20)
5955* neighbor PEER distribute-list NAME [in|out]: Peer filtering.
5956 (line 7)
5957* neighbor PEER dont-capability-negotiate: Capability Negotiation.
5958 (line 49)
5959* neighbor PEER ebgp-multihop: BGP Peer commands. (line 17)
5960* neighbor PEER filter-list NAME [in|out]: Peer filtering. (line 13)
5961* neighbor PEER interface IFNAME: BGP Peer commands. (line 33)
5962* neighbor PEER maximum-prefix NUMBER: BGP Peer commands. (line 64)
5963* neighbor PEER next-hop-self: BGP Peer commands. (line 39)
5964* neighbor PEER override-capability: Capability Negotiation.
5965 (line 65)
5966* neighbor PEER peer-group WORD: BGP Peer Group. (line 10)
5967* neighbor PEER port PORT: BGP Peer commands. (line 53)
5968* neighbor PEER prefix-list NAME [in|out]: Peer filtering. (line 11)
5969* neighbor PEER remote-as ASN: Defining Peer. (line 7)
5970* neighbor PEER route-map NAME [in|out]: Peer filtering. (line 15)
5971* neighbor PEER route-reflector-client: Route Reflector. (line 9)
5972* neighbor PEER send-community: BGP Peer commands. (line 56)
5973* neighbor PEER shutdown: BGP Peer commands. (line 10)
5974* neighbor PEER strict-capability-match: Capability Negotiation.
5975 (line 38)
5976* neighbor PEER update-source: BGP Peer commands. (line 44)
5977* neighbor PEER version VERSION: BGP Peer commands. (line 24)
5978* neighbor PEER weight WEIGHT: BGP Peer commands. (line 59)
5979* neighbor PEER-GROUP route-server-client: Commands for configuring a Route Server.
5980 (line 10)
5981* neighbor WORD peer-group: BGP Peer Group. (line 7)
5982* neighbor X:X::X:X route-server-client: Commands for configuring a Route Server.
5983 (line 12)
5984* network A.B.C.D/M: BGP route. (line 7)
paula3957e32005-11-04 12:48:25 +00005985* network A.B.C.D/M area <0-4294967295>: OSPF router. (line 155)
5986* network A.B.C.D/M area A.B.C.D: OSPF router. (line 154)
paul56d1d202004-11-15 21:56:53 +00005987* network IFNAME <1>: ripngd Configuration.
5988 (line 18)
5989* network IFNAME: RIP Configuration. (line 38)
5990* network NETWORK <1>: ripngd Configuration.
5991 (line 15)
5992* network NETWORK: RIP Configuration. (line 26)
5993* no aggregate-address A.B.C.D/M: Route Aggregation. (line 18)
paula3957e32005-11-04 12:48:25 +00005994* no area <0-4294967295> authentication: OSPF area. (line 129)
5995* no area <0-4294967295> export-list NAME: OSPF area. (line 87)
paul56d1d202004-11-15 21:56:53 +00005996* no area <0-4294967295> filter-list prefix NAME in: OSPF area.
paula3957e32005-11-04 12:48:25 +00005997 (line 121)
paul56d1d202004-11-15 21:56:53 +00005998* no area <0-4294967295> filter-list prefix NAME out: OSPF area.
paula3957e32005-11-04 12:48:25 +00005999 (line 122)
6000* no area <0-4294967295> import-list NAME: OSPF area. (line 111)
paul56d1d202004-11-15 21:56:53 +00006001* no area <0-4294967295> range A.B.C.D/M: OSPF area. (line 10)
paula3957e32005-11-04 12:48:25 +00006002* no area <0-4294967295> shortcut: OSPF area. (line 57)
6003* no area <0-4294967295> stub: OSPF area. (line 64)
6004* no area <0-4294967295> stub no-summary: OSPF area. (line 76)
6005* no area <0-4294967295> virtual-link A.B.C.D: OSPF area. (line 52)
6006* no area A.B.C.D authentication: OSPF area. (line 128)
6007* no area A.B.C.D default-cost <0-16777215>: OSPF area. (line 81)
6008* no area A.B.C.D export-list NAME: OSPF area. (line 86)
6009* no area A.B.C.D filter-list prefix NAME in: OSPF area. (line 119)
6010* no area A.B.C.D filter-list prefix NAME out: OSPF area. (line 120)
6011* no area A.B.C.D import-list NAME: OSPF area. (line 110)
paul56d1d202004-11-15 21:56:53 +00006012* no area A.B.C.D range A.B.C.D/M: OSPF area. (line 9)
paula3957e32005-11-04 12:48:25 +00006013* no area A.B.C.D range IPV4_PREFIX not-advertise: OSPF area. (line 29)
paul56d1d202004-11-15 21:56:53 +00006014* no area A.B.C.D range IPV4_PREFIX substitute IPV4_PREFIX: OSPF area.
paula3957e32005-11-04 12:48:25 +00006015 (line 36)
6016* no area A.B.C.D shortcut: OSPF area. (line 56)
6017* no area A.B.C.D stub: OSPF area. (line 63)
6018* no area A.B.C.D stub no-summary: OSPF area. (line 75)
6019* no area A.B.C.D virtual-link A.B.C.D: OSPF area. (line 51)
6020* no auto-cost reference-bandwidth: OSPF router. (line 144)
paul56d1d202004-11-15 21:56:53 +00006021* no bandwidth <1-10000000>: Interface Commands. (line 32)
6022* no banner motd: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006023 (line 113)
paul56d1d202004-11-15 21:56:53 +00006024* no bgp multiple-instance: Multiple instance. (line 14)
6025* no debug event: More Show IP BGP. (line 39)
6026* no debug keepalive: More Show IP BGP. (line 43)
6027* no debug ospf ism: Debugging OSPF. (line 14)
6028* no debug ospf ism (status|events|timers): Debugging OSPF. (line 15)
6029* no debug ospf lsa: Debugging OSPF. (line 24)
6030* no debug ospf lsa (generate|flooding|refresh): Debugging OSPF.
6031 (line 25)
6032* no debug ospf nsm: Debugging OSPF. (line 19)
6033* no debug ospf nsm (status|events|timers): Debugging OSPF. (line 20)
6034* no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]: Debugging OSPF.
6035 (line 10)
6036* no debug ospf zebra: Debugging OSPF. (line 29)
6037* no debug ospf zebra (interface|redistribute): Debugging OSPF.
6038 (line 30)
6039* no debug update: More Show IP BGP. (line 41)
6040* no default-information originate: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006041 (line 40)
paul56d1d202004-11-15 21:56:53 +00006042* no default-metric: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006043 (line 53)
paul56d1d202004-11-15 21:56:53 +00006044* no default-metric <1-16>: RIP Metric Manipulation.
6045 (line 12)
6046* no distance <1-255> <1>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006047 (line 56)
paul56d1d202004-11-15 21:56:53 +00006048* no distance <1-255>: RIP distance. (line 10)
6049* no distance <1-255> A.B.C.D/M: RIP distance. (line 14)
6050* no distance <1-255> A.B.C.D/M ACCESS-LIST: RIP distance. (line 19)
6051* no distance ospf: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006052 (line 60)
paul56d1d202004-11-15 21:56:53 +00006053* no distribute-list NAME out (kernel|connected|static|rip|ospf: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006054 (line 50)
paul56d1d202004-11-15 21:56:53 +00006055* no exec-timeout: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006056 (line 124)
paul56d1d202004-11-15 21:56:53 +00006057* no ip address ADDRESS/PREFIX: Interface Commands. (line 15)
6058* no ip address ADDRESS/PREFIX secondary: Interface Commands. (line 20)
6059* no ip as-path access-list WORD: AS Path Access List. (line 12)
6060* no ip as-path access-list WORD {permit|deny} LINE: AS Path Access List.
6061 (line 13)
6062* no ip community-list expanded NAME: BGP Community Lists. (line 37)
6063* no ip community-list NAME: BGP Community Lists. (line 35)
6064* no ip community-list standard NAME: BGP Community Lists. (line 36)
6065* no ip extcommunity-list expanded NAME: BGP Extended Community Lists.
6066 (line 29)
6067* no ip extcommunity-list NAME: BGP Extended Community Lists.
6068 (line 27)
6069* no ip extcommunity-list standard NAME: BGP Extended Community Lists.
6070 (line 28)
6071* no ip ospf authentication-key: OSPF interface. (line 8)
6072* no ip ospf cost: OSPF interface. (line 31)
paula3957e32005-11-04 12:48:25 +00006073* no ip ospf dead-interval: OSPF interface. (line 38)
6074* no ip ospf hello-interval: OSPF interface. (line 55)
paul56d1d202004-11-15 21:56:53 +00006075* no ip ospf message-digest-key: OSPF interface. (line 14)
paula3957e32005-11-04 12:48:25 +00006076* no ip ospf network: OSPF interface. (line 66)
6077* no ip ospf priority: OSPF interface. (line 70)
6078* no ip ospf retransmit interval: OSPF interface. (line 77)
6079* no ip ospf transmit-delay: OSPF interface. (line 83)
paul56d1d202004-11-15 21:56:53 +00006080* no ip prefix-list NAME: IP Prefix List. (line 67)
6081* no ip prefix-list NAME description [DESC]: ip prefix-list description.
6082 (line 11)
6083* no ip prefix-list sequence-number: ip prefix-list sequential number control.
6084 (line 11)
6085* no ip rip authentication key-chain KEY-CHAIN: RIP Authentication.
6086 (line 22)
6087* no ip rip authentication mode md5: RIP Authentication. (line 8)
6088* no ip rip authentication mode text: RIP Authentication. (line 12)
6089* no ip rip authentication string STRING: RIP Authentication. (line 16)
6090* no ip split-horizon: RIP Configuration. (line 100)
6091* no ip6 address ADDRESS/PREFIX: Interface Commands. (line 16)
paulbbd938e2005-04-02 10:18:42 +00006092* no ipv6 nd adv-interval-option: Router Advertisement.
6093 (line 128)
6094* no ipv6 nd home-agent-config-flag: Router Advertisement.
6095 (line 105)
6096* no ipv6 nd home-agent-lifetime: Router Advertisement.
6097 (line 120)
6098* no ipv6 nd home-agent-preference: Router Advertisement.
6099 (line 113)
paul56d1d202004-11-15 21:56:53 +00006100* no ipv6 nd managed-config-flag: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00006101 (line 88)
paul56d1d202004-11-15 21:56:53 +00006102* no ipv6 nd other-config-flag: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00006103 (line 97)
paul56d1d202004-11-15 21:56:53 +00006104* no ipv6 nd ra-interval: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00006105 (line 50)
6106* no ipv6 nd ra-interval msec: Router Advertisement.
6107 (line 58)
paul56d1d202004-11-15 21:56:53 +00006108* no ipv6 nd ra-lifetime: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00006109 (line 66)
paul56d1d202004-11-15 21:56:53 +00006110* no ipv6 nd reachable-time: Router Advertisement.
paulbbd938e2005-04-02 10:18:42 +00006111 (line 78)
paul56d1d202004-11-15 21:56:53 +00006112* no ipv6 nd suppress-ra: Router Advertisement.
6113 (line 7)
6114* no link-detect: Interface Commands. (line 38)
ajs274a4a42004-12-07 15:39:31 +00006115* no log facility: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006116 (line 82)
ajs274a4a42004-12-07 15:39:31 +00006117* no log file: Basic Config Commands.
6118 (line 43)
6119* no log monitor: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006120 (line 70)
ajs274a4a42004-12-07 15:39:31 +00006121* no log record-priority: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006122 (line 88)
paul56d1d202004-11-15 21:56:53 +00006123* no log stdout: Basic Config Commands.
ajs274a4a42004-12-07 15:39:31 +00006124 (line 30)
paul56d1d202004-11-15 21:56:53 +00006125* no log syslog: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006126 (line 61)
ajs274a4a42004-12-07 15:39:31 +00006127* no log trap: Basic Config Commands.
6128 (line 18)
paula3957e32005-11-04 12:48:25 +00006129* no max-metric router-lsa [on-startup|on-shutdown|administrative]: OSPF router.
6130 (line 113)
paul56d1d202004-11-15 21:56:53 +00006131* no multicast: Interface Commands. (line 28)
6132* no neighbor A.B.C.D: RIP Configuration. (line 46)
6133* no neighbor PEER default-originate: BGP Peer commands. (line 48)
6134* no neighbor PEER description ...: BGP Peer commands. (line 21)
6135* no neighbor PEER dont-capability-negotiate: Capability Negotiation.
6136 (line 50)
6137* no neighbor PEER ebgp-multihop: BGP Peer commands. (line 18)
6138* no neighbor PEER interface IFNAME: BGP Peer commands. (line 34)
6139* no neighbor PEER maximum-prefix NUMBER: BGP Peer commands. (line 65)
6140* no neighbor PEER next-hop-self: BGP Peer commands. (line 40)
6141* no neighbor PEER override-capability: Capability Negotiation.
6142 (line 66)
6143* no neighbor PEER route-reflector-client: Route Reflector. (line 10)
6144* no neighbor PEER shutdown: BGP Peer commands. (line 11)
6145* no neighbor PEER strict-capability-match: Capability Negotiation.
6146 (line 39)
6147* no neighbor PEER update-source: BGP Peer commands. (line 45)
6148* no neighbor PEER weight WEIGHT: BGP Peer commands. (line 60)
6149* no network A.B.C.D/M: BGP route. (line 17)
paula3957e32005-11-04 12:48:25 +00006150* no network A.B.C.D/M area <0-4294967295>: OSPF router. (line 157)
6151* no network A.B.C.D/M area A.B.C.D: OSPF router. (line 156)
paul56d1d202004-11-15 21:56:53 +00006152* no network IFNAME: RIP Configuration. (line 39)
6153* no network NETWORK: RIP Configuration. (line 27)
paula3957e32005-11-04 12:48:25 +00006154* no ospf abr-type TYPE: OSPF router. (line 27)
6155* no ospf rfc1583compatibility: OSPF router. (line 49)
paul56d1d202004-11-15 21:56:53 +00006156* no ospf router-id: OSPF router. (line 17)
paula3957e32005-11-04 12:48:25 +00006157* no passive interface INTERFACE: OSPF router. (line 60)
paul56d1d202004-11-15 21:56:53 +00006158* no passive-interface IFNAME: RIP Configuration. (line 69)
6159* no redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF.
6160 (line 22)
6161* no redistribute bgp: How to Announce RIP route.
6162 (line 44)
6163* no redistribute connected: How to Announce RIP route.
6164 (line 26)
6165* no redistribute kernel: How to Announce RIP route.
6166 (line 10)
6167* no redistribute ospf: How to Announce RIP route.
6168 (line 36)
6169* no redistribute static: How to Announce RIP route.
6170 (line 18)
6171* no route A.B.C.D/M: How to Announce RIP route.
6172 (line 54)
6173* no router bgp ASN: BGP router. (line 19)
6174* no router ospf: OSPF router. (line 11)
6175* no router rip: RIP Configuration. (line 12)
6176* no router zebra: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006177 (line 63)
paul56d1d202004-11-15 21:56:53 +00006178* no shutdown: Interface Commands. (line 10)
6179* no smux peer OID: MIB and command reference.
6180 (line 29)
6181* no smux peer OID PASSWORD: MIB and command reference.
6182 (line 32)
6183* no timers basic: RIP Timers. (line 31)
paula3957e32005-11-04 12:48:25 +00006184* no timers throttle spf: OSPF router. (line 72)
paul56d1d202004-11-15 21:56:53 +00006185* offset-list ACCESS-LIST (in|out): RIP Metric Manipulation.
6186 (line 20)
6187* offset-list ACCESS-LIST (in|out) IFNAME: RIP Metric Manipulation.
6188 (line 21)
paula3957e32005-11-04 12:48:25 +00006189* ospf abr-type TYPE: OSPF router. (line 26)
6190* ospf rfc1583compatibility: OSPF router. (line 48)
paul56d1d202004-11-15 21:56:53 +00006191* ospf router-id A.B.C.D: OSPF router. (line 16)
paula3957e32005-11-04 12:48:25 +00006192* passive interface INTERFACE: OSPF router. (line 59)
paul56d1d202004-11-15 21:56:53 +00006193* passive-interface (IFNAME|default): RIP Configuration. (line 68)
6194* password PASSWORD: Basic Config Commands.
6195 (line 10)
6196* redistribute (kernel|connected|static|rip|bgp): Redistribute routes to OSPF.
6197 (line 7)
6198* redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>: Redistribute routes to OSPF.
6199 (line 15)
6200* redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map WORD: Redistribute routes to OSPF.
6201 (line 17)
6202* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2): Redistribute routes to OSPF.
6203 (line 11)
6204* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>: Redistribute routes to OSPF.
6205 (line 19)
6206* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map WORD: Redistribute routes to OSPF.
6207 (line 21)
6208* redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map WORD: Redistribute routes to OSPF.
6209 (line 13)
6210* redistribute (kernel|connected|static|rip|bgp) ROUTE-MAP: Redistribute routes to OSPF.
6211 (line 9)
6212* redistribute bgp: How to Announce RIP route.
6213 (line 41)
6214* redistribute bgp metric <0-16>: How to Announce RIP route.
6215 (line 42)
6216* redistribute bgp route-map ROUTE-MAP: How to Announce RIP route.
6217 (line 43)
6218* redistribute connected <1>: Redistribute to BGP. (line 13)
6219* redistribute connected <2>: Redistribute routes to OSPF6.
6220 (line 8)
6221* redistribute connected: How to Announce RIP route.
6222 (line 23)
6223* redistribute connected metric <0-16>: How to Announce RIP route.
6224 (line 24)
6225* redistribute connected route-map ROUTE-MAP: How to Announce RIP route.
6226 (line 25)
6227* redistribute kernel <1>: Redistribute to BGP. (line 7)
6228* redistribute kernel: How to Announce RIP route.
6229 (line 7)
6230* redistribute kernel metric <0-16>: How to Announce RIP route.
6231 (line 8)
6232* redistribute kernel route-map ROUTE-MAP: How to Announce RIP route.
6233 (line 9)
6234* redistribute ospf <1>: Redistribute to BGP. (line 19)
6235* redistribute ospf: How to Announce RIP route.
6236 (line 33)
6237* redistribute ospf metric <0-16>: How to Announce RIP route.
6238 (line 34)
6239* redistribute ospf route-map ROUTE-MAP: How to Announce RIP route.
6240 (line 35)
6241* redistribute rip: Redistribute to BGP. (line 16)
6242* redistribute ripng: Redistribute routes to OSPF6.
6243 (line 9)
6244* redistribute static <1>: Redistribute to BGP. (line 10)
6245* redistribute static <2>: Redistribute routes to OSPF6.
6246 (line 7)
6247* redistribute static: How to Announce RIP route.
6248 (line 15)
6249* redistribute static metric <0-16>: How to Announce RIP route.
6250 (line 16)
6251* redistribute static route-map ROUTE-MAP: How to Announce RIP route.
6252 (line 17)
paul56d1d202004-11-15 21:56:53 +00006253* route A.B.C.D/M: How to Announce RIP route.
6254 (line 53)
6255* route NETWORK: ripngd Configuration.
6256 (line 21)
6257* route-map ROUTE-MAP-NAME permit PRIORITY: Route Map Command.
6258 (line 7)
6259* router bgp AS-NUMBER: BGP instance and view.
6260 (line 11)
6261* router bgp AS-NUMBER view NAME: BGP instance and view.
6262 (line 28)
6263* router bgp ASN: BGP router. (line 13)
6264* router ospf: OSPF router. (line 10)
6265* router ospf6: OSPF6 router. (line 7)
6266* router rip: RIP Configuration. (line 7)
6267* router ripng: ripngd Configuration.
6268 (line 9)
6269* router zebra <1>: Redistribute routes to OSPF.
paula3957e32005-11-04 12:48:25 +00006270 (line 62)
paul56d1d202004-11-15 21:56:53 +00006271* router zebra: ripngd Configuration.
6272 (line 24)
6273* router-id A.B.C.D: OSPF6 router. (line 9)
6274* service advanced-vty: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006275 (line 100)
paul56d1d202004-11-15 21:56:53 +00006276* service integrated-vtysh-config: VTY shell integrated configuration.
6277 (line 7)
6278* service password-encryption: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006279 (line 97)
paul56d1d202004-11-15 21:56:53 +00006280* service terminal-length <0-512>: Basic Config Commands.
ajsc70257d2005-02-03 17:12:01 +00006281 (line 103)
paul56d1d202004-11-15 21:56:53 +00006282* set as-path prepend AS-PATH: Using AS Path in Route Map.
6283 (line 9)
6284* set as-path prepend AS_PATH: Route Map Set Command.
6285 (line 19)
6286* set comm-list WORD delete: BGP Community in Route Map.
6287 (line 34)
6288* set community COMMUNITY <1>: Route Map Set Command.
6289 (line 22)
6290* set community COMMUNITY: BGP Community in Route Map.
6291 (line 23)
6292* set community COMMUNITY additive: BGP Community in Route Map.
6293 (line 24)
6294* set community none: BGP Community in Route Map.
6295 (line 22)
6296* set extcommunity rt EXTCOMMUNITY: BGP Extended Communities in Route Map.
6297 (line 9)
6298* set extcommunity soo EXTCOMMUNITY: BGP Extended Communities in Route Map.
6299 (line 12)
6300* set ip next-hop A.B.C.D: RIP route-map. (line 52)
6301* set ip next-hop IPV4_ADDRESS: Route Map Set Command.
6302 (line 7)
6303* set ipv6 next-hop global IPV6_ADDRESS: Route Map Set Command.
6304 (line 25)
6305* set ipv6 next-hop local IPV6_ADDRESS: Route Map Set Command.
6306 (line 28)
6307* set local-preference LOCAL_PREF: Route Map Set Command.
6308 (line 10)
6309* set metric <0-4294967295>: RIP route-map. (line 57)
6310* set metric METRIC: Route Map Set Command.
6311 (line 16)
6312* set weight WEIGHT: Route Map Set Command.
6313 (line 13)
6314* show debug: More Show IP BGP. (line 31)
6315* show debugging ospf: Debugging OSPF. (line 32)
6316* show debugging rip: RIP Debug Commands. (line 29)
6317* show debugging ripng: ripngd Terminal Mode Commands.
6318 (line 9)
6319* show interface: zebra Terminal Mode Commands.
6320 (line 21)
6321* show ip bgp: Show IP BGP. (line 7)
6322* show ip bgp A.B.C.D: Show IP BGP. (line 8)
6323* show ip bgp community: Display BGP Routes by Community.
6324 (line 11)
6325* show ip bgp community COMMUNITY <1>: More Show IP BGP. (line 11)
6326* show ip bgp community COMMUNITY: Display BGP Routes by Community.
6327 (line 12)
6328* show ip bgp community COMMUNITY exact-match <1>: More Show IP BGP.
6329 (line 12)
6330* show ip bgp community COMMUNITY exact-match: Display BGP Routes by Community.
6331 (line 13)
6332* show ip bgp community-list WORD <1>: More Show IP BGP. (line 16)
6333* show ip bgp community-list WORD: Display BGP Routes by Community.
6334 (line 20)
6335* show ip bgp community-list WORD exact-match <1>: More Show IP BGP.
6336 (line 17)
6337* show ip bgp community-list WORD exact-match: Display BGP Routes by Community.
6338 (line 21)
6339* show ip bgp neighbor [PEER]: More Show IP BGP. (line 23)
6340* show ip bgp regexp LINE <1>: More Show IP BGP. (line 7)
6341* show ip bgp regexp LINE: Display BGP Routes by AS Path.
6342 (line 10)
6343* show ip bgp summary: More Show IP BGP. (line 21)
6344* show ip bgp view NAME: Viewing the view. (line 9)
6345* show ip bgp X:X::X:X: Show IP BGP. (line 9)
6346* show ip community-list: BGP Community Lists. (line 42)
6347* show ip community-list NAME: BGP Community Lists. (line 43)
6348* show ip extcommunity-list: BGP Extended Community Lists.
6349 (line 35)
6350* show ip extcommunity-list NAME: BGP Extended Community Lists.
6351 (line 36)
6352* show ip ospf: Showing OSPF information.
6353 (line 7)
6354* show ip ospf database: Showing OSPF information.
paula3957e32005-11-04 12:48:25 +00006355 (line 20)
paul56d1d202004-11-15 21:56:53 +00006356* show ip ospf database (asbr-summary|external|network|router|summary): Showing OSPF information.
paula3957e32005-11-04 12:48:25 +00006357 (line 23)
paul56d1d202004-11-15 21:56:53 +00006358* show ip ospf database (asbr-summary|external|network|router|summary) adv-router ADV-ROUTER: Showing OSPF information.
paula3957e32005-11-04 12:48:25 +00006359 (line 30)
paul56d1d202004-11-15 21:56:53 +00006360* show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID: Showing OSPF information.
paula3957e32005-11-04 12:48:25 +00006361 (line 25)
paul56d1d202004-11-15 21:56:53 +00006362* 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 +00006363 (line 28)
paul56d1d202004-11-15 21:56:53 +00006364* show ip ospf database (asbr-summary|external|network|router|summary) LINK-STATE-ID self-originate: Showing OSPF information.
paul56d1d202004-11-15 21:56:53 +00006365 (line 33)
paula3957e32005-11-04 12:48:25 +00006366* show ip ospf database (asbr-summary|external|network|router|summary) self-originate: Showing OSPF information.
paul56d1d202004-11-15 21:56:53 +00006367 (line 35)
paula3957e32005-11-04 12:48:25 +00006368* show ip ospf database max-age: Showing OSPF information.
paul56d1d202004-11-15 21:56:53 +00006369 (line 37)
paula3957e32005-11-04 12:48:25 +00006370* show ip ospf database self-originate: Showing OSPF information.
paul56d1d202004-11-15 21:56:53 +00006371 (line 39)
paula3957e32005-11-04 12:48:25 +00006372* show ip ospf interface [INTERFACE]: Showing OSPF information.
6373 (line 11)
6374* show ip ospf neighbor: Showing OSPF information.
6375 (line 15)
6376* show ip ospf neighbor detail: Showing OSPF information.
6377 (line 17)
6378* show ip ospf neighbor INTERFACE: Showing OSPF information.
6379 (line 16)
6380* show ip ospf neighbor INTERFACE detail: Showing OSPF information.
6381 (line 18)
6382* show ip ospf route: Showing OSPF information.
6383 (line 41)
paul56d1d202004-11-15 21:56:53 +00006384* show ip prefix-list: Showing ip prefix-list.
6385 (line 7)
6386* show ip prefix-list detail: Showing ip prefix-list.
6387 (line 31)
6388* show ip prefix-list detail NAME: Showing ip prefix-list.
6389 (line 33)
6390* show ip prefix-list NAME: Showing ip prefix-list.
6391 (line 10)
6392* show ip prefix-list NAME A.B.C.D/M: Showing ip prefix-list.
6393 (line 17)
6394* show ip prefix-list NAME A.B.C.D/M first-match: Showing ip prefix-list.
6395 (line 25)
6396* show ip prefix-list NAME A.B.C.D/M longer: Showing ip prefix-list.
6397 (line 23)
6398* show ip prefix-list NAME seq NUM: Showing ip prefix-list.
6399 (line 13)
6400* show ip prefix-list summary: Showing ip prefix-list.
6401 (line 27)
6402* show ip prefix-list summary NAME: Showing ip prefix-list.
6403 (line 29)
6404* show ip protocols: Show RIP Information.
6405 (line 17)
6406* show ip rip: Show RIP Information.
6407 (line 9)
6408* show ip ripng: ripngd Terminal Mode Commands.
6409 (line 7)
6410* show ip route: zebra Terminal Mode Commands.
6411 (line 7)
6412* show ipforward: zebra Terminal Mode Commands.
6413 (line 23)
6414* show ipv6 ospf6 [INSTANCE_ID]: Showing OSPF6 information.
6415 (line 7)
6416* show ipv6 ospf6 database: Showing OSPF6 information.
6417 (line 11)
6418* show ipv6 ospf6 interface: Showing OSPF6 information.
6419 (line 15)
6420* show ipv6 ospf6 neighbor: Showing OSPF6 information.
6421 (line 18)
6422* show ipv6 ospf6 request-list A.B.C.D: Showing OSPF6 information.
6423 (line 21)
6424* show ipv6 route: zebra Terminal Mode Commands.
6425 (line 19)
6426* show ipv6 route ospf6: Showing OSPF6 information.
6427 (line 24)
6428* show ipv6forward: zebra Terminal Mode Commands.
6429 (line 28)
ajs274a4a42004-12-07 15:39:31 +00006430* show logging: Terminal Mode Commands.
6431 (line 30)
6432* show version: Terminal Mode Commands.
6433 (line 27)
paul56d1d202004-11-15 21:56:53 +00006434* shutdown: Interface Commands. (line 9)
6435* smux peer OID: MIB and command reference.
6436 (line 28)
6437* smux peer OID PASSWORD: MIB and command reference.
6438 (line 31)
6439* table TABLENO: Static Route Commands.
6440 (line 81)
ajs274a4a42004-12-07 15:39:31 +00006441* terminal length <0-512>: Terminal Mode Commands.
6442 (line 17)
paul56d1d202004-11-15 21:56:53 +00006443* timers basic UPDATE TIMEOUT GARBAGE: RIP Timers. (line 7)
paula3957e32005-11-04 12:48:25 +00006444* timers throttle spf DELAY INITIAL-HOLDTIME MAX-HOLDTIME: OSPF router.
6445 (line 71)
paul56d1d202004-11-15 21:56:53 +00006446* username USERNAME nopassword: VTY shell username. (line 7)
6447* version VERSION: RIP Configuration. (line 23)
ajs274a4a42004-12-07 15:39:31 +00006448* who: Terminal Mode Commands.
6449 (line 21)
6450* write file: Terminal Mode Commands.
6451 (line 10)
6452* write terminal: Terminal Mode Commands.
6453 (line 7)
paul56d1d202004-11-15 21:56:53 +00006454
6455
6456File: quagga.info, Node: VTY Key Index, Prev: Command Index, Up: Top
6457
6458VTY Key Index
6459*************
6460
6461�[index�]
6462* Menu:
6463
6464* <DEL>: CLI Editing Commands. (line 11)
6465* <DOWN>: CLI Advanced Commands.
6466 (line 17)
6467* <LEFT>: CLI Movement Commands.
6468 (line 15)
6469* <RIGHT>: CLI Movement Commands.
6470 (line 11)
6471* <TAB>: CLI Advanced Commands.
6472 (line 24)
6473* <UP>: CLI Advanced Commands.
6474 (line 21)
6475* ?: CLI Advanced Commands.
6476 (line 27)
6477* C-a: CLI Movement Commands.
6478 (line 24)
6479* C-b: CLI Movement Commands.
6480 (line 15)
6481* C-c: CLI Advanced Commands.
6482 (line 10)
6483* C-d: CLI Editing Commands. (line 14)
6484* C-e: CLI Movement Commands.
6485 (line 27)
6486* C-f: CLI Movement Commands.
6487 (line 11)
6488* C-h: CLI Editing Commands. (line 11)
6489* C-k: CLI Editing Commands. (line 23)
6490* C-n: CLI Advanced Commands.
6491 (line 17)
6492* C-p: CLI Advanced Commands.
6493 (line 21)
6494* C-t: CLI Editing Commands. (line 29)
6495* C-u: CLI Editing Commands. (line 26)
6496* C-w: CLI Editing Commands. (line 20)
6497* C-z: CLI Advanced Commands.
6498 (line 13)
6499* M-b: CLI Movement Commands.
6500 (line 21)
6501* M-d: CLI Editing Commands. (line 17)
6502* M-f: CLI Movement Commands.
6503 (line 18)
6504
6505
6506
6507Tag Table:
pauld751f002005-10-11 04:01:09 +00006508Node: Top1971
6509Node: Overview3329
6510Node: About Quagga4730
6511Node: System Architecture6983
6512Node: Supported Platforms9673
6513Node: Supported RFC10814
paula3957e32005-11-04 12:48:25 +00006514Node: How to get Quagga12896
6515Node: Mailing List13650
6516Node: Bug Reports14097
6517Node: Installation14975
6518Node: Configure the Software15409
6519Node: The Configure script and its options15657
6520Node: Least-Privilege support18845
6521Node: Linux notes20581
6522Ref: Linux notes-Footnote-122439
6523Node: Build the Software22505
6524Node: Install the Software23053
6525Node: Basic commands24513
6526Node: Config Commands25288
6527Node: Basic Config Commands26181
6528Node: Sample Config File31671
6529Node: Terminal Mode Commands32441
6530Node: Common Invocation Options33538
6531Node: Virtual Terminal Interfaces34945
6532Node: VTY Overview35456
6533Node: VTY Modes36707
6534Node: VTY View Mode37157
6535Node: VTY Enable Mode37407
6536Node: VTY Other Modes37685
6537Node: VTY CLI Commands37861
6538Node: CLI Movement Commands38321
6539Node: CLI Editing Commands38844
6540Node: CLI Advanced Commands39432
6541Node: Zebra40198
6542Node: Invoking zebra40707
6543Node: Interface Commands41286
6544Node: Static Route Commands42818
6545Node: zebra Terminal Mode Commands46091
6546Node: RIP47056
6547Node: Starting and Stopping ripd47993
6548Node: RIP netmask49406
6549Node: RIP Configuration50505
6550Node: How to Announce RIP route54770
6551Node: Filtering RIP Routes57333
6552Node: RIP Metric Manipulation58800
6553Node: RIP distance59713
6554Node: RIP route-map60528
6555Node: RIP Authentication63044
6556Node: RIP Timers64151
6557Node: Show RIP Information65437
6558Node: RIP Debug Commands66810
6559Node: RIPng67806
6560Node: Invoking ripngd68126
6561Node: ripngd Configuration68375
6562Node: ripngd Terminal Mode Commands69126
6563Node: ripngd Filtering Commands69490
6564Node: OSPFv269999
6565Node: Configuring ospfd70651
6566Node: OSPF router71199
6567Node: OSPF area79525
6568Node: OSPF interface85650
6569Ref: ip ospf dead-interval minimal87219
6570Node: Redistribute routes to OSPF89791
6571Node: Showing OSPF information92449
6572Ref: show ip ospf92634
6573Node: Debugging OSPF93965
6574Node: OSPF Configuration Examples95040
6575Node: OSPFv396410
6576Node: OSPF6 router96730
6577Node: OSPF6 area97084
6578Node: OSPF6 interface97262
6579Node: Redistribute routes to OSPF698139
6580Node: Showing OSPF6 information98455
6581Node: BGP99275
6582Node: Starting BGP100165
6583Node: BGP router100742
6584Node: BGP distance101986
6585Node: BGP decision process102424
6586Node: BGP network102906
6587Node: BGP route103096
6588Node: Route Aggregation103652
6589Node: Redistribute to BGP104221
6590Node: BGP Peer104748
6591Node: Defining Peer104935
6592Node: BGP Peer commands105548
6593Node: Peer filtering107952
6594Node: BGP Peer Group108460
6595Node: BGP Address Family108773
6596Node: Autonomous System108927
6597Node: AS Path Regular Expression109764
6598Node: Display BGP Routes by AS Path111011
6599Node: AS Path Access List111451
6600Node: Using AS Path in Route Map111918
6601Node: Private AS Numbers112199
6602Node: BGP Communities Attribute112357
6603Node: BGP Community Lists114824
6604Node: Numbered BGP Community Lists117478
6605Node: BGP Community in Route Map119065
6606Node: Display BGP Routes by Community121008
6607Node: Using BGP Communities Attribute122177
6608Node: BGP Extended Communities Attribute125745
6609Node: BGP Extended Community Lists127517
6610Node: BGP Extended Communities in Route Map129392
6611Node: Displaying BGP routes129851
6612Node: Show IP BGP130088
6613Node: More Show IP BGP130788
6614Node: Capability Negotiation131939
6615Node: Route Reflector135243
6616Node: Route Server135522
6617Node: Multiple instance136588
6618Node: BGP instance and view138399
6619Node: Routing policy139779
6620Node: Viewing the view140547
6621Node: How to set up a 6-Bone connection140832
6622Node: Dump BGP packets and table142204
6623Node: Configuring Quagga as a Route Server142751
6624Node: Description of the Route Server model143712
6625Ref: fig:normal-processing145289
6626Ref: fig:full-mesh145358
6627Ref: fig:route-server145383
6628Ref: filter-delegation145725
6629Ref: Route Server tasks146909
6630Ref: Route-server path filter process147280
6631Ref: fig:rs-processing149594
6632Node: Commands for configuring a Route Server149747
6633Node: Example of Route Server Configuration152774
6634Node: Configuration of the BGP routers without Route Server153695
6635Node: Configuration of the BGP routers with Route Server156578
6636Node: Configuration of the Route Server itself157879
6637Node: Further considerations about Import and Export route-maps162878
6638Node: VTY shell165922
6639Node: VTY shell username166591
6640Node: VTY shell integrated configuration167223
6641Node: Filtering168671
6642Node: IP Access List169024
6643Node: IP Prefix List169410
6644Node: ip prefix-list description172429
6645Node: ip prefix-list sequential number control172956
6646Node: Showing ip prefix-list173498
6647Node: Clear counter of ip prefix-list174606
6648Node: Route Map175045
6649Node: Route Map Command175550
6650Node: Route Map Match Command175747
6651Node: Route Map Set Command176371
6652Node: IPv6 Support177248
6653Node: Router Advertisement177820
6654Node: Kernel Interface183436
6655Node: SNMP Support185393
6656Node: Getting and installing an SNMP agent185992
6657Node: SMUX configuration186565
6658Node: MIB and command reference188701
6659Node: Handling SNMP Traps190116
6660Node: Zebra Protocol196195
6661Node: Packet Binary Dump Format198109
6662Node: Command Index209719
6663Node: VTY Key Index267658
paul56d1d202004-11-15 21:56:53 +00006664
6665End Tag Table