![]() |
|
||||
GNU Zebra User's Guide |
Zebra Overview
Zebra is a TCP/IP-based routing manager with support for several protocols, including: RIPv1, RIPv2, OSPFv2, OSPFv3, and BGP-4. Zebra also supports special BGP 4+ behaviors: Route Reflector and Route Server. With an SNMP daemon that supports SMUX protocol, Zebra can also provide the MIB for the routing protocol.
Zebra's advanced software architecture provides a high quality, multiserver routing system. With an interactive user interface for each protocol, Zebra uses common commands for each protocol. This design allows users to easily add new protocol daemons to Zebra. The Zebra library is a programmatic interface for C-language applications. Zebra is an open source, royalty-free software distribution licensed under the GNU General Public License (GPL).
How Zebra Works
When sending and receiving information to the Internet, TCP/IP packets pass through many routers using TCP/IP routing protocols.
A system with Zebra installed acts as a router, delivering TCP/IP packets. With Zebra, the system exchanges routing information with other routers using specific routing protocols. Zebra uses this information to update the kernel routing table to ensure that the correct data is sent to the correct destination.
In addition to the routing protocol support, Zebra can configure the address and flags of an interface, static routes and so on. For smaller networks, a sub network, or an xDSL connection, the Zebra routing software can be used to implement basic routing. The only requirements are the configuration of the interfaces and addition of commands for static and/or default routes. For larger, more complicated networks, Zebra offers dynamic routing protocol support for autonomous protocols such as RIP (Routing Information Protocol), OSPF (Open Shortest Path First) or BGP (Border Gateway Protocol).
UNIX-based router configurations are traditionally handled by the ifconfig and route commands. These commands require root privileges. Zebra, however, is configured through two user modes: Normal mode and Enable mode. In Normal mode, users can only view system status (similar to netstat), while an Enable mode user can change the Zebra system configuration. These independent UNIX accounts assist the router administrator by allowing users to access router information.
Zebra System Architecture
Traditional routing software uses a single process which provides all of the routing protocol functions. However, Zebra is comprised of several independent daemons that work together to build a routing table. Each of these daemons run under separate processes. In addition, there can be several protocol-specific routing daemons added to zebra (the routing manager).
The ripd daemon handles the RIP protocol, while the ospfd daemon supports OSPF v2. The bgpd daemon supports the BGP-4 protocol. The zebra kernel table manager changes the kernel routing table and redistributes routes between different routing protocols. Adding new routing protocol daemons to the routing system is easily accomplished without affecting any other software. Users only need to run the protocol daemon associated with the routing protocols in use. Thus, a specific daemon can send routing reports to a central routing console.
Zebra also allows multiple instances of the same protocol daemon to run on the same system.
![]()
Zebra Architecture
vtysh- Integrated User Interface Shell
Each daemon uses its own configuration file and terminal interfaces. Configuring a static route must be done in the zebra configuration file. Configuring a BGP network must be done in the bgpd configuration file. Editing these files separately is inefficient. Zebra provides an integrated user interface shell called vtysh. vtysh connects to each daemon with a UNIX domain socket and acts as a proxy for user input.
Autonomous Routing Protocols
An Autonomous Routing Protocol is an Internet specification that allows routers to discover routes, maintain route tables, and communicate route changes. RIP v1, v2, OPSF2, and BGP are all autonomous routing protocols.
Manually Inserted Routes
Zebra allows for the manual insertion of IP routes.
IPv4 Address Notation Conventions
IP addresses are represented in a "dotted decimal notation" of four integers that range from 0 to 255. Each of these integers (also called octets) represents 8 bits of a 32-bit IPv4 address, with the first integer establishing the IP address class.
Subnets
Some IPv4 networks are considered "classless". These classless IP networks use a 32-bit "subnet mask" to further define the IP network. Subnet masks allow an IP address range to be subdivided, creating additional IP addresses on a network, and facilitating routing services. All IP addresses assigned today are classless.
Subnet masks are written either in decimal dotted notation, or are appended to the IP address in their bit value. This bit value constitutes the number of bits in the subnet mask.
For example, the IP address denoted as 10.0.0.0/8 indicates that the subnet mask uses 8 bits, and is noted as 255.0.0.0 in decimal dotted notation. An IP address of 10.0.0.0/24 uses a 24-bit subnet mask and is noted as 255.255.255.0 in decimal dotted notation.
In this document, IP addresses may be noted with or without the "/" notation for specifying IP addresses and subnet masks.
IPv6
The IPv6 protocol addresses technical limitations of IPv4. Most notably is the increase in IP address space, which has changed from 32 to 128 bits per address.
IPv4 32-bit addresses are represented in dotted-decimal format divided along 8-bit boundaries. IPv6 IP addresses are 128-bit address divided along 16-bit boundaries, and each 16-bit block is converted to a 4-digit hexadecimal number and separated by colons. For example:
The IPv6 functionality of Zebra described in this manual applies to LynxOS systems configured with IPv6 support. Additional information on IPv6 can be found in the LynxOS Networking Guide.
Installing Zebra
Zebra installation instructions are provided in the LynxOS Installation Guide.
GNU Zebra Components
The following table describe the GNU Zebra components.
The following table describes the GNU Zebra man pages included with this distribution.
GNU Zebra man pages Component Description zebra(1) Zebra management daemon ripd(1) RIP daemon ospfd(1) OSPF daemon bgpd(1) BGP daemon vtysh(1) Integrated user shell for Zebra
Updating /etc/services
Users can update the /etc/services file with the ports used with the Zebra routing protocols. The following provides an example /etc/services file with the zebra port numbers:
Zebra Ports configured in /etc/services
Supported RFCs
Below is the list of currently supported routing protocol RFCs:
Zebra Resources
Zebra is still beta software and is currently distributed from the Zebra beta ftp site:
Zebra's official web page is located at:
The Zebra beta tester web page is available from:
Mailing List
The mailing list for discussions and announcements regarding Zebra is: [email protected]. New snapshot announcements, improvement notes, patches, and other notices are sent to the list.
To subscribe to the Zebra mailing list, send a mail to [email protected] with a message body that includes only: subscribe zebra
To unsubscribe from the list, send a mail to [email protected] with a message body that includes only: unsubscribe zebra
Reporting Bugs
To report a bug, send email to: [email protected].
When submitting a bug, note the following:
- Provide the results of netstat -rn and ifconfig -a. Information from Zebra's VTY command show ip route will also be helpful.
- Send the configuration file with the report. If arguments are used to the configure script please note that too.
Bug reports are important to improve the quality of Zebra. Zebra is still in the development stage, but please don't hesitate to send a bug report.
![]() LynuxWorks, Inc. 855 Branham Lane East San Jose, CA 95138 http://www.lynuxworks.com 1.800.255.5969 |
![]() |
![]() |
![]() |
![]() |