Category Archives: 3.7.b Implement and troubleshoot IBGP and EBGP

3.7.b Implement and troubleshoot IBGP and EBGP

bgp next-hop-self

the lab is beneath the arrow.


down arrow smaller


follow the instructions on the diagram carefully. below is the state you are achieving.


when i was just getting started with bgp next-hop-self gave me a friggin headache. next-hop-who, myself, hisself, next-hop-whoself?

note the asterisk for the 3 network. it’s valid but that dog don’t hunt. the next hop field is vital; from r2’s perspective, to get to r3’s 3 network it will have to bypass r1 completely and mysteriously find to get to it’s r1’s job to make it right. r1 IS THE next hop for r2 to get to r3.

R1(config-router)#neighbor next-hop-self
R1(config-router)#!!! to get to, use me, abuse me!!!


R2(config-router)#do ping

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to, timeout is 2 seconds:
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/30/44 ms

i still don’t like next-hop-self…

3.7.b Implement and troubleshoot IBGP and EBGP

3.7.b [i] EBGP, IBGP

BGP is an exterior gateway protocol (EGP), used to perform inter-domain routing in TCP/ IP networks. A BGP router needs to establish a connection (on TCP port 179) to each of its BGP peers before BGP updates can be exchanged. The BGP session between two BGP peers is said to be an external BGP (eBGP) session if the BGP peers are in different autonomous systems (AS) . A BGP session between two BGP peers is said to be an internal BGP (iBGP) session if the BGP peers are in the same autonomous systems.

By default , the peer relationship is established using the IP address of the interface closest to the peer router. However, using the neighbor update-source command, any operational interface, including the loopback interface, can be specified to be used for establishing TCP connections. This method of peering using a loopback interface is useful since it will not bring down the BGP session when there are multiple paths between the BGP peers, which would otherwise result in tearing down the BGP session if the physical interface used for establishing the session goes down. In addition to that, it also allows the routers running BGP with multiple links between them to load balance over the available paths.

To allow the redistribution of i-BGP routes into an interior gateway protocol such as IS-IS or OSPF or EIGRP, use the bgp redistribute-internal command in router configuration mode.

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

3.7.b Implement and troubleshoot IBGP and EBGP

3.7.b [ii] 4 bytes AS number

During the early time of BGP development and standardization, it was assumed that availability of a 16 bit binary number to identify the Autonomous System (AS) within BGP would have been more than sufficient. The 16 bit AS number, also known as the 2-byte AS number, provides a pool of 65,536 unique Autonomous System numbers. The IANA manages the available BGP Autonomous System Numbers (ASN) pool, with the assignments being carried out by the Regional Registries. 2 byte ASN is now regarded as historical.

A solution to this depletion is the expansion of the existing 2-byte AS number to a 4-byte AS number, which provides a theoretical 4,294,967,296 unique AS numbers.

The Cisco IOS BGP “4-byte ASN” feature allows BGP to carry a Autonomous System Number (ASN) encoded as a 4-byte entity.

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

3.7.b Implement and troubleshoot IBGP and EBGP

3.7.b [iii] Private AS

Private autonomous system (AS) numbers which range from 64,512 to 65,535 are used to conserve globally unique AS numbers. Globally unique AS numbers (1 – 64,511) are assigned by InterNIC. These private AS number cannot be leaked to a global Border Gateway Protocol (BGP) table because they are not unique (BGP best path calculation expects unique AS numbers). It allows the stripping of private AS numbers out of the AS_PATH list before the routes are propagated to a BGP peer.

Generally customer networks and their routing policies are an extension of the respective Internet Service Providers (ISPs). When a customer network is large, the service provider may assign an AS number using a couple of different methods in order to manage the network and routing policies.

● One way is by permanently assigning an AS number in the range of 1 to 64511. This is done when a customer network connects to two different ISPs, such as multi-homing. This situation mandates that customer network should have a unique AS number so that it can uniquely propagate its BGP routes to a global BGP mesh via two ISPs.

● A second way is by assigning a Private AS number in the range of 64,512 to 65,535. This is done when a customer network connects to a single ISP (either single-homed or dual-homed to the same ISP) and the intention is to conserve the AS numbers. It is not recommended that you use a private AS number if you are planning to connect to multiple ISPs in the future.

When a private AS number is allocated to the customer network, the BGP updates from the customer network to ISP will have the private AS number in its AS_PATH list. When the ISP propagates its network information to the global BGP table (Internet), it should not propagate the AS_PATH with the private AS number of the customer to the Internet. To help the ISP remove the private AS number from its AS_PATH list, use the Cisco IOS remove-private-as command. To remove the private AS number, use the neighbor x.x.x.x remove-private-as router configuration command. The neighbor x.x.x.x remove-private-as per-neighbor configuration command forces BGP to drop the private AS numbers. You can configure this command for external BGP neighbors. When the outbound update contains a sequence of private AS numbers, this sequence is dropped.

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