How to advertise networks in BGP

In this lesson we’ll take a look how you can advertise networks in BGP. There are two methods how we can do this:

  • Network command
  • Redistribution

Just like our IGPs we can use the network command to advertise something or we can redistribute networks into BGP. There’s one big difference though, the network command for BGP behaves differently.

When you use any of the IGPs (RIP, OSPF or EIGRP) then the network command is used to activate the IGP on all interfaces that fall within the range of the network command.

BGP doesn’t care about interfaces, it doesn’t even look at them. When we use the network command in BGP then BGP will only look at the routing table. When it finds the network that matches the network command, it will install it in the BGP table.

Let me show you some examples to explain what I’m talking about. We will use the following two routers:

R1 R2 AS1 AS2 EBGP

R1 and R2 are in different autonomous systems so we use eBGP. Here is the BGP configuration:

R1#show running-config | section bgp
router bgp 1
 bgp log-neighbor-changes
 neighbor 192.168.12.2 remote-as 2
R2#show running-config | section bgp
router bgp 2
 bgp log-neighbor-changes
 neighbor 192.168.12.1 remote-as 1

Nothing special here, just plain eBGP between R1 and R2. Let’s advertise some networks in BGP…

Network Command

Let’s create a loopback interface with a network and advertise it in BGP:

R1(config)#interface loopback 1
R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config)#router bgp 1
R1(config-router)#network 1.1.1.0 mask 255.255.255.0

Above we have created a loopback interface with network 1.1.1.0 /24, this is what we will advertise in BGP. Since we created a loopback interface, this network will be directly connected for R1:

R1#show ip route 1.1.1.0
Routing entry for 1.1.1.0/24
Known via "connected", distance 0, metric 0 (connected, via interface)
Advertised by bgp 1
Routing Descriptor Blocks:
* directly connected, via Loopback1
Route metric is 0, traffic share count is 1

Since it’s in the routing table, BGP will be able to install this network in the BGP table:

R1#show ip bgp
BGP table version is 2, local router ID is 192.168.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter
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

Since R1 has it in its BGP table it will be able to advertise it to R2:

R2#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.0/24, version 2
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  1
    192.168.12.1 from 192.168.12.1 (192.168.12.1)
      Origin IGP, metric 0, localpref 100, valid, external, best

That’s all there is to it. Just use the network command to put the networks you want in the BGP table. One thing you have to be aware of is that you have to use the exact network and subnet mask for the network command. Let me give you an example:

R1(config)#interface loopback 2
R1(config-if)#ip address 11.11.11.11 255.255.255.255
R1(config)#router bgp 1
R1(config-router)#network 11.11.11.0 mask 255.255.255.0

I created a loopback interface with network 11.11.11.11 /32. BGP uses the network command to advertise 11.11.11.0 /24. This network will never be placed in the BGP table since the subnet mask doesn’t match:

R1#show ip bgp 11.11.11.11
% Network not in table

Be aware of this. Make sure you type the exact network address and subnet mask when advertising something in BGP. Let’s fix this:

R1(config)#router bgp 1
R1(config-router)#no network 11.11.11.0 mask 255.255.255.0
R1(config-router)#network 11.11.11.11 mask 255.255.255.255

With the correct network command, BGP will be able to advertise this network in the BGP table:

R1#show ip bgp 11.11.11.11
BGP routing table entry for 11.11.11.11/32, version 5
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     1
  Local
    0.0.0.0 from 0.0.0.0 (192.168.12.1)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best

And because R1 has it in its BGP table, R2 will be able to learn it:

R2#show ip bgp | begin Network
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       192.168.12.1             0             0 1 i
*> 11.11.11.11/32   192.168.12.1             0             0 1 i

Alright so far so good. What if we want to advertise a network that we don’t have? Let’s say that I want to advertise network 1.0.0.0 /8 in BGP. We won’t be able to advertise this network in BGP if it’s not in the routing table. To achieve this, we’ll put this network in our routing table:

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

If you like to keep on reading, Become a Member Now!

  • 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 800 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)
521 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 Rene,

    What is the use of the null0, I learned that is the trash can of the packets but never fully understand when will I use it.

    Please advise

  2. Hi Alfredo,

    When you send something to the null interface then those packets are discarded. It can be useful if you want to advertise something that you don’t have.

    When you create a static route you need a valid next hop or it can’t be installed in the routing table. Because of this, using the null interface as next hop will help.

    It’s also useful when you create summary routes. With a summary, it’s possible that you receive traffic for networks that you don’t have. In this case the packets can be discarded to the null interface.

    Rene

  3. hi

    will I need to advertise the internal routing network into BGP
    for example internal EIGRP is using subnet 126.89.120.64/26

  4. Hi Aaron,

    It depends what you want to achieve. If you want 126.89.120.64/26 to be reachable from the outside world, then yes. If you are a transit AS then there might be no reason for others to know about some of your internal networks.

    Rene

  5. HI Rene ,

    Thanks for your answers in all departments they really do help !

    one question -

    if for example I was using subnet 172.16.16.0/24 for all of my internal EIGRP routing
    would i need to add that subnet to the network statement under the BGP feature in order for a BGP neighbour to route packets to hosts in the 176.16.16.0 /24 network ?

    I think that makes sense !!

    do you offer any of your time to look at configs / topolgys??

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