introduction to bgp theoryspeaker): bgp is a simple protocol!!! • uses tcp port 179 for reliable...
TRANSCRIPT
![Page 1: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/1.jpg)
Introduction to BGP Theory Cisco Hands-On Training Podcast
Darrell RootMarch 14, 2008 (minor edit 2019)
[email protected]://networkmom.net/
![Page 2: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/2.jpg)
Book recommendation and attribution
![Page 3: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/3.jpg)
Interior gateway protocols (IGP’s) we’ve studied:
• RIP: Hopcount based• IGRP: Improved metric, but Cisco
proprietary• OSPF: Link-state, fast convergence, requires
specific topology, hard to filter
• They all assume you trust the other router
![Page 4: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/4.jpg)
Routing on the Internet has different requirements
• Scalability (Internet route table now 250,000 routes)
• Advanced filtering between different organizations that don’t trust each other
![Page 5: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/5.jpg)
Autonomous system
• A network (group of routers) run by one organization.
• Examples: ATT, Carnegie-Mellon University, Intel
• Each AS might include thousands of routers
• Each AS could use a different IGP routing protocol with a different metric
ATTAS7018
Level3AS3356
CMUAS10
IntelAS99
![Page 6: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/6.jpg)
Problem: different AS’s need to exchange routing information despite:
• Different routing protocols in each AS• Different metrics in each AS• The AS’s don’t trust each other• No enforced hierarchy in AS-AS
connections (many loops).• 250,000 routes and growing
![Page 7: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/7.jpg)
Solution: a new Exterior Gateway protocol (EGP) called Border Gateway Protocol (BGP)
• Optimized for scalability (# of routes) instead of convergence time
• Advanced filtering• Uses AS-path list to avoid loops• Uses number of AS-hops as “universal metric”
• Remember: the goal of any routing protocol is for routers to exchange routing information
![Page 8: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/8.jpg)
Claim (from Cisco Networkers conference speaker): BGP is a simple protocol!!!
• Uses TCP port 179 for reliable router-router communication
• Only 4 message types: open, keepalive, update, notification
• Only 6 “protocol states”• Many filtering/prioritization options, but
each one is technically simple
![Page 9: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/9.jpg)
BGP uses TCP port 179 for router-to-router communication
• Services provided by TCP:– Retransmissions of lost data– No duplication of data– Checksumming (accurate transmission)
• Note: a TCP socket is always from one router to a second router. No broadcasts or multicasts.
![Page 10: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/10.jpg)
BGP message type 1: open
• Used to initiate a BGP session between two routers• Includes:
– BGP version– Sender AS number– Hold time (Cisco default 180 seconds)– BGP identifier (highest loopback IP address)– Optional parameters
• Want to reject a BGP open? Just send a notification message!
![Page 11: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/11.jpg)
BGP message type 2: keepalive
• Yup, I’m still alive. Let’s keep this BGP session open.
• Send one-third the “hold time”. Cisco default every 60 seconds.
![Page 12: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/12.jpg)
BGP message type 3: update
• Network Layer Reachability Information (NLRI). That’s just a complicated way of saying:– IP prefix and length (example: 10.130.3.0/24)
• Path attributes (information about each route)• Withdrawn routes (example: 172.16.5.128/25 is no
longer reachable via this path)
![Page 13: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/13.jpg)
BGP message type 4: notification
• Terminates or rejects a BGP connection• Can include error message (“BGP version
not supported”)
![Page 14: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/14.jpg)
BGP neighbor states
• Idle: BGP process just started up or BGP error just occurred
• Connect: Initiated TCP socket to neighbor• Active: Repeatedly attempting to connect to neighbor• Open sent: TCP socket established, sent open
message• Open confirm: Received reply open back• Established: We have received a keepalive or update
and are exchanging data
![Page 15: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/15.jpg)
eBGP and iBGP sessions
AS 65003 Enterprise
AS65001ISP1
AS65002ISP2
eBGP eBGPiBGP
iBGP iBGP
![Page 16: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/16.jpg)
BGP attribute types
• Attributes are included in BGP updates• Each NLRI (advertised route) has attributes• Well-known attributes are understood by all BGP-
speaking routers• Two types of well-known attributes: mandatory and
discretionary• Optional attributes may not be understood by all BGP-
speaking routers• Two types of optional attributes: transitive and
nontransitive
![Page 17: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/17.jpg)
Well-known mandatory attributes
• Origin:– IGP: Route originally learned from an IGP– EGP: Route originally learned from Exterior Gateway
Protocol (EGP, precursor to BGP)– Incomplete: Route redistributed from another protocol.
Real origin not known.• AS-PATH: List of AS’s that the route has passed
through. Example: (7018 3356 10)• Next-hop: IP address to forward packets to
![Page 18: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/18.jpg)
Well-known discretionary attributes
• Local preference: A number used for route prioritization. Higher is better. Default 100.
• Atomic Aggregate: The route was summarized
![Page 19: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/19.jpg)
Optional transitive attributes
• Optional means not every router understands these
• Transitive means: if you don’t understand the attribute, you pass it on in updates to other routers.
• Aggregator: Identifies the router/AS that summarized the route
• Community: A message in the update
![Page 20: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/20.jpg)
Optional non-transitive attributes
• Optional: not every router understands• Non-transitive: if router doesn’t understand,
don’t pass it on• Multi-Exit-Descriminator (MED): Supplies
a metric that allows comparison between multiple paths between the same two AS’s
• Originator_ID: Used by route-reflectors• Cluster_list: Used by route-reflectors
![Page 21: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/21.jpg)
BGP route decision makingReminder: more specific always wins!• Weight (higher is better) (Cisco-specific)• Local pref (higher is better, 100 default)• Prefer routes originated from IGP in local AS• Prefer shortest AS_PATH attribute• Prefer better origin (IGP > EGP > incompl)• Prefer lowest MED (only between same AS)• EGBP > confed EBGP > IBGP• Prefer shortest path to eBGP next hop• Consider BGP multipath• Prefer lowest BGP router ID
![Page 22: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/22.jpg)
BGP route decisions example
• 10.33.12.0/24• Origin IGP• AS_PATH (65534
65212 65419)• Next hop 10.1.4.4
• 10.33.12.0/24• Origin IGP• AS_PATH (65412
65112)• Next hop 10.1.3.3
![Page 23: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/23.jpg)
BGP route decisions example 2
• 10.33.12.0/24• Origin IGP• AS_PATH (65534
65212)• Next hop 10.1.4.4
• 10.33.12.0/24• Origin IGP• AS_PATH (65412
65112)• Next hop 10.1.3.3
![Page 24: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/24.jpg)
BGP route decisions example 3
• 10.33.12.0/24• Origin IGP• AS_PATH (65534
65212)• Next hop 10.1.4.4• Local pref 110
• 10.33.12.0/24• Origin IGP• AS_PATH (65412
65112)• Next hop 10.1.3.3
![Page 25: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/25.jpg)
BGP route decisions example 4
• 10.33.12.0/24• Origin IGP• AS_PATH (65534
65212)• Next hop 10.1.4.4• Local pref 90
• 10.33.12.0/24• Origin IGP• AS_PATH (65412
65112)• Next hop 10.1.3.3
![Page 26: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/26.jpg)
BGP route advertisement rules
• Only advertise the BGP route that you prefer• If you learned the route from eBGP,
advertise to all peers (eBGP and iBGP)• If you learned the route from iBGP, advertise
to eBGP peers only
![Page 27: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/27.jpg)
Route advertisement rules explained
AS 65003 Enterprise
AS65001ISP1
10.35.3.0/24
10.35.3.0/24
10.35.3.0/2410.35.3.0/24
![Page 28: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/28.jpg)
Route advertisement rules broken
AS 65003 Enterprise
AS65001ISP1
10.35.3.0/2410.35.3.0/24
10.35.3.0/24
![Page 29: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/29.jpg)
What BGP neighbor relationships are needed
• eBGP: configure a neighbor on each physical link between the two AS’s
• iBGP: All BGP routers within an autonomous system have to peer with every other in a full mesh
![Page 30: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/30.jpg)
BGP relationships needed example
AS 65003 Enterprise
AS65001ISP1
AS65002ISP2
eBGP eBGPiBGP
iBGP iBGP
![Page 31: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/31.jpg)
Add to AS_PATH when the route leaves your AS
AS 65003 Enterprise
AS65001ISP1
10.35.3.0/24(65002)
10.35.3.0/24(65002)
10.35.3.0/24(65002)
10.35.3.0/24(65003 65002)
AS65002ISP2
![Page 32: Introduction to BGP Theoryspeaker): BGP is a simple protocol!!! • Uses TCP port 179 for reliable router-router communication • Only 4 message types: open, keepalive, update, notification](https://reader034.vdocuments.site/reader034/viewer/2022051606/602041c83f4c62773611c2de/html5/thumbnails/32.jpg)
Why is BGP expertise rare?
• Even large enterprises make BGP changes rarely• Errors configuring BGP can have global
consequences– Example: Pakistan ISP error takes down YouTube
globally
• BGP works vastly differently from IGP’s (even the “network” statement means something completely different)