Annotation of embedaddon/bird/doc/bird-2.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: About routing tables</TITLE>
        !             6:  <LINK HREF="bird-3.html" REL=next>
        !             7:  <LINK HREF="bird-1.html" REL=previous>
        !             8:  <LINK HREF="bird.html#toc2" REL=contents>
        !             9: </HEAD>
        !            10: <BODY>
        !            11: <A HREF="bird-3.html">Next</A>
        !            12: <A HREF="bird-1.html">Previous</A>
        !            13: <A HREF="bird.html#toc2">Contents</A>
        !            14: <HR>
        !            15: <H2><A NAME="routing-tables"></A> <A NAME="s2">2.</A> <A HREF="bird.html#toc2">About routing tables</A></H2>
        !            16: 
        !            17: <P>BIRD has one or more routing tables which may or may not be synchronized with
        !            18: OS kernel and which may or may not be synchronized with each other (see the Pipe
        !            19: protocol). Each routing table contains a list of known routes. Each route
        !            20: consists of:
        !            21: <P>
        !            22: <UL>
        !            23: <LI>network prefix this route is for (network address and prefix
        !            24: length -- the number of bits forming the network part of the
        !            25: address; also known as a netmask)</LI>
        !            26: <LI>preference of this route</LI>
        !            27: <LI>IP address of router which told us about this route</LI>
        !            28: <LI>IP address of router we should forward the packets to using this
        !            29: route</LI>
        !            30: <LI>other attributes common to all routes</LI>
        !            31: <LI>dynamic attributes defined by protocols which may or may not be
        !            32: present (typically protocol metrics)</LI>
        !            33: </UL>
        !            34: <P>Routing table maintains multiple entries for a network, but at most one entry
        !            35: for one network and one protocol. The entry with the highest preference is used
        !            36: for routing (we will call such an entry the <I>selected route</I>). If there are
        !            37: more entries with the same preference and they are from the same protocol, the
        !            38: protocol decides (typically according to metrics). If they aren't, an internal
        !            39: ordering is used to break the tie. You can get the list of route attributes in
        !            40: the Route attributes section.
        !            41: <P>
        !            42: <P>Each protocol is connected to a routing table through two filters which can
        !            43: accept, reject and modify the routes. An <I>export</I> filter checks routes passed
        !            44: from the routing table to the protocol, an <I>import</I> filter checks routes in
        !            45: the opposite direction. When the routing table gets a route from a protocol, it
        !            46: recalculates the selected route and broadcasts it to all protocols connected to
        !            47: the table. The protocols typically send the update to other routers in the
        !            48: network. Note that although most protocols are interested in receiving just
        !            49: selected routes, some protocols (e.g. the <CODE>Pipe</CODE> protocol) receive and
        !            50: process all entries in routing tables (accepted by filters).
        !            51: <P>
        !            52: <P>
        !            53: <A NAME="dsc-table-sorted"></A> Usually, a routing table just chooses a selected route
        !            54: from a list of entries for one network. But if the <CODE>sorted</CODE> option is
        !            55: activated, these lists of entries are kept completely sorted (according to
        !            56: preference or some protocol-dependent metric). This is needed for some features
        !            57: of some protocols (e.g. <CODE>secondary</CODE> option of BGP protocol, which allows to
        !            58: accept not just a selected route, but the first route (in the sorted list) that
        !            59: is accepted by filters), but it is incompatible with some other features (e.g.
        !            60: <CODE>deterministic med</CODE> option of BGP protocol, which activates a way of choosing
        !            61: selected route that cannot be described using comparison and ordering). Minor
        !            62: advantage is that routes are shown sorted in <CODE>show route</CODE>, minor disadvantage
        !            63: is that it is slightly more computationally expensive.
        !            64: <P>
        !            65: <P>
        !            66: <H2><A NAME="graceful-restart"></A> <A NAME="ss2.1">2.1</A> <A HREF="bird.html#toc2.1">Graceful restart</A>
        !            67: </H2>
        !            68: 
        !            69: <P>When BIRD is started after restart or crash, it repopulates routing tables in
        !            70: an uncoordinated manner, like after clean start. This may be impractical in some
        !            71: cases, because if the forwarding plane (i.e. kernel routing tables) remains
        !            72: intact, then its synchronization with BIRD would temporarily disrupt packet
        !            73: forwarding until protocols converge. Graceful restart is a mechanism that could
        !            74: help with this issue. Generally, it works by starting protocols and letting them
        !            75: repopulate routing tables while deferring route propagation until protocols
        !            76: acknowledge their convergence. Note that graceful restart behavior have to be
        !            77: configured for all relevant protocols and requires protocol-specific support
        !            78: (currently implemented for Kernel and BGP protocols), it is activated for
        !            79: particular boot by option <CODE>-R</CODE>.
        !            80: <P>
        !            81: <P>
        !            82: <HR>
        !            83: <A HREF="bird-3.html">Next</A>
        !            84: <A HREF="bird-1.html">Previous</A>
        !            85: <A HREF="bird.html#toc2">Contents</A>
        !            86: </BODY>
        !            87: </HTML>

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