Category Archives: 3.7.e Implement and troubleshoot scalability

3.7.e Implement and troubleshoot scalability

3.7.e [ii] Confederations

screenshot

down arrow smaller

22bgp_confederation

the bgp table should look like this:

bgp_confed_01

what IGP am I using?

the tcl script should look like this:

foreach address {
192.168.12.1
192.168.12.2
192.168.13.1
192.168.13.3
192.168.23.2
192.168.24.2
192.168.23.3
192.168.35.3
192.168.24.4
192.168.45.4
192.168.46.4
192.168.35.5
192.168.45.5
192.168.56.5
192.168.46.6
192.168.56.6
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
} { ping $address
}

 

3.7.e Implement and troubleshoot scalability

3.7.e [i] Route-reflector, cluster

BGP requires that all iBGP speakers be fully meshed. However, this requirement does not scale well when there are many iBGP speakers. Instead of configuring a confederation, another way to reduce the iBGP mesh is to configure a route reflector.

When the route reflector receives an advertised route , depending on the neighbor, it takes the following actions:

A route from an external BGP speaker is advertised to all clients and non-client peers.

A route from a non-client peer is advertised to all clients.

A route from a client is advertised to all clients and non-client peers.

Hence, the clients need not be fully meshed.

To configure a route reflector and its clients, use the following command in router configuration mode:

Router( config-router)# neighbor ip-address | peer-group-name route-reflector-client

Whenever an IBGP route is reflected (propagated to another IBGP peer), the route reflector appends two optional, non-transitive attributes to the BGP route:

If the route does not have the Originator ID attribute (it has not been reflected before), the router ID of the IBGP peer from which the route has been received is copied into the Originator ID attribute.

If the route does not have the Cluster list attribute, it’s added to the route.

The value configured with the bgp cluster-id router configuration command (or the router ID of the route reflector if the cluster-id is not configured) is prepended to the Cluster list attribute.

Route reflector does not change or remove any other attributes of the reflected routes (even non-transitive attributes), ensuring that the iBGP routes are not changed within the autonomous system.

Adam, Paul (2014-07-12). All-in-One CCIE V5 Written Exam Guide (Kindle Locations 4022-4025).  . Kindle Edition.

http://blog.ipspace.net/2013/10/can-bgp-route-reflectors-really.html

3.7.e Implement and troubleshoot scalability

3.7.e [ii] Confederations

The implementation of BGP confederation reduces the iBGP mesh inside an AS. The key is to divide an AS into multiple ASs and assign the whole group to a single confederation. Each AS alone has iBGP fully meshed and has connections to other ASs inside the confederation. Even though these ASs have eBGP peers to ASs within the confederation , the ASs exchange routing as if they used iBGP. In this way, the confederation preserves next hop, metric, and local preference information. To the outside world, the confederation appears to be a single AS. In order to configure a BGP confederation, issue this command:

bgp confederation identifier autonomous-system

The confederation identifier is the AS number of the confederation group. The issue of this command performs peering between multiple ASs within the confederation:

bgp confederation peers autonomous-system [autonomous-system]

Adam, Paul (2014-07-12). All-in-One CCIE V5 Written Exam Guide (Kindle Locations 4032-4034).  . Kindle Edition.

http://mellowd.co.uk/ccie/?p=388

 

3.7.e Implement and troubleshoot scalability

3.7.e [iii] Aggregation, AS set

Aggregation, AS set

Border Gateway Protocol (BGP) allows the aggregation of specific routes into one route with use of the aggregate-address address mask [as-set] [summary-only] [suppress-map map-name] [advertise-map map-name] [attribute-map map-name] command. When you issue the aggregate-address command without any arguments, there is no inheritance of the individual route attributes (such as AS_PATH or community), which causes a loss of granularity. Use of the as-set argument creates an aggregate address with a mathematical set of autonomous systems (ASs). This as-setargument summarizes the AS_PATH attributes of all the individual routes. These sample configurations enable you to examine this feature and how this argument helps BGP detect and avoid loops.

Adam, Paul (2014-07-12). All-in-One CCIE V5 Written Exam Guide (Kindle Locations 4037-4044).  . Kindle Edition.

http://packetlife.net/blog/2008/sep/19/bgp-route-aggregation-part-1/

 

3.7.e Implement and troubleshoot scalability

3.7.e (iii) Aggregation, AS set

this simple network illustrates aggregation in bgp, and the use of as_set…

first the difference between as_set and as_sequence…

  • AS_SEQUENCE.  This is the ordered list of AS’s that were used in the path to reach the destination.
  • AS_SET.  This is an unordered list of AS’s that were used in the path to reach the destination.as_set

r1 and r3 each have two loopbacks and are advertising the networks:

R1(config-router)#do sh run | b router
router bgp 100
bgp log-neighbor-changes
network 172.16.1.0 mask 255.255.255.0
network 172.16.2.0 mask 255.255.255.0
neighbor 192.168.12.2 remote-as 200

R3(config-router)#do sh run | b router
router bgp 300
bgp log-neighbor-changes
network 172.16.3.0 mask 255.255.255.0
network 172.16.4.0 mask 255.255.255.0
neighbor 192.168.23.2 remote-as 200

r2 will perform the aggregation, but first we’ll look at r4’s bgp table

R4(config-router)#do sh ip bgp | b Network
Network          Next Hop            Metric LocPrf Weight Path
*>  172.16.1.0/24    192.168.24.2                           0 200 100 i
*>  172.16.2.0/24    192.168.24.2                           0 200 100 i
*>  172.16.3.0/24    192.168.24.2                           0 200 300 i
*>  172.16.4.0/24    192.168.24.2                           0 200 300 i

R2(config-router)#do sh run | b router
router bgp 200
bgp log-neighbor-changes
neighbor 192.168.12.1 remote-as 100
neighbor 192.168.23.3 remote-as 300
neighbor 192.168.24.4 remote-as 400

r2 performs aggregation with:

R2(config-router)#aggregate-address 172.16.1.0 255.255.248.0

R4(config-router)#do sh ip bgp | b Net
Network          Next Hop            Metric LocPrf Weight Path
*>  172.16.0.0/21    192.168.24.2             0             0 200 i
*>  172.16.1.0/24    192.168.24.2                           0 200 100 i
*>  172.16.2.0/24    192.168.24.2                           0 200 100 i
*>  172.16.3.0/24    192.168.24.2                           0 200 300 i
*>  172.16.4.0/24    192.168.24.2                           0 200 300 i

without further filtering by r2, r4 gets the aggregate, and the other networks…

R2(config-router)#aggregate-address 172.16.1.0 255.255.248.0 summary-only

R4(config-router)#do sh ip bgp | b Net
Network          Next Hop            Metric LocPrf Weight Path
*>  172.16.0.0/21    192.168.24.2             0             0 200 i

R2(config-router)#do sh ip bgp | b Net
Network          Next Hop            Metric LocPrf Weight Path
*>  172.16.0.0/21    0.0.0.0                            32768 i
 s>  172.16.1.0/24    192.168.12.1             0             0 100 i
 s>  172.16.2.0/24    192.168.12.1             0             0 100 i
s>  172.16.3.0/24    192.168.23.3             0             0 300 i
s>  172.16.4.0/24    192.168.23.3             0             0 300 i

if we add the as-set statement, then path information will be preserved…

router bgp 200
aggregate-address 172.16.0.0 255.255.248.0 as-set summary-only

R4(config-router)#do sh ip bgp | b Net
Network          Next Hop            Metric LocPrf Weight Path
*>  172.16.0.0/21    192.168.24.2             0             0 200 {100,300}i