Introduction to BGP
ISP Workshops
Last updated 4th September 2016 1
Border Gateway Protocol
p A Routing Protocol used to exchange routing
information between different networks
n Exterior gateway protocol
p Described in RFC4271
n RFC4276 gives an implementation report on BGP
n RFC4277 describes operational experiences using BGP
p The Autonomous System is the cornerstone of
BGP
n It is used to uniquely identify networks with a common
routing policy
2
BGP
p Path Vector Protocol
p Incremental Updates
p Many options for policy enforcement
p Classless Inter Domain Routing (CIDR)
p Widely used for Internet backbone
p Autonomous systems
3
Path Vector Protocol
p BGP is classified as a path vector routing
protocol (see RFC 1322)
n A path vector protocol defines a route as a
pairing between a destination and the
attributes of the path to that destination.
12.6.126.0/24 207.126.96.43 1021 0 6461 7018 6337 11268 i
AS Path
4
Path Vector Protocol
AS11268
AS6337
AS7018
AS500
AS6461
AS600
5
Definitions
p Transit – carrying traffic across a network
n (Commercially: for a fee)
p Peering– exchanging routing information
and traffic
n (Commercially: between similar sized
networks, and for no fee)
p Default– where to send traffic when there
is no explicit match in the routing table
6
Default Free Zone
The default free zone is made
up of Internet routers which
have routing information about
the whole Internet, and
therefore do not need to use a
default route
NB: is not related to where an
ISP is in the hierarchy
7
Peering and Transit example
transit
provider A Backbone provider E
Provider C
peering IXP-West peering peering IXP-East
Backbone
provider B Provider D
provider F
transit
A and B peer for free, but need
transit arrangements with C and D
to get packets to/from E and F 8
Autonomous System (AS)
AS 100
p Collection of networks with same routing policy
p Single routing protocol
p Usually under single ownership, trust and
administrative control
p Identified by a unique 32-bit integer (ASN)
9
Autonomous System Number
(ASN)
p Two ranges
0-65535 (original 16-bit range)
65536-4294967295 (32-bit range – RFC6793)
p Usage:
0 and 65535 (reserved)
1-64495 (public Internet)
64496-64511 (documentation – RFC5398)
64512-65534 (private use only)
23456 (represent 32-bit range in 16-bit world)
65536-65551 (documentation – RFC5398)
65552-4199999999 (public Internet)
4200000000-4294967295 (private use only – RFC6996)
p 32-bit range representation specified in RFC5396
n Defines “asplain” (traditional format) as standard notation
10
Autonomous System Number
(ASN)
p ASNs are distributed by the Regional Internet
Registries
n They are also available from upstream ISPs who are
members of one of the RIRs
p The entire 16-bit ASN pool has been assigned to
the RIRs
n Around 43000 16-bit ASNs are visible on the Internet
p Each RIR has also received a block of 32-bit ASNs
n Out of 15300 assignments, around 11800 are visible on
the Internet
p See www.iana.org/assignments/as-numbers
11
Configuring BGP in Cisco IOS
p This command enables BGP in Cisco IOS:
router bgp 100
p For ASNs > 65535, the AS number can be
entered in either plain or dot notation:
router bgp 131076
n Or
router bgp 2.4
p IOS will display ASNs in plain notation by default
n Dot notation is optional:
router bgp 2.4
bgp asnotation dot
12
BGP Basics
Peering
A C
AS 100 AS 101
B D
E
p Runs over TCP – port 179
p Path vector protocol AS 102
p Incremental updates
p “Internal” & “External” BGP
13
Demarcation Zone (DMZ)
A C
DMZ
AS 100 Network AS 101
B D
AS 102
p DMZ is the link or network shared between ASes
14
BGP General Operation
p Learns multiple paths via internal and
external BGP speakers
p Picks the best path and installs it in the
routing table (RIB)
p Best path is sent to external BGP
neighbours
p Policies are applied by influencing the best
path selection
15
Constructing the Forwarding Table
p BGP “in” process
n Receives path information from peers
n Results of BGP path selection placed in the BGP table
n “best path” flagged
p BGP “out” process
n Announces “best path” information to peers
p Best path stored in Routing Table (RIB) if:
n Prefix and prefix length are unique, and
n Lowest “protocol distance”
p Best paths in the RIB are installed in forwarding
table (FIB)
16
Constructing the Forwarding Table
discarded
BGP in
in
process accepted
everything
bgp BGP routing
peer table table
best paths
BGP out forwarding
out table
process
17
eBGP & iBGP
p BGP is used
n Internally (iBGP)
n Externally (eBGP)
p iBGP used to carry
n Some/all Internet prefixes across ISP
backbone
n ISP’s customer prefixes
p eBGP used to
n Exchange prefixes with other ASes
n Implement routing policy
18
BGP/IGP model used in ISP
networks
p Model representation
eBGP eBGP eBGP
iBGP iBGP iBGP iBGP
IGP IGP IGP IGP
AS1 AS2 AS3 AS4
19
External BGP Peering (eBGP)
AS 100 AS 101
C
p Between BGP speakers in different AS
p Should be directly connected
p Never run an IGP between eBGP peers
20
Configuring External BGP
p Router A in AS100 ip address on
ethernet interface
interface FastEthernet 5/0
ip address 102.102.10.2 255.255.255.240
!
router bgp 100 Local ASN
network 100.100.8.0 mask 255.255.252.0
neighbor 102.102.10.1 remote-as 101 Remote ASN
neighbor 102.102.10.1 prefix-list RouterC-in in
neighbor 102.102.10.1 prefix-list RouterC-out out
!
Inbound and
ip address of Router C outbound filters
21
ethernet interface
21
Configuring External BGP
p Router C in AS101 ip address on
ethernet interface
interface FastEthernet 1/1/0
ip address 102.102.10.1 255.255.255.240
!
router bgp 101 Local ASN
network 100.100.64.0 mask 255.255.248.0
neighbor 102.102.10.2 remote-as 100 Remote ASN
neighbor 102.102.10.2 prefix-list RouterA-in in
neighbor 102.102.10.2 prefix-list RouterA-out out
!
Inbound and
ip address of Router A outbound filters
22
ethernet interface
22
Internal BGP (iBGP)
p BGP peer within the same AS
p Not required to be directly connected
n IGP takes care of inter-BGP speaker
connectivity
p iBGP speakers must be fully meshed:
n They originate connected networks
n They pass on prefixes learned from outside the
ASN
n They do not pass on prefixes learned from
other iBGP speakers
23
Internal BGP Peering (iBGP)
AS 100
B
A
C
p Topology independent
p Each iBGP speaker must peer with every other
iBGP speaker in the AS 24
Peering between Loopback Interfaces
AS 100
C
A
p Peer with loop-back interface
n Loop-back interface does not go down – ever!
p Do not want iBGP session to depend on state of
a single interface or the physical topology 25
Configuring Internal BGP
p Router A in AS100 ip address on
loopback interface
interface loopback 0
ip address 105.3.7.1 255.255.255.255
!
router bgp 100 Local ASN
network 100.100.1.0
neighbor 105.3.7.2 remote-as 100 Local ASN
neighbor 105.3.7.2 update-source loopback0
neighbor 105.3.7.3 remote-as 100
neighbor 105.3.7.3 update-source loopback0
!
ip address of Router B
loopback interface
26
Configuring Internal BGP
p Router B in AS100 ip address on
loopback interface
interface loopback 0
ip address 105.3.7.2 255.255.255.255
!
router bgp 100 Local ASN
network 100.100.1.0
neighbor 105.3.7.1 remote-as 100 Local ASN
neighbor 105.3.7.1 update-source loopback0
neighbor 105.3.7.3 remote-as 100
neighbor 105.3.7.3 update-source loopback0
!
ip address of Router A
loopback interface
27
Inserting prefixes into BGP
p Two ways to insert prefixes into BGP
n redistribute static
n network command
28
Inserting prefixes into BGP –
redistribute static
p Configuration Example:
router bgp 100
redistribute static
ip route 102.10.32.0 255.255.254.0 serial0
p Staticroute must exist before redistribute
command will work
p Forces origin to be “incomplete”
p Care required!
29
Inserting prefixes into BGP –
redistribute static
p Care required with redistribute!
n redistribute <routing-protocol> means
everything in the <routing-protocol> will be
transferred into the current routing protocol
n Will not scale if uncontrolled
n Best avoided if at all possible
n redistribute normally used with “route-maps”
and under tight administrative control
30
Inserting prefixes into BGP –
network command
p Configuration Example
router bgp 100
network 102.10.32.0 mask 255.255.254.0
ip route 102.10.32.0 255.255.254.0 serial0
p A matching route must exist in the routing
table before the network is announced
p Forces origin to be “IGP”
31
Configuring Aggregation
p Three ways to configure route aggregation
n redistribute static
n aggregate-address
n network command
32
Configuring Aggregation –
Redistributing Static
p Configuration Example:
router bgp 100
redistribute static
ip route 102.10.0.0 255.255.0.0 null0
p Static route to “null0” is called a pull up
route
n Packets only sent here if there is no more
specific match in the routing table
n Care required – see previously!
33
Configuring Aggregation –
Network Command
p Configuration Example
router bgp 100
network 102.10.0.0 mask 255.255.0.0
ip route 102.10.0.0 255.255.0.0 null0
p A matching route must exist in the routing
table before the network is announced
p Easiest and best way of generating an
aggregate
34
Configuring Aggregation –
aggregate-address command
p Configuration Example:
router bgp 100
network 102.10.32.0 mask 255.255.252.0
aggregate-address 102.10.0.0 255.255.0.0 [summary-only]
!
ip route 102.10.32.0 255.255.252.0 null 0
p Requires more specific prefix in BGP table
before aggregate is announced
p summary-only keyword
n Optional keyword which ensures that only the
summary is announced (the more specific
routes are suppressed)
Summary
BGP neighbour status
Router6>sh ip bgp sum
BGP router identifier 10.0.15.246, local AS number 10
BGP table version is 16, main routing table version 16
7 network entries using 819 bytes of memory
14 path entries using 728 bytes of memory
2/1 BGP path/bestpath attribute entries using 248 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1795 total bytes of memory
BGP activity 7/0 prefixes, 14/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.0.15.241 4 10 9 8 16 0 0 00:04:47 2
10.0.15.242 4 10 6 5 16 0 0 00:01:43 2
10.0.15.243 4 10 9 8 16 0 0 00:04:49 2
...
BGP Version Updates sent Updates waiting 36
and received
Summary
BGP Table
Router6>sh ip bgp
BGP table version is 16, local router ID is 10.0.15.246
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*>i 10.0.0.0/26 10.0.15.241 0 100 0 i
*>i 10.0.0.64/26 10.0.15.242 0 100 0 i
*>i 10.0.0.128/26 10.0.15.243 0 100 0 i
*>i 10.0.0.192/26 10.0.15.244 0 100 0 i
*>i 10.0.1.0/26 10.0.15.245 0 100 0 i
*> 10.0.1.64/26 0.0.0.0 0 32768 i
*>i 10.0.1.128/26 10.0.15.247 0 100 0 i
*>i 10.0.1.192/26 10.0.15.248 0 100 0 i
*>i 10.0.2.0/26 10.0.15.249 0 100 0 i
*>i 10.0.2.64/26 10.0.15.250 0 100 0 i
... 37
Summary
p BGP4 – path vector protocol
p iBGP versus eBGP
p Stable iBGP – peer with loopbacks
p Announcing prefixes & aggregates
38
Introduction to BGP
ISP Workshops
39