-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 1
Introduction to BGP
ISP/IXP WorkshopsISP/IXP Workshops
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 2
Border Gateway Protocol
A Routing Protocol used to exchange routinginformation between different networks
Exterior gateway protocol
Described in RFC4271RFC4276 gives an implementation report on BGPRFC4277 describes operational experiences using BGP
The Autonomous System is BGP’s fundamentaloperating unit
It is used to uniquely identify networks with a common routingpolicy
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 3
BGP
Path Vector Protocol
Incremental Updates
Many options for policy enforcement
Classless Inter Domain Routing (CIDR)
Widely used for Internet backbone
Autonomous systems
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 4
Path Vector Protocol
BGP is classified as a path vector routing protocol (seeRFC 1322)
A path vector protocol defines a route as a pairing between adestination 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 PathAS Path
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 5
Path Vector Protocol
AS6461
AS7018
AS6337AS11268
AS500
AS600
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 6
Definitions
Transit – carrying traffic across a network, usually for afee
Peering – exchanging routing information and traffic
Default – where to send traffic when there is no explicitmatch in the routing table
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 7
Default Free Zone
The default free zone is made upof Internet routers which have
explicit routing informationabout the rest of the Internet,
and therefore do not need to usea default route.
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 8
provider A
provider C
provider B
Backbone Provider D
IXP-West
IXP-East
Peering and Transit example
A and B can peer, but need transitarrangements with D to get packetsto/from C
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 9
AS 100
Autonomous System (AS)
Collection of networks with same routing policy Single routing protocol Usually under single ownership, trust and administrative
control Identified by a unique number
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 10
Autonomous System Number (ASN)
Two ranges0-65535 (original 16-bit range)65536-4294967295 (32-bit range - RFC4893)
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-4294967295 (public Internet)
32-bit range representation specified in RFC5396Defines “asplain” (traditional format) as standard notation
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 11
Autonomous System Number (ASN)
ASNs are distributed by the Regional InternetRegistries
They are also available from upstream ISPs who are membersof one of the RIRs
Current 16-bit ASN allocations up to 56319 have beenmade to the RIRs
Around 34000 are visible on the Internet
The RIRs also have received 1024 32-bit ASNs eachOut of 570 allocations, around 100 are visible on the Internet
See www.iana.org/assignments/as-numbers
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 12
Configuring BGP in IOS
This command enables BGP in IOS:router bgp 100
For ASNs > 65535, the AS number can be entered ineither plain notation, or in dot notation:
router bgp 131076
orrouter bgp 2.4
IOS will display ASNs in plain notation by defaultDot notation is optional:router bgp 2.4
bgp asnotation dot
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 13
AS 100 AS 101
AS 102
EE
BB DD
AA CC
Peering
BGP Basics
Runs over TCP – port 179
Path vector protocol
Incremental updates
“Internal” & “External” BGP
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 14
AS 100 AS 101
AS 102
DMZNetwork
AA
BB
CC
DD
EE
Shared network between ASes
Demarcation Zone (DMZ)
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 15
BGP General Operation
Learns multiple paths via internal and external BGPspeakers
Picks the best path and installs in the forwarding table
Best path is sent to external BGP neighbours
Policies are applied by influencing the best pathselection
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 16
Constructing the Forwarding Table
BGP “in” processreceives path information from peersresults of BGP path selection placed in the BGP table“best path” flagged
BGP “out” processannounces “best path” information to peers
Best paths installed in forwarding table if:prefix and prefix length are uniquelowest “protocol distance”
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 17
Constructing the Forwarding Table
BGP inprocess
BGPtable
BGP outprocess
accepted
discarded
bgppeer
forwardingtable
in
out
best paths
everything
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 18
eBGP & iBGP
BGP used internally (iBGP) and externally (eBGP)
iBGP used to carrysome/all Internet prefixes across ISP backboneISP’s customer prefixes
eBGP used toexchange prefixes with other ASesimplement routing policy
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 19
BGP/IGP model used in ISP networks
Model representation
IGP
iBGP
IGP
iBGP
IGP
iBGP
IGP
iBGP
eBGP eBGP eBGP
AS1 AS2 AS3 AS4
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 20
AS 100 AS 101CC
AA
BB
External BGP Peering (eBGP)
Between BGP speakers in different AS
Should be directly connected
Never run an IGP between eBGP peers
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 21
Configuring External BGP
Router A in AS100
interface ethernet 5/0 ip address 102.102.10.2 255.255.255.240!router bgp 100 network 100.100.8.0 mask 255.255.252.0 neighbor 102.102.10.1 remote-as 101 neighbor 102.102.10.1 prefix-list RouterC in neighbor 102.102.10.1 prefix-list RouterC out!
ip address onethernet interface
ip address of Router Cethernet interface
Local ASN
Remote ASN
Inbound andoutbound filters
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 22
Configuring External BGP
Router C in AS101
interface ethernet 1/0/0 ip address 102.102.10.1 255.255.255.240!router bgp 101 network 100.100.8.0 mask 255.255.252.0 neighbor 102.102.10.2 remote-as 100 neighbor 102.102.10.2 prefix-list RouterA in neighbor 102.102.10.2 prefix-list RouterA out!
ip address onethernet interface
ip address of Router Aethernet interface
Local ASN
Remote ASN
Inbound andoutbound filters
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 23
Internal BGP (iBGP)
BGP peer within the same AS
Not required to be directly connectedIGP takes care of inter-BGP speaker connectivity
iBGP speakers must be fully meshed:They originate connected networksThey pass on prefixes learned from outside the ASNThey do not pass on prefixes learned from other iBGPspeakers
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 24
AS 100
AA
DD
CC
BB
Internal BGP Peering (iBGP)
Topology independent
Each iBGP speaker must peer with every other iBGPspeaker in the AS
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 25
Peering to Loopback Interfaces
Peer with loop-back interfaceLoop-back interface does not go down – ever!
Do not want iBGP session to depend on state of a single interfaceor the physical topology
AS 100
AA
BB
CC
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 26
Configuring Internal BGP
Router A in AS100
interface loopback 0 ip address 105.3.7.1 255.255.255.255
!router bgp 100
network 100.100.1.0 neighbor 105.3.7.2 remote-as 100 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 onloopback interface
ip address of Router Bloopback interface
Local ASN
Local ASN
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 27
Configuring Internal BGP
Router B in AS100
interface loopback 0 ip address 105.3.7.2 255.255.255.255
!router bgp 100
network 100.100.1.0 neighbor 105.3.7.1 remote-as 100 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 onloopback interface
ip address of Router Aloopback interface
Local ASN
Local ASN
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 28
Inserting prefixes into BGP
Two ways to insert prefixes into BGPredistribute static
network command
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 29
Inserting prefixes into BGP –redistribute static
Configuration Example:router bgp 100
redistribute static
ip route 102.10.32.0 255.255.254.0 serial0
Static route must exist before redistribute command willwork
Forces origin to be “incomplete”
Care required!
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 30
Inserting prefixes into BGP –redistribute static
Care required with redistribute!redistribute means everything inthe will be transferred into the current routingprotocolWill not scale if uncontrolledBest avoided if at all possibleredistribute normally used with “route-maps” and undertight administrative control
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 31
Inserting prefixes into BGP –network command
Configuration Examplerouter bgp 100
network 102.10.32.0 mask 255.255.254.0
ip route 102.10.32.0 255.255.254.0 serial0
A matching route must exist in the routing table beforethe network is announced
Forces origin to be “IGP”
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 32
Configuring Aggregation
Three ways to configure route aggregationredistribute static
aggregate-address
network command
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 33
Configuring Aggregation
Configuration Example:router bgp 100
redistribute static
ip route 102.10.0.0 255.255.0.0 null0 250
static route to “null0” is called a pull up routepackets only sent here if there is no more specific match in therouting tabledistance of 250 ensures this is last resort staticcare required – see previously!
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 34
Configuring Aggregation –Network Command
Configuration Examplerouter bgp 100
network 102.10.0.0 mask 255.255.0.0
ip route 102.10.0.0 255.255.0.0 null0 250
A matching route must exist in the routing table beforethe network is announced
Easiest and best way of generating an aggregate
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 35
Configuring Aggregation –aggregate-address command
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]
Requires more specific prefix in BGP table beforeaggregate is announced
summary-only keywordOptional keyword which ensures that only the summary isannounced if a more specific prefix exists in the routing table
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 36
Historical Defaults – AutoSummarisation
Disable historical default 1 Applies to Cisco IOS prior to 12.3
Automatically summarises subprefixes to the classfulnetwork when redistributing to BGP from anotherrouting protocol
Example:61.10.8.0/22 → 61.0.0.0/8
Must be turned off for any Internet connected site usingBGP
router bgp 100
no auto-summary
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 37
Historical Defaults – Synchronisation
Disable historical default 2 In Cisco IOS prior to 12.3, BGP does not advertise a
route before all routers in the AS have learned it via anIGP
Disable synchronisation if:AS doesn’t pass traffic from one AS to another, orAll transit routers in AS run BGP, oriBGP is used across backbone
router bgp 100
no synchronization
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 38
SummaryBGP 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 sentand received
Updates waiting
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 39
SummaryBGP Table
Router6>sh ip bgp
BGP table version is 30, 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
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i10.0.0.0/26 10.0.15.241 0 100 0 i
*>i10.0.0.64/26 10.0.15.242 0 100 0 i
*>i10.0.0.128/26 10.0.15.243 0 100 0 i
*>i10.0.0.192/26 10.0.15.244 0 100 0 i
*>i10.0.1.0/26 10.0.15.245 0 100 0 i
*> 10.0.1.64/26 0.0.0.0 0 32768 i
*>i10.0.1.128/26 10.0.15.247 0 100 0 i
*>i10.0.1.192/26 10.0.15.248 0 100 0 i
...
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 40
Summary
BGP4 – path vector protocol
iBGP versus eBGP
stable iBGP – peer with loopbacks
announcing prefixes & aggregates
no synchronization & no auto-summary
-
© 2010 Cisco Systems, Inc. All rights reserved.ISP Workshops 41
Introduction to BGP
ISP/IXP WorkshopsISP/IXP Workshops