Zebra is a routing software package that provides TCP/IP based routing services with routing protocols support such as RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+ (see also Supported RFC) Zebra also supports special BGP behavior Route Reflector and Route Server. Adding to traditional IPv4 routing protocols, Zebra also supports IPv6 routing protocols. With SNMP daemon which support SMUX protocol, Zebra provides routing protocol MIBs (see also SNMP Support)
Zebra uses an advanced software architecture to provide you with a high quality, multi server routing engine. Zebra has an interactive user interface for each routing protocol and supports common client commands. Due to this design, you can add new protocol daemon to Zebra easily. You can use Zebra library as your program's client user interface.
Zebra is an official GNU software and distributed under the GNU General Public License.
Menu | |
---|---|
About Zebra | Basic information about Zebra |
System Architecture | The Zebra system architecture |
Supported Platforms | Supported platforms and future plans |
Supported RFC | Supported RFCs |
How to get Zebra | |
Mailing List | Mailing list information |
Bug Reports | Mail address for bug data |
Today, TCP/IP networks are covering all of the world. The Internet has been deployed in many countries, companies, and to the home. When you connect to the Internet your packet will pass many routers which have TCP/IP routing functionality.
A system with Zebra installed acts as a dedicated router. With Zebra, your machine exchanges routing information with other routers using routing protocols. Zebra uses this information to update the kernel routing table so that the right data goes to the right place. You can dynamically change the configuration and you may view routing table information from the Zebra terminal interface.
Adding to routing protocol support, Zebra can setup interface's flag, interface's address, static routes and so on. If you have a small network, or a stub network, or xDSL connection, configuring the Zebra routing software is very easy. The only thing you have to do is to set up the interfaces and put a few commands about static routes and/or default routes. If the network is rather large, or if the network structure changes frequently, you will want to take advantage of Zebra's dynamic routing protocol support for protocols such as RIP, OSPF or BGP. Zebra is with you.
Traditionally, UNIX based router configuration is done by ifconfig and route commands. Status of routing table is displayed by netstsat utility. Almost of these commands work only the user has root privilege. Zebra has different system administration method. There are two user mode in Zebra. One is normal mode, the other is enable mode. Normal mode user can only view system status, enable mode user can change system configuration. This UNIX account independent feature will be great help to the router administrator.
Currently, Zebra supports common unicast routing protocols. Multicast
routing protocols such as BGMP, PIM-SM, PIM-DM will be
supported in Zebra 2.0. MPLS support is going on. In the future, TCP/IP filtering control, QoS control, diffserv
configuration will be added to Zebra. Zebra project's final goal is making
productive quality free TCP/IP routing software.
Traditional routing software is made as a one process program which
provides all of the routing protocol functionalities. Zebra takes a
different approach. It is made from a collection of several daemons
that work together to build a routing table. There may be several
protocol-specific routing daemons and zebra the kernel routing manager.
The ripd daemon handles the RIP protocol, while
ospfd is a daemon which supports OSPF version 2.
bgpd supports the BGP-4 protocol. For changing the kernel
routing table and for redistribution of routes between different routing
protocols, there is a kernel routing table manager zebra daemon.
It is easy to add a new routing protocol daemons to the entire routing system
without affecting any other software. You need run only the protocol daemon
associated with routing protocols in use. Thus, user may run a specific daemon
and send routing reports to a central routing console.
There is no need for these daemons to be running on the same machine.
You can even run several same protocol daemon on the same machine. This
architecture creates new possibilities for the routing system.
Multi process architecture bring us extensibility, modularity and maintainability. At the same time it also bring us many configuration files and terminal interface. Each daemon has it's own configuration file and terminal interface. When you configure static route, it must be done in zebra configuration file. When you configure BGP network it must be done in bgpd configuration file. It is very annoying thing. To resolve the problem, Zebra provides integrated user interface shell called vsh. vsh connect to each daemon with UNIX domain socket then work as proxy of user input.
Zebra was planned to use multi-threaded mechanism when it runs with a kernel that supports multi-threads. But at this moment, the thread library which comes with GNU/Linux or FreeBSD has some problems for running reliable services such as routing software, so we dont use threads at all, instead we use the select(2) system call for multiplexing the events.
When zebra runs under a GNU Hurd kernel it will act as a
kernel routing table itself. Under GNU Hurd, all TCP/IP services are provided
by user processes called pfinet. Zebra will provide all the
routing selection mechanisms for the process. This feature will be implemented
when GNU Hurd becomes stable.
Some IPv6 stacks are in development. Zebra supports following IPv6 stack.
For BSD, we recommend KAME IPv6 stack. Solaris IPv6 stack is not yet
supported.
Below is the list of currently supported routing protocol RFCs:
Zebra is still beta version software and there is no officially released
version. So currently Zebra is distributed from Zebra beta ftp site located at
Once Zebra is released you can get it from GNU FTP site and many it's mirror
sites. We are planning Zebra-1.0 as a first released version.
Zebra's official web page is located at:
There is a Zebra beta tester web page at:
You can get the latest beta software information from this page.
There is a mailing list for discussions about Zebra. If you have any
comments or suggestions to Zebra please sent to <zebra@zebra.org>. New snapshot announcements, improvement notes, and some patches are sent to
the list.
To subscribe Zebra mailing list <zebra@zebra.org, Zebra mailing list>, please send a mail to
<majordomo@zebra.org> with a message body, that includes only:
To unsubscribe from the list, please send a mail to
<majordomo@zebra.org> with a message body that includes only:
If you think you have found a bug, please send a bug report to
<bug-zebra@gnu.org>.When
you send a bug report, please be careful about the points below.
Bug reports are very important for us to improve the quality of
Zebra. Zebra is still in the development stage, but please don't
hesitate to send a bug report to
<bug-zebra@gnu.org>.
This file documents the GNU Zebra software which manages common
TCP/IP routing protocols.
This is Edition 0.1, last updated 5 July 2000 of `The GNU Zebra
Manual', for Zebra Version 0.88.
Copyright (C) 1999, 2000 Kunihiro Ishiguro
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by Kunihiro Ishiguro.
GNU Zebra is now testing on:
Routing Information Protocol. C.L. Hedrick. Jun-01-1998
A Border Gateway Protocol 4 (BGP-4.) Y. Rekhter & T. Li. March
1995.
BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August
1996.
RIPng for IPv6. G. Malkin, R. Minnear. January 1997.
Multiprotocol Extensions for BGP-4. T. Bates, R. Chandra, D. Katz,
Y. Rekhter. February 1998.
OSPF Version 2. J. Moy. April 1998.
RIP Version 2. G. Malkin. November 1998.
Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain
Routing. P. Marques, F. Dupont. March 1999.
OSPF for IPv6. R. Coltun, D. Perguson, J.Moy. December 1999.
BGP Route Reflection An alternative to full mesh IBGP
T. Bates R. Chandrasekeran. June 1996.
SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.
Definitions of Managed Objects for the Fourth Version of the
Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J.Burruss,
J. Chu, Editor. July 1994.
OSPF Version 2 Management Information Base. F. Baker, R. Coltun.
November 1995.
subscribe zebra
unsubscribe zebra