The document provides an overview of the Border Gateway Protocol (BGP) including:
- BGP establishes neighbor relationships to exchange routing information between autonomous systems (ASes). It uses path attributes like AS_PATH to choose the best route and prevent routing loops.
- BGP classifies neighbors as internal (iBGP) or external (eBGP) depending on if they are in the same AS or different ASes. iBGP does not modify the AS_PATH while eBGP does.
- Techniques like route reflectors, confederations, and multiprotocol BGP are used to improve scalability within large ASes. Route filtering uses features like prefix-lists, route-maps and regular expressions to control route
2. BGP BASICS
Border Gateway Protocol (BGP) advertises, learns, and chooses
the best paths inside the global Internet.
When two ISPs connect, they typically use BGP to exchange
routing information.
BGP need to advertise IPv4 prefixes, just like IGPs.
BGP needs to advertise some information so that routers can
choose the best route.
BGP does establish a neighbor relationship before exchanging
topology information with a neighboring router.
4. ASN
The integer BGP ASN uniquely identifies one organization that
considers itself autonomous from other organizations.
Each company whose Enterprise network connects to the
Internet can be considered to be an autonomous system and
can be assigned a ASN.
5. AS_SEQ PATH ATTRIBUTE
BGP uses BGP path attributes (PA) for several purposes.
PAs define information about a path, or route, through a network.
By default, if no BGP PAs have been set, BGP routers use the
AS_PATH for best route choosing.
Choose the best route for a prefix based on the shortest
AS_Path.
Prevent routing loops.
When a BGP router receives an update, and a route
advertisement lists an AS_Path with its own ASN, the router
ignores that route.
8. INTERNAL AND EXTERNAL BGP
BGP defines two classes of neighbors (peers): internal BGP
(iBGP) and external BGP (eBGP).
BGP neighbor is in the same ASN (iBGP) or a different ASN
(eBGP).
BGP router does not update the AS_Path PA to iBGP peer.
10. Comparison
If ASNs are duplicated, the BGP can actually prevent from
learning about a route.
11. ROUTING TOWARD INTERNET
Enterprises typically have two major classes of options for outbound
routing toward the Internet: default routing and BGP.
Full updates: The ISP sends you the entire BGP table.
Partial updates: The ISP sends you routes for prefixes that might be
better reached through that ISP, but not all routes, plus a default route
14. BGP NEIGHBOR RELATIONSHIPS
When IP redundancy exists between two eBGP peers, the eBGP neighbor
commands should use loopback IP addresses to take advantage of that
redundancy.
18. EBGP NEIGHBORSHIP REQUIREMENTS
• Reachability
• Neighbor ship with loopback
• Introduce Loopback from Source
• Next-hop-self
• ebgp-multihup
• Inject route to bgp
19. INJECTING ROUTES INTO BGP
BGP network command
Redistribution from an IGP
The BGP network command differs from the network
command used by IGPs.
For BGP : Look for a route in the router’s current routing
table that exactly matches the parameters of the network
command; if a route exists, put the equivalent prefix/length
into the local BGP table
20. Manual Summary
The AS_PATH PA consists of up to four different components, called segments ,
as follows:
21. Default Route
When you inject a default route into BGP using the network
command, a route to 0.0.0.0/0 must exist in the local routing
table, and the network 0.0.0.0 command is required.
Injecting a default route into BGP by using the neighbor
neighbor-id default-originate [ route-map route-map-name ] BGP
subcommand does not add a default route to the local BGP
table; instead, it causes the advertisement of a default to the
specified neighbor.
22. BGP SYNCHRONIZATION
The routing black hole occurs because R8 does not have a route to either of the
prefixes advertised by BGP.
23. BGP SYNCHRONIZATION
The original solution to this problem involves the use of BGP
synchronization, along with redistributing BGP routes into the
IGP. However, two later solutions provide better options
today:into the IGP.
However, two later solutions provide better options:
BGP route reflectors
BGP confederations
24. CONFEDERATIONS
Just as the AS_SEQ and AS_SET components help prevent
loops between autonomous systems, AS_CONFED_SEQ and
AS_CONFED_SET help prevent loops within confederation
autonomous systems.
27. ROUTE REFLECTORS
With multiple clusters, at least one RR from a cluster
must be peered with at least one RR in each of the
other clusters.
Typically, all RRs are peered directly, creating a full
mesh of RR iBGP peers among RRs.
31. MULTIPROTOCOL BGP
We are required to run Multiprotocol BGP (MP-BGP) only within the service
provider cloud.
Each MP-BGP session is an internal BGP session.
MP-iBGPis required within the MPLS/VPN
architecture because the BGP update needs to carry more information than just an
IPv4 address.
The ability to exchange addresses other than standard IPv4 addresses was
introduced into BGP.
34. ROUTE FILTERING
1- Like as before:
Select traffic with Prefix-List
Match with Route-map and policy
Apply on interface
1- FILTERING BGP UPDATES BYMATCHING THE AS_PATH PA:
Regex
ACL
Apply on interface by Filter-list
39. BGP PATH ATTRIBUTES
Each BGP PA can be described as either a
well-known or optional PA.
Well-known PAs are either one of the following:
Mandatory: The PA must be in every BGP Update.
AS_PATH PA
Discretionary: The PA is not required in every BGP Update.
ATOMIC_AGGREGATE PA
40. BGP classifies optionalPAs into two categories :
Transitive : The router should silently forward the PA to other routers
without needing to consider the meaning of the PA.
Nontransitive : The router should remove the PA so that it is not
propagated to any peers.
BGP PATH ATTRIBUTES
52. BGP COMMUNITIES
The BGP COMMUNITY PA provides a mechanism by which to group
routes so that routing policies can be applied to all the routes with the
same community.
By marking a set of routes with the same COMMUNITY string, routers
can look for the COMMUNITY string and then make policy decisions—
like setting some PA that impacts the BGP decision process or simply
filtering the routes.
Today’s internet is build around a point-to-point communication abstractions.
While this simple abstraction allows Internet to be highly scalable and
Efficient, it is not appropriate for application that requires other communication primitives such as multicast, anycast, mobility, and so on.
This is because there is a fundamental mismatch between point-to-point communication abstraction and these primitives.
In particulr, the point-to-point communication abstraction implicitly assumes that there is only one sender and on receivers an that they are placed at fixed and well-known locations. Multicast, anycast, and mobility violate at least one of these assumptions. With mobility end-hosts do not have fixed locations, with multicast there are more than one receiver and sender.
Finally, IL supports composable services, I.e., performing on the fly transformation such as transcoding on the data packets as they travel through the network.
To achieve this we replace the packet ID with a stack of Ids, where each identifier excepting the last one identifies a transformation to be aplied on packets.
The advantage of this solution versus previously proposed solutions is that you don’t need to find and configure the path,(you just insert the Ids in the proper order).
Load balancing and robustness are easy to achieve. Just have more servers implementing the same operations. If one fails, the other one will take transparently over.