How to Read the BGP Table

All prefixes that BGP learns are stored in the BGP table. In this lesson we’ll take a look at this table and you will learn how to read it. We’ll start with a simple topology and finish with a quick peek at a full Internet routing table.

Configuration

Here’s the topology we will use. 4 routers, each in a different autonomous system:

BGP AS1 AS2 AS3 AS4

Configurations

Want to take a look for yourself? Here you will find the startup configuration of each device.

R1

hostname R1
!
interface fastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
!
interface fastEthernet0/1
 ip address 192.168.13.1 255.255.255.0
!
router bgp 1
 neighbor 192.168.12.2 remote-as 2
 neighbor 192.168.13.3 remote-as 3
!
end

R2

hostname R2
!
interface fastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
!
interface fastEthernet0/1
 ip address 192.168.24.2 255.255.255.0
!
router bgp 2
 neighbor 192.168.12.1 remote-as 1
 neighbor 192.168.24.4 remote-as 4
!
end

R3

hostname R3
!
interface fastEthernet0/0
 ip address 192.168.13.3 255.255.255.0
!
interface fastEthernet0/1
 ip address 192.168.34.3 255.255.255.0
!
router bgp 3
 neighbor 192.168.13.1 remote-as 1
 neighbor 192.168.34.4 remote-as 4
!
end

R4

hostname R4
!
interface Loopback 0
 ip address 4.4.4.4 255.255.255.255
!
interface fastEthernet0/0
 ip address 192.168.24.4 255.255.255.0
!
interface fastEthernet0/1
 ip address 192.168.34.4 255.255.255.0
!
router bgp 4
 network 4.4.4.4 mask 255.255.255.255
 neighbor 192.168.24.2 remote-as 2
 neighbor 192.168.34.3 remote-as 3
!
end


The BGP configurations are pretty straight-forward, we are using eBGP here. Note that R4 advertises a network (loopback interface) in BGP.

Reading the BGP Table

Let’s take a look at the BGP tables. We’ll start with R4:

R4#show ip bgp
BGP table version is 2, local router ID is 192.168.34.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 4.4.4.4/32       0.0.0.0                  0         32768 i

Ok so what do we see here? Let’s start with the items I highlighted in red first. This router has network 4.4.4.4/32 in its BGP table and in front of the network there’s the *> symbol:

  • The * means that this is a valid route and that BGP is able to use it.
  • The > means that this entry has been selected as the best path.

The next hop is 0.0.0.0. The next hop of 0.0.0.0 means that this network originated on this router, that makes sense since I used the network command on R4 to advertise this network into BGP.

Further to the right you see metric, local preference and weight. These are the BGP attributes that are used to select the best path.

Path will show the AS path, there’s nothing there since this network was advertised in BGP on this router. On the other routers you’ll see something here.

The ‘i’ is the origin code and indicates that this network was advertised into BGP using the network command, the table says it refers to IGP but it doesn’t have anything to do with “interior gateway protocols”. When you redistribute something into BGP it will show up with the ? symbol. You will never see the ‘e’ symbol, this refers to EGP (Exterior Gateway Protocol) which is the predecessor of BGP.

Some of the other things you see here is the BGP table version, every time the best path changes this number will increase. You can see the BGP router ID of this router and there are some other status codes:

  • supressed: BGP knows the network but won’t advertise it, this can occur when the network is part of a summary.
  • damped: BGP doesn’t advertise this network because it was flapping too often (network appears, disapears, appears, etc.) so it got a penalty.
  • history: BGP learned this network but doesn’t have a valid route at the moment.
  • RIB-failure: BGP learned this network but didn’t install it in the routing table. This occurs when another routing protocol with a lower administrative distance also learned it.
  • stale: this is used for non-stop forwarding, this entry has to be refreshed when the remote BGP neighbor has returned.

Let’s look at the BGP tables of the other routers, we’ll continue with R2:

R2#show ip bgp
BGP table version is 2, local router ID is 192.168.24.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 4.4.4.4/32       192.168.24.4             0             0 4 i

The output of R2 is similar to what we have seen on R4 but there are two important differences. The first one is the next hop, R2 learned about this network from 192.168.24.4. The second thing is the AS path, it’s showing AS 4.

Let’s check R1:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You've Ever Spent on Your Cisco Career!
  • Full Access to our 662 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

501 Sign Ups in the last 30 days

satisfaction-guaranteed
100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!

Forum Replies

  1. Hi Hamood,

    That’s right, you can use weight to select the path but this is only for the local router. If you want to influence your entire AS then you’ll have to use local preference:

    ... Continue reading in our forum

  2. Hello Lee

    Looking a little deeper into the issue, looking at the router configurations, the router IDs of both R2 and R3 are indeed the same as both Lo interfaces are set to 2.2.2.2. So according to BGP route selection process, if the router IDs are the same, then the router will prefer the route with the lowest neighbour IP address. So between R2 and R3, the lowest neighbour IP address is indeed 192.168.12.2, so R2 will be chosen as the path.

    So the following statement in the lesson has to be revised:

    //cdn-forum.networklessons.com/uploads/default/original/1

    ... Continue reading in our forum

  3. Thanks Laz for clarifying that for me and the prompt response.

  4. Hi Rene,
    Thanks for replying me…yes after set the router id in R3 now everything is up and not getting identifier error:smiley:

    R3#sh running-config | include bgp
    router bgp 2
    bgp router-id 1.1.1.1
    bgp log-neighbor-changes
    
    R3#sh ip bgp summary
    BGP router identifier 1.1.1.1, local AS number 2
    BGP table version is 1, main routing table version 1
    2 network entries using 288 bytes of memory
    2 path entries using 160 bytes of memory
    2/0 BGP path/bestpath attribute entries using 272 bytes of memory
    0 BGP route-map cache entries using 0 bytes of memory
    0 BGP filter-li
    ... Continue reading in our forum

  5. Hey Lagapides,

    Thank you so much. This cleared up a lot for me. Especially the “in” and “out” issue.

    Regards

64 more replies! Ask a question or join the discussion by visiting our Community Forum