TOC PREV NEXT INDEX

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.

IP Address Classes and Ranges
Class
Range
A
1.0.0.0 through 127.255.255.255
B
128.0.0.0 through 191.255.255.255
C
192.0.0.0 through 223.255.255.255
D (Multicast)
224.0.0.0 through 239.255.255.255
E (Experimental)
240.0.0.0 through 247.255.255.255

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:

200A:00A3:2C5B:0000:02FF:FF00:FE38:934A

Note: The IPv6 and IPsec protocols for LynxOS are not included with the standard LynxOS package. These components are available for purchase separately. For information on these products, please contact your LynuxWorks sales representative.

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.

GNU Zebra Components  
Component
Description
zebra
Zebra management daemon
zebra.conf.sample
zebra sample configuration file
ripd
RIP daemon
ripd.conf.sample
ripd sample configuration file
ospfd
OSPF daemon
ospfd.conf.sample
ospfd sample configuration file
bgpd
BGP daemon
bgpd.conf.sample
bgpd.conf.sample2
bgpd sample configuration files
vtysh
Integrated user shell for Zebra

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


#
# zebra interfaces
#
zebrasrv   2600/tcp   # zebra service
zebra      2601/tcp   # zebra vty
ripd       2602/tcp   # RIPd vty
ripngd     2603/tcp   # RIPngd vty
ospfd      2604/tcp   # OSPFd vty
bgpd       2605/tcp   # BGPd vty
ospf6d     2606/tcp   # OSPF6d vty

Supported RFCs

Below is the list of currently supported routing protocol RFCs:

Supported RFCs  
RFC
Description
RFC1058
Routing Information Protocol. C.L. Hedrick. Jun-01-1998
RFC1771
A Border Gateway Protocol 4 (BGP-4.) Y. Rekhter & T. Li. March 1995.
RFC1997
BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August 1996.
RFC2283
Multiprotocol Extensions for BGP-4. T. Bates, R. Chandra, D. Katz, Y. Rekhter. February 1998.
RFC2328
OSPF v2. J. Moy. April 1998.
RFC2453
RIP v2. G. Malkin. November 1998.
RFC2796
BGP Route Reflection An alternative to full mesh IBGP T. Bates R. Chandrasekeran. June 1996.
RFC1227
SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.
RFC 1657
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.
RFC1850
OSPF v2 Management Information Base. F. Baker, R. Coltun. November 1995.
RFC1519
CIDR: Address and Assignment Aggregation Strategy
RFC950
Internet Standard Subnetting Procedure
RFC1058
Routing Information Protocol. C.L. Hedrick. Jun-01-1998
RFC1771
A Border Gateway Protocol 4 (BGP-4.) Y. Rekhter & T. Li. March 1995.
RFC1997
BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August 1996.
RFC2080
RIPng for IPv6. G. Malkin, R. Minnear. January 1997.
RFC2283
Multiprotocol Extensions for BGP-4. T. Bates, R. Chandra, D. Katz, Y. Rekhter. February 1998.
RFC2328
OSPF Version 2. J. Moy. April 1998.
RFC2453
RIP Version 2. G. Malkin. November 1998.
RFC2545
Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. March 1999.
RFC2740
OSPF for IPv6. R. Coltun, D. Perguson, J.Moy. December 1999.
RFC2796
BGP Route Reflection An alternative to full mesh IBGP T. Bates R. Chandrasekeran. June 1996.
RFC1227
SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.
RFC 1657
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.
RFC1850
OSPF Version 2 Management Information Base. F. Baker, R. Coltun. November 1995.

Zebra Resources

Zebra is still beta software and is currently distributed from the Zebra beta ftp site:

ftp://ftp.zebra.org/pub/zebra

Zebra's official web page is located at:

http://www.gnu.org/software/zebra/zebra.html

The Zebra beta tester web page is available from:

http://www.zebra.org/

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:

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
TOC PREV NEXT INDEX