Search …
Introduction to BGP
Lesson Contents
1. Why do we need BGP?
2. Autonomous Systems
3. BGP Advertisements
3.1. Default Route
3.2. Partial Routing Updates
3.3. Full Internet Routing Table
4. Path Vector
5. BGP Route Selection
6. Conclusion
This lesson will be interesting! BGP (Border Gateway Protocol) is the
routing protocol that glues the Internet together. I’m going to explain in
which situations we need BGP and how it works.
Before you continue reading I should tell you to “forget” everything you
know about routing protocols like RIP, OSPF and EIGRP so far…Those
three routing protocols have one thing in common: they are all IGPs
(Interior Gateway Protocols). We only use them within our autonomous
system but they are not scalable to use for a network as large as the
Lessons
Internet.
RIP, OSPF and EIGRP are all different but they have one thing in
common…they want to find the shortest path to the destination. When
we look at the Internet we don’t care as much as to find the shortest
path, being able to manipulate traffic paths is far more important.
There is only one routing protocol we currently use on the Internet
which is BGP.
1. Why do we need BGP?
Let’s start by looking at some scenarios so you can understand why and
when we need BGP:
Nowadays almost everything is connected to the Internet. In the picture
above we have a customer network connected to an ISP (Internet
Service Provider). Our ISP is making sure we have Internet access. Our
ISP has given us a single public IP address we can use to access the
Internet. To make sure everyone on our LAN at the customer side can
access the Internet we are using NAT/PAT (Network / Port address
translation) to translate our internal private IP addresses to this single
public IP address. This scenario is excellent when you only have clients
that need Internet access. On our customer LAN we only need a default
route pointing to the ISP router and we are done. For this scenario we
don’t need BGP…
Lessons
Maybe the customer has a couple of servers that need to be reachable
from the Internet…perhaps a mail- or webserver. We could use port
forwarding and forward the correct ports to these servers so we still
only need a single IP address. Another option would be to get more
public IP addresses from our ISP and use these to configure the
different servers. For this scenario we still don’t need BGP…
What if I want a bit more redundancy? Having a single point of failure
isn’t a good idea. We could add another router at the customer side
and connect it to the ISP. You can use the primary link for all traffic and
have another link as the backup. We still don’t require BGP in this
situation, it can be solved with default routing:
Advertise a default route in your IGP on the primary customer
router with a low metric.
Advertise a default route in your IGP on the secondary customer
router with a high metric.
This will make sure that your IGP sends all traffic using the primary link.
Once the link fails your IGP will make sure all traffic is sent down the
backup link. Let me ask you something to think about…can we do any
load balancing across those two links? It’ll be difficult right?
Your IGP will send all traffic down the primary link and nothing down
the backup link unless there is a failure. You could advertise a default
route with the same metric but you’d still have something like a 50/50%
load share. What if I wanted to send 80% of the outgoing traffic on the
primary link and 20% down the backup link? That’s not going to happen
here but with BGP it’s possible.
Lessons
This scenario is a bit more interesting. Instead of being connected to a
single ISP we now have two different ISPs. For redundancy reasons it’s
important to have two different ISPs, in case one fails you will always
have a backup ISP to use. What about our Customer network? We still
have two servers that need to be reachable from the Internet.
In my previous examples we got public IP addresses from our ISP. Now
I’m connected to two different ISPs so what public IP addresses should I
use? From ISP1 or ISP2? If we use public IP addresses from ISP1 (or
ISP2) then these servers will be unreachable once the ISP has
connectivity issues.
Instead of using public IP addresses from the ISP we will get our own
public IP [Link] IP address space is maintained by IANA
(Internet Assigned Numbers Authority – [Link] ). IANA is
assigning IP address space to a number of large Regional Internet
Registries like RIPE or ARIN. Each of these assign IP address space to
ISPs or large organizations.
Lessons
When we receive our public IP address space then we will advertise this
to our ISPs. Advertising is done with a routing protocol and that will be
BGP.
If you are interested here’s an overview of the IPv4 space that has been
allocated by IANA:
IANA IPv4 address space
2. Autonomous Systems
Besides getting public IP address space we also have to think about an
AS (Autonomous System):
An AS is a collection of networks under a single administrative domain.
The Internet is nothing more but a bunch of autonomous systems that
are connected to each other. Within an autonomous system we use an
IGP like OSPF or EIGRP.
Lessons
For routing between the different autonomous systems we use an EGP
(external gateway protocol). The only EGP we use nowadays is BGP.
How do we get an autonomous system number? Just like public IP
address space you’ll need to register one.
Autonomous system numbers are 16-bit which means we have 65535
numbers to choose from. Just like private and public IP addresses, we
have a range of public and private AS numbers.
Range 1 – 64511 are globally unique AS numbers and range 64512 –
65535 are private autonomous system numbers.
If you are interested, see if you can find the AS number of your ISP:
UltraTools AS Information Lookup
BGP has two flavors:
External BGP: used between autonomous systems
Internal BGP: used within the autonomous system.
External BGP is to exchange routing information between the different
autonomous systems. In this lesson I explain why we need internal
BGP. I would recommend to read it after finishing this lesson and
learning about external BGP first.
3. BGP Advertisements
You now have an idea of why we require BGP and what autonomous
systems are. The Internet is a big place, as I am writing this there are
more than 500.000 prefixes in a complete Internet routing table. If you
are curious, you can find the size of the Internet routing table here:
CIDR Report
On the internet there are a number of looking glass servers. These are
routers that have public view access and you can use them to look at
the Internet routing table. If you want to see what it looks like check
Lessons
out:
Looking glass servers
Scroll down all the way to “Category 2 – IPv4 and IPv6 BGP Route
Servers by region (TELNET access)”. You can telnet to these devices and
use show ip route and show ip bgp to check the BGP or routing table.
When we run BGP, does this mean we have to learn more than 500.000
prefixes? It depends…let’s look at some examples:
Above in our picture our customer network has an autonomous system
number (AS 1) and some IP address space ([Link] /8), let’s pretend
that these are public IP addresses. We are connected to two different
ISPs and you can see their AS number (AS2 and AS3) and IP address
space ([Link]/8 and [Link]/8). We can reach the rest of the internet
through both ISPs.
We can use BGP to advertise our address space to the ISPs but what
are the ISPS going to advertise to our customer through BGP? There
are a number of options:
They advertise only a default route.
They advertise a default route and a partial routing table.
They advertise the full Internet routing table.
Lessons
Let’s walk through these three options!
3.1. Default Route
Receiving a default route requires the fewest resources on your
routers since you only have a single entry to reach any external
network. The customer router will advertise its [Link] /8 network to
both ISPs which will advertise it to any other AS they are connected to
and we will use a default route to reach anything on the Internet. The
downside of this configuration is that our customer network doesn’t
know what is behind ISP1 and ISP2. We have connectivity because of
the default routes but this can lead to sub-optimal routing. If we only
have the default routes then we will send all traffic to one of the ISPs.
Here’s what could happen if you only use default routes:
Lessons
Our customer network only received a default route from both ISPs
and we have chosen to use the default route of ISP1 to send all our
outgoing traffic to. This means that whenever we send traffic meant for
[Link] /8 (ISP2) it’s going to be sent to ISP1 and then to ISP2. It’s not a
problem but it’s not optimal.
3.2. Partial Routing Updates
Lessons
We can also receive a partial routing table plus a default route. This
partial update might include all the IP address space that the ISPs have
assigned to their customers.
Just like in real life…the more you know the better off you are (unless
you believe ignorance is bliss). In the world of routing having more
routing information means you can make better routing decisions.
We’ll have less sub-optimal routing problems than when we only have
the default route.
3.3. Full Internet Routing Table
The last option that we have is that we receive the full Internet routing
table from both ISPs. This requires more resources but we’ll be able to
make the best routing decisions.
4. Path Vector
Lessons
BGP is called a path vector routing protocol. What does this mean?
Take a look at this image:
We have 4 autonomous systems and we are running BGP to exchange
routing information. In AS 1 we have network [Link] /24 and this is
advertised to AS 2, AS 3 and AS 4.
If we would look at the BGP table of the router in AS4 then we will see
network [Link] /24 but it also stores the path we have to get through
in order to get there. It will store the prefix but also the paths it has to
cross in order to get to [Link] /24. Here’s an example of a real BGP
router:
[Link]>show ip bgp
BGP table version is 128380331, local router ID is
Lessons
[Link]
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
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf
Weight Path
* [Link]/24 [Link]
0 7473 15169 i
The output above is from one of the BGP looking glass servers.
By using the show ip bgp command I can look at the BGP table and we
see this router knows about network [Link] /24. The next-hop IP
address is [Link]. At the end of the line you see path with the
numbers 7473 15169. These are the autonomous systems we have to
get through in order to get to this network.
5. BGP Route Selection
What all IGPs have in common is that all of them want to find the
shortest path to the destination. BGP works differently, since
autonomous systems belong to different ISPs or organizations we want
to be able to selectively influence our routing. Take a look at this
example:
Lessons
BGP allows us to use routing policies at the autonomous system level.
In the picture above I have 9 autonomous systems and in AS 9 we have
network [Link] /24. If we look at AS 1 then we have a lot of
different paths we can take to reach network [Link] /24 in AS 9.
Does this mean the network administrator at AS 1 can choose the path
we are going to use? Not really because of the following reasons:
You can choose the exit path…AS1 can send traffic to AS 2 or AS4
but you don’t make routing decisions for other autonomous
systems.
Each autonomous system will only advertise the best path to
your autonomous system. AS 1 will only learn about the best
Lessons
path from AS 2 and AS 4 unless their best path fails…only then
you will learn about the second best path.
BGP uses a set of BGP attributes to select a path, as explained in the
BGP attributes and best path selection lesson.
6. Conclusion
Hopefully this lesson has been helpful to understand the basics of BGP
and why we use it. In other lessons we will take a closer look at the
configuration of external and internal BGP and also how the BGP path
selection works.
If you have any questions, feel free to leave a comment!
Next Lesson
Single/Dual (multi) homed
connections
»
Forum Replies
r.grant3779
Hi Rene,
In this statement here - “What if I wanted to send 80% of the outgoing traffic
on the primary link and 20% down the backup link? That’s not going to
happen here but with BGP it’s possible.”
How would you configure an 80/20 split for example using BGP (or any ratio…
just as an example)?
Cheers
Rob
Lessons
ReneMolenaar
Hi Rob,
Good question, there’s not a really short answer to it With routing
protocols like RIP, OSPF or EIGRP we use default routes for outbound traffic
so we really don’t know anything about the destination. When we use BGP,
it’s possible that we learn about all possible destinations (entire Internet
routing table) or a partial routing table.
BGP uses a lot of different attributes (weight, local preference, metric, etc)
that we can use to decide which path we use for certain destinations. You can
use these for traffic engineering to send an X amount of traffi
... Continue reading in our forum
r.grant3779
Thanks Rene, appreciate the replies as always.
Cheers
Rob
nickster36
Great explanation!
kulwantgolan
My company have two ISP connections but we only use 1 for all our traffic
and the other was is for backup situation. We were planning to buy a netgear
router
([Link]
features). There are two WAN port and it has load sharing capability. Are you
saying that in the configuration we will not be able to set 80% to ISP 1 and
20% to ISP2 and it will be 50/50 distribution only? and if we do want to send
80% trafic through 1 ISP and 20% through another we don’t have an other
Lessons
option but to buy beefy routers
... Continue reading in our forum
82 more replies! Ask a question or join the discussion by visiting
our Community Forum
Disclaimer Privacy Policy Support About
© 2013 - 2024 [Link] 4645
Lessons