Unofficial GNU Zebra FAQ

Section: index -> general questions

Current capacity: 15 Q(s)


  1. Q: Where can I find documentation for GNU Zebra ?

    A: Here is description of main Zebra resources as of time of writing:

    resourcecurrent state
    Zebra manual for v. 0.93b, info formatContains up-to-date list of all CLI commands, but very few comments.
    Zebra manual for v. 0.85, html format, supplied with ZebraSome outdated.
    Zebra manual for v. 0.88, html format, Pawel S. Veselov homepageSome outdated.
    Zebra manual for v. 0.93b, html format, by Jean-Francois Laforesta fresh meat :)
    Zebra man pages collectionDescribes command-line parameters, contains list of relevant CLI commands
    Zebra web-siteOnly most general information
    Unofficial Zebra FAQUpdated some times per month

    IMPORTANT NOTE !
    Zebra is a free product and Zebra doc is free too. Some people contribute to it their spare time, you use it. This document is not an exception. In other words, get it for free and as-is. If you need a commercial support, go to zebra web-site. Non-commercial support is donated by somebody's time and experience. If you can, send improvements and/or updates to Zebra or Zebra documentation.

  2. Q: Where can I find more information on routing ?

    A: Paul: www.cisco.com has plenty of useful documents.

    A: Teun Vink: www.bgpexpert.com, www.nanog.org, www.ciscopress.com.

    A: Pilot: I provide some links too:

  3. Q: Why does this FAQ mainly refer to Linux and OSPF?

    A: Because the maintainers mainly use Linux and OSPF. If you have anything to add, please email it to Zebra mailing list and we may publish it here.

  4. Q: How to unsubscribe from zebra@zebra.org mailing list ?

    A: Read the message majordomo program sent to you when you subscribed onto the list. If you have lost it, send e-mail to majordomo@zebra.org with this text in message BODY: unsubscribe zebra your@email.address.com. Although it's worth reading for you, if you read this FAQ :)

  5. Q: What is the latest version of Zebra and how can I get it?

    A: Paul: The latest version tar.gz can be downloaded from GNU Zebra web-site. This is the official site and should contain links to the latest version. If you want the very latest version, it is better to use the CVS version and compile it yourself.

    Precompiled .rpm files are available with the RedHat Linux based distributions, but they are generally slightly out of date, and you would prefer the latest version. But before uninstalling, make a copy of zebra, ospfd, bgpd, whatever you wish have in /etc/rc.d/init.d/ - these scripts are useful for starting and stopping your daemons.

    A: Pilot: I guess, the correct way is to update your distro or poll your supplier for publishing updates for any program. Everyone should do his own work.

  6. Q: My routes appear in Zebra, but not in the Linux kernel.

    A: Paul: Some people have reported this problem in earlier versions of Zebra. I have never experienced this in versions 0.93a or later.

    A: Pilot: If you compile Zebra yourself, try to toggle usage of Linux RTNETLINK device. MAY BE, it will help.

    A: Richard Revis: RedHat Linux 7.3 (their current server version - also applies to the free release of 7.3) ships with RPMs that do not have netlink enabled, even though it is enabled in the kernel. Recompile Zebra from source with the option --enable-netlink.

  7. Q: I'm using the [AnyLinux] zebra-x.xx-y.iz86.rpm. How can I determine if it's Ok ?

    A: Neale Banks: grab the corresponding source package (e.g. zebra-x.xx-y.iz86.src.rpm) and examine it (bonus: you can tweak and rebuild to your requirements ;-).

    A: Pilot: I'll say again, poll your supplier. Optionally, after fetching the info about specific distribution, email us and we'll post it here.

    OS/distroout-of-box Zebra support
    Linux/ALTLinux Junior 2.0Ok
    Linux/ALTLinux Master 2.0Ok
    Linux/ALTLinux Master 2.2Ok
    Linux/ASPLinux 7.2Ok
    Linux/RedHat 7.3bad RPMs
    Linux/Debian sidOk
    FreeBSD/3.5-STABLEOk

    A: Teun Vink: For Debian, you can download the source package, and look at the debian/build file. The default Zebra packages supplied by Debian are compiled with these flags:

    ./configure --prefix=/usr --sysconfdir=/etc/zebra \
    	--enable-ipv6 \
    	--enable-vtysh \
    	--enable-netlink \
    	--enable-nssa \
    	--enable-snmp \
    	--with-libpam
    

  8. Q: How do you filter traffic in Zebra? What about NAT? How to apply my route map to an interface or use extended access-lists ?

    A: Paul: You don't. Zebra only handles the dynamic routing protocols. Most Operating Systems, such as Linux, support "iptables" or something similar that can be used for NAT and IP filtering.

    A: Pilot: Feel difference between route updates' route maps and policy routing. The 1st is a filter, applied to a set of records, and the 2nd is OS kernel's task. Use Linux netfilter to implement policy routing, QoS, link aggregation, firewall, NAT. Read Advanced-routing HOWTO.

    A: Njal Sigurdsson: FreeBSD is supplied with it's own packet filtering/accouting software called IPFW. Configuiration of IPFW can be found at FreeBSD handbook. Alternatively, IPFilter is another popular packet filter, which has been ported to the following platforms - Solaris, NetBSD, FreeBSD, OpenBSD, IRIX, HP-UX. Binaries and configuation information for IPFilter can be found at ipfilter.org

  9. Q: When using interfaces with non-standard packet sizes (like GRE), I can't get to certain sites.

    A: This is not a Zebra problem. Many secure web sites ignore all ICMP packets as part of their security policy. This is generally not a good idea, but you can't normally do much about it. All you can do is reduce the MTU of connections as are established. Here is a Linux example:

    # iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

  10. Q: How do I flush my routing table?

    A: Zebra has no function to perform RT flushing, you have to do it from OS command line.

    OS: Linux: First you should decide, what you wish to flush. If you want to kill ALL routes, including directly connected networks and loopback, use

    # ip route flush table all
    for IPv4 and
    # ip -6 route flush table all
    for IPv6.
    NB: All routes will be deleted, the machine will no longer be accessible over the network. Use physical console.
    Most common case is when you want to set your route table to the state like it was just after booting. Alexey Kuznetsov, "IP command reference": ...example flushes all the gatewayed routes from the main table (f. e. after a routing daemon crash).
    # ip -4 route flush scope global type unicast
    

    OS: *BSD: Try route flush.

  11. Q: I can't use the 'router rip' (ospf, bgp) command for some reason.

    A: Theodor Milkov: ripd (ospfd, bgpd) is separate daemon with separate vty on separate port. Unless you are using vtysh - you must telnet to port 2602 (2604, 2605) instead of 2601.

  12. Q: sh run doesn't work during configuration mode.

    A: Use wri ter command.

  13. Q: Load-balancing between 2 (3, 4, ...) gateways does not work while having 2 (3, 4, ...) routes to the same destination

    A:

    # configure [...] --enable-multipath=2 (3, 4, ...)
    
    or
    # configure [...] --enable-multipath=0 (no limit at all)
    
    Ensure that your Linux kernel has turned on following features: "Advanced router", "Enable equal-cost multipath".
    NOTE: Linux kernel performs multipath routing at flow-based principle. "Flow" here means "all connections with same source and same destination", so if you will test your ECMP setup by starting multiple FTP transfers from client A to server B, everything will flow through 1 interface. (Good note from John Fraizer)
    NEW: OSPF ECMP mini-HOWTO

  14. Q: How can I develop a custom application with data feeding from Zebra ?

    A: You may first try to read the following:

  15. Q: How can I setup an unequal-cost multipath routing with Zebra ?

    A: Paul Jakma: see the 'weight' flag for use in setting multi-next-hop routes, using the 'ip' tool. documented in ip-cref.ps, which usually lives in /usr/share/doc/iproute-x.y.z/ (at least on RedHat and clones).

    # ip route add <prefix> via <nexthop1> weight x via <nexthop2> weight y
    
    will create a route to prefix via nexthop1 and nexthop2, distributing packets1 according to the proportion of the weights. 1. well actually, it'll distribute the result of kernel route table lookups in proportion to the weights, not quite the same, but same overall result.
    Pilot: I follow mailing list to know, if there is a way to insert such routes from Zebra.