version 1.1.1.1, 2017/08/22 12:33:54
|
version 1.1.1.2, 2021/03/17 19:50:23
|
Line 594 agreement").
|
Line 594 agreement").
|
|
|
<tag><label id="proto-description">description "<m/text/"</tag> |
<tag><label id="proto-description">description "<m/text/"</tag> |
This is an optional description of the protocol. It is displayed as a |
This is an optional description of the protocol. It is displayed as a |
part of the output of 'show route all' command. | part of the output of 'show protocols all' command. |
|
|
<tag><label id="proto-table">table <m/name/</tag> |
<tag><label id="proto-table">table <m/name/</tag> |
Connect this protocol to a non-default routing table. |
Connect this protocol to a non-default routing table. |
|
|
|
<tag><label id="proto-vrf">vrf "<m/text/"|default</tag> |
|
Associate the protocol with specific VRF. The protocol will be |
|
restricted to interfaces assigned to the VRF and will use sockets bound |
|
to the VRF. A corresponding VRF interface must exist on OS level. For |
|
kernel protocol, an appropriate table still must be explicitly selected |
|
by <cf/table/ option. |
|
|
|
By selecting <cf/default/, the protocol is associated with the default |
|
VRF; i.e., it will be restricted to interfaces not assigned to any |
|
regular VRF. That is different from not specifying <cf/vrf/ at all, in |
|
which case the protocol may use any interface regardless of its VRF |
|
status. |
|
|
|
Note that for proper VRF support it is necessary to use Linux kernel |
|
version at least 4.14, older versions have limited VRF implementation. |
|
Before Linux kernel 5.0, a socket bound to a port in default VRF collide |
|
with others in regular VRFs. |
</descrip> |
</descrip> |
|
|
<p>There are several options that give sense only with certain protocols: |
<p>There are several options that give sense only with certain protocols: |
Line 828 This argument can be omitted if there exists only a si
|
Line 846 This argument can be omitted if there exists only a si
|
number of networks, number of routes before and after filtering). If |
number of networks, number of routes before and after filtering). If |
you use <cf/count/ instead, only the statistics will be printed. |
you use <cf/count/ instead, only the statistics will be printed. |
|
|
|
<tag><label id="cli-mrt-dump">mrt dump table <m/name/|"<m/pattern/" to "<m/filename/" [filter <m/f/|where <m/c/]</tag> |
|
Dump content of a routing table to a specified file in MRT table dump |
|
format. See <ref id="mrt" name="MRT protocol"> for details. |
|
|
<tag><label id="cli-show-roa">show roa [<m/prefix/ | in <m/prefix/ | for <m/prefix/] [as <m/num/] [table <m/t/]</tag> |
<tag><label id="cli-show-roa">show roa [<m/prefix/ | in <m/prefix/ | for <m/prefix/] [as <m/num/] [table <m/t/]</tag> |
Show contents of a ROA table (by default of the first one). You can |
Show contents of a ROA table (by default of the first one). You can |
specify a <m/prefix/ to print ROA entries for a specific network. If you |
specify a <m/prefix/ to print ROA entries for a specific network. If you |
Line 1187 foot).
|
Line 1209 foot).
|
|
|
<cf><m/P/.len</cf> returns the length of path <m/P/. |
<cf><m/P/.len</cf> returns the length of path <m/P/. |
|
|
|
<cf><m/P/.empty</cf> resets path <m/P/ to empty path. |
|
|
<cf>prepend(<m/P/,<m/A/)</cf> prepends ASN <m/A/ to path <m/P/ and |
<cf>prepend(<m/P/,<m/A/)</cf> prepends ASN <m/A/ to path <m/P/ and |
returns the result. |
returns the result. |
|
|
Line 1225 foot).
|
Line 1249 foot).
|
|
|
<cf><m/C/.len</cf> returns the length of clist <m/C/. |
<cf><m/C/.len</cf> returns the length of clist <m/C/. |
|
|
|
<cf><m/C/.empty</cf> resets clist <m/C/ to empty clist. |
|
|
<cf>add(<m/C/,<m/P/)</cf> adds pair (or quad) <m/P/ to clist <m/C/ and |
<cf>add(<m/C/,<m/P/)</cf> adds pair (or quad) <m/P/ to clist <m/C/ and |
returns the result. If item <m/P/ is already in clist <m/C/, it does |
returns the result. If item <m/P/ is already in clist <m/C/, it does |
nothing. <m/P/ may also be a clist, in that case all its members are |
nothing. <m/P/ may also be a clist, in that case all its members are |
Line 1392 clist for most purposes.
|
Line 1418 clist for most purposes.
|
<tag><label id="rta-ifname"><m/string/ ifname</tag> |
<tag><label id="rta-ifname"><m/string/ ifname</tag> |
Name of the outgoing interface. Sink routes (like blackhole, unreachable |
Name of the outgoing interface. Sink routes (like blackhole, unreachable |
or prohibit) and multipath routes have no interface associated with |
or prohibit) and multipath routes have no interface associated with |
them, so <cf/ifname/ returns an empty string for such routes. Read-only. | them, so <cf/ifname/ returns an empty string for such routes. Setting it |
| would also change route to a direct one (remove gateway). |
|
|
<tag><label id="rta-ifindex"><m/int/ ifindex</tag> |
<tag><label id="rta-ifindex"><m/int/ ifindex</tag> |
Index of the outgoing interface. System wide index of the interface. May |
Index of the outgoing interface. System wide index of the interface. May |
Line 1606 in the future. Also note that we currently support at
|
Line 1633 in the future. Also note that we currently support at
|
<p>BFD packets are sent with a dynamic source port number. Linux systems use by |
<p>BFD packets are sent with a dynamic source port number. Linux systems use by |
default a bit different dynamic port range than the IANA approved one |
default a bit different dynamic port range than the IANA approved one |
(49152-65535). If you experience problems with compatibility, please adjust |
(49152-65535). If you experience problems with compatibility, please adjust |
<cf>/proc/sys/net/ipv4/ip_local_port_range</cf> | <cf>/proc/sys/net/ipv4/ip_local_port_range</cf>. |
|
|
<sect1>Configuration |
<sect1>Configuration |
<label id="bfd-config"> |
<label id="bfd-config"> |
Line 1623 configuration is often sufficient.
|
Line 1650 configuration is often sufficient.
|
<p>Note that to use BFD for other protocols like OSPF or BGP, these protocols |
<p>Note that to use BFD for other protocols like OSPF or BGP, these protocols |
also have to be configured to request BFD sessions, usually by <cf/bfd/ option. |
also have to be configured to request BFD sessions, usually by <cf/bfd/ option. |
|
|
|
<p>A BFD instance not associated with any VRF handles session requests from all |
|
other protocols, even ones associated with a VRF. Such setup would work for |
|
single-hop BFD sessions if <cf/net.ipv4.udp_l3mdev_accept/ sysctl is enabled, |
|
but does not currently work for multihop sessions. Another approach is to |
|
configure multiple BFD instances, one for each VRF (including the default VRF). |
|
Each BFD instance associated with a VRF (regular or default) only handles |
|
session requests from protocols in the same VRF. |
|
|
<p>Some of BFD session options require <m/time/ value, which has to be specified |
<p>Some of BFD session options require <m/time/ value, which has to be specified |
with the appropriate unit: <m/num/ <cf/s/|<cf/ms/|<cf/us/. Although microseconds |
with the appropriate unit: <m/num/ <cf/s/|<cf/ms/|<cf/us/. Although microseconds |
are allowed as units, practical minimum values are usually in order of tens of |
are allowed as units, practical minimum values are usually in order of tens of |
Line 1754 protocol bfd [<name>] {
|
Line 1789 protocol bfd [<name>] {
|
computation. |
computation. |
|
|
<tag>password "<M>text</M>"</tag> |
<tag>password "<M>text</M>"</tag> |
Specifies a password used for authentication. See <ref id="dsc-pass" | Specifies a password used for authentication. See <ref id="proto-pass" |
name="password"> common option for detailed description. Note that |
name="password"> common option for detailed description. Note that |
password option <cf/algorithm/ is not available in BFD protocol. The |
password option <cf/algorithm/ is not available in BFD protocol. The |
algorithm is selected by <cf/authentication/ option for all passwords. |
algorithm is selected by <cf/authentication/ option for all passwords. |
Line 1883 using the following configuration parameters:
|
Line 1918 using the following configuration parameters:
|
<tag><label id="bgp-iface">interface <m/string/</tag> |
<tag><label id="bgp-iface">interface <m/string/</tag> |
Define interface we should use for link-local BGP IPv6 sessions. |
Define interface we should use for link-local BGP IPv6 sessions. |
Interface can also be specified as a part of <cf/neighbor address/ |
Interface can also be specified as a part of <cf/neighbor address/ |
(e.g., <cf/neighbor fe80::1234%eth0 as 65000;/). It is an error to use | (e.g., <cf/neighbor fe80::1234%eth0 as 65000;/). The option may also be |
this parameter for non link-local sessions. | used for non link-local sessions when it is necessary to explicitly |
| specify an interface, but only for direct (not multihop) sessions. |
|
|
<tag><label id="bgp-direct">direct</tag> |
<tag><label id="bgp-direct">direct</tag> |
Specify that the neighbor is directly connected. The IP address of the |
Specify that the neighbor is directly connected. The IP address of the |
Line 1963 using the following configuration parameters:
|
Line 1999 using the following configuration parameters:
|
immediately shut down. Note that this option cannot be used with |
immediately shut down. Note that this option cannot be used with |
multihop BGP. Default: disabled. |
multihop BGP. Default: disabled. |
|
|
<tag><label id="bgp-bfd">bfd <M>switch</M></tag> | <tag><label id="bgp-bfd">bfd <M>switch</M>|graceful</tag> |
BGP could use BFD protocol as an advisory mechanism for neighbor |
BGP could use BFD protocol as an advisory mechanism for neighbor |
liveness and failure detection. If enabled, BIRD setups a BFD session |
liveness and failure detection. If enabled, BIRD setups a BFD session |
for the BGP neighbor and tracks its liveness by it. This has an |
for the BGP neighbor and tracks its liveness by it. This has an |
advantage of an order of magnitude lower detection times in case of |
advantage of an order of magnitude lower detection times in case of |
failure. Note that BFD protocol also has to be configured, see | failure. When a neighbor failure is detected, the BGP session is |
<ref id="bfd" name="BFD"> section for details. Default: disabled. | restarted. Optionally, it can be configured (by <cf/graceful/ argument) |
| to trigger graceful restart instead of regular restart. Note that BFD |
| protocol also has to be configured, see <ref id="bfd" name="BFD"> |
| section for details. Default: disabled. |
|
|
<tag><label id="bgp-ttl-security">ttl security <m/switch/</tag> |
<tag><label id="bgp-ttl-security">ttl security <m/switch/</tag> |
Use GTSM (<rfc id="5082"> - the generalized TTL security mechanism). GTSM |
Use GTSM (<rfc id="5082"> - the generalized TTL security mechanism). GTSM |
Line 2043 using the following configuration parameters:
|
Line 2082 using the following configuration parameters:
|
TX direction. When active, all available routes accepted by the export |
TX direction. When active, all available routes accepted by the export |
filter are advertised to the neighbor. Default: off. |
filter are advertised to the neighbor. Default: off. |
|
|
|
<tag><label id="bgp-allow-local-pref">allow bgp_local_pref <m/switch/</tag> |
|
A standard BGP implementation do not send the Local Preference attribute |
|
to eBGP neighbors and ignore this attribute if received from eBGP |
|
neighbors, as per <rfc id="4271">. When this option is enabled on an |
|
eBGP session, this attribute will be sent to and accepted from the peer, |
|
which is useful for example if you have a setup like in <rfc id="7938">. |
|
The option does not affect iBGP sessions. Default: off. |
|
|
<tag><label id="bgp-allow-local-as">allow local as [<m/number/]</tag> |
<tag><label id="bgp-allow-local-as">allow local as [<m/number/]</tag> |
BGP prevents routing loops by rejecting received routes with the local |
BGP prevents routing loops by rejecting received routes with the local |
AS number in the AS path. This option allows to loose or disable the |
AS number in the AS path. This option allows to loose or disable the |
Line 2086 using the following configuration parameters:
|
Line 2133 using the following configuration parameters:
|
re-establish after a restart before deleting stale routes. Default: |
re-establish after a restart before deleting stale routes. Default: |
120 seconds. |
120 seconds. |
|
|
|
<tag><label id="bgp-long-lived-graceful-restart">long lived graceful restart <m/switch/|aware</tag> |
|
The long-lived graceful restart is an extension of the traditional |
|
<ref id="bgp-graceful-restart" name="BGP graceful restart">, where stale |
|
routes are kept even after the <ref id="bgp-graceful-restart-time" |
|
name="restart time"> expires for additional long-lived stale time, but |
|
they are marked with the LLGR_STALE community, depreferenced, and |
|
withdrawn from routers not supporting LLGR. Like traditional BGP |
|
graceful restart, it has three states: disabled, aware (receiving-only), |
|
and enabled. Note that long-lived graceful restart requires at least |
|
aware level of traditional BGP graceful restart. Default: aware, unless |
|
graceful restart is disabled. |
|
|
|
<tag><label id="bgp-long-lived-stale-time">long lived stale time <m/number/</tag> |
|
The long-lived stale time is announced in the BGP long-lived graceful |
|
restart capability and specifies how long the neighbor would keep stale |
|
routes depreferenced during long-lived graceful restart until either the |
|
session is re-stablished and synchronized or the stale time expires and |
|
routes are removed. Default: 3600 seconds. |
|
|
<tag><label id="bgp-interpret-communities">interpret communities <m/switch/</tag> |
<tag><label id="bgp-interpret-communities">interpret communities <m/switch/</tag> |
<rfc id="1997"> demands that BGP speaker should process well-known |
<rfc id="1997"> demands that BGP speaker should process well-known |
communities like no-export (65535, 65281) or no-advertise (65535, |
communities like no-export (65535, 65281) or no-advertise (65535, |
Line 2137 using the following configuration parameters:
|
Line 2203 using the following configuration parameters:
|
disable the instance automatically and wait for an administrator to fix |
disable the instance automatically and wait for an administrator to fix |
the problem manually. Default: off. |
the problem manually. Default: off. |
|
|
|
<tag><label id="bgp-disable-after-cease">disable after cease <m/switch/|<m/set-of-flags/</tag> |
|
When a Cease notification is received, disable the instance |
|
automatically and wait for an administrator to fix the problem manually. |
|
When used with <m/switch/ argument, it means handle every Cease subtype |
|
with the exception of <cf/connection collision/. Default: off. |
|
|
|
The <m/set-of-flags/ allows to narrow down relevant Cease subtypes. The |
|
syntax is <cf>{<m/flag/ [, <m/.../] }</cf>, where flags are: <cf/cease/, |
|
<cf/prefix limit hit/, <cf/administrative shutdown/, |
|
<cf/peer deconfigured/, <cf/administrative reset/, |
|
<cf/connection rejected/, <cf/configuration change/, |
|
<cf/connection collision/, <cf/out of resources/. |
|
|
<tag><label id="bgp-hold-time">hold time <m/number/</tag> |
<tag><label id="bgp-hold-time">hold time <m/number/</tag> |
Time in seconds to wait for a Keepalive message from the other side |
Time in seconds to wait for a Keepalive message from the other side |
before considering the connection stale. Default: depends on agreement |
before considering the connection stale. Default: depends on agreement |
Line 2227 using the following configuration parameters:
|
Line 2306 using the following configuration parameters:
|
some of them (marked with `<tt/O/') are optional. |
some of them (marked with `<tt/O/') are optional. |
|
|
<descrip> |
<descrip> |
<tag><label id="rta-bgp-path">bgppath bgp_path/</tag> | <tag><label id="rta-bgp-path">bgppath bgp_path</tag> |
Sequence of AS numbers describing the AS path the packet will travel |
Sequence of AS numbers describing the AS path the packet will travel |
through when forwarded according to the particular route. In case of |
through when forwarded according to the particular route. In case of |
internal BGP it doesn't contain the number of the local AS. |
internal BGP it doesn't contain the number of the local AS. |
|
|
<tag><label id="rta-bgp-local-pref">int bgp_local_pref/ [I]</tag> | <tag><label id="rta-bgp-local-pref">int bgp_local_pref [I]</tag> |
Local preference value used for selection among multiple BGP routes (see |
Local preference value used for selection among multiple BGP routes (see |
the selection rules above). It's used as an additional metric which is |
the selection rules above). It's used as an additional metric which is |
propagated through the whole local AS. |
propagated through the whole local AS. |
|
|
<tag><label id="rta-bgp-med">int bgp_med/ [O]</tag> | <tag><label id="rta-bgp-med">int bgp_med [O]</tag> |
The Multiple Exit Discriminator of the route is an optional attribute |
The Multiple Exit Discriminator of the route is an optional attribute |
which is used on external (inter-AS) links to convey to an adjacent AS |
which is used on external (inter-AS) links to convey to an adjacent AS |
the optimal entry point into the local AS. The received attribute is |
the optimal entry point into the local AS. The received attribute is |
Line 2248 some of them (marked with `<tt/O/') are optional.
|
Line 2327 some of them (marked with `<tt/O/') are optional.
|
external BGP instance. See <rfc id="4451"> for further discussion of |
external BGP instance. See <rfc id="4451"> for further discussion of |
BGP MED attribute. |
BGP MED attribute. |
|
|
<tag><label id="rta-bgp-origin">enum bgp_origin/</tag> | <tag><label id="rta-bgp-origin">enum bgp_origin</tag> |
Origin of the route: either <cf/ORIGIN_IGP/ if the route has originated |
Origin of the route: either <cf/ORIGIN_IGP/ if the route has originated |
in an interior routing protocol or <cf/ORIGIN_EGP/ if it's been imported |
in an interior routing protocol or <cf/ORIGIN_EGP/ if it's been imported |
from the <tt>EGP</tt> protocol (nowadays it seems to be obsolete) or |
from the <tt>EGP</tt> protocol (nowadays it seems to be obsolete) or |
<cf/ORIGIN_INCOMPLETE/ if the origin is unknown. |
<cf/ORIGIN_INCOMPLETE/ if the origin is unknown. |
|
|
<tag><label id="rta-bgp-next-hop">ip bgp_next_hop/</tag> | <tag><label id="rta-bgp-next-hop">ip bgp_next_hop</tag> |
Next hop to be used for forwarding of packets to this destination. On |
Next hop to be used for forwarding of packets to this destination. On |
internal BGP connections, it's an address of the originating router if |
internal BGP connections, it's an address of the originating router if |
it's inside the local AS or a boundary router the packet will leave the |
it's inside the local AS or a boundary router the packet will leave the |
AS through if it's an exterior route, so each BGP speaker within the AS |
AS through if it's an exterior route, so each BGP speaker within the AS |
has a chance to use the shortest interior path possible to this point. |
has a chance to use the shortest interior path possible to this point. |
|
|
<tag><label id="rta-bgp-atomic-aggr">void bgp_atomic_aggr/ [O]</tag> | <tag><label id="rta-bgp-atomic-aggr">void bgp_atomic_aggr [O]</tag> |
This is an optional attribute which carries no value, but the sole |
This is an optional attribute which carries no value, but the sole |
presence of which indicates that the route has been aggregated from |
presence of which indicates that the route has been aggregated from |
multiple routes by some router on the path from the originator. |
multiple routes by some router on the path from the originator. |
Line 2269 some of them (marked with `<tt/O/') are optional.
|
Line 2348 some of them (marked with `<tt/O/') are optional.
|
<!-- we don't handle aggregators right since they are of a very obscure type |
<!-- we don't handle aggregators right since they are of a very obscure type |
<tag>bgp_aggregator</tag> |
<tag>bgp_aggregator</tag> |
--> |
--> |
<tag><label id="rta-bgp-community">clist bgp_community/ [O]</tag> | <tag><label id="rta-bgp-community">clist bgp_community [O]</tag> |
List of community values associated with the route. Each such value is a |
List of community values associated with the route. Each such value is a |
pair (represented as a <cf/pair/ data type inside the filters) of 16-bit |
pair (represented as a <cf/pair/ data type inside the filters) of 16-bit |
integers, the first of them containing the number of the AS which |
integers, the first of them containing the number of the AS which |
Line 2280 some of them (marked with `<tt/O/') are optional.
|
Line 2359 some of them (marked with `<tt/O/') are optional.
|
freedom about which community attributes it defines and what will their |
freedom about which community attributes it defines and what will their |
semantics be. |
semantics be. |
|
|
<tag><label id="rta-bgp-ext-community">eclist bgp_ext_community/ [O]</tag> | <tag><label id="rta-bgp-ext-community">eclist bgp_ext_community [O]</tag> |
List of extended community values associated with the route. Extended |
List of extended community values associated with the route. Extended |
communities have similar usage as plain communities, but they have an |
communities have similar usage as plain communities, but they have an |
extended range (to allow 4B ASNs) and a nontrivial structure with a type |
extended range (to allow 4B ASNs) and a nontrivial structure with a type |
field. Individual community values are represented using an <cf/ec/ data |
field. Individual community values are represented using an <cf/ec/ data |
type inside the filters. |
type inside the filters. |
|
|
<tag><label id="rta-bgp-large-community">lclist <cf/bgp_large_community/ [O]</tag> | <tag><label id="rta-bgp-large-community">lclist bgp_large_community [O]</tag> |
List of large community values associated with the route. Large BGP |
List of large community values associated with the route. Large BGP |
communities is another variant of communities, but contrary to extended |
communities is another variant of communities, but contrary to extended |
communities they behave very much the same way as regular communities, |
communities they behave very much the same way as regular communities, |
Line 2295 some of them (marked with `<tt/O/') are optional.
|
Line 2374 some of them (marked with `<tt/O/') are optional.
|
Individual community values are represented using an <cf/lc/ data type |
Individual community values are represented using an <cf/lc/ data type |
inside the filters. |
inside the filters. |
|
|
<tag><label id="rta-bgp-originator-id">quad bgp_originator_id/ [I, O]</tag> | <tag><label id="rta-bgp-originator-id">quad bgp_originator_id [I, O]</tag> |
This attribute is created by the route reflector when reflecting the |
This attribute is created by the route reflector when reflecting the |
route and contains the router ID of the originator of the route in the |
route and contains the router ID of the originator of the route in the |
local AS. |
local AS. |
|
|
<tag><label id="rta-bgp-cluster-list">clist bgp_cluster_list/ [I, O]</tag> | <tag><label id="rta-bgp-cluster-list">clist bgp_cluster_list [I, O]</tag> |
This attribute contains a list of cluster IDs of route reflectors. Each |
This attribute contains a list of cluster IDs of route reflectors. Each |
route reflector prepends its cluster ID when reflecting the route. |
route reflector prepends its cluster ID when reflecting the route. |
</descrip> |
</descrip> |
Line 2535 translated to appropriate system (and OS-specific) rou
|
Line 2614 translated to appropriate system (and OS-specific) rou
|
these attributes: |
these attributes: |
|
|
<descrip> |
<descrip> |
<tag><label id="rta-krt-source">int krt_source/</tag> | <tag><label id="rta-krt-source">int krt_source</tag> |
The original source of the imported kernel route. The value is |
The original source of the imported kernel route. The value is |
system-dependent. On Linux, it is a value of the protocol field of the |
system-dependent. On Linux, it is a value of the protocol field of the |
route. See /etc/iproute2/rt_protos for common values. On BSD, it is |
route. See /etc/iproute2/rt_protos for common values. On BSD, it is |
based on STATIC and PROTOx flags. The attribute is read-only. |
based on STATIC and PROTOx flags. The attribute is read-only. |
|
|
<tag><label id="rta-krt-metric">int krt_metric/</tag> (Linux) | <tag><label id="rta-krt-metric">int krt_metric</tag> (Linux) |
The kernel metric of the route. When multiple same routes are in a |
The kernel metric of the route. When multiple same routes are in a |
kernel routing table, the Linux kernel chooses one with lower metric. |
kernel routing table, the Linux kernel chooses one with lower metric. |
Note that preferred way to set kernel metric is to use protocol option |
Note that preferred way to set kernel metric is to use protocol option |
<cf/metric/, unless per-route metric values are needed. |
<cf/metric/, unless per-route metric values are needed. |
|
|
<tag><label id="rta-krt-prefsrc">ip krt_prefsrc/</tag> (Linux) | <tag><label id="rta-krt-prefsrc">ip krt_prefsrc</tag> (Linux) |
The preferred source address. Used in source address selection for |
The preferred source address. Used in source address selection for |
outgoing packets. Has to be one of the IP addresses of the router. |
outgoing packets. Has to be one of the IP addresses of the router. |
|
|
<tag><label id="rta-krt-realm">int krt_realm/</tag> (Linux) | <tag><label id="rta-krt-realm">int krt_realm</tag> (Linux) |
The realm of the route. Can be used for traffic classification. |
The realm of the route. Can be used for traffic classification. |
|
|
<tag><label id="rta-krt-scope">int krt_scope/</tag> (Linux IPv4) | <tag><label id="rta-krt-scope">int krt_scope</tag> (Linux IPv4) |
The scope of the route. Valid values are 0-254, although Linux kernel |
The scope of the route. Valid values are 0-254, although Linux kernel |
may reject some values depending on route type and nexthop. It is |
may reject some values depending on route type and nexthop. It is |
supposed to represent `indirectness' of the route, where nexthops of |
supposed to represent `indirectness' of the route, where nexthops of |
Line 2608 protocol kernel { # Secondary routing table
|
Line 2687 protocol kernel { # Secondary routing table
|
</code> |
</code> |
|
|
|
|
|
<sect>MRT |
|
<label id="mrt"> |
|
|
|
<sect1>Introduction |
|
<label id="mrt-intro"> |
|
|
|
<p>The MRT protocol is a component responsible for handling the Multi-Threaded |
|
Routing Toolkit (MRT) routing information export format, which is mainly used |
|
for collecting and analyzing of routing information from BGP routers. The MRT |
|
protocol can be configured to do periodic dumps of routing tables, created MRT |
|
files can be analyzed later by other tools. Independent MRT table dumps can also |
|
be requested from BIRD client. There is also a feature to save incoming BGP |
|
messages in MRT files, but it is controlled by <ref id="proto-mrtdump" |
|
name="mrtdump"> options independently of MRT protocol, although that might |
|
change in the future. |
|
|
|
BIRD implements the main MRT format specification as defined in <rfc id="6396"> |
|
and the ADD_PATH extension (<rfc id="8050">). |
|
|
|
<sect1>Configuration |
|
<label id="mrt-config"> |
|
|
|
<p>MRT configuration consists of several statements describing routing table |
|
dumps. Multiple independent periodic dumps can be done as multiple MRT protocol |
|
instances. There are two mandatory statements: <cf/filename/ and <cf/period/. |
|
The behavior can be modified by following configuration parameters: |
|
|
|
<descrip> |
|
<tag><label id="mrt-table">table <m/name/ | "<m/pattern/"</tag> |
|
Specify a routing table (or a set of routing tables described by a |
|
wildcard pattern) that are to be dumped by the MRT protocol instance. |
|
Default: the master table. |
|
|
|
<tag><label id="mrt-filter">filter { <m/filter commands/ }</tag> |
|
The MRT protocol allows to specify a filter that is applied to routes as |
|
they are dumped. Rejected routes are ignored and not saved to the MRT |
|
dump file. Default: no filter. |
|
|
|
<tag><label id="mrt-where">where <m/filter expression/</tag> |
|
An alternative way to specify a filter for the MRT protocol. |
|
|
|
<tag><label id="mrt-filename">filename "<m/filename/"</tag> |
|
Specify a filename for MRT dump files. The filename may contain time |
|
format sequences with <it/strftime(3)/ notation (see <it/man strftime/ |
|
for details), there is also a sequence "%N" that is expanded to the name |
|
of dumped table. Therefore, each periodic dump of each table can be |
|
saved to a different file. Mandatory, see example below. |
|
|
|
<tag><label id="mrt-period">period <m/number/</tag> |
|
Specify the time interval (in seconds) between periodic dumps. |
|
Mandatory. |
|
|
|
<tag><label id="mrt-always-add-path">always add path <m/switch/</tag> |
|
The MRT format uses special records (specified in <rfc id="8050">) for |
|
routes received using BGP ADD_PATH extension to keep Path ID, while |
|
other routes use regular records. This has advantage of better |
|
compatibility with tools that do not know special records, but it loses |
|
information about which route is the best route. When this option is |
|
enabled, both ADD_PATH and non-ADD_PATH routes are stored in ADD_PATH |
|
records and order of routes for network is preserved. Default: disabled. |
|
</descrip> |
|
|
|
<sect1>Example |
|
<label id="mrt-exam"> |
|
|
|
<p><code> |
|
protocol mrt { |
|
table "tab*"; |
|
where source = RTS_BGP; |
|
filename "/var/log/bird/%N_%F_%T.mrt"; |
|
period 300; |
|
} |
|
</code> |
|
|
|
|
<sect>OSPF |
<sect>OSPF |
<label id="ospf"> |
<label id="ospf"> |
|
|
Line 2914 protocol ospf <name> {
|
Line 3068 protocol ospf <name> {
|
Specifies interval in seconds between retransmissions of unacknowledged |
Specifies interval in seconds between retransmissions of unacknowledged |
updates. Default value is 5. |
updates. Default value is 5. |
|
|
|
<tag><label id="ospf-transmit-delay">transmit delay <M>num</M></tag> |
|
Specifies estimated transmission delay of link state updates send over |
|
the interface. The value is added to LSA age of LSAs propagated through |
|
it. Default value is 1. |
|
|
<tag><label id="ospf-priority">priority <M>num</M></tag> |
<tag><label id="ospf-priority">priority <M>num</M></tag> |
On every multiple access network (e.g., the Ethernet) Designated Router |
On every multiple access network (e.g., the Ethernet) Designated Router |
and Backup Designated router are elected. These routers have some special |
and Backup Designated router are elected. These routers have some special |
Line 3314 time intervals or as an answer to a request) advertise
|
Line 3473 time intervals or as an answer to a request) advertise
|
networks. These packets contain basic information about a local network (e.g. a |
networks. These packets contain basic information about a local network (e.g. a |
list of network prefixes), which allows network hosts to autoconfigure network |
list of network prefixes), which allows network hosts to autoconfigure network |
addresses and choose a default route. BIRD implements router behavior as defined |
addresses and choose a default route. BIRD implements router behavior as defined |
in <rfc id="4861"> and also the DNS extensions from <rfc id="6106">. | in <rfc id="4861">, router preferences and specific routes (<rfc id="4191">), |
| and DNS extensions (<rfc id="6106">). |
|
|
<sect1>Configuration |
<sect1>Configuration |
<label id="radv-config"> |
<label id="radv-config"> |
Line 3351 definitions, prefix definitions and DNS definitions:
|
Line 3511 definitions, prefix definitions and DNS definitions:
|
definitions may also be interface-specific when used inside interface |
definitions may also be interface-specific when used inside interface |
options. By default, interface uses both global and interface-specific |
options. By default, interface uses both global and interface-specific |
options, but that can be changed by <cf/rdnss local/ option. |
options, but that can be changed by <cf/rdnss local/ option. |
dsc-iface | |
<tag><label id="radv-dnssl">dnssl { <m/options/ }</tag> |
<tag><label id="radv-dnssl">dnssl { <m/options/ }</tag> |
DNSSL definitions allow to specify a list of advertised DNS search |
DNSSL definitions allow to specify a list of advertised DNS search |
domains together with their options. Like <cf/rdnss/ above, multiple |
domains together with their options. Like <cf/rdnss/ above, multiple |
Line 3363 dsc-iface
|
Line 3523 dsc-iface
|
RAdv protocol could be configured to change its behavior based on |
RAdv protocol could be configured to change its behavior based on |
availability of routes. When this option is used, the protocol waits in |
availability of routes. When this option is used, the protocol waits in |
suppressed state until a <it/trigger route/ (for the specified network) |
suppressed state until a <it/trigger route/ (for the specified network) |
is exported to the protocol, the protocol also returnsd to suppressed | is exported to the protocol, the protocol also returns to suppressed |
state if the <it/trigger route/ disappears. Note that route export |
state if the <it/trigger route/ disappears. Note that route export |
depends on specified export filter, as usual. This option could be used, |
depends on specified export filter, as usual. This option could be used, |
e.g., for handling failover in multihoming scenarios. |
e.g., for handling failover in multihoming scenarios. |
Line 3376 dsc-iface
|
Line 3536 dsc-iface
|
default router. <cf/preferred lifetime/ and <cf/valid lifetime/ could |
default router. <cf/preferred lifetime/ and <cf/valid lifetime/ could |
also be configured as <cf/sensitive/ for a prefix, which would cause |
also be configured as <cf/sensitive/ for a prefix, which would cause |
autoconfigured IPs to be deprecated or even removed. |
autoconfigured IPs to be deprecated or even removed. |
|
|
|
<tag><label id="radv-propagate-routes">propagate routes <m/switch/</tag> |
|
This option controls propagation of more specific routes, as defined in |
|
<rfc id="4191">. If enabled, all routes exported to the RAdv protocol, |
|
with the exception of the trigger prefix, are added to advertisments as |
|
additional options. The lifetime and preference of advertised routes can |
|
be set individually by <cf/ra_lifetime/ and <cf/ra_preference/ route |
|
attributes, or per interface by <cf/route lifetime/ and |
|
<cf/route preference/ options. Default: disabled. |
|
|
|
Note that the RFC discourages from sending more than 17 routes and |
|
recommends the routes to be configured manually. |
</descrip> |
</descrip> |
|
|
<p>Interface specific options: |
<p>Interface specific options: |
Line 3422 dsc-iface
|
Line 3594 dsc-iface
|
hosts. Valid values are 0-255, 0 means unspecified. Default: 64 |
hosts. Valid values are 0-255, 0 means unspecified. Default: 64 |
|
|
<tag><label id="radv-iface-default-lifetime">default lifetime <m/expr/ [sensitive <m/switch/]</tag> |
<tag><label id="radv-iface-default-lifetime">default lifetime <m/expr/ [sensitive <m/switch/]</tag> |
This option specifies the time (in seconds) how long (after the receipt | This option specifies the time (in seconds) how long (since the receipt |
of RA) hosts may use the router as a default router. 0 means do not use |
of RA) hosts may use the router as a default router. 0 means do not use |
as a default router. For <cf/sensitive/ option, see <ref id="radv-trigger" name="trigger">. |
as a default router. For <cf/sensitive/ option, see <ref id="radv-trigger" name="trigger">. |
Default: 3 * <cf/max ra interval/, <cf/sensitive/ yes. |
Default: 3 * <cf/max ra interval/, <cf/sensitive/ yes. |
|
|
<tag><label id="radv-iface-default-preference-low">default preference low|medium|high</tag> | <tag><label id="radv-iface-default-preference">default preference low|medium|high</tag> |
This option specifies the Default Router Preference value to advertise |
This option specifies the Default Router Preference value to advertise |
to hosts. Default: medium. |
to hosts. Default: medium. |
|
|
|
<tag><label id="radv-iface-route-lifetime">route lifetime <m/expr/ [sensitive <m/switch/]</tag> |
|
This option specifies the default value of advertised lifetime for |
|
specific routes; i.e., the time (in seconds) for how long (since the |
|
receipt of RA) hosts should consider these routes valid. A special value |
|
0xffffffff represents infinity. The lifetime can be overriden on a per |
|
route basis by the <ref id="rta-ra-lifetime" name="ra_lifetime"> route |
|
attribute. Default: 3 * <cf/max ra interval/, <cf/sensitive/ no. |
|
|
|
For the <cf/sensitive/ option, see <ref id="radv-trigger" name="trigger">. |
|
If <cf/sensitive/ is enabled, even the routes with the <cf/ra_lifetime/ |
|
attribute become sensitive to the trigger. |
|
|
|
<tag><label id="radv-iface-route-preference">route preference low|medium|high</tag> |
|
This option specifies the default value of advertised route preference |
|
for specific routes. The value can be overriden on a per route basis by |
|
the <ref id="rta-ra-preference" name="ra_preference"> route attribute. |
|
Default: medium. |
|
|
|
<tag><label id="radv-prefix-linger-time">prefix linger time <m/expr/</tag> |
|
When a prefix or a route disappears, it is advertised for some time with |
|
zero lifetime, to inform clients it is no longer valid. This option |
|
specifies the time (in seconds) for how long prefixes are advertised |
|
that way. Default: 3 * <cf/max ra interval/. |
|
|
|
<tag><label id="radv-route-linger-time">route linger time <m/expr/</tag> |
|
When a prefix or a route disappears, it is advertised for some time with |
|
zero lifetime, to inform clients it is no longer valid. This option |
|
specifies the time (in seconds) for how long routes are advertised |
|
that way. Default: 3 * <cf/max ra interval/. |
|
|
<tag><label id="radv-iface-rdnss-local">rdnss local <m/switch/</tag> |
<tag><label id="radv-iface-rdnss-local">rdnss local <m/switch/</tag> |
Use only local (interface-specific) RDNSS definitions for this |
Use only local (interface-specific) RDNSS definitions for this |
interface. Otherwise, both global and local definitions are used. Could |
interface. Otherwise, both global and local definitions are used. Could |
Line 3477 dsc-iface
|
Line 3679 dsc-iface
|
<cf/sensitive/ no. |
<cf/sensitive/ no. |
</descrip> |
</descrip> |
|
|
|
|
<p>RDNSS specific options: |
<p>RDNSS specific options: |
|
|
<descrip> |
<descrip> |
Line 3510 dsc-iface
|
Line 3711 dsc-iface
|
RDNSS <cf/lifetime/ option above. Default: 3 * <cf/max ra interval/. |
RDNSS <cf/lifetime/ option above. Default: 3 * <cf/max ra interval/. |
</descrip> |
</descrip> |
|
|
|
<sect1>Attributes |
|
<label id="radv-attr"> |
|
|
|
<p>RAdv defines two route attributes: |
|
|
|
<descrip> |
|
<tag><label id="rta-ra-preference">enum ra_preference</tag> |
|
The preference of the route. The value can be <it/RA_PREF_LOW/, |
|
<it/RA_PREF_MEDIUM/ or <it/RA_PREF_HIGH/. If the attribute is not set, |
|
the <ref id="radv-iface-route-preference" name="route preference"> |
|
option is used. |
|
|
|
<tag><label id="rta-ra-lifetime">int ra_lifetime</tag> |
|
The advertised lifetime of the route, in seconds. The special value of |
|
0xffffffff represents infinity. If the attribute is not set, the |
|
<ref id="radv-iface-route-lifetime" name="route lifetime"> |
|
option is used. |
|
</descrip> |
|
|
<sect1>Example |
<sect1>Example |
<label id="radv-exam"> |
<label id="radv-exam"> |
|
|
<p><code> |
<p><code> |
|
table radv_routes; # Manually configured routes go here |
|
|
|
protocol static { |
|
table radv_routes; |
|
|
|
route 2001:0DB8:4000::/48 unreachable; |
|
route 2001:0DB8:4010::/48 unreachable; |
|
|
|
route 2001:0DB8:4020::/48 unreachable { |
|
ra_preference = RA_PREF_HIGH; |
|
ra_lifetime = 3600; |
|
}; |
|
} |
|
|
protocol radv { |
protocol radv { |
|
propagate routes yes; # Propagate the routes from the radv_routes table |
|
table radv_routes; |
|
export all; |
|
|
interface "eth2" { |
interface "eth2" { |
max ra interval 5; # Fast failover with more routers |
max ra interval 5; # Fast failover with more routers |
managed yes; # Using DHCPv6 on eth2 |
managed yes; # Using DHCPv6 on eth2 |
Line 3788 protocol rip [<name>] {
|
Line 4025 protocol rip [<name>] {
|
<p>RIP defines two route attributes: |
<p>RIP defines two route attributes: |
|
|
<descrip> |
<descrip> |
<tag><label id="rta-rip-metric">int rip_metric/</tag> | <tag><label id="rta-rip-metric">int rip_metric</tag> |
RIP metric of the route (ranging from 0 to <cf/infinity/). When routes |
RIP metric of the route (ranging from 0 to <cf/infinity/). When routes |
from different RIP instances are available and all of them have the same |
from different RIP instances are available and all of them have the same |
preference, BIRD prefers the route with lowest <cf/rip_metric/. When a |
preference, BIRD prefers the route with lowest <cf/rip_metric/. When a |
non-RIP route is exported to RIP, the default metric is 1. |
non-RIP route is exported to RIP, the default metric is 1. |
|
|
<tag><label id="rta-rip-tag">int rip_tag/</tag> | <tag><label id="rta-rip-tag">int rip_tag</tag> |
RIP route tag: a 16-bit number which can be used to carry additional |
RIP route tag: a 16-bit number which can be used to carry additional |
information with the route (for example, an originating AS number in |
information with the route (for example, an originating AS number in |
case of external routes). When a non-RIP route is exported to RIP, the |
case of external routes). When a non-RIP route is exported to RIP, the |
Line 3806 protocol rip [<name>] {
|
Line 4043 protocol rip [<name>] {
|
|
|
<p><code> |
<p><code> |
protocol rip { |
protocol rip { |
debug all; | import all; |
port 1520; | export all; |
period 12; | interface "eth*" { |
garbage time 60; | metric 2; |
interface "eth0" { metric 3; mode multicast; }; | port 1520; |
interface "eth*" { metric 2; mode broadcast; }; | mode multicast; |
authentication cryptographic; | update time 12; |
password "secret-shared-key" { algorithm hmac sha256; }; | timeout time 60; |
import filter { print "importing"; accept; }; | authentication cryptographic; |
export filter { print "exporting"; accept; }; | password "secret" { algorithm hmac sha256; }; |
| }; |
} |
} |
</code> |
</code> |
|
|