summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2014-03-23 01:35:33 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2014-03-23 01:35:33 +0100
commit6eda3f135f5bab4db456531d25bc3e5f669ec22e (patch)
treee99c6353a8d85c2732f41dd0761b836f35dfdd0d /doc
parent0c791f873aeb7c1052c97db7da4fe23873d69603 (diff)
Documentation (and minor fixes) for BGP graceful restart.
Diffstat (limited to 'doc')
-rw-r--r--doc/bird.sgml99
1 files changed, 77 insertions, 22 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml
index e9c61526..3ea90920 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -157,6 +157,9 @@ options. The most important ones are:
<tag>-f</tag>
run bird in foreground.
+
+ <tag>-R</tag>
+ apply graceful restart recovery after start.
</descrip>
<p>BIRD writes messages about its work to log files or syslog (according to config).
@@ -187,6 +190,7 @@ configuration, but it is generally easy -- BIRD needs just the
standard library, privileges to read the config file and create the
control socket and the CAP_NET_* capabilities.
+
<chapt>About routing tables
<p>BIRD has one or more routing tables which may or may not be
@@ -242,6 +246,20 @@ using comparison and ordering). Minor advantage is that routes are
shown sorted in <cf/show route/, minor disadvantage is that it is
slightly more computationally expensive.
+<sect>Graceful restart
+
+<p>When BIRD is started after restart or crash, it repopulates routing tables in
+an uncoordinated manner, like after clean start. This may be impractical in some
+cases, because if the forwarding plane (i.e. kernel routing tables) remains
+intact, then its synchronization with BIRD would temporarily disrupt packet
+forwarding until protocols converge. Graceful restart is a mechanism that could
+help with this issue. Generally, it works by starting protocols and letting them
+repopulate routing tables while deferring route propagation until protocols
+acknowledge their convergence. Note that graceful restart behavior have to be
+configured for all relevant protocols and requires protocol-specific support
+(currently implemented for Kernel and BGP protocols), it is activated for
+particular boot by option <cf/-R/.
+
<chapt>Configuration
@@ -371,6 +389,12 @@ protocol rip {
would accept IPv6 routes only). Such behavior was default in
older versions of BIRD.
+ <tag>graceful restart wait <m/number/</tag>
+ During graceful restart recovery, BIRD waits for convergence of routing
+ protocols. This option allows to specify a timeout for the recovery to
+ prevent waiting indefinitely if some protocols cannot converge. Default:
+ 240 seconds.
+
<tag>timeformat route|protocol|base|log "<m/format1/" [<m/limit/ "<m/format2/"]</tag>
This option allows to specify a format of date/time used by
BIRD. The first argument specifies for which purpose such
@@ -1493,6 +1517,8 @@ extended communities
(RFC 4360<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc4360.txt">),
route reflectors
(RFC 4456<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc4456.txt">),
+graceful restart
+(RFC 4724<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc4724.txt">),
multiprotocol extensions
(RFC 4760<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc4760.txt">),
4B AS numbers
@@ -1502,9 +1528,7 @@ and 4B AS numbers in extended communities
For IPv6, it uses the standard multiprotocol extensions defined in
-RFC 2283<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc2283.txt">
-including changes described in the
-latest draft<htmlurl url="ftp://ftp.rfc-editor.org/internet-drafts/draft-ietf-idr-bgp4-multiprotocol-v2-05.txt">
+RFC 4760<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc4760.txt">
and applied to IPv6 according to
RFC 2545<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc2545.txt">.
@@ -1716,6 +1740,26 @@ for each neighbor using the following configuration parameters:
capability and accepts such requests. Even when disabled, BIRD
can send route refresh requests. Default: on.
+ <tag>graceful restart <m/switch/|aware</tag>
+ When a BGP speaker restarts or crashes, neighbors will discard all
+ received paths from the speaker, which disrupts packet forwarding even
+ when the forwarding plane of the speaker remains intact. RFC 4724
+ specifies an optional graceful restart mechanism to alleviate this
+ issue. This option controls the mechanism. It has three states:
+ Disabled, when no support is provided. Aware, when the graceful restart
+ support is announced and the support for restarting neighbors is
+ provided, but no local graceful restart is allowed (i.e. receiving-only
+ role). Enabled, when the full graceful restart support is provided
+ (i.e. both restarting and receiving role). Note that proper support for
+ local graceful restart requires also configuration of other protocols.
+ Default: aware.
+
+ <tag>graceful restart time <m/number/</tag>
+ The restart time is announced in the BGP graceful restart capability
+ and specifies how long the neighbor would wait for the BGP session to
+ re-establish after a restart before deleting stale routes. Default:
+ 120 seconds.
+
<tag>interpret communities <m/switch/</tag> RFC 1997 demands
that BGP speaker should process well-known communities like
no-export (65535, 65281) or no-advertise (65535, 65282). For
@@ -2063,25 +2107,36 @@ overcome using another routing table and the pipe protocol.
<sect1>Configuration
<p><descrip>
- <tag>persist <m/switch/</tag> Tell BIRD to leave all its routes in the
- routing tables when it exits (instead of cleaning them up).
- <tag>scan time <m/number/</tag> Time in seconds between two consecutive scans of the
- kernel routing table.
- <tag>learn <m/switch/</tag> Enable learning of routes added to the kernel
- routing tables by other routing daemons or by the system administrator.
- This is possible only on systems which support identification of route
- authorship.
-
- <tag>device routes <m/switch/</tag> Enable export of device
- routes to the kernel routing table. By default, such routes
- are rejected (with the exception of explicitly configured
- device routes from the static protocol) regardless of the
- export filter to protect device routes in kernel routing table
- (managed by OS itself) from accidental overwriting or erasing.
-
- <tag>kernel table <m/number/</tag> Select which kernel table should
- this particular instance of the Kernel protocol work with. Available
- only on systems supporting multiple routing tables.
+ <tag>persist <m/switch/</tag>
+ Tell BIRD to leave all its routes in the routing tables when it exits
+ (instead of cleaning them up).
+
+ <tag>scan time <m/number/</tag>
+ Time in seconds between two consecutive scans of the kernel routing
+ table.
+
+ <tag>learn <m/switch/</tag>
+ Enable learning of routes added to the kernel routing tables by other
+ routing daemons or by the system administrator. This is possible only on
+ systems which support identification of route authorship.
+
+ <tag>device routes <m/switch/</tag>
+ Enable export of device routes to the kernel routing table. By default,
+ such routes are rejected (with the exception of explicitly configured
+ device routes from the static protocol) regardless of the export filter
+ to protect device routes in kernel routing table (managed by OS itself)
+ from accidental overwriting or erasing.
+
+ <tag>kernel table <m/number/</tag>
+ Select which kernel table should this particular instance of the Kernel
+ protocol work with. Available only on systems supporting multiple
+ routing tables.
+
+ <tag>graceful restart <m/switch/</tag>
+ Participate in graceful restart recovery. If this option is enabled and
+ a graceful restart recovery is active, the Kernel protocol will defer
+ synchronization of routing tables until the end of the recovery. Note
+ that import of kernel routes to BIRD is not affected.
</descrip>
<sect1>Attributes