File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / doc / main.texi
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:26:11 2012 UTC (12 years, 4 months ago) by misho
Branches: quagga, MAIN
CVS tags: v0_99_21, v0_99_20_1, v0_99_20, HEAD
quagga

    1: @node Zebra
    2: @chapter Zebra
    3: 
    4: @c SYNOPSIS
    5: @command{zebra} is an IP routing manager.  It provides kernel routing
    6: table updates, interface lookups, and redistribution of routes between
    7: different routing protocols.
    8: 
    9: @menu
   10: * Invoking zebra::              Running the program
   11: * Interface Commands::          Commands for zebra interfaces
   12: * Static Route Commands::       Commands for adding static routes
   13: * zebra Route Filtering::       Commands for zebra route filtering
   14: * zebra Terminal Mode Commands::  Commands for zebra's VTY
   15: @end menu
   16: 
   17: 
   18: @node Invoking zebra
   19: @section Invoking zebra
   20: 
   21: Besides the common invocation options (@pxref{Common Invocation Options}), the
   22: @command{zebra} specific invocation options are listed below.
   23: 
   24: @table @samp
   25: @item -b
   26: @itemx --batch
   27: Runs in batch mode.  @command{zebra} parses configuration file and terminates
   28: immediately.
   29: 
   30: @item -k
   31: @itemx --keep_kernel
   32: When zebra starts up, don't delete old self inserted routes.
   33: 
   34: @item -r
   35: @itemx --retain
   36: When program terminates, retain routes added by zebra.
   37: 
   38: @end table
   39: 
   40: @node Interface Commands
   41: @section Interface Commands
   42: 
   43: @deffn Command {interface @var{ifname}} {}
   44: @end deffn
   45: 
   46: @deffn {Interface Command} {shutdown} {}
   47: @deffnx {Interface Command} {no shutdown} {}
   48: Up or down the current interface.
   49: @end deffn
   50: 
   51: @deffn {Interface Command} {ip address @var{address/prefix}} {}
   52: @deffnx {Interface Command} {ipv6 address @var{address/prefix}} {}
   53: @deffnx {Interface Command} {no ip address @var{address/prefix}} {}
   54: @deffnx {Interface Command} {no ipv6 address @var{address/prefix}} {}
   55: Set the IPv4 or IPv6 address/prefix for the interface.
   56: @end deffn
   57: 
   58: @deffn {Interface Command} {ip address @var{address/prefix} secondary} {}
   59: @deffnx {Interface Command} {no ip address @var{address/prefix} secondary} {}
   60: Set the secondary flag for this address. This causes ospfd to not treat the
   61: address as a distinct subnet.
   62: @end deffn
   63: 
   64: @deffn {Interface Command} {description @var{description} ...} {}
   65: Set description for the interface.
   66: @end deffn
   67: 
   68: @deffn {Interface Command} {multicast} {}
   69: @deffnx {Interface Command} {no multicast} {}
   70: Enable or disables multicast flag for the interface.
   71: @end deffn
   72: 
   73: @deffn {Interface Command} {bandwidth <1-10000000>} {}
   74: @deffnx {Interface Command} {no bandwidth <1-10000000>} {}
   75: Set bandwidth value of the interface in kilobits/sec.  This is for 
   76: calculating OSPF cost. This command does not affect the actual device 
   77: configuration.
   78: @end deffn
   79: 
   80: @deffn {Interface Command} {link-detect} {}
   81: @deffnx {Interface Command} {no link-detect} {}
   82: Enable/disable link-detect on platforms which support this. Currently 
   83: only Linux and Solaris, and only where network interface drivers support reporting
   84: link-state via the IFF_RUNNING flag.
   85: @end deffn
   86: 
   87: @node Static Route Commands
   88: @section Static Route Commands
   89: 
   90: Static routing is a very fundamental feature of routing technology.  It
   91: defines static prefix and gateway.
   92: 
   93: @deffn Command {ip route @var{network} @var{gateway}} {}
   94: @var{network} is destination prefix with format of A.B.C.D/M.
   95: @var{gateway} is gateway for the prefix.  When @var{gateway} is
   96: A.B.C.D format.  It is taken as a IPv4 address gateway.  Otherwise it
   97: is treated as an interface name. If the interface name is @var{null0} then
   98: zebra installs a blackhole route.
   99: 
  100: @example
  101: ip route 10.0.0.0/8 10.0.0.2
  102: ip route 10.0.0.0/8 ppp0
  103: ip route 10.0.0.0/8 null0
  104: @end example
  105: 
  106: First example defines 10.0.0.0/8 static route with gateway 10.0.0.2.
  107: Second one defines the same prefix but with gateway to interface ppp0. The
  108: third install a blackhole route.
  109: @end deffn
  110: 
  111: @deffn Command {ip route @var{network} @var{netmask} @var{gateway}} {}
  112: This is alternate version of above command.  When @var{network} is
  113: A.B.C.D format, user must define @var{netmask} value with A.B.C.D
  114: format.  @var{gateway} is same option as above command
  115: 
  116: @example
  117: ip route 10.0.0.0 255.255.255.0 10.0.0.2
  118: ip route 10.0.0.0 255.255.255.0 ppp0
  119: ip route 10.0.0.0 255.255.255.0 null0
  120: @end example
  121: 
  122: These statements are equivalent to those in the previous example.
  123: @end deffn
  124: 
  125: @deffn Command {ip route @var{network} @var{gateway} @var{distance}} {}
  126: Installs the route with the specified distance.
  127: @end deffn
  128: 
  129: Multiple nexthop static route
  130: 
  131: @example
  132: ip route 10.0.0.1/32 10.0.0.2
  133: ip route 10.0.0.1/32 10.0.0.3
  134: ip route 10.0.0.1/32 eth0
  135: @end example
  136: 
  137: If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0
  138: is reachable, then the last route is installed into the kernel.
  139: 
  140: If zebra has been compiled with multipath support, and both 10.0.0.2 and
  141: 10.0.0.3 are reachable, zebra will install a multipath route via both
  142: nexthops, if the platform supports this.
  143: 
  144: @example
  145: zebra> show ip route
  146: S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive
  147:                       via 10.0.0.3 inactive
  148:   *                   is directly connected, eth0
  149: @end example
  150: 
  151: @example
  152: ip route 10.0.0.0/8 10.0.0.2
  153: ip route 10.0.0.0/8 10.0.0.3
  154: ip route 10.0.0.0/8 null0 255
  155: @end example
  156: 
  157: This will install a multihop route via the specified next-hops if they are
  158: reachable, as well as a high-metric blackhole route, which can be useful to
  159: prevent traffic destined for a prefix to match less-specific routes (eg
  160: default) should the specified gateways not be reachable. Eg:
  161: 
  162: @example
  163: zebra> show ip route 10.0.0.0/8             
  164: Routing entry for 10.0.0.0/8
  165:   Known via "static", distance 1, metric 0
  166:     10.0.0.2 inactive
  167:     10.0.0.3 inactive
  168: 
  169: Routing entry for 10.0.0.0/8
  170:   Known via "static", distance 255, metric 0
  171:     directly connected, Null0
  172: @end example
  173: 
  174: @deffn Command {ipv6 route @var{network} @var{gateway}} {}
  175: @deffnx Command {ipv6 route @var{network} @var{gateway} @var{distance}} {}
  176: These behave similarly to their ipv4 counterparts.
  177: @end deffn
  178: 
  179: 
  180: @deffn Command {table @var{tableno}} {}
  181: Select the primary kernel routing table to be used.  This only works
  182: for kernels supporting multiple routing tables (like GNU/Linux 2.2.x
  183: and later).  After setting @var{tableno} with this command, 
  184: static routes defined after this are added to the specified table.
  185: @end deffn
  186: 
  187: @node zebra Route Filtering
  188: @section zebra Route Filtering
  189: Zebra supports @command{prefix-list} and @command{route-map} to match
  190: routes received from other quagga components.  The
  191: @command{permit}/@command{deny} facilities provided by these commands
  192: can be used to filter which routes zebra will install in the kernel.
  193: 
  194: @deffn Command {ip protocol @var{protocol} route-map @var{routemap}} {}
  195: Apply a route-map filter to routes for the specified protocol. @var{protocol}
  196: can be @b{any} or one of
  197: @b{system},
  198: @b{kernel},
  199: @b{connected},
  200: @b{static},
  201: @b{rip},
  202: @b{ripng},
  203: @b{ospf},
  204: @b{ospf6},
  205: @b{isis},
  206: @b{bgp},
  207: @b{hsls}.
  208: @end deffn
  209: 
  210: @deffn {Route Map} {set src @var{address}}
  211: Within a route-map, set the preferred source address for matching routes
  212: when installing in the kernel.
  213: @end deffn
  214: 
  215: @example
  216: The following creates a prefix-list that matches all addresses, a route-map
  217: that sets the preferred source address, and applies the route-map to all
  218: @command{rip} routes.
  219: 
  220: @group
  221: ip prefix-list ANY permit 0.0.0.0/0 le 32
  222: route-map RM1 permit 10
  223:      match ip address prefix-list ANY
  224:      set src 10.0.0.1
  225: 
  226: ip protocol rip route-map RM1
  227: @end group
  228: @end example
  229: 
  230: @node zebra Terminal Mode Commands
  231: @section zebra Terminal Mode Commands
  232: 
  233: @deffn Command {show ip route} {}
  234: Display current routes which zebra holds in its database.
  235: 
  236: @example
  237: @group
  238: Router# show ip route 
  239: Codes: K - kernel route, C - connected, S - static, R - RIP, 
  240:        B - BGP * - FIB route.
  241: 
  242: K* 0.0.0.0/0              203.181.89.241
  243: S  0.0.0.0/0              203.181.89.1
  244: C* 127.0.0.0/8            lo
  245: C* 203.181.89.240/28      eth0
  246: @end group
  247: @end example
  248: @end deffn
  249: 
  250: @deffn Command {show ipv6 route} {}
  251: @end deffn
  252: 
  253: @deffn Command {show interface} {}
  254: @end deffn
  255: 
  256: @deffn Command {show ip prefix-list [@var{name}]} {}
  257: @end deffn
  258: 
  259: @deffn Command {show route-map [@var{name}]} {}
  260: @end deffn
  261: 
  262: @deffn Command {show ip protocol} {}
  263: @end deffn
  264: 
  265: @deffn Command {show ipforward} {}
  266: Display whether the host's IP forwarding function is enabled or not.
  267: Almost any UNIX kernel can be configured with IP forwarding disabled.
  268: If so, the box can't work as a router.
  269: @end deffn
  270: 
  271: @deffn Command {show ipv6forward} {}
  272: Display whether the host's IP v6 forwarding is enabled or not.
  273: @end deffn

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>