summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/configuration/protocols/bgp.rst409
1 files changed, 409 insertions, 0 deletions
diff --git a/docs/configuration/protocols/bgp.rst b/docs/configuration/protocols/bgp.rst
index c576d836..54d996e8 100644
--- a/docs/configuration/protocols/bgp.rst
+++ b/docs/configuration/protocols/bgp.rst
@@ -174,6 +174,13 @@ ASN and Router ID
Route Selection
---------------
+.. cfgcmd:: set protocols bgp <asn> parameters always-compare-med
+
+ This command provides to compare the MED on routes, even when they were
+ received from different neighbouring ASes. Setting this option makes the
+ order of preference of routes more defined, and should eliminate MED
+ induced oscillations.
+
.. cfgcmd:: set protocols bgp <asn> parameters bestpath as-path confed
This command specifies that the length of confederation path sets and
@@ -190,6 +197,408 @@ Route Selection
Ignore AS_PATH length when selecting a route
+.. cfgcmd:: set protocols bgp <asn> parameters bestpath compare-routerid
+
+ Ensure that when comparing routes where both are equal on most metrics,
+ including local-pref, AS_PATH length, IGP cost, MED, that the tie is
+ broken based on router-ID.
+
+ If this option is enabled, then the already-selected check, where
+ already selected eBGP routes are preferred, is skipped.
+
+ If a route has an ORIGINATOR_ID attribute because it has been reflected,
+ that ORIGINATOR_ID will be used. Otherwise, the router-ID of the peer
+ the route was received from will be used.
+
+ The advantage of this is that the route-selection (at this point) will
+ be more deterministic. The disadvantage is that a few or even one lowest-ID
+ router may attract all traffic to otherwise-equal paths because of this
+ check. It may increase the possibility of MED or IGP oscillation, unless
+ other measures were taken to avoid these. The exact behaviour will be
+ sensitive to the iBGP and reflection topology.
+
+.. cfgcmd:: set protocols bgp <asn> parameters bestpath med confed
+
+ This command specifies that BGP considers the MED when comparing routes
+ originated from different sub-ASs within the confederation to which this
+ BGP speaker belongs. The default state, where the MED attribute is not
+ considered.
+
+.. cfgcmd:: set protocols bgp <asn> parameters bestpath med missing-as-worst
+
+ This command specifies that a route with a MED is always considered to be
+ better than a route without a MED by causing the missing MED attribute to
+ have a value of infinity. The default state, where the missing MED
+ attribute is considered to have a value of zero.
+
+.. cfgcmd:: set protocols bgp <asn> parameters default local-pref <local-pref value>
+
+ This command specifies the default local preference value. The local
+ preference range is 0 to 4294967295.
+
+.. cfgcmd:: set protocols bgp <asn> parameters deterministic-med
+
+ This command provides to compare different MED values that advertised by
+ neighbours in the same AS for routes selection. When this command is enabled,
+ routes from the same autonomous system are grouped together, and the best
+ entries of each group are compared.
+
+Administrative Distance
+-----------------------
+
+.. cfgcmd:: set protocols bgp <asn> parameters distance global <external|internal|local> <distance>
+
+ This command change distance value of BGP. The arguments are the distance
+ values for external routes, internal routes and local routes respectively.
+ The distance range is 1 to 255.
+
+.. cfgcmd:: set protocols bgp <asn> parameters distance prefix <subnet> distance <distance>
+
+ This command sets the administrative distance for a particular route. The
+ distance range is 1 to 255.
+
+ .. note:: Routes with a distance of 255 are effectively disabled and not
+ installed into the kernel.
+
+Network Advertisement
+---------------------
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> network <prefix>
+
+ This command is used for advertising IPv4 or IPv6 networks.
+
+ .. note:: By default, the BGP prefix is advertised even if it's not present in
+ the routing table. This behaviour differs from the implementation of some vendors.
+
+.. cfgcmd:: set protocols bgp <asn> parameters network-import-check
+
+ This configuration modifies the behavior of the network statement.
+ If you have this configured the underlying network must exist in the
+ routing table.
+
+Route Aggregation
+-----------------
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> aggregate-address <prefix>
+
+ This command specifies an aggregate address. The router will also
+ announce longer-prefixes inside of the aggregate address.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> aggregate-address <prefix> as-set
+
+ This command specifies an aggregate address with a mathematical set of
+ autonomous systems. This command summarizes the AS_PATH attributes of
+ all the individual routes.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> aggregate-address <prefix> summary-only
+
+ This command specifies an aggregate address and provides that
+ longer-prefixes inside of the aggregate address are suppressed
+ before sending BGP updates out to peers.
+
+Redistribution
+--------------
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute connected
+
+ Redistribute connected routes to BGP process.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute kernel
+
+ Redistribute kernel routes to BGP process.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute ospf
+
+ Redistribute OSPF routes to BGP process.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute rip
+
+ Redistribute RIP routes to BGP process.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute static
+
+ Redistribute static routes to BGP process.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute <route source> metric <number>
+
+ This command specifies metric (MED) for redistributed routes. The
+ metric range is 0 to 4294967295.
+
+.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> redistribute <route source> route-map <name>
+
+ This command allows to use route map to filter redistributed routes.
+
+Peers
+-----
+
+Defining Peers
+^^^^^^^^^^^^^^
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> remote-as <nasn>
+
+ This command creates a new neighbor whose remote-as is NASN. The neighbor
+ address can be an IPv4 address or an IPv6 address or an interface to use
+ for the connection. The command it applicable for peer and peer group.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> remote-as internal
+
+ Create a peer as you would when you specify an ASN, except that if the
+ peers ASN is different than mine as specified under the :cfgcmd:`protocols
+ bgp <asn>` command the connection will be denied.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> remote-as external
+
+ Create a peer as you would when you specify an ASN, except that if the
+ peers ASN is the same as mine as specified under the :cfgcmd:`protocols
+ bgp <asn>` command the connection will be denied.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> shutdown
+
+ This command disable the peer or peer group. To reenable the peer use
+ the delete form of this command.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> description <text>
+
+ Set description of the peer or peer group.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> update-source <address|interface>
+
+ Specify the IPv4 source address to use for the BGP session to this neighbour,
+ may be specified as either an IPv4 address directly or as an interface name.
+
+Capability Negotiation
+^^^^^^^^^^^^^^^^^^^^^^
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> capability dynamic
+
+ This command would allow the dynamic update of capabilities over an
+ established BGP session.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> capability extended-nexthop
+
+ Allow bgp to negotiate the extended-nexthop capability with it’s peer.
+ If you are peering over a IPv6 Link-Local address then this capability
+ is turned on automatically. If you are peering over a IPv6 Global Address
+ then turning on this command will allow BGP to install IPv4 routes with
+ IPv6 nexthops if you do not have IPv4 configured on interfaces.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> disable-capability-negotiation
+
+ Suppress sending Capability Negotiation as OPEN message optional
+ parameter to the peer. This command only affects the peer is
+ configured other than IPv4 unicast configuration.
+
+ When remote peer does not have capability negotiation feature,
+ remote peer will not send any capabilities at all. In that case,
+ bgp configures the peer with configured capabilities.
+
+ You may prefer locally configured capabilities more than the negotiated
+ capabilities even though remote peer sends capabilities. If the peer is
+ configured by :cfgcmd:`override-capability`, VyOS ignores received capabilities
+ then override negotiated capabilities with configured values.
+
+ Additionally you should keep in mind that this feature fundamentally
+ disables the ability to use widely deployed BGP features. BGP unnumbered,
+ hostname support, AS4, Addpath, Route Refresh, ORF, Dynamic Capabilities,
+ and graceful restart.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> override-capability
+
+ This command allow override the result of Capability Negotiation with
+ local configuration. Ignore remote peer’s capability value.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> strict-capability-match
+
+ This command forces strictly compare remote capabilities and local
+ capabilities. If capabilities are different, send Unsupported Capability
+ error then reset connection.
+
+ You may want to disable sending Capability Negotiation OPEN message
+ optional parameter to the peer when remote peer does not implement
+ Capability Negotiation. Please use :cfgcmd:`disable-capability-negotiation`
+ command to disable the feature.
+
+Peer Parameters
+^^^^^^^^^^^^^^^
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> allowas-in number <number>
+
+ This command accept incoming routes with AS path containing AS
+ number with the same value as the current system AS. This is
+ used when you want to use the same AS number in your sites,
+ but you can’t connect them directly.
+
+ The number parameter (1-10) configures the amount of accepted
+ occurences of the system AS number in AS path.
+
+ This command is only allowed for eBGP peers. It is not applicable
+ for peer groups.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> as-override
+
+ This command override AS number of the originating router with
+ the local AS number.
+
+ Usually this configuration is used in PEs (Provider Edge) to
+ replace the incoming customer AS number so the connected CE (
+ Customer Edge) can use the same AS number as the other customer
+ sites. This allows customers of the provider network to use the
+ same AS number across their sites.
+
+ This command is only allowed for eBGP peers.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> attribute-unchanged <as-path|med|next-hop>
+
+ This command specifies attributes to be left unchanged for
+ advertisements sent to a peer or peer group.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> maximum-prefix <number>
+
+ This command specifies a maximum number of prefixes we can receive
+ from a given peer. If this number is exceeded, the BGP session
+ will be destroyed. The number range is 1 to 4294967295.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> nexthop-self
+
+ This command forces the BGP speaker to report itself as the
+ next hop for an advertised route it advertised to a neighbor.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> remove-private-as
+
+ This command removes the private ASN of routes that are advertised
+ to the configured peer. It removes only private ASNs on routes
+ advertised to EBGP peers.
+
+ If the AS-Path for the route has only private ASNs, the private
+ ASNs are removed.
+
+ If the AS-Path for the route has a private ASN between public
+ ASNs, it is assumed that this is a design choice, and the
+ private ASN is not removed.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family <ipv4-unicast|ipv6-unicast> weight <number>
+
+ This command specifies a default weight value for the neighbor’s
+ routes. The number range is 1 to 65535.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> advertisement-interval <seconds>
+
+ This command specifies the minimum route advertisement interval for
+ the peer. This number is between 0 and 600 seconds, with the default
+ advertisement interval being 0.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> disable-connected-check
+
+ This command allows peerings between directly connected eBGP peers
+ using loopback addresses without adjusting the default TTL of 1.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> ebgp-multihop <number>
+
+ This command allows sessions to be established with eBGP neighbors
+ when they are multiple hops away. When the neighbor is not directly
+ connected and this knob is not enabled, the session will not establish.
+ The number of hops range is 1 to 255.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> local-as <asn> [no-prepend] [replace-as]
+
+ Specify an alternate AS for this BGP process when interacting with
+ the specified peer or peer group. With no modifiers, the specified
+ local-as is prepended to the received AS_PATH when receiving routing
+ updates from the peer, and prepended to the outgoing AS_PATH (after
+ the process local AS) when transmitting local routes to the peer.
+
+ If the :cfgcmd:`no-prepend` attribute is specified, then the supplied
+ local-as is not prepended to the received AS_PATH.
+
+ If the :cfgcmd:`replace-as` attribute is specified, then only the supplied
+ local-as is prepended to the AS_PATH when transmitting local-route
+ updates to this peer.
+
+ Note that replace-as can only be specified if no-prepend is.
+ This command is only allowed for eBGP peers.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> passive
+
+ Configures the BGP speaker so that it only accepts inbound connections
+ from, but does not initiate outbound connections to the peer or peer group.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> ttl-security hops <number>
+
+ This command enforces Generalized TTL Security Mechanism (GTSM),
+ as specified in :rfc:`5082`. With this command, only neighbors
+ that are the specified number of hops away will be allowed to
+ become neighbors. The number of hops range is 1 to 254.This
+ command is mutually exclusive with :cfgcmd:`ebgp-multihop`.
+
+Peer Groups
+^^^^^^^^^^^
+
+Peer groups are used to help improve scaling by generating the same update
+information to all members of a peer group. Note that this means that the
+routes generated by a member of a peer group will be sent back to that
+originating peer with the originator identifier attribute set to indicated
+the originating peer. All peers not associated with a specific peer group
+are treated as belonging to a default peer group, and will share updates.
+
+.. cfgcmd:: set protocols bgp <asn> peer-group <name>
+
+ This command defines a new peer group. You can specify to the group
+ the same parameters that you can specify for specific neighbors.
+
+.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> peer-group <name>
+
+ This command bind specific peer to peer group with a given name.
+
+General configuration
+---------------------
+
+.. cfgcmd:: set protocols bgp <asn> maximum-paths <ebgp|ibgp> <number>
+
+ This command defines the maximum number of parallel routes that
+ the BGP can support. In order for BGP to use the second path, the
+ following attributes have to match: Weight, Local Preference, AS
+ Path (both AS number and AS path length), Origin code, MED, IGP
+ metric. Also, the next hop address for each path must be different.
+
+.. cfgcmd:: set protocols bgp <asn> parameters default no-ipv4-unicast
+
+ This command allows the user to specify that IPv4 peering is turned off by
+ default.
+
+.. cfgcmd:: set protocols bgp <asn> parameters log-neighbor-changes
+
+ Tis command enable logging neighbor up/down changes and reset reason.
+
+.. cfgcmd:: set protocols bgp <asn> parameters no-client-to-client-reflection
+
+ Tis command disables route reflection between route reflector clients.
+ By default, the clients of a route reflector are not required to be
+ fully meshed and the routes from a client are reflected to other clients.
+ However, if the clients are fully meshed, route reflection is not required.
+ In this case, use the :cfgcmd:`no-client-to-client-reflection` command
+ to disable client-to-client reflection.
+
+.. cfgcmd:: set protocols bgp <asn> parameters no-fast-external-failover
+
+ Disable immediate sesison reset if peer's connected link goes down.
+
+Timers
+^^^^^^
+
+.. cfgcmd:: set protocols bgp <asn> timers holdtime <seconds>
+
+ This command specifies hold-time in seconds. The timer can
+ range from 4 to 65535.The default value is 180 second. If
+ you set value to 0 VyOS will not hold routes.
+
+.. cfgcmd:: set protocols bgp <asn> timers keepalive <seconds>
+
+ This command specifies keep-alive time in seconds. The timer
+ can range from 4 to 65535.The default value is 60 second.
+
+Configuration Examples
+----------------------
+
IPv4
^^^^