Annotation of embedaddon/bird/doc/bird-3.html, revision 1.1
1.1 ! misho 1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
! 2: <HTML>
! 3: <HEAD>
! 4: <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
! 5: <TITLE>BIRD User's Guide: Configuration</TITLE>
! 6: <LINK HREF="bird-4.html" REL=next>
! 7: <LINK HREF="bird-2.html" REL=previous>
! 8: <LINK HREF="bird.html#toc3" REL=contents>
! 9: </HEAD>
! 10: <BODY>
! 11: <A HREF="bird-4.html">Next</A>
! 12: <A HREF="bird-2.html">Previous</A>
! 13: <A HREF="bird.html#toc3">Contents</A>
! 14: <HR>
! 15: <H2><A NAME="config"></A> <A NAME="s3">3.</A> <A HREF="bird.html#toc3">Configuration</A></H2>
! 16:
! 17: <H2><A NAME="config-intro"></A> <A NAME="ss3.1">3.1</A> <A HREF="bird.html#toc3.1">Introduction</A>
! 18: </H2>
! 19:
! 20: <P>BIRD is configured using a text configuration file. Upon startup, BIRD reads
! 21: <I>prefix</I><CODE>/etc/bird.conf</CODE> (unless the <CODE>-c</CODE> command line option
! 22: is given). Configuration may be changed at user's request: if you modify the
! 23: config file and then signal BIRD with <CODE>SIGHUP</CODE>, it will adjust to the new
! 24: config. Then there's the client which allows you to talk with BIRD in an
! 25: extensive way.
! 26: <P>
! 27: <P>In the config, everything on a line after <CODE>#</CODE> or inside <CODE>/* */</CODE> is
! 28: a comment, whitespace characters are treated as a single space. If there's a
! 29: variable number of options, they are grouped using the <CODE>{ }</CODE> brackets. Each
! 30: option is terminated by a <CODE>;</CODE>. Configuration is case sensitive. There are two
! 31: ways how to name symbols (like protocol names, filter names, constants etc.). You
! 32: can either use a simple string starting with a letter followed by any
! 33: combination of letters and numbers (e.g. "R123", "myfilter", "bgp5") or you can
! 34: enclose the name into apostrophes (<CODE>'</CODE>) and than you can use any combination
! 35: of numbers, letters. hyphens, dots and colons (e.g. "'1:strange-name'",
! 36: "'-NAME-'", "'cool::name'").
! 37: <P>
! 38: <P>Here is an example of a simple config file. It enables synchronization of
! 39: routing tables with OS kernel, scans for new network interfaces every 10 seconds
! 40: and runs RIP on all network interfaces found.
! 41: <P>
! 42: <HR>
! 43: <PRE>
! 44: protocol kernel {
! 45: persist; # Don't remove routes on BIRD shutdown
! 46: scan time 20; # Scan kernel routing table every 20 seconds
! 47: export all; # Default is export none
! 48: }
! 49:
! 50: protocol device {
! 51: scan time 10; # Scan interfaces every 10 seconds
! 52: }
! 53:
! 54: protocol rip {
! 55: export all;
! 56: import all;
! 57: interface "*";
! 58: }
! 59: </PRE>
! 60: <HR>
! 61: <P>
! 62: <P>
! 63: <H2><A NAME="global-opts"></A> <A NAME="ss3.2">3.2</A> <A HREF="bird.html#toc3.2">Global options</A>
! 64: </H2>
! 65:
! 66: <P>
! 67: <DL>
! 68: <DT><CODE>
! 69: <A NAME="opt-include"></A> include "<I>filename</I>"</CODE><DD><P>This statement causes inclusion of a new file. <I>Filename</I> could also
! 70: be a wildcard, in that case matching files are included in alphabetic
! 71: order. The maximal depth is 8. Note that this statement could be used
! 72: anywhere in the config file, not just as a top-level option.
! 73: <P>
! 74: <DT><CODE>
! 75: <A NAME="opt-log"></A> log "<I>filename</I>"|syslog [name <I>name</I>]|stderr all|{ <I>list of classes</I> }</CODE><DD><P>Set logging of messages having the given class (either <CODE>all</CODE> or
! 76: <CODE>{ error|trace [, <I>...</I>] }</CODE> etc.) into selected destination (a file specified
! 77: as a filename string, syslog with optional name argument, or the stderr
! 78: output). Classes are:
! 79: <CODE>info</CODE>, <CODE>warning</CODE>, <CODE>error</CODE> and <CODE>fatal</CODE> for messages about local problems,
! 80: <CODE>debug</CODE> for debugging messages,
! 81: <CODE>trace</CODE> when you want to know what happens in the network,
! 82: <CODE>remote</CODE> for messages about misbehavior of remote machines,
! 83: <CODE>auth</CODE> about authentication failures,
! 84: <CODE>bug</CODE> for internal BIRD bugs.
! 85: You may specify more than one <CODE>log</CODE> line to establish logging to
! 86: multiple destinations. Default: log everything to the system log.
! 87: <P>
! 88: <DT><CODE>
! 89: <A NAME="opt-debug-protocols"></A> debug protocols all|off|{ states|routes|filters|interfaces|events|packets [, <I>...</I>] }</CODE><DD><P>Set global defaults of protocol debugging options. See <CODE>debug</CODE> in the
! 90: following section. Default: off.
! 91: <P>
! 92: <DT><CODE>
! 93: <A NAME="opt-debug-commands"></A> debug commands <I>number</I></CODE><DD><P>Control logging of client connections (0 for no logging, 1 for logging
! 94: of connects and disconnects, 2 and higher for logging of all client
! 95: commands). Default: 0.
! 96: <P>
! 97: <DT><CODE>
! 98: <A NAME="opt-debug-latency"></A> debug latency <I>switch</I></CODE><DD><P>Activate tracking of elapsed time for internal events. Recent events
! 99: could be examined using <CODE>dump events</CODE> command. Default: off.
! 100: <P>
! 101: <DT><CODE>
! 102: <A NAME="opt-debug-latency-limit"></A> debug latency limit <I>time</I></CODE><DD><P>If <CODE>debug latency</CODE> is enabled, this option allows to specify a limit
! 103: for elapsed time. Events exceeding the limit are logged. Default: 1 s.
! 104: <P>
! 105: <DT><CODE>
! 106: <A NAME="opt-watchdog-warn"></A> watchdog warning <I>time</I></CODE><DD><P>Set time limit for I/O loop cycle. If one iteration took more time to
! 107: complete, a warning is logged. Default: 5 s.
! 108: <P>
! 109: <DT><CODE>
! 110: <A NAME="opt-watchdog-timeout"></A> watchdog timeout <I>time</I></CODE><DD><P>Set time limit for I/O loop cycle. If the limit is breached, BIRD is
! 111: killed by abort signal. The timeout has effective granularity of
! 112: seconds, zero means disabled. Default: disabled (0).
! 113: <P>
! 114: <DT><CODE>
! 115: <A NAME="opt-mrtdump"></A> mrtdump "<I>filename</I>"</CODE><DD><P>Set MRTdump file name. This option must be specified to allow MRTdump
! 116: feature. Default: no dump file.
! 117: <P>
! 118: <DT><CODE>
! 119: <A NAME="opt-mrtdump-protocols"></A> mrtdump protocols all|off|{ states|messages [, <I>...</I>] }</CODE><DD><P>Set global defaults of MRTdump options. See <CODE>mrtdump</CODE> in the
! 120: following section. Default: off.
! 121: <P>
! 122: <DT><CODE>
! 123: <A NAME="opt-filter"></A> filter <I>name local variables</I>{ <I>commands</I> }</CODE><DD><P>Define a filter. You can learn more about filters in the following
! 124: chapter.
! 125: <P>
! 126: <DT><CODE>
! 127: <A NAME="opt-function"></A> function <I>name</I> (<I>parameters</I>) <I>local variables</I> { <I>commands</I> }</CODE><DD><P>Define a function. You can learn more about functions in the following chapter.
! 128: <P>
! 129: <DT><CODE>
! 130: <A NAME="opt-protocol"></A> protocol rip|ospf|bgp|<I>...</I> [<I>name</I> [from <I>name2</I>]] { <I>protocol options</I> }</CODE><DD><P>Define a protocol instance called <CODE><I>name</I></CODE> (or with a name like
! 131: "rip5" generated automatically if you don't specify any
! 132: <CODE><I>name</I></CODE>). You can learn more about configuring protocols in
! 133: their own chapters. When <CODE>from <I>name2</I></CODE> expression is used,
! 134: initial protocol options are taken from protocol or template
! 135: <CODE><I>name2</I></CODE> You can run more than one instance of most protocols
! 136: (like RIP or BGP). By default, no instances are configured.
! 137: <P>
! 138: <DT><CODE>
! 139: <A NAME="opt-template"></A> template rip|bgp|<I>...</I> [<I>name</I> [from <I>name2</I>]] { <I>protocol options</I> }</CODE><DD><P>Define a protocol template instance called <I>name</I> (or with a name like
! 140: "bgp1" generated automatically if you don't specify any <I>name</I>).
! 141: Protocol templates can be used to group common options when many
! 142: similarly configured protocol instances are to be defined. Protocol
! 143: instances (and other templates) can use templates by using <CODE>from</CODE>
! 144: expression and the name of the template. At the moment templates (and
! 145: <CODE>from</CODE> expression) are not implemented for OSPF protocol.
! 146: <P>
! 147: <DT><CODE>
! 148: <A NAME="opt-define"></A> define <I>constant</I> = <I>expression</I></CODE><DD><P>Define a constant. You can use it later in every place you could use a
! 149: value of the same type. Besides, there are some predefined numeric
! 150: constants based on /etc/iproute2/rt_* files. A list of defined constants
! 151: can be seen (together with other symbols) using 'show symbols' command.
! 152: <P>
! 153: <DT><CODE>
! 154: <A NAME="opt-router-id"></A> router id <I>IPv4 address</I></CODE><DD><P>Set BIRD's router ID. It's a world-wide unique identification of your
! 155: router, usually one of router's IPv4 addresses. Default: in IPv4
! 156: version, the lowest IP address of a non-loopback interface. In IPv6
! 157: version, this option is mandatory.
! 158: <P>
! 159: <DT><CODE>
! 160: <A NAME="opt-router-id-from"></A> router id from [-] [ "<I>mask</I>" ] [ <I>prefix</I> ] [, <I>...</I>]</CODE><DD><P>Set BIRD's router ID based on an IP address of an interface specified by
! 161: an interface pattern. The option is applicable for IPv4 version only.
! 162: See
! 163: <A HREF="#proto-iface">interface</A> section for detailed
! 164: description of interface patterns with extended clauses.
! 165: <P>
! 166: <DT><CODE>
! 167: <A NAME="opt-listen-bgp"></A> listen bgp [address <I>address</I>] [port <I>port</I>] [dual]</CODE><DD><P>This option allows to specify address and port where BGP protocol should
! 168: listen. It is global option as listening socket is common to all BGP
! 169: instances. Default is to listen on all addresses (0.0.0.0) and port 179.
! 170: In IPv6 mode, option <CODE>dual</CODE> can be used to specify that BGP socket
! 171: should accept both IPv4 and IPv6 connections (but even in that case,
! 172: BIRD would accept IPv6 routes only). Such behavior was default in older
! 173: versions of BIRD.
! 174: <P>
! 175: <DT><CODE>
! 176: <A NAME="opt-graceful-restart"></A> graceful restart wait <I>number</I></CODE><DD><P>During graceful restart recovery, BIRD waits for convergence of routing
! 177: protocols. This option allows to specify a timeout for the recovery to
! 178: prevent waiting indefinitely if some protocols cannot converge. Default:
! 179: 240 seconds.
! 180: <P>
! 181: <DT><CODE>
! 182: <A NAME="opt-timeformat"></A> timeformat route|protocol|base|log "<I>format1</I>" [<I>limit</I> "<I>format2</I>"]</CODE><DD><P>This option allows to specify a format of date/time used by BIRD. The
! 183: first argument specifies for which purpose such format is used.
! 184: <CODE>route</CODE> is a format used in 'show route' command output,
! 185: <CODE>protocol</CODE> is used in 'show protocols' command output, <CODE>base</CODE> is
! 186: used for other commands and <CODE>log</CODE> is used in a log file.
! 187: <P>"<I>format1</I>" is a format string using <I>strftime(3)</I> notation (see
! 188: <I>man strftime</I> for details). <I>limit> and "<I>format2</I>" allow to
! 189: specify the second format string for times in past deeper than <I>limit</I>
! 190: seconds. There are few shorthands: <CODE>iso long</CODE> is a ISO 8601 date</I>time
! 191: format (YYYY-MM-DD hh:mm:ss) that can be also specified using <CODE>"%F %T"</CODE>.
! 192: <CODE>iso short</CODE> is a variant of ISO 8601 that uses just the time format
! 193: (hh:mm:ss) for near times (up to 20 hours in the past) and the date
! 194: format (YYYY-MM-DD) for far times. This is a shorthand for
! 195: <CODE>"%T" 72000 "%F"</CODE>.
! 196: <P>By default, BIRD uses the <CODE>iso short</CODE> format for <CODE>route</CODE> and
! 197: <CODE>protocol</CODE> times, and the <CODE>iso long</CODE> format for <CODE>base</CODE> and
! 198: <CODE>log</CODE> times.
! 199: <P>In pre-1.4.0 versions, BIRD used an short, ad-hoc format for <CODE>route</CODE>
! 200: and <CODE>protocol</CODE> times, and a <CODE>iso long</CODE> similar format (DD-MM-YYYY
! 201: hh:mm:ss) for <CODE>base</CODE> and <CODE>log</CODE>. These timeformats could be set by
! 202: <CODE>old short</CODE> and <CODE>old long</CODE> compatibility shorthands.
! 203: <P>
! 204: <DT><CODE>
! 205: <A NAME="opt-table"></A> table <I>name</I> [sorted]</CODE><DD><P>Create a new routing table. The default routing table is created
! 206: implicitly, other routing tables have to be added by this command.
! 207: Option <CODE>sorted</CODE> can be used to enable sorting of routes, see
! 208: <A HREF="bird-2.html#dsc-table-sorted">sorted table</A> description for details.
! 209: <P>
! 210: <DT><CODE>
! 211: <A NAME="opt-roa-table"></A> roa table <I>name</I> [ { <I>roa table options ...</I> } ]</CODE><DD><P>Create a new ROA (Route Origin Authorization) table. ROA tables can be
! 212: used to validate route origination of BGP routes. A ROA table contains
! 213: ROA entries, each consist of a network prefix, a max prefix length and
! 214: an AS number. A ROA entry specifies prefixes which could be originated
! 215: by that AS number. ROA tables could be filled with data from RPKI (<A HREF="http://www.rfc-editor.org/info/rfc6480">RFC 6480</A>) or from public databases like Whois. ROA tables are
! 216: examined by <CODE>roa_check()</CODE> operator in filters.
! 217: <P>Currently, there is just one option, <CODE>roa <I>prefix</I> max <I>num</I> as
! 218: <I>num</I></CODE>, which can be used to populate the ROA table with static
! 219: ROA entries. The option may be used multiple times. Other entries can be
! 220: added dynamically by <CODE>add roa</CODE> command.
! 221: <P>
! 222: <DT><CODE>
! 223: <A NAME="opt-eval"></A> eval <I>expr</I></CODE><DD><P>Evaluates given filter expression. It is used by us for testing of filters.
! 224: </DL>
! 225: <P>
! 226: <P>
! 227: <H2><A NAME="protocol-opts"></A> <A NAME="ss3.3">3.3</A> <A HREF="bird.html#toc3.3">Protocol options</A>
! 228: </H2>
! 229:
! 230: <P>For each protocol instance, you can configure a bunch of options. Some of
! 231: them (those described in this section) are generic, some are specific to the
! 232: protocol (see sections talking about the protocols).
! 233: <P>
! 234: <P>Several options use a <I>switch</I> argument. It can be either <CODE>on</CODE>,
! 235: <CODE>yes</CODE> or a numeric expression with a non-zero value for the option to be
! 236: enabled or <CODE>off</CODE>, <CODE>no</CODE> or a numeric expression evaluating to zero to
! 237: disable it. An empty <I>switch</I> is equivalent to <CODE>on</CODE> ("silence means
! 238: agreement").
! 239: <P>
! 240: <DL>
! 241: <DT><CODE>
! 242: <A NAME="proto-preference"></A> preference <I>expr</I></CODE><DD><P>Sets the preference of routes generated by this protocol. Default:
! 243: protocol dependent.
! 244: <P>
! 245: <DT><CODE>
! 246: <A NAME="proto-disabled"></A> disabled <I>switch</I></CODE><DD><P>Disables the protocol. You can change the disable/enable status from the
! 247: command line interface without needing to touch the configuration.
! 248: Disabled protocols are not activated. Default: protocol is enabled.
! 249: <P>
! 250: <DT><CODE>
! 251: <A NAME="proto-debug"></A> debug all|off|{ states|routes|filters|interfaces|events|packets [, <I>...</I>] }</CODE><DD><P>Set protocol debugging options. If asked, each protocol is capable of
! 252: writing trace messages about its work to the log (with category
! 253: <CODE>trace</CODE>). You can either request printing of <CODE>all</CODE> trace messages
! 254: or only of the types selected: <CODE>states</CODE> for protocol state changes
! 255: (protocol going up, down, starting, stopping etc.), <CODE>routes</CODE> for
! 256: routes exchanged with the routing table, <CODE>filters</CODE> for details on
! 257: route filtering, <CODE>interfaces</CODE> for interface change events sent to the
! 258: protocol, <CODE>events</CODE> for events internal to the protocol and <CODE>packets</CODE>
! 259: for packets sent and received by the protocol. Default: off.
! 260: <P>
! 261: <DT><CODE>
! 262: <A NAME="proto-mrtdump"></A> mrtdump all|off|{ states|messages [, <I>...</I>] }</CODE><DD><P>Set protocol MRTdump flags. MRTdump is a standard binary format for
! 263: logging information from routing protocols and daemons. These flags
! 264: control what kind of information is logged from the protocol to the
! 265: MRTdump file (which must be specified by global <CODE>mrtdump</CODE> option, see
! 266: the previous section). Although these flags are similar to flags of
! 267: <CODE>debug</CODE> option, their meaning is different and protocol-specific. For
! 268: BGP protocol, <CODE>states</CODE> logs BGP state changes and <CODE>messages</CODE> logs
! 269: received BGP messages. Other protocols does not support MRTdump yet.
! 270: <P>
! 271: <DT><CODE>
! 272: <A NAME="proto-router-id"></A> router id <I>IPv4 address</I></CODE><DD><P>This option can be used to override global router id for a given
! 273: protocol. Default: uses global router id.
! 274: <P>
! 275: <DT><CODE>
! 276: <A NAME="proto-import"></A> import all | none | filter <I>name</I> | filter { <I>filter commands</I> } | where <I>filter expression</I></CODE><DD><P>Specify a filter to be used for filtering routes coming from the
! 277: protocol to the routing table. <CODE>all</CODE> is shorthand for <CODE>where true</CODE>
! 278: and <CODE>none</CODE> is shorthand for <CODE>where false</CODE>. Default: <CODE>all</CODE>.
! 279: <P>
! 280: <DT><CODE>
! 281: <A NAME="proto-export"></A> export <I>filter</I></CODE><DD><P>This is similar to the <CODE>import</CODE> keyword, except that it works in
! 282: the direction from the routing table to the protocol. Default: <CODE>none</CODE>.
! 283: <P>
! 284: <DT><CODE>
! 285: <A NAME="proto-import-keep-filtered"></A> import keep filtered <I>switch</I></CODE><DD><P>Usually, if an import filter rejects a route, the route is forgotten.
! 286: When this option is active, these routes are kept in the routing table,
! 287: but they are hidden and not propagated to other protocols. But it is
! 288: possible to show them using <CODE>show route filtered</CODE>. Note that this
! 289: option does not work for the pipe protocol. Default: off.
! 290: <P>
! 291: <DT><CODE>
! 292: <A NAME="proto-import-limit"></A> import limit [<I>number</I> | off ] [action warn | block | restart | disable]</CODE><DD><P>Specify an import route limit (a maximum number of routes imported from
! 293: the protocol) and optionally the action to be taken when the limit is
! 294: hit. Warn action just prints warning log message. Block action discards
! 295: new routes coming from the protocol. Restart and disable actions shut
! 296: the protocol down like appropriate commands. Disable is the default
! 297: action if an action is not explicitly specified. Note that limits are
! 298: reset during protocol reconfigure, reload or restart. Default: <CODE>off</CODE>.
! 299: <P>
! 300: <DT><CODE>
! 301: <A NAME="proto-receive-limit"></A> receive limit [<I>number</I> | off ] [action warn | block | restart | disable]</CODE><DD><P>Specify an receive route limit (a maximum number of routes received from
! 302: the protocol and remembered). It works almost identically to <CODE>import
! 303: limit</CODE> option, the only difference is that if <CODE>import keep
! 304: filtered</CODE> option is active, filtered routes are counted towards the
! 305: limit and blocked routes are forgotten, as the main purpose of the
! 306: receive limit is to protect routing tables from overflow. Import limit,
! 307: on the contrary, counts accepted routes only and routes blocked by the
! 308: limit are handled like filtered routes. Default: <CODE>off</CODE>.
! 309: <P>
! 310: <DT><CODE>
! 311: <A NAME="proto-export-limit"></A> export limit [ <I>number</I> | off ] [action warn | block | restart | disable]</CODE><DD><P>Specify an export route limit, works similarly to the <CODE>import
! 312: limit</CODE> option, but for the routes exported to the protocol. This
! 313: option is experimental, there are some problems in details of its
! 314: behavior -- the number of exported routes can temporarily exceed the
! 315: limit without triggering it during protocol reload, exported routes
! 316: counter ignores route blocking and block action also blocks route
! 317: updates of already accepted routes -- and these details will probably
! 318: change in the future. Default: <CODE>off</CODE>.
! 319: <P>
! 320: <DT><CODE>
! 321: <A NAME="proto-description"></A> description "<I>text</I>"</CODE><DD><P>This is an optional description of the protocol. It is displayed as a
! 322: part of the output of 'show route all' command.
! 323: <P>
! 324: <DT><CODE>
! 325: <A NAME="proto-table"></A> table <I>name</I></CODE><DD><P>Connect this protocol to a non-default routing table.
! 326: </DL>
! 327: <P>
! 328: <P>There are several options that give sense only with certain protocols:
! 329: <P>
! 330: <DL>
! 331: <DT><CODE>
! 332: <A NAME="proto-iface"></A> interface [-] [ "<I>mask</I>" ] [ <I>prefix</I> ] [, <I>...</I>] [ { <I>option</I>; [<I>...</I>] } ]</CODE><DD><P>Specifies a set of interfaces on which the protocol is activated with
! 333: given interface-specific options. A set of interfaces specified by one
! 334: interface option is described using an interface pattern. The interface
! 335: pattern consists of a sequence of clauses (separated by commas), each
! 336: clause is a mask specified as a shell-like pattern. Interfaces are
! 337: matched by their name.
! 338: <P>An interface matches the pattern if it matches any of its clauses. If
! 339: the clause begins with <CODE>-</CODE>, matching interfaces are excluded. Patterns
! 340: are processed left-to-right, thus <CODE>interface "eth0", -"eth*", "*";</CODE>
! 341: means eth0 and all non-ethernets.
! 342: <P>Some protocols (namely OSPFv2 and Direct) support extended clauses that
! 343: may contain a mask, a prefix, or both of them. An interface matches such
! 344: clause if its name matches the mask (if specified) and its address
! 345: matches the prefix (if specified). Extended clauses are used when the
! 346: protocol handles multiple addresses on an interface independently.
! 347: <P>An interface option can be used more times with different interface-specific
! 348: options, in that case for given interface the first matching interface
! 349: option is used.
! 350: <P>This option is allowed in Babel, BFD, Direct, OSPF, RAdv and RIP
! 351: protocols, but in OSPF protocol it is used in the <CODE>area</CODE> subsection.
! 352: <P>Default: none.
! 353: <P>Examples:
! 354: <P><CODE>interface "*" { type broadcast; };</CODE> - start the protocol on all
! 355: interfaces with <CODE>type broadcast</CODE> option.
! 356: <P><CODE>interface "eth1", "eth4", "eth5" { type ptp; };</CODE> - start the
! 357: protocol on enumerated interfaces with <CODE>type ptp</CODE> option.
! 358: <P><CODE>interface -192.168.1.0/24, 192.168.0.0/16;</CODE> - start the protocol
! 359: on all interfaces that have address from 192.168.0.0/16, but not from
! 360: 192.168.1.0/24.
! 361: <P><CODE>interface -192.168.1.0/24, 192.168.0.0/16;</CODE> - start the protocol
! 362: on all interfaces that have address from 192.168.0.0/16, but not from
! 363: 192.168.1.0/24.
! 364: <P><CODE>interface "eth*" 192.168.1.0/24;</CODE> - start the protocol on all
! 365: ethernet interfaces that have address from 192.168.1.0/24.
! 366: <P>
! 367: <DT><CODE>
! 368: <A NAME="proto-tx-class"></A> tx class|dscp <I>num</I></CODE><DD><P>This option specifies the value of ToS/DS/Class field in IP headers of
! 369: the outgoing protocol packets. This may affect how the protocol packets
! 370: are processed by the network relative to the other network traffic. With
! 371: <CODE>class</CODE> keyword, the value (0-255) is used for the whole ToS/Class
! 372: octet (but two bits reserved for ECN are ignored). With <CODE>dscp</CODE>
! 373: keyword, the value (0-63) is used just for the DS field in the octet.
! 374: Default value is 0xc0 (DSCP 0x30 - CS6).
! 375: <P>
! 376: <DT><CODE>
! 377: <A NAME="proto-tx-priority"></A> tx priority <I>num</I></CODE><DD><P>This option specifies the local packet priority. This may affect how the
! 378: protocol packets are processed in the local TX queues. This option is
! 379: Linux specific. Default value is 7 (highest priority, privileged traffic).
! 380: <P>
! 381: <DT><CODE>
! 382: <A NAME="proto-pass"></A> password "<I>password</I>" [ { <I>password options</I> } ]</CODE><DD><P>Specifies a password that can be used by the protocol as a shared secret
! 383: key. Password option can be used more times to specify more passwords.
! 384: If more passwords are specified, it is a protocol-dependent decision
! 385: which one is really used. Specifying passwords does not mean that
! 386: authentication is enabled, authentication can be enabled by separate,
! 387: protocol-dependent <CODE>authentication</CODE> option.
! 388: <P>This option is allowed in BFD, OSPF and RIP protocols. BGP has also
! 389: <CODE>password</CODE> option, but it is slightly different and described
! 390: separately.
! 391: Default: none.
! 392: </DL>
! 393: <P>
! 394: <P>Password option can contain section with some (not necessary all) password sub-options:
! 395: <P>
! 396: <DL>
! 397: <DT><CODE>
! 398: <A NAME="proto-pass-id"></A> id <I>num</I></CODE><DD><P>ID of the password, (1-255). If it is not used, BIRD will choose ID based
! 399: on an order of the password item in the interface. For example, second
! 400: password item in one interface will have default ID 2. ID is used by
! 401: some routing protocols to identify which password was used to
! 402: authenticate protocol packets.
! 403: <P>
! 404: <DT><CODE>
! 405: <A NAME="proto-pass-gen-from"></A> generate from "<I>time</I>"</CODE><DD><P>The start time of the usage of the password for packet signing.
! 406: The format of <CODE><I>time</I></CODE> is <CODE>dd-mm-yyyy HH:MM:SS</CODE>.
! 407: <P>
! 408: <DT><CODE>
! 409: <A NAME="proto-pass-gen-to"></A> generate to "<I>time</I>"</CODE><DD><P>The last time of the usage of the password for packet signing.
! 410: <P>
! 411: <DT><CODE>
! 412: <A NAME="proto-pass-accept-from"></A> accept from "<I>time</I>"</CODE><DD><P>The start time of the usage of the password for packet verification.
! 413: <P>
! 414: <DT><CODE>
! 415: <A NAME="proto-pass-accept-to"></A> accept to "<I>time</I>"</CODE><DD><P>The last time of the usage of the password for packet verification.
! 416: <P>
! 417: <DT><CODE>
! 418: <A NAME="proto-pass-from"></A> from "<I>time</I>"</CODE><DD><P>Shorthand for setting both <CODE>generate from</CODE> and <CODE>accept from</CODE>.
! 419: <P>
! 420: <DT><CODE>
! 421: <A NAME="proto-pass-to"></A> to "<I>time</I>"</CODE><DD><P>Shorthand for setting both <CODE>generate to</CODE> and <CODE>accept to</CODE>.
! 422: <P>
! 423: <DT><CODE>
! 424: <A NAME="proto-pass-algorithm"></A> algorithm ( keyed md5 | keyed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 )</CODE><DD><P>The message authentication algorithm for the password when cryptographic
! 425: authentication is enabled. The default value depends on the protocol.
! 426: For RIP and OSPFv2 it is Keyed-MD5 (for compatibility), for OSPFv3
! 427: protocol it is HMAC-SHA-256.
! 428: <P>
! 429: </DL>
! 430: <P>
! 431: <HR>
! 432: <A HREF="bird-4.html">Next</A>
! 433: <A HREF="bird-2.html">Previous</A>
! 434: <A HREF="bird.html#toc3">Contents</A>
! 435: </BODY>
! 436: </HTML>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>