IDRP is multi-protocol version of BGP.
Unlike interior protocols, in IDRP metrics do not play a primary role in determining the best route. The IDRP metric is an arbitrary 16-bit value that can be used as one criterion for choosing a route.
The BGP protocol supports two basic types of routing information, internal (also known as IBGP) and external. External routing information is received from other autonomous system, while internal information is received from other border routers within the same autonomous system. For external advertisements, the local autonomous system (AS) number is prepended to the AS path before advertisement. For internal advertisements it is not prepended.
BGP collapses routes with similar path attributes into a single update for advertisement. Routes that are received in a single update will be readvertised in a single update. The churn caused by the loss of a neighbor will be minimized and the initial advertisement sent during peer establishment will be maximally compressed. BGP does not read information from the kernel message-by-message, but fills the input buffer. It processes all complete messages in the buffer before reading again. BGP also does multiple reads to clear all incoming data queued on the socket. This feature may cause other protocols to be blocked for prolonged intervals by a busy peer connection.
All unreachable messages are collected into a single message and sent prior to reachable routes during a flash update. For these unreachable announcements, the next hop is set to the local address on the connection, no metric is sent and the path origin is set to incomplete. On external connections the AS path in unreachable announcements is set to the local AS, on internal connections the AS path is set to zero length.
For internal, IGP and test groups, where possible, a single
outgoing message is built for all group peers based on the common
policy. A copy of the message is sent to every peer in the group,
with possible adjustments to the next hop field as appropriate to each
peer. This minimizes the computational load of running large numbers
of peers in these types of groups. BGP allows unconfigured peers to
connect if an appropriate group has been configured with an
allow clause.
bgp yes | no | on | off
[ {
preference preference ;
defaultmetric metric ;
traceoptions trace_options ;
group type peer_type peeras autonomous_system
[proto proto ]
{
allow {
network
network mask mask
network masklen number
all
host host
} ;
peer host
[ metricout metric ]
[ localas autonomous_system ]
[ nogendefault ]
[ gateway gateway ]
[ preference preference ]
[ preference2 preference ]
[ lcladdr local_address ]
[ holdtime time ]
[ version number ]
[ passive ]
[ sendbuffer number ]
[ recvbuffer number ]
[ indelay time ]
[ outdelay time ]
[ keep [ all | none ] ]
[ analretentive ]
[ noauthcheck ]
[ noaggregatorid ]
[ keepalivesalways ]
[ ttl ttl ]
[ traceoptions trace_options ]
;
} ;
} ] ;
external | internal | igp | test
The bgp statement enables or disables BGP. By default
BGP is disabled. The default metric for announcing routes via BGP is
not to send a metric.
group or
peer statments or by import policy.
The proto can be the name of any configured interior
protocol (igp), for example ospf. It is used to
configure "group type routing", where immediate neighbor
next_hops for IBGP routes are determined by taking the IBGP next
hop the distant machine sent you, finding an IGP route to that
IBGP next_hop, and using the immediate neighbor next_hops from
the IGP route. The proto parameter specifies the
IGP protocol whose routes are to be used to do the recursion.
This parameter is an intermediate step on the way to "route
server" functionality, where GateD will support configuration of
clusters of interconnected protocol "instances", as well as
multiple sessions of the same protocol to run independently.
group clauses and peer
subclauses. Any number of peer subclauses may be specified within a
group. A group clause usually defines default parameters for a group
of peers, these parameters apply to all subsidiary peer subclauses.
Any parameters from the peer subclause may be specified on the group
clause to provide defaults for the whole group (which may be
overridden for individual peers).
peer statement, or
implicitly configured with the allow statement. Both are
described here:
peer connections from
any addresses in the specified range of network and mask pairs.
All parameters for these peers must be configured on the group
clause. The internal peer structures are created when an
incomming open request is received and destroyed when the
connection is broken. For more detail on specifying the
network/mask pairs, see the section on Route Filtering.
peer clause configures an individual peer. Each
peer inherits all parameters specified on a group as defaults.
Those default may be overridden by parameters explicitly
specified on the peer subclaus.
Within each group clause, individual peers can be
specified or a group of potential peers can be specified
using allow. Allow is used to specify a set of
address masks. If GateD receives a BGP connection request from any
address in the set specified, it will accept it and set up a peer
relationship.
The BGP peer subclause allows the following parameters,
which can also be specified on the group clause. All
are optional.
autonomoussystem
statement.
gateway
specifies a router on an attached network to be used as the next
hop router for routes received from this neighbor. This
parameter is not needed in most cases.
bgp statement, so that GateD can prefer
routes from one peer, or group of peer, over othes. This
preference may be explicitly overriden by import policy.
preference tie, the second
preference, preference2 may be used to break the
tie. The default value is 0.
gateway
parameter is used. A session with an external peer will only be
opened when an interface with the appropriate local address
(through which the peer or gateway address is directly reachable)
is operating. For other types of peers, a peer session will be
maintained when any interface with the specified local address is
operating. In either case incoming connections will only be
recognized as matching a configured peer if they are addressed to
the configured local address.
Indelay is the
amount of time a route learned from a BGP peer must be stable
before it is accepted into the gated routing database.
Outdelay is the amount of time a route must be
present in the gated routing database before it is exported to
BGP. The default value for each is 0, meaning that these
features are disabled.
state option works with BGP, but does not
provide true state transition information.
Packet tracing options (which may be modified with
detail, send and recv):
OPEN packets which are used to establish a peer
relationship.
UPDATE packets which are used to pass network
reachability information.
KEEPALIVE packets which are used to verify peer reachability.