Home > Basic BGP Configuration

Basic BGP Configuration

August 25th, 2016 Go to comments

In this lab we will learn a simple eBGP (two BGP routers with different Autonomous System numbers) configuration between two routers with the topology below:

BGP_Config.jpg

First we need to configure some interfaces on two routers as follows:

R1(config)#interface fastethernet0/0
R1(config-if)#ip address 11.0.0.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.0
R2(config)#interface fastethernet0/0
R2(config-if)#ip address 11.0.0.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#interface loopback 0
R2(config-if)#ip address 2.2.2.2 255.255.255.0

So we have just configured interface fa0/0 and loopback0 on both routers. Next we will configure the BGP configuration part on R1:

R1(config)#router bgp 1
R1(config-router)#neighbor 11.0.0.2 remote-as 2

The configuration is very simple with only two lines on R1. In the first line, BGP configuration begins with a familiar type of command: the router bgp command, where AS number is the BGP AS number used by that router (same as EIGRP, OSPF configuration).

The next command defines the IP address of the neighbor. Unlike OSPF or EIGRP, BGP cannot discover its neighbors automatically so we have to explicitly declare them. We also have to know and declare the neighbor’s BGP AS number as well. In this case R1 wants to establish BGP neighbor relationship with R2 (in BGP AS 2) so it choose an interface on R2 (Fa0/0: 11.0.0.2) and specify R2 is in BGP AS 2 via the command “neighbor 11.0.0.2 remote-as 2“. At the other end R2 will do the same thing for R1 to set up BGP neighbor relationship.

R2(config)#router bgp 2
R2(config-router)#neighbor 11.0.0.1 remote-as 1

After a moment we should see a message (on each router) similar to the following, letting us know that an adjacency has been formed:

On R1:

*Aug 17 00:09:38.453: %BGP-5-ADJCHANGE: neighbor 11.0.0.2 Up

On R2:

*Aug 17 00:09:38.453: %BGP-5-ADJCHANGE: neighbor 11.0.0.1 Up

So after forming BGP neighbor relationship we can verify by using the “show ip bgp summary” command on both routers:

R1#show ip bgp summary 
BGP router identifier 1.1.1.1, local AS number 1
BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
11.0.0.2        4     2      19      19        1    0    0 00:16:21        0
R2#show ip bgp summary
BGP router identifier 2.2.2.2, local AS number 2
BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
11.0.0.1        4     1      20      20        1    0    0 00:17:13        0

Please pay attention to the “State/PfxRcd” column of the output. It indicates the number of prefixes that have been received from a neighbor. If this value is a number (including “0”, which means BGP neighbor does not advertise any route) then the BGP neighbor relationship is good. If this value is a word (including “Idle”, “Connect”, “Active”, “OpenSent”, “OpenConfirm”) then the BGP neighbor relationship is not good.

In the outputs above we see the BGP neighbor relationship between R1 & R2 is good with zero Prefix Received (PfxRcd) because they have not advertised any routes yet.

How about the BGP routing table? We can check with the “show ip bgp” command but currently this table is empty! This is because although they formed BGP neighbor relationship but they have not exchanged any routes. Let’s try advertising the loopback 0 interface on R1 to R2:

R1(config-router)#network 1.1.1.0 mask 255.255.255.0

As you see, unlike other routing protocols like OSPF or EIGRP, we have to use subnet mask (255.255.255.0 in this case), not wildcard mask, to advertise the routes in the “network” command.

Note: With BGP, you must advertise the correct network and subnet mask in the “network” command ( in this case network 1.1.1.0/24). BGP is very strict in the routing advertisements. In other words, BGP only advertises the network which exists exactly in the routing table (in this case network 1.1.1.0/24 exists in the routing table as the loopback 0 interface). If you put the command “network 1.1.0.0 mask 255.255.0.0” or “network 1.0.0.0 mask 255.0.0.0” or “network 1.1.1.1 mask 255.255.255.255” then BGP will not advertise anything.

Now the BGP routing tables on these two routers contain this route:

R1#sh ip bgp
BGP table version is 4, local router ID is 11.0.0.1
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
*> 1.1.1.0/24       0.0.0.0                  0          32768   i
R2#sh ip bgp
BGP table version is 2, local router ID is 11.0.0.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
*> 1.1.1.0/24       11.0.0.1                 0              0   1 i

An asterisk (*) in the first column means that the route has a valid next hop. A greater-than sign (>) indicates the route has been selected as the best path to that network.

The “Metric” column here is not the usual metric like in OSPF or EIGRP. It is the Multi Exit Discriminator (MED) attribute of BGP. “Weight” is another BGP attribute. The default values of both MED and Weight are 0 (as you see at the outputs above).

The “Path” column shows the AS paths that prefix were sent to reach us. It would better to read the “Path” from right to left to understand which path this prefix travel to reach our router. Letter “i” is considered the starting point of the prefix and the next number is the originating AS where this prefix originated. Next numbers are the recorded paths it traveled. For example if a prefix had to travel from AS 1 -> 2 -> 3 -> 4 -> 5 (our AS) then we will see the path “4 3 2 1 i” on our router.

Note: A blank AS path (only letter “i” is shown) means that the route was originated in the local AS. In the R1 output above, network 1.1.1.0/24 is originated from R1 so we see the path only has one letter “i”.

One notice is on R1 the “Next Hop” is 0.0.0.0 which means this prefix is originated from the local router. On R2 the Next Hop is pointing toward the interface Fa0/0 of R1 (11.0.0.1) to which R2 will send traffic for the destination 1.1.1.0/24.

Now R1 advertised prefix 1.1.1.0/24 to R2 so we can re-check R2 with the “show ip bgp summary” command to see the “Prefix received” increased to 1:

R2#sh ip bgp summary 
BGP router identifier 2.2.2.2, local AS number 2
BGP table version is 2, main routing table version 2
1 network entries using 117 bytes of memory
1 path entries using 52 bytes of memory
2/1 BGP path/bestpath attribute entries using 248 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 441 total bytes of memory
BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
11.0.0.1        4     1       5       4        2    0    0 00:01:36        1

Also in the routing table of R2 we will see this prefix, which is advertised with BGP from R1:

R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
B       1.1.1.0 [20/0] via 11.0.0.1, 00:00:20
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback0
     11.0.0.0/24 is subnetted, 1 subnets
C       11.0.0.0 is directly connected, FastEthernet0/0

This lab only mentioned about the most basic configuration of BGP and introduced two most important commands of BGP, which are “show ip bgp summary” and “show ip bgp”. In practical BGP is often much more complex with many attributes, routing policies, redistribution,… used.

Comments (11) Comments
Comment pages
1 2 2818
  1. madok
    March 16th, 2018

    nice.

  2. yoelo
    March 26th, 2018

    Hi there,Can anyone send me the latest CCNA questions
    email it to me plz e: ryoel110(at)gmail.com

  3. shree
    April 13th, 2018

    great explained

  4. Basil Dhimiesh
    May 8th, 2018

    This is the most great tutorial

  5. Ravi Kashyap
    July 10th, 2018

    This is awesome tutorial. Very basic and nicely explained each and everything about basic BGP configuration. 9tut.com is superb. Thanks Team. God bless you…

  6. love it
    July 24th, 2018

    can someone send me the latest CCNA questions to the below email please ? going for the exam next week.
    w.kenawiy at yahoo .com

  7. Amit Sharma
    August 5th, 2018

    This is best BGP basic command

  8. vutha
    August 22nd, 2018

    easy to understand and reading.

  9. Deep Kumar
    August 25th, 2018

    Dear All
    Please send me latest Dumps of CCNA if anyone have.
    {email not allowed}

  10. Kingsley
    September 5th, 2018

    Dear all, Please anyone with the latest packet tracer should please send to me. I really need it for my CCNA exams. email: {email not allowed}.
    thanks!

  11. candy
    October 18th, 2018

    Good and help full for freshers

    9tut is the best tutorial for beginners.

Comment pages
1 2 2818
Add a Comment