Troubleshooting BGP Route Advertisement

It could be any issue on layer 2…an interface that goes down but a MAC address filter that prevents two routers from communicating with each other is also a layer 2 issue :slight_smile:

Hello
I have a doubt,will it successfully advertise, if we only have a default ROUTE for any network,without the above mentioned static route to null0 or same network loopback creation.

Hello sachin

You could add the network 0.0.0.0/0 command on the BGP configuration, however this would only advertise the default route to the other routers. It would not allow R1 to advertise 172.16.0.0/16 to R2. You need the specific destination and subnet mask in the routing table using the two options that are described in the lesson. It would probably be very beneficial if you tried it out in a lab to see first hand how BGP behaves with these configuration commands. If you do try it, let us know your results!

I hope this has been helpful!

Laz

hi laz
In case if we want to use bgp for outbound traffic,what will be the difference in bgp config(for normal internet browsing)?is it practical for customer routers ?

Hello sachin

BGP is very specific in what it advertises. it will only advertise what is in the routing table exactly as it is stated in the routing table including prefix.

If you want to use BGP to advertise a default route for outbound traffic, there are several ways to do this:

**network 0.0.0.0 command** - this will inject the default route into BGP only if this same default route is currently present in the routing table.

**redistribution from another routing protocol** will also inject the default route into BGP, again, only if it is currently in the routing table and if it has been learned from the specific routing protocol you are redistributing from.

using the default-information originate command which causes the default route to be artifically generated and injected into the BGP RIB even if it is not in the routing table. It will be advertised because it is in the RIB.

finally you can use the neighbor X.X.X.X defaut-originate command which is similar to the previous command except that the default route will be advertised only to this specific BGP neighbour and not to all BGP neighbours.

I hope this has been helpful!

Laz

I was reading through this and then got to the trouble section on BGP Summarization. I had never really thought about it before as I have not had to configure it in the real world though I am sure I have came across it but was no problems with it so did not take any notice.

I studied CCNP Switch and Route and I don’t ever remember coming across summarization for BGP. I then did a DDG (DuckDuckGo my google replacement search engine) search on a line of code you had in there called aggregate-address.

Now normally when I thought about aggregate I thought about LACP or interfaces aggregated together so this was a bit confusing except the trouble shooting portion said summary so I had a bit of an inkling of where this was going.

I had to search on this site and found the following link: https://networklessons.com/bgp/bgp-aggregate-as-set/

is this not a CCNP or a CCIE concept do you have to study BGP specifically to pick this up academically?

Anyway this snuck up on me but figured I would make a post about it because I am always thinking out loud.

Hello Brian

According to the exam topics for the CCNP ROUTE exam, BGP route summarization is not explicitly mentioned. However, it does affect individual route BGP attributes, and this is important to know. For example, when the aggregate-address command is used, the AS_PATH among other attributes, is lost.

Ultimately, it is great to know because when you work with BGP it just add one more parameter that you can “play” with when configuring a production network. It may not be that important for certification purposes, but more for the real world usage of the protocol.

I hope this has been helpful!

Laz

1 Like

It is so easy when you have videos supporting you courses that is what attracted me here in the first place.
this bgp tshoot needs a video in CLI showing all the steps

Hi Regis,

I agree, I hope to add a video to each lesson sometime. That’ll take quite some work though.

Rene

Thank you for replying Rene.
I understand how time consuming this could be to make videos for great topics.
Your website has a lot of good contents.
The videos are easy to follow and allow me to follow your labs.
Reading the content can be challenging and that is why I sent my last comment.
Great work on all your topic but the videos are what brought me here in the first place.

1 Like

Hi Rene,

I have one question why we need to adverse network 192.168.12.0 mask 255.255.255.0 on the last scenario, I am confused about it.

Hello Navraj

The whole problem of the last scenario is the fact that R1 does not have the destination of 3.3.3.0/24 in its routing table. However, you can see that it is in the BGP table. In the BGP table it says that the next hop is 192.168.23.3, but R1 doesn’t know this IP, and it doesn’t have any routes to be able to reach it. So to solve the issue, we need to let R1 know how to get to the next hop IP address indicated in the BGP table.

This can be done either by changing the next hop address to one that R1 knows, like that of R2, or to use a static route. Rene choose the first option. Now we see the route showing up in R1, but we still can’t ping.

This is because the ping is able to reach R3, but R3 must be able to send back a reply. If we look in R3’s routing table, we’ll see that it has no route to 192.168.12.0/24, and so it has no way of knowing where to return the packet, so it drops it.

For this reason, R2 must advertise the 192.168.12.0/24 network to R3 so that it knows where to send all packets destined for that network. Once that’s done, R3 can now return R1’s pings since it now has a route to R1’s IP address.

I hope this has been helpful!

Laz

Thank you, Laz it is cleared now.

1 Like

Your way of explaining topics are very easy to catch. Great work.

1 Like

Hi Folks,
If we create static route to get this entries to Routing table then BGP can advertise it to its neighbor. I will has problem, When packet return to R1, R1 will discard the packet, right?

R1(config)#ip route 172.16.0.0 255.255.0.0 null 0
R1(config)#router bgp 1
R1(config-router)#network 172.16.0.0 mask 255.255.0.0

Thank you
Steve

Hello Tuyen

In R1, we see the aggregate-address 172.16.0.0 255.255.0.0 command in the BGP configuration, and we want to send this aggregate address to BGP peers. This means that we must already have more specific routes in the routing table that we simply want to aggregate, such as 172.16.1.0/24 and 172.16.55.0/24 for example. These are not shown in the lesson, but would be there in a production environment.

Remember, a routing table lookup will look up the most specific routes. So even with the null static route, it would never be matched since something more specific would be matched, and successfully routed. If there are no routes that are more specific, then the packet would be dropped anyway so the null interface configuration wouldn’t make a difference.

I hope this has been helpful!

Laz

HI Laz,
You mean static route send to null interface is lower priority than others route even It’s static route, don’t you?

Thank you
Steve

Hello Tuyen

It’s not a matter of priority, but more a matter of specific routes. For example, let’s say you have the following routes in your routing table:

172.16.1.0/24
172.16.2.0/24
172.16.3.0/24
172.16.4.0/24
172.16.5.0/24

Now you want to share these routes via BGP, using the aggregate-address command. You put in the following command in your BGP configuration:

aggregate-address 172.16.0.0 255.255.248.0

This results in BGP attempting to send this prefix to its neighbors. But because there is no exact match in the routing table, it does not. So you add the following static route:

ip route 172.16.0.0 255.255.248.0 null 0

And BGP will begin advertising this route.

Now, let’s say an IP packet with a destination address of 172.16.2.54 arrives at the router. What will happen? This destination address will be compared with the entries in the routing table. Which one will it match? The most specific match is: 172.16.2.0/24. This is because this match has a subnet mask (or prefix) of /24 while the static null route we installed has a subnet mask (or prefix) of /21.

It is not a matter of priority, but a matter of how specific a match it is based on the subnet mask or prefix of the particular routing table entry.

I hope this has been helpful!

Laz

Hi Laz,

As the example, Discard route(/21) will be installed to routing table. If the prefix /24 comes, It will be only matched with discard route, for sure the packet is dropped.

BR,
Steve.

Hello Tuyen

If you have a router with the routes I mentioned in the previous post, and you add the null route with the summary prefix, you will end up with a routing table that looks something like this (assume 10.10.10.1 and 10.20.20.2 are the next hop addresses for the individual routes):

 172.16.0.0 is variably subnetted, 5 subnets, 2 masks
S       172.16.1.0 255.255.255.0 via 10.10.10.1
S       172.16.2.0 255.255.255.0 via 10.10.10.1
S       172.16.3.0 255.255.255.0 via 10.10.10.1
S       172.16.4.0 255.255.255.0 via 10.20.20.2
S       172.16.5.0 255.255.255.0 via 10.20.20.2
S       172.16.0.0 255.255.248.0 Null0

Now if a packet arrives with a destination IP of 172.16.3.55 for example, it will always match the most specific route in the routing table. In this case, it will match 172.16.3.0/24 and be sent to a next hop IP address of 10.10.10.1. Even though there is a null route to 172.16.0.0/21, this route is less specific and will never be matched by such a destination IP.

I hope this has been helpful!

Laz