zebra
*****

zebra is an IP routing manager.  It provides kernel routing table updates, interface lookups, and redistribution of routes between different routing protocols.

Invoking zebra
==============

Besides the common invocation options (see Common Invocation Options), the zebra specific invocation options are listed below.

-b
--batch
     Runs in batch mode.  zebra parses configuration file and terminates immediately.

-k
--keep_kernel
     When zebra starts up, don't delete old self inserted routes.

-l
--log_mode
     Set verbose logging on.

-r
--retain
     When program terminates, retain routes added by zebra.

Interface Commands
==================

 -- Command: interface IFNAME

 -- Interface Command: shutdown
 -- Interface Command: no shutdown
     Up or down the current interface.

 -- Interface Command: ip address ADDRESS
     Set ip address for the interface.

 -- Interface Command: description DESCRIPTION ...
     Set description for the interface.

 -- Interface Command: multicast
 -- Interface Command: no multicast
     Enable or disables multicast flag for the interface.

 -- Interface Command: bandwidth <1-10000000>
 -- Interface Command: no bandwidth <1-10000000>
     Set bandwidth value to the interface.  This is for calculating OSPF cost.  This command does not affect the actual device configuration.

Static Route Commands
=====================

Static routing is a very fundamental feature of routing technology.  It defines static prefix and gateway.

 -- Command: ip route NETWORK GATEWAY
     NETWORK is destination prefix with format of A.B.C.D/M. GATEWAY is gateway for the prefix.  When GATEWAY is A.B.C.D format.  It is taken as a IPv4 address gateway.  Otherwise it is treated as an interface name.

          ip route 10.0.0.0/8 10.0.0.2
          ip route 10.0.0.0/8 ppp0

     First example defines 10.0.0.0/8 static route with gateway 10.0.0.2. Second one defines the same prefix but with gateway to interface ppp0.

 -- Command: ip route NETWORK NETMASK GATEWAY
     This is alternate version of above command.  When NETWORK is A.B.C.D format, user must define NETMASK value with A.B.C.D format.  GATEWAY is same option as above command

          ip route 10.0.0.0 255.255.255.0 10.0.0.2
          ip route 10.0.0.0 255.255.255.0 ppp0

     This is a same setting using this statement.

 -- Command: ip route NETWORK GATEWAY DISTANCE

Multiple nexthop static route

     ip route 10.0.0.1/32 10.0.0.2
     ip route 10.0.0.1/32 10.0.0.3
     ip route 10.0.0.1/32 eth0

If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0 is reachable, then the last route is installed into the kernel.

     zebra> show ip route
     S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive
                           via 10.0.0.3 inactive
       *                   is directly connected, eth0

Floating static route

 -- Command: ipv6 route NETWORK GATEWAY

 -- Command: ipv6 route NETWORK GATEWAY DISTANCE

 -- Command: table TABLENO
     Select the primary kernel routing table to be used.  This only works for kernels supporting multiple routing tables (like GNU/Linux 2.2.x and later).  After setting TABLENO with this command, static routes defined after this are added to the specified table.

zebra Terminal Mode Commands
============================

 -- Command: show ip route
     Display current routes which zebra holds in its database.

          Router# show ip route
          Codes: K - kernel route, C - connected, S - static, R - RIP,
                 B - BGP * - FIB route.

          K* 0.0.0.0/0              203.181.89.241
          S  0.0.0.0/0              203.181.89.1
          C* 127.0.0.0/8            lo
          C* 203.181.89.240/28      eth0

 -- Command: show ipv6 route

 -- Command: show interface

 -- Command: show ipforward
     Display whether the host's IP forwarding function is enabled or not. Almost any UNIX kernel can be configured with IP forwarding disabled. If so, the box can't work as a router.

 -- Command: show ipv6forward
     Display whether the host's IP v6 forwarding is enabled or not.