diff options
| author | Leonid Voronkin <bullet85@yandex.ru> | 2021-01-17 01:45:07 +0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-16 22:45:07 +0100 | 
| commit | b6c5493342c7b2124cd754279eb8685b753bb629 (patch) | |
| tree | 5135ba8901ee75a73ece753a54d0a47add07feb6 /docs/configuration/protocols | |
| parent | 694628045ffc125deacd2d272c7d7f92aa95c9ce (diff) | |
| download | vyos-documentation-b6c5493342c7b2124cd754279eb8685b753bb629.tar.gz vyos-documentation-b6c5493342c7b2124cd754279eb8685b753bb629.zip | |
bgp: change comand order, add route filterig
* bgp: change comand order, add route filterig
Placed upper more often used commands;
Add route filtering;
Add confederation commands;
Add route dampening.
Diffstat (limited to 'docs/configuration/protocols')
| -rw-r--r-- | docs/configuration/protocols/bgp.rst | 633 | 
1 files changed, 405 insertions, 228 deletions
| diff --git a/docs/configuration/protocols/bgp.rst b/docs/configuration/protocols/bgp.rst index ae7eb795..27858224 100644 --- a/docs/configuration/protocols/bgp.rst +++ b/docs/configuration/protocols/bgp.rst @@ -28,7 +28,9 @@ From :rfc:`1930`:  Each AS has an identifying number associated with it called an :abbr:`ASN  (Autonomous System Number)`. This is a two octet value ranging in value from 1  to 65535. The AS numbers 64512 through 65535 are defined as private AS numbers. -Private AS numbers must not be advertised on the global Internet. +Private AS numbers must not be advertised on the global Internet. The 2-byte AS +number range has been exhausted. 4-byte AS numbers are specified in + :rfc:`6793`, and provide a pool of 4294967296 AS numbers.  The :abbr:`ASN (Autonomous System Number)` is one of the essential elements of  BGP. BGP is a distance vector routing protocol, and the AS-Path framework @@ -156,200 +158,11 @@ connection.  BGP Router Configuration  ======================== -ASN and Router ID ------------------ - -.. cfgcmd:: set protocols bgp <asn> - -   First of all you must configure BGP router with the :abbr:`ASN (Autonomous -   System Number)`. The AS number is an identifier for the autonomous system. -   The BGP protocol uses the AS number for detecting whether the BGP connection -   is internal or external. - -.. cfgcmd:: set protocols bgp <asn> parameters router-id - -   This command specifies the router-ID. If router ID is not specified it will -   use the highest interface IP address. - -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 -   sequences should be taken into account during the BGP best path -   decision process. - -.. cfgcmd:: set protocols bgp <asn> parameters bestpath as-path multipath-relax - -   This command specifies that BGP decision process should consider paths -   of equal AS_PATH length candidates for multipath computation. Without -   the knob, the entire AS_PATH must match for multipath computation. - -.. cfgcmd:: set protocols bgp <asn> parameters bestpath as-path ignore - -   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. - -.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family -   <ipv4-unicast|ipv6-unicast> default-originate [route-map <name>] - -   By default, VyOS does not advertise a default route (0.0.0.0/0) even if it is -   in routing table. When you want to announce default routes to the peer, use -   this command. Using optional argument :cfgcmd:`route-map` you can inject the -   default route to given neighbor only if the conditions in the route map are -   met. - -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. +First of all you must configure BGP router with the :abbr:`ASN (Autonomous +System Number)`. The AS number is an identifier for the autonomous system. +The BGP protocol uses the AS number for detecting whether the BGP connection +is internal or external. VyOS does not have a special command to start the BGP +process. The BGP process starts when the first neighbor is configured.  Peers Configuration  ------------------- @@ -360,7 +173,7 @@ 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  +   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. @@ -368,7 +181,7 @@ Defining Peers     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  +   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 @@ -391,9 +204,10 @@ Defining Peers  .. 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, +   Specify the IPv4 source address to use for the BGP session to this neighbor,     may be specified as either an IPv4 address directly or as an interface name. +  Capability Negotiation  ^^^^^^^^^^^^^^^^^^^^^^ @@ -451,6 +265,7 @@ Capability Negotiation     Capability Negotiation. Please use :cfgcmd:`disable-capability-negotiation`      command to disable the feature. +  Peer Parameters  ^^^^^^^^^^^^^^^ @@ -489,22 +304,6 @@ Peer Parameters     advertisements sent to a peer or peer group.  .. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family -   <ipv4-unicast|ipv6-unicast> distribute-list <export|import> <number> - -   This command applys the access list filters named in <number> to the -   specified BGP neighbor to restrict the routing information that BGP learns -   and/or advertises. The arguments :cfgcmd:`export` and :cfgcmd:`import` -   specify the direction in which the prefix lists are applied. - -.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family -   <ipv4-unicast|ipv6-unicast> filter-list <export|import> <name> -    -   This command applys the AS path access list filters named in <name> to the -   specified BGP neighbor to restrict the routing information that BGP learns -   and/or advertises. The arguments :cfgcmd:`export` and :cfgcmd:`import` -   specify the direction in which the prefix lists are applied. - -.. 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  @@ -566,6 +365,12 @@ Peer Parameters     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> +   disable-send-community <extended|standard> +    +   This command specifies that the community attribute should not be sent +   in route updates to a peer. By default community attribute is sent.  .. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> ebgp-multihop     <number> @@ -598,6 +403,12 @@ Peer Parameters     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> password +   <text> + +   This command specifies a MD5 password to be used with the tcp socket that +   is being used to connect to the remote peer.  .. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> ttl-security     hops <number> @@ -608,6 +419,7 @@ Peer Parameters     become neighbors. The number of hops range is 1 to 254. This      command is mutually exclusive with :cfgcmd:`ebgp-multihop`.    +  Peer Groups  ^^^^^^^^^^^ @@ -632,9 +444,100 @@ are treated as belonging to a default peer group, and will share updates.     This command bind specific peer to peer group with a given name. -General configuration + +Network Advertisement Configuration +----------------------------------- + +.. 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. + +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> default-originate [route-map <name>] + +   By default, VyOS does not advertise a default route (0.0.0.0/0) even if it is +   in routing table. When you want to announce default routes to the peer, use +   this command. Using optional argument :cfgcmd:`route-map` you can inject the +   default route to given neighbor only if the conditions in the route map are +   met. + + +Route Aggregation Configuration +------------------------------- + +.. 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. + +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> unsuppress-map <name> +    +   This command applies route-map to selectively unsuppress prefixes +   suppressed by summarisation. + + +Redistribution Configuration +---------------------------- + +.. cfgcmd:: set protocols bgp <asn> address-family <ipv4-unicast|ipv6-unicast> +   redistribute <route source> + +   This command redistributes routing information from the given route source +   to the BGP process. There are six modes available for route source: bgp, +   connected, kernel, ospf, rip, static. + +.. 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. There are six modes available for  +   route source: bgp, connected, kernel, ospf, rip, static. + +.. 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. +   There are six modes available for route source: bgp, connected, kernel, +   ospf, rip, static. + + +General Configuration  --------------------- +Common parametrs +^^^^^^^^^^^^^^^^ + +.. cfgcmd:: set protocols bgp <asn> parameters router-id <id> + +   This command specifies the router-ID. If router ID is not specified it will +   use the highest interface IP address. +  .. cfgcmd:: set protocols bgp <asn> maximum-paths <ebgp|ibgp> <number>     This command defines the maximum number of parallel routes that  @@ -657,38 +560,278 @@ General configuration     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  +   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. + +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. + +  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. +   This command specifies hold-time in seconds. The timer range is +   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. +   can range from 4 to 65535. The default value is 60 second. -Route Reflector Configuration + +Route Dampening +^^^^^^^^^^^^^^^ + +When a route fails, a routing update is sent to withdraw the route from the +network's routing tables. When the route is re-enabled, the change in +availability is also advertised. A route that continually fails and returns +requires a great deal of network traffic to update the network about the +route's status. + +Route dampening wich described in :rfc:`2439` enables you to identify routes +that repeatedly fail and return. If route dampening is enabled, an unstable +route accumulates penalties each time the route fails and returns. If the +accumulated penalties exceed a threshold, the route is no longer advertised. +This is route suppression. Routes that have been suppressed are re-entered +into the routing table only when the amount of their penalty falls below a +threshold. + +A penalty of 1000 is assessed each time the route fails. When the penalties +reach a predefined threshold (suppress-value), the router stops advertising +the route. + +Once a route is assessed a penalty, the penalty is decreased by half each time +a predefined amount of time elapses (half-life-time). When the accumulated +penalties fall below a predefined threshold (reuse-value), the route is +unsuppressed and added back into the BGP routing table. + +No route is suppressed indefinitely. Maximum-suppress-time defines the maximum +time a route can be suppressed before it is re-advertised.  + +.. cfgcmd:: set protocols bgp <asn> parameters dampening +   half-life <minutes> + +   This command defines the amount of time in minutes after +   which a penalty is reduced by half. The timer range is +   10 to 45 minutes.  + +.. cfgcmd:: set protocols bgp <asn> parameters dampening +   re-use <seconds> +	 +   This command defines the accumulated penalty amount at which the +   route is re-advertised. The penalty range is 1 to 20000. +	 +.. cfgcmd:: set protocols bgp <asn> parameters dampening  +   start-suppress-time <seconds> + +   This command defines the accumulated penalty amount at which the +   route is suppressed. The penalty range is 1 to 20000. + +.. cfgcmd:: set protocols bgp <asn> parameters dampening  +   max-suppress-time <seconds> + +   This command defines the maximum time in minutes that a route is +   suppressed. The timer range is 1 to 255 minutes. + + +Route Selection Configuration +----------------------------- + +.. 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 +   sequences should be taken into account during the BGP best path +   decision process. + +.. cfgcmd:: set protocols bgp <asn> parameters bestpath as-path multipath-relax + +   This command specifies that BGP decision process should consider paths +   of equal AS_PATH length candidates for multipath computation. Without +   the knob, the entire AS_PATH must match for multipath computation. + +.. cfgcmd:: set protocols bgp <asn> parameters bestpath as-path ignore + +   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. + +.. cfgcmd:: set protocols bgp <asn> address-family ipv4-unicast network +   <prefix> backdoor + +   This command allows the router to prefer route to specified prefix learned +   via IGP through backdoor link instead of a route to the same prefix learned +   via EBGP. + + +Route Filtering Configuration  ----------------------------- +In order to control and modify routing information that is exchanged between +peers you can use route-map, filter-list, prefix-list, distribute-list.  + +For inbound updates the order of preference is: + +  - route-map +  - filter-list +  - prefix-list, distribute-list + +For outbound updates the order of preference is: + +  - prefix-list, distribute-list +  - filter-list +  - route-map + +  .. note:: The attributes :cfgcmd:`prefix-list` and :cfgcmd:`distribute-list` +     are mutually exclusive, and only one command (distribute-list or  +     prefix-list) can be applied to each inbound or outbound direction for a  +     particular neighbor. + +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> distribute-list <export|import> <number> + +   This command applys the access list filters named in <number> to the +   specified BGP neighbor to restrict the routing information that BGP learns +   and/or advertises. The arguments :cfgcmd:`export` and :cfgcmd:`import` +   specify the direction in which the access list are applied. +    +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> prefix-list <export|import> <name> + +   This command applys the prfefix list filters named in <name> to the +   specified BGP neighbor to restrict the routing information that BGP learns +   and/or advertises. The arguments :cfgcmd:`export` and :cfgcmd:`import` +   specify the direction in which the prefix list are applied. + +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> route-map <export|import> <name> + +   This command applys the route map named in <name> to the specified BGP +   neighbor to control and modify routing information that is exchanged +   between peers. The arguments :cfgcmd:`export` and :cfgcmd:`import` +   specify the direction in which the route map are applied. + +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> filter-list <export|import> <name> +    +   This command applys the AS path access list filters named in <name> to the +   specified BGP neighbor to restrict the routing information that BGP learns +   and/or advertises. The arguments :cfgcmd:`export` and :cfgcmd:`import` +   specify the direction in which the AS path access list are applied. +    +.. cfgcmd:: set protocols bgp <asn> neighbor <address|interface> address-family +   <ipv4-unicast|ipv6-unicast> capability orf <receive|send> +    +   This command enables the ORF capability (described in :rfc:`5291`) on the +   local router, and enables ORF capability advertisement to the specified BGP +   peer. The :cfgcmd:`receive` keyword configures a router to advertise ORF +   receive capabilities. The :cfgcmd:`send` keyword configures a router to +   advertise ORF send capabilities. To advertise a filter from a sender, you +   must create an IP prefix list for the specified BGP peer applied in inbound +   derection. + + +BGP Scaling Configuration +------------------------- +  BGP routers connected inside the same AS through BGP belong to an internal BGP -session, or IBGP. In order to prevent routing table loops, IBGP speaker does not -advertise IBGP-learned routes to other IBGP speaker (Split Horizon mechanism). -As such, IBGP requires a full mesh of all peers. For large networks, this -quickly becomes unscalable. Introducing route reflectors removes the need for -the full-mesh. Route reflectors mechanism is described in :rfc:`4456` and -updated by :rfc:`7606`. +session, or IBGP. In order to prevent routing table loops, IBGP speaker does +not advertise IBGP-learned routes to other IBGP speaker (Split Horizon +mechanism). As such, IBGP requires a full mesh of all peers. For large +networks, this quickly becomes unscalable. + +There are two ways that help us to mitigate the BGPs full-mesh requirement in +a network: +    +   - Using BGP route-reflectors +   - Using BGP confederation + + +Route Reflector Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Introducing route reflectors removes the need for the full-mesh. When you +configure a route reflector you have to tell the router whether the other IBGP +router is a client or non-client. A client is an IBGP router that the route +reflector will “reflect” routes to, the non-client is just a regular IBGP +neighbor. Route reflectors mechanism is described in :rfc:`4456` and updated +by :rfc:`7606`.  .. cfgcmd:: set protocols bgp <asn> neighbor <address> address-family     <ipv4-unicast|ipv6-unicast> route-reflector-client @@ -703,6 +846,30 @@ updated by :rfc:`7606`.     set to an arbitrary 32-bit value.  +Confederation Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +A BGP confederation divides our AS into sub-ASes to reduce the number of +required IBGP peerings. Within a sub-AS we still require full-mesh IBGP but +between these sub-ASes we use something that looks like EBGP but behaves like +IBGP (called confederation BGP). Confederation mechanism is described in +:rfc:`5065` + +.. cfgcmd:: set protocols bgp <subasn> parameters confederation identifier +   <asn> + +   This command specifies a BGP confederation identifier. <asn> is the number +   of the autonomous system that internally includes multiple sub-autonomous +   systems (a confederation). <subasn> is the number sub-autonomous system +   inside <asn>. + +.. cfgcmd:: set protocols bgp <subasn> parameters confederation confederation +   peers <nsubasn> + +   This command sets other confederations <nsubasn> as members of autonomous +   system specified by :cfgcmd:`confederation identifier <asn>`. + +  Operational Mode Commands  ========================= @@ -764,6 +931,15 @@ Show     This command displays BGP dampened routes. +.. opcmd:: show ip bgp flap-statistics + +   This command displays information about flapping BGP routes. +    +.. opcmd:: show ip bgp filter-list <name> + +   This command displays BGP routes allowed by by the specified AS Path +   access list. +  .. opcmd:: show <ip|ipv6> bgp neighbors <address> advertised-routes     This command displays BGP routes advertised to a neighbor. @@ -837,6 +1013,7 @@ Reset     you do not specify the :cfgcmd:`in` or :cfgcmd:`out` options, both      inbound and outbound soft reconfiguration are triggered. +  Configuration Examples  ---------------------- | 
