Annotation of embedaddon/quagga/doc/overview.texi, revision 1.1

1.1     ! misho       1: @node Overview
        !             2: @chapter Overview
        !             3: @cindex Overview
        !             4: 
        !             5:   @uref{http://www.quagga.net,,Quagga} is a routing software package that
        !             6: provides TCP/IP based routing services with routing protocols support such
        !             7: as RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+ (@pxref{Supported
        !             8: RFCs}). Quagga also supports special BGP Route Reflector and Route Server
        !             9: behavior.  In addition to traditional IPv4 routing protocols, Quagga also
        !            10: supports IPv6 routing protocols.  With SNMP daemon which supports SMUX
        !            11: protocol, Quagga provides routing protocol MIBs (@pxref{SNMP Support}).
        !            12: 
        !            13:   Quagga uses an advanced software architecture to provide you with a high
        !            14: quality, multi server routing engine. Quagga has an interactive user
        !            15: interface for each routing protocol and supports common client commands. 
        !            16: Due to this design, you can add new protocol daemons to Quagga easily.  You
        !            17: can use Quagga library as your program's client user interface.
        !            18: 
        !            19:   Quagga is distributed under the @sc{gnu} General Public License.
        !            20: 
        !            21: @menu
        !            22: * About Quagga::                Basic information about Quagga
        !            23: * System Architecture::         The Quagga system architecture
        !            24: * Supported Platforms::         Supported platforms and future plans
        !            25: * Supported RFCs::               Supported RFCs
        !            26: * How to get Quagga::            
        !            27: * Mailing List::                Mailing list information
        !            28: * Bug Reports::                 Mail address for bug data
        !            29: @end menu
        !            30: 
        !            31: @node About Quagga
        !            32: @comment  node-name,  next,  previous,  up
        !            33: @section About Quagga
        !            34: @cindex About Quagga
        !            35: 
        !            36:   Today, TCP/IP networks are covering all of the world.  The Internet has
        !            37: been deployed in many countries, companies, and to the home.  When you
        !            38: connect to the Internet your packet will pass many routers which have TCP/IP
        !            39: routing functionality.
        !            40: 
        !            41:   A system with Quagga installed acts as a dedicated router.  With Quagga,
        !            42: your machine exchanges routing information with other routers using routing
        !            43: protocols.  Quagga uses this information to update the kernel routing table
        !            44: so that the right data goes to the right place.  You can dynamically change
        !            45: the configuration and you may view routing table information from the Quagga
        !            46: terminal interface.
        !            47: 
        !            48:   Adding to routing protocol support, Quagga can setup interface's flags,
        !            49: interface's address, static routes and so on.  If you have a small network,
        !            50: or a stub network, or xDSL connection, configuring the Quagga routing
        !            51: software is very easy.  The only thing you have to do is to set up the
        !            52: interfaces and put a few commands about static routes and/or default routes. 
        !            53: If the network is rather large, or if the network structure changes
        !            54: frequently, you will want to take advantage of Quagga's dynamic routing
        !            55: protocol support for protocols such as RIP, OSPF or BGP.
        !            56: 
        !            57:   Traditionally, UNIX based router configuration is done by
        !            58: @command{ifconfig} and @command{route} commands.  Status of routing
        !            59: table is displayed by @command{netstat} utility.  Almost of these commands
        !            60: work only if the user has root privileges.  Quagga has a different system
        !            61: administration method.  There are two user modes in Quagga.  One is normal
        !            62: mode, the other is enable mode.  Normal mode user can only view system
        !            63: status, enable mode user can change system configuration.  This UNIX account
        !            64: independent feature will be great help to the router administrator.
        !            65: 
        !            66:   Currently, Quagga supports common unicast routing protocols.  Multicast
        !            67: routing protocols such as BGMP, PIM-SM, PIM-DM may be supported in Quagga
        !            68: 2.0.  MPLS support is going on.  In the future, TCP/IP filtering control,
        !            69: QoS control, diffserv configuration will be added to Quagga. Quagga
        !            70: project's final goal is making a productive, quality, free TCP/IP routing
        !            71: software.
        !            72: 
        !            73: @node System Architecture
        !            74: @comment  node-name,  next,  previous,  up
        !            75: @section System Architecture
        !            76: @cindex System architecture
        !            77: @cindex Software architecture
        !            78: @cindex Software internals
        !            79: 
        !            80:   Traditional routing software is made as a one process program which
        !            81: provides all of the routing protocol functionalities.  Quagga takes a
        !            82: different approach.  It is made from a collection of several daemons that
        !            83: work together to build the routing table.  There may be several
        !            84: protocol-specific routing daemons and zebra the kernel routing manager.
        !            85: 
        !            86:   The @command{ripd} daemon handles the RIP protocol, while
        !            87: @command{ospfd} is a daemon which supports OSPF version 2.
        !            88: @command{bgpd} supports the BGP-4 protocol.  For changing the kernel
        !            89: routing table and for redistribution of routes between different routing
        !            90: protocols, there is a kernel routing table manager @command{zebra} daemon. 
        !            91: It is easy to add a new routing protocol daemons to the entire routing
        !            92: system without affecting any other software.  You need to run only the
        !            93: protocol daemon associated with routing protocols in use.  Thus, user may
        !            94: run a specific daemon and send routing reports to a central routing console.
        !            95: 
        !            96:   There is no need for these daemons to be running on the same machine. You
        !            97: can even run several same protocol daemons on the same machine.  This
        !            98: architecture creates new possibilities for the routing system.
        !            99: 
        !           100: @example
        !           101: @group
        !           102: +----+  +----+  +-----+  +-----+
        !           103: |bgpd|  |ripd|  |ospfd|  |zebra|
        !           104: +----+  +----+  +-----+  +-----+
        !           105:                             |
        !           106: +---------------------------|--+
        !           107: |                           v  |
        !           108: |  UNIX Kernel  routing table  |
        !           109: |                              |
        !           110: +------------------------------+
        !           111: 
        !           112:     Quagga System Architecture
        !           113: @end group
        !           114: @end example
        !           115: 
        !           116: Multi-process architecture brings extensibility, modularity and
        !           117: maintainability.  At the same time it also brings many configuration files
        !           118: and terminal interfaces.  Each daemon has it's own configuration file and
        !           119: terminal interface.  When you configure a static route, it must be done in
        !           120: @command{zebra} configuration file.  When you configure BGP network it must
        !           121: be done in @command{bgpd} configuration file.  This can be a very annoying
        !           122: thing.  To resolve the problem, Quagga provides integrated user interface
        !           123: shell called @command{vtysh}.  @command{vtysh} connects to each daemon with
        !           124: UNIX domain socket and then works as a proxy for user input.
        !           125: 
        !           126: Quagga was planned to use multi-threaded mechanism when it runs with a
        !           127: kernel that supports multi-threads.  But at the moment, the thread library
        !           128: which comes with @sc{gnu}/Linux or FreeBSD has some problems with running
        !           129: reliable services such as routing software, so we don't use threads at all. 
        !           130: Instead we use the @command{select(2)} system call for multiplexing the
        !           131: events.
        !           132: 
        !           133: @node Supported Platforms
        !           134: @comment  node-name,  next,  previous,  up
        !           135: @section Supported Platforms
        !           136: 
        !           137: @cindex Supported platforms
        !           138: @cindex Quagga on other systems
        !           139: @cindex Compatibility with other systems
        !           140: @cindex Operating systems that support Quagga
        !           141: 
        !           142: Currently Quagga supports @sc{gnu}/Linux, BSD and Solaris. Porting Quagga
        !           143: to other platforms is not too difficult as platform dependent code should
        !           144: most be limited to the @command{zebra} daemon.  Protocol daemons are mostly
        !           145: platform independent. Please let us know when you find out Quagga runs on a
        !           146: platform which is not listed below.
        !           147: 
        !           148: The list of officially supported platforms are listed below. Note that
        !           149: Quagga may run correctly on other platforms, and may run with partial
        !           150: functionality on further platforms.
        !           151: 
        !           152: @sp 1
        !           153: @itemize @bullet
        !           154: @item
        !           155: @sc{gnu}/Linux 2.4.x and higher
        !           156: @item
        !           157: FreeBSD 4.x and higher
        !           158: @item
        !           159: NetBSD 1.6 and higher
        !           160: @item
        !           161: OpenBSD 2.5 and higher
        !           162: @item
        !           163: Solaris 8 and higher
        !           164: @end itemize
        !           165: 
        !           166: @node Supported RFCs
        !           167: @comment  node-name,  next,  previous,  up
        !           168: @section Supported RFCs
        !           169: 
        !           170:   Below is the list of currently supported RFC's.
        !           171: 
        !           172: @table @asis
        !           173: @item @asis{RFC1058}
        !           174: @cite{Routing Information Protocol. C.L. Hedrick. Jun-01-1988.}
        !           175: 
        !           176: @item @asis{RF2082}
        !           177: @cite{RIP-2 MD5 Authentication. F. Baker, R. Atkinson. January 1997.}
        !           178: 
        !           179: @item @asis{RFC2453}
        !           180: @cite{RIP Version 2. G. Malkin. November 1998.}
        !           181: 
        !           182: @item @asis{RFC2080}
        !           183: @cite{RIPng for IPv6. G. Malkin, R. Minnear. January 1997.}
        !           184: 
        !           185: @item @asis{RFC2328}
        !           186: @cite{OSPF Version 2. J. Moy. April 1998.}
        !           187: 
        !           188: @item @asis{RFC2370}
        !           189: @cite{The OSPF Opaque LSA Option R. Coltun. July 1998.}
        !           190: 
        !           191: @item @asis{RFC3101}
        !           192: @cite{The OSPF Not-So-Stubby Area (NSSA) Option P. Murphy. January 2003.}
        !           193: 
        !           194: @item @asis{RFC2740}
        !           195: @cite{OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999.}
        !           196: 
        !           197: @item @asis{RFC1771} 
        !           198: @cite{A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March 1995.}
        !           199: 
        !           200: @item @asis{RFC1965}
        !           201: @cite{Autonomous System Confederations for BGP. P. Traina. June 1996.}
        !           202: 
        !           203: @item @asis{RFC1997}
        !           204: @cite{BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August 1996.}
        !           205: 
        !           206: @item @asis{RFC2545}
        !           207: @cite{Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. March 1999.}
        !           208: 
        !           209: @item @asis{RFC2796}
        !           210: @cite{BGP Route Reflection An alternative to full mesh IBGP. T. Bates & R. Chandrasekeran. June 1996.}
        !           211: 
        !           212: @item @asis{RFC2858}
        !           213: @cite{Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. Chandra, D. Katz. June 2000.}
        !           214: 
        !           215: @item @asis{RFC2842}
        !           216: @cite{Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder. May 2000.}
        !           217: 
        !           218: @item @asis{RFC3137}
        !           219: @cite{OSPF Stub Router Advertisement, A. Retana, L. Nguyen, R. White, A. Zinin, D. McPherson. June 2001}
        !           220: @end table
        !           221: 
        !           222:   When SNMP support is enabled, below RFC is also supported.
        !           223: 
        !           224: @table @asis
        !           225: 
        !           226: @item @asis{RFC1227}
        !           227: @cite{SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.}
        !           228: 
        !           229: @item @asis{RFC1657}
        !           230: @cite{Definitions of Managed Objects for the Fourth Version of the
        !           231: Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J. Burruss,
        !           232: J. Chu, Editor. July 1994.}
        !           233: 
        !           234: @item @asis{RFC1724}
        !           235: @cite{RIP Version 2 MIB Extension. G. Malkin & F. Baker. November 1994.}
        !           236: 
        !           237: @item @asis{RFC1850}
        !           238: @cite{OSPF Version 2 Management Information Base. F. Baker, R. Coltun.
        !           239: November 1995.}
        !           240: 
        !           241: @end table
        !           242: 
        !           243: @node How to get Quagga
        !           244: @comment  node-name,  next,  previous,  up
        !           245: @section How to get Quagga
        !           246: 
        !           247: The official Quagga web-site is located at:
        !           248: 
        !           249: @uref{http://www.quagga.net/}
        !           250: 
        !           251: and contains further information, as well as links to additional
        !           252: resources. 
        !           253: 
        !           254: @uref{http://www.quagga.net/,Quagga} is a fork of GNU Zebra, whose
        !           255: web-site is located at:
        !           256: 
        !           257: @uref{http://www.zebra.org/}.
        !           258: 
        !           259: @node Mailing List
        !           260: @comment  node-name,  next,  previous,  up
        !           261: @section Mailing List
        !           262: @cindex How to get in touch with Quagga
        !           263: @cindex Mailing Quagga
        !           264: @cindex Contact information
        !           265: @cindex Mailing lists
        !           266: 
        !           267: There is a mailing list for discussions about Quagga.  If you have any
        !           268: comments or suggestions to Quagga, please subscribe to:
        !           269: 
        !           270: @uref{http://lists.quagga.net/mailman/listinfo/quagga-users}.
        !           271: 
        !           272: The @uref{http://www.quagga.net/,,Quagga} site has further information on
        !           273: the available mailing lists, see:
        !           274: 
        !           275:        @uref{http://www.quagga.net/lists.php}
        !           276: 
        !           277: @node Bug Reports
        !           278: @section Bug Reports
        !           279: 
        !           280: @cindex Bug Reports
        !           281: @cindex Bug hunting
        !           282: @cindex Found a bug?
        !           283: @cindex Reporting bugs
        !           284: @cindex Reporting software errors
        !           285: @cindex Errors in the software
        !           286: 
        !           287: If you think you have found a bug, please send a bug report to:
        !           288: 
        !           289: @uref{http://bugzilla.quagga.net}
        !           290: 
        !           291: When you send a bug report, please be careful about the points below.
        !           292: 
        !           293: @itemize @bullet
        !           294: @item 
        !           295: Please note what kind of OS you are using.  If you use the IPv6 stack
        !           296: please note that as well.
        !           297: @item
        !           298: Please show us the results of @code{netstat -rn} and @code{ifconfig -a}.
        !           299: Information from zebra's VTY command @code{show ip route} will also be
        !           300: helpful.
        !           301: @item
        !           302: Please send your configuration file with the report.  If you specify
        !           303: arguments to the configure script please note that too.
        !           304: @end itemize
        !           305: 
        !           306:   Bug reports are very important for us to improve the quality of Quagga.
        !           307: Quagga is still in the development stage, but please don't hesitate to
        !           308: send a bug report to @uref{http://bugzilla.quagga.net}.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>