You are on page 1of 111

Border Gateway Protocol (BGP4)

Border Gateway Protocol (BGP)

Routing/Forwarding basics
Building blocks
Exercises
BGP protocol basics
Exercises
BGP path attributes
Best path computation
Exercises

Border Gateway Protocol (BGP)...

Typical BGP topologies


Routing Policy
Exercises
Redundancy/Load sharing
Best current practices

Routing/Forwarding
Basics

IP route lookup:Longest match


routing
R3
Packet: Destination
IP address: 10.1.1.1

R1

R2
10/8 -> R3
10.1/16 -> R4
20/8 -> R5
30/8 -> R6
..

R2s IP routing table

All 10/8 except


10.1/16

R4
10.1/16

IP route lookup: Longest match


routing
R3
Packet: Destination
IP address: 10.1.1.1

R1

R4

R2
10/8 -> R3
10.1/16 -> R4
20/8 -> R5

All 10/8 except


10.1/16

10.1/16
10.1.1.1 & FF.0.0.0
is equal to
10.0.0.0 & FF.0.0.0

..
R2s IP routing table

Match!

IP route lookup: Longest match


routing
R3
Packet: Destination
IP address: 10.1.1.1

R1

R4

R2
10/8 -> R3
10.1/16 -> R4
20/8 -> R5

All 10/8 except


10.1/16

10.1/16
10.1.1.1 & FF.FF.0.0
is equal to
10.1.0.0 & FF.FF.0.0

..
R2s IP routing table

Match as well!

IP route lookup: Longest match


routing
R3
Packet: Destination
IP address: 10.1.1.1

R1

R4

R2
10/8 -> R3
10.1/16 -> R4
20/8 -> R5
..

All 10/8 except


10.1/16

10.1/16

10.1.1.1 & FF.0.0.0


is equal to
Does not match!
20.0.0.0 & FF.0.0.0

R2s IP routing table

IP route lookup: Longest match


routing
R3
Packet: Destination
IP address: 10.1.1.1

R1

R2

All 10/8 except


10.1/16

R4

10.1/16
10/8 -> R3
10.1/16 -> R4
20/8 -> R5
..
R2s IP routing table

Longest match, 16 bit netmask

IP route lookup: Longest match


routing

default is 0.0.0.0/0
can handle it using the normal longest
match algorithm
matches everything. Always the shortest
match.

Forwarding
Uses the routing table built by routing
protocols
Performs the lookup to find next-hop and
outgoing interface
Switches the packet with new encapsulation
as per the outgoing interface

Building Blocks

Autonomous System (AS)


Types of Routes
IGP/EGP
DMZ
Policy
Egress
Ingress

Autonomous System (AS)


AS 100

Collection of networks with same policy


Single routing protocol
Usually under single administrative control
IGP to provide internal connectivity

Autonomous System(AS)...
Identified by AS number
Public & Private AS numbers
Examples:
Service provider
Multi-homed customers
Anyone needing policy discrimination

Routing flow and packet flow


packet flow
egress

AS 1

accept
announce

announce

Routing flow

accept

AS2

ingress

packet
flow

For networks in AS1 and AS2 to communicate:


AS1 must announce routes to AS2
AS2 must accept routes from AS1
AS2 must announce routes to AS1
AS1 must accept routes from AS2

Egress Traffic
Packets exiting the network
Based on
Route availability (what others send you)
Route acceptance (what you accept from others)
Policy and tuning (what you do with routes from
others)
Peering and transit agreements

Ingress Traffic
Packets entering your network
Ingress traffic depends on:
What information you send and to who
Based on your addressing and ASes
Based on others policy (what they accept from
you and what they do with it)

Types of Routes
Static Routes
configured manually

Connected Routes
created automatically when an interface is up

Interior Routes
Routes within an AS

Exterior Routes
Routes exterior to AS

What Is an IGP?

Interior Gateway Protocol


Within an Autonomous System
Carries information about internal prefixes
ExamplesOSPF, ISIS, EIGRP

What Is an EGP?

Exterior Gateway Protocol


Used to convey routing information between
ASes
De-coupled from the IGP
Current EGP is BGP4

Why Do We Need an EGP?


Scaling to large network
Hierarchy
Limit scope of failure

Define administrative boundary


Policy
Control reachability to prefixes

Interior vs. Exterior


Routing Protocols
Interior
Automatic
discovery
Generally trust
your IGP routers
Routes go to all
IGP routers

Exterior
Specifically configured
peers

Connecting with outside


networks
Set administrative
boundaries

Hierarchy of Routing Protocols


Other ISPs
BGP4

BGP4 / OSPF
BGP4
Local NAP
FDDI

BGP4/Static
Customers

Demilitarized Zone (DMZ)


A

DMZ
Network

AS 100
B

AS 101
D

AS 102

Shared network between ASes

Addressing - ISP
Need to reserve address space for its
network.
Need to allocate address blocks to its
customers.
Need to take growth into consideration
Upstream link address is allocated by
upstream provider

BGP Basics

Terminology
Protocol Basics
Messages
General Operation
Peering relationships (EBGP/IBGP)
Originating routes

Terminology
Neighbor
Configured BGP peer

NLRI/Prefix
NLRI - network layer reachability information
Reachability information for a IP address &
mask

Router-ID
Highest IP address configured on the router

Route/Path
NLRI advertised by a neighbor

Protocol Basics
Peering
A

AS 100

AS 101
B

Routing protocol used


between ASes
if you arent connected
to multiple ASes, you
dont need BGP :)

Runs over TCP


Path vector protocol

AS 102

BGP Basics ...

Each AS originates a set of NLRI


NLRI is exchanged between BGP peers
Can have multiple paths for a given prefix
Picks the best path and installs in the IP
forwarding table
Policies applied (through attributes)
influences BGP path selection

BGP Peers
A

AS 101

AS 100

220.220.16.0/24

220.220.8.0/24

BGP speakers
are called peers
Peers in different ASs
are called External Peers

AS 102
220.220.32.0/24

eBGP TCP/IP
Peer Connection

Note: eBGP Peers normally should be directly connected.

BGP Peers
A

AS 101

AS 100

220.220.16.0/24

220.220.8.0/24

BGP speakers are


called peers
Peers in the same AS
are called Internal Peers
iBGP TCP/IP
Peer Connection

AS 102
220.220.32.0/24

Note: iBGP Peers dont have to be directly connected.

BGP Peers
A

AS 101

AS 100

220.220.16.0/24

220.220.8.0/24

BGP Peers exchange


Update messages
containing Network
Layer Reachability
Information (NLRI)
BGP Update
Messages

AS 102
220.220.32.0/24

Configuring BGP Peers


AS 100

AS 101

eBGP TCP Connection

222.222.10.0/30

.2

220.220.8.0/24

.1

.2

.1

.2

220.220.16.0/24

.1

interface Serial 0
ip address 222.222.10.2 255.255.255.252

interface Serial 0
ip address 222.222.10.1 255.255.255.252

router bgp 100


network 220.220.8.0 mask 255.255.255.0
neighbor 222.222.10.1 remote-as 101

router bgp 101


network 220.220.16.0 mask 255.255.255.0
neighbor 222.222.10.2 remote-as 100

BGP Peering sessions are established using the BGP


neighbor configuration command
External (eBGP) is configured when AS numbers are different

Configuring BGP Peers


AS 101

AS 100

iBGP TCP Connection


222.222.10.0/30

.2

220.220.8.0/24

.1

.2

.1

.2

220.220.16.0/24

.1

interface Serial 1
ip address 220.220.16.2 255.255.255.252

interface Serial 1
ip address 222.220.16.1 255.255.255.252

router bgp 101


network 220.220.16.0 mask 255.255.255.0
neighbor 220.220.16.1 remote-as 101

router bgp 101


network 220.220.16.0 mask 255.255.255.0
neighbor 220.220.16.2 remote-as 101

BGP Peering sessions are established using the BGP


neighbor configuration command
External (eBGP) is configured when AS numbers are different
Internal (iBGP) is configured when AS numbers are same

Configuring BGP Peers


AS 100
B

iBGP TCP/IP
Peer Connection

Each iBGP speaker must peer with every other


iBGP speaker in the AS

Configuring BGP Peers


215.10.7.1

AS 100

215.10.7.3

iBGP TCP/IP
Peer Connection

215.10.7.2

Loopback interface are normally used as


peer connection end-points

Configuring BGP Peers


215.10.7.1

AS 100

215.10.7.3

iBGP TCP/IP
interface
loopback 0
ip
address
215.10.7.1 255.255.255.255
Peer
Connection
router bgp 100
network 220.220.1.0
neighbor 215.10.7.2
neighbor 215.10.7.2
neighbor 215.10.7.3
neighbor 215.10.7.3

remote-as 100
update-source loopback0
remote-as 100
update-source loopback0

215.10.7.2

Configuring BGP Peers


215.10.7.1

AS 100

215.10.7.2

215.10.7.3

iBGP TCP/IP
Peer Connection

interface loopback 0
ip address 215.10.7.2 255.255.255.255

router bgp 100


network 220.220.5.0
neighbor 215.10.7.1
neighbor 215.10.7.1
neighbor 215.10.7.3
neighbor 215.10.7.3

remote-as 100
update-source loopback0
remote-as 100
update-source loopback0

Configuring BGP Peers


215.10.7.1

AS 100

215.10.7.3

iBGP TCP/IP
Peer Connection

interface loopback 0
ip address 215.10.7.3 255.255.255.255
router bgp 100
network 220.220.1.0
neighbor 215.10.7.1
neighbor 215.10.7.1
neighbor 215.10.7.2
neighbor 215.10.7.2

remote-as 100
update-source loopback0
remote-as 100
update-source loopback0

215.10.7.2

BGP Updates NLRI


Network Layer Reachability Information
Used to advertise feasible routes
Composed of:
Network Prefix
Mask Length

BGP Updates Attributes


Used to convey information associated with
NLRI

AS path
Next hop
Local preference
Multi-Exit Discriminator (MED)
Community
Origin
Aggregator

AS-Path Attribute
Sequence of ASes a route
has traversed
Loop detection
Apply policy
AS 300

AS 200

AS 100

170.10.0.0/16

180.10.0.0/16

Network
Path
180.10.0.0/16 300 200 100
170.10.0.0/16 300 200

AS 400
150.10.0.0/16

AS 500

Network
180.10.0.0/16
170.10.0.0/16
150.10.0.0/16

Path
300 200 100
300 200
300 400

Next Hop Attribute


AS 300

AS 200
150.10.0.0/16

140.10.0.0/16

192.10.1.0/30

.1

.2

D
E

B
.2

.1

AS 100
160.10.0.0/16

BGP Update
Messages

Network
Next-Hop
160.10.0.0/16 192.20.2.1

Path
100

Next hop to reach a network


Usually a local network is the next
hop in eBGP session

Next Hop Attribute


AS 300

AS 200
150.10.0.0/16

140.10.0.0/16

192.10.1.0/30

.1

.2

D
E

B
.2

.1

Network
Next-Hop
150.10.0.0/16 192.10.1.1
160.10.0.0/16 192.10.1.1

Path
200
200 100

Next hop to reach a network


Usually a local network is the next
hop in eBGP session

AS 100
160.10.0.0/16

BGP Update
Messages

Next Hop updated between


eBGP Peers

Next Hop Attribute


AS 300

AS 200
150.10.0.0/16

140.10.0.0/16

192.10.1.0/30

.1

.2

D
E

B
.2

.1

AS 100
160.10.0.0/16

BGP Update
Messages

Network
Next-Hop
150.10.0.0/16 192.10.1.1
160.10.0.0/16 192.10.1.1

Next hop not changed


between iBGP peers

Path
200
200 100

Next Hop Attribute (more)

IGP should carry route to next hops


Recursive route look-up
Unlinks BGP from actual physical topology
Allows IGP to make intelligent forwarding
decision

BGP Updates
Withdrawn Routes
Used to withdraw network reachability
Each Withdrawn Route is composed of:
Network Prefix
Mask Length

BGP Updates
Withdrawn Routes
AS 321

AS 123
.1

192.168.10.0/24

.2

BGP Update
Message

Withdraw Routes
192.192.25.0/24

Connectivity lost

Network
Next-Hop
Path
150.10.0.0/16
192.168.10.2 321 200
192.192.25.0/24 192.168.10.2 321

192.192.25.0/24

BGP Routing Information Base


BGP RIB
Network
*>i160.10.1.0/24
*>i160.10.3.0/24

Next-Hop
192.20.2.2
192.20.2.2

Path
i
i

router bgp 100


network 160.10.0.0 255.255.0.0
no auto-summary
D
D
D
R
S

10.1.2.0/24
160.10.1.0/24
160.10.3.0/24
153.22.0.0/16
192.1.1.0/24

Route Table

BGP network commands are normally


used to populate the BGP RIB with
routes from the Route Table

BGP Routing Information Base


BGP RIB
Network
*> 160.10.0.0/16
* i
s> 160.10.1.0/24
s> 160.10.3.0/24

Next-Hop
0.0.0.0
192.20.2.2
192.20.2.2
192.20.2.2

Path
i
i
i
i

router bgp 100


network 160.10.0.0 255.255.0.0
aggregate-address 160.10.0.0 255.255.0.0 summary-only
no auto-summary
D
D
D
R
S

10.1.2.0/24
160.10.1.0/24
160.10.3.0/24
153.22.0.0/16
192.1.1.0/24

Route Table

BGP aggregate-address commands


may be used to install summary routes
in the BGP RIB

BGP Routing Information Base


BGP RIB
Network
*> 160.10.0.0/16
* i
s> 160.10.1.0/24
s> 160.10.3.0/24
*> 192.1.1.0/24

Next-Hop
0.0.0.0
192.20.2.2
192.20.2.2
192.20.2.2
192.20.2.2

Path
i
i
i
i
?

router bgp 100


network 160.10.0.0 255.255.0.0
redistribute static route-map foo
no auto-summary
D
D
D
R
S

10.1.2.0/24
160.10.1.0/24
160.10.3.0/24
153.22.0.0/16
192.1.1.0/24

Route Table

access-list 1 permit 192.1.0.0 0.0.255.255


route-map foo permit 10
match ip address 1

BGP redistribute commands can also


be used to populate the BGP RIB with
routes from the Route Table

BGP Routing Information Base


IN Process

Update

Update

Network
Next-Hop
173.21.0.0/16 192.20.2.1

OUT Process

BGP RIB
Network
*>i160.10.1.0/24
*>i160.10.3.0/24
* > 173.21.0.0/16

Next-Hop
192.20.2.2
192.20.2.2
192.20.2.1

Path
i
i
100

Path
100

BGP in process
receives path information from peers
results of BGP path selection placed in the BGP table
best path flagged (denoted by >)

BGP Routing Information Base


IN Process

OUT Process

BGP RIB
Network
*>i160.10.1.0/24
*>i160.10.3.0/24
*> 173.21.0.0/16

Next-Hop
192.20.2.2
192.20.2.2
192.20.2.1

Path
i
i
100

Update

Network
160.10.1.0/24
160.10.3.0/24
173.21.0.0/16

Next-Hop
192.20.2.2
192.20.2.2
192.20.2.1
192.20.2.2

Update

Path
200
200
200 100

BGP out process


builds update using info from RIB
may modify update based on config
Sends update to peers

Next-Hop changed

BGP Routing Information Base


BGP RIB
Network
*>i160.10.1.0/24
*>i160.10.3.0/24
*> 173.21.0.0/16

D
D
D
R
S
B

10.1.2.0/24
160.10.1.0/24
160.10.3.0/24
153.22.0.0/16
192.1.1.0/24
173.21.0.0/16

Route Table

Next-Hop
192.20.2.2
192.20.2.2
192.20.2.1

Path
i
i
100

Best paths installed in routing table if:


prefix and prefix length are unique
lowest protocol distance

The Bible & other resources


Route-views.oregon-ix.net
Internet Routing Architectures
Bassam Halabi
pg. 168 BGP Decision Process Summary

Types of BGP Messages


OPEN
To negotiate and establish peering

UPDATE
To exchange routing information

KEEPALIVE
To maintain peering session

NOTIFICATION
To report errors (results in session reset)

Internal BGP Peering (IBGP)


AS 100
D
A
B

BGP peer within the same AS


Not required to be directly connected
Maintain full IBGP mesh or use Route Reflection

External BGP Peering (EBGP)


A

AS 100

AS 101

Between BGP speakers in different AS


Directly connected or peering address is reachable

An Example

35.0.0.0/8

AS3561

AS200

F
B

AS21

AS101

AS675

Learns about 35.0.0.0/8 from F & D

Basic BGP commands

Configuration commands
router bgp <AS-number>
neighbor <ip address> remote-as <as-number>

Show commands
show ip bgp summary
show ip bgp neighbors

Originating routes...
Using network command or redistribution
network <ipaddress>
redistribute <protocol name>

Requires the route to be present in the


routing table

Originating routes/Inserting
prefixes into BGP

network command
network 198.10.4.0 mask 255.255.254.0
ip route 198.10.0.0 255.255.254.0 serial 0
matching route must exist in the routing
table before network is announced!
Origin: IGP

Update message

Withdrawn routes
Path Attributes
Advertised routes

Stable IBGP peering


Unlinks IBGP peering from physical
topology.
Carry loopback address in IGP
router ospf <ID>
passive-interface loopback0

Unlink peering from physical topology


router bgp <AS1>
neighbor <x.x.x.x> remote-as <AS1>
neighbor <x.x.x.x> update-source loopback0

BGP4 continued...

BGP Path Attributes: Why ?

Encoded as Type, Length & Value (TLV)


Transitive/Non-Transitive attributes
Some are mandatory
Used in path selection
To apply policy for steering traffic

BGP Path Attributes...

Origin
AS-path
Next-hop
Multi-Exit Discriminator (MED)
Local preference
BGP Community
Others...

AS-PATH
Updated by the sending router with its AS
number

Contains the list of AS numbers the update


traverses.
Used to detect routing loops
Each time the router receives an update, if it
finds its AS number, it discards the update

AS-Path
AS 200

AS 100

170.10.0.0/16

180.10.0.0/16

Sequence of ASes a route has


traversed
AS 300
Loop detection

180.10.0.0/16
dropped

AS 400
150.10.0.0/16

AS 500

180.10.0.0/16
170.10.0.0/16
150.10.0.0/16

300 200 100


300 200
300 400

Next-Hop
150.10.1.1

150.10.1.2

AS 200
150.10.0.0/16

AS 300

150.10.0.0/16 150.10.1.1
160.10.0.0/16 150.10.1.1

AS 100
160.10.0.0/16

Next hop router to reach a network


Advertising router/Third party in EBGP
Unmodified in IBGP
0799_04F7_c2

Cisco Systems Confidential

20

Third Party Next Hop


AS 200
192.68.1.0/24

150.1.1.1
peering

150.1.1.3

150.1.1.2

B
192.68.1.0/24

AS 201

More efficient, but


bad idea!

150.1.1.3

Next Hop...

IGP should carry route to next hops


Recursive route look-up
Unlinks BGP from actual physical topology
Allows IGP to make intelligent forwarding
decision

Local Preference
Not for EBGP, mandatory for IBGP
Default value is 100 on Ciscos
Local to an AS
Used to prefer one exit over another
Path with highest local preference wins

Local Preference
AS 100
160.10.0.0/16

AS 200

AS 300
D

500

800

A
160.10.0.0/16
> 160.10.0.0/16

500
800

AS 400
C

Multi-Exit Discriminator
Non-transitive
Represented as a numeric value (0-0xffffffff)
Used to convey the relative preference of entry points
Comparable if paths are from the same AS
Path with lower MED wins
IGP metric can be conveyed as MED

Multi-Exit Discriminator (MED)


AS 200

C
preferred
192.68.1.0/24

2000

192.68.1.0/24

B
192.68.1.0/24

AS 201

1000

Origin
Conveys the origin of the prefix

Three values:
IGP - Generated using network statement
ex: network 35.0.0.0

EGP - Redistributed from EGP


Incomplete - Redistribute IGP
ex: redistribute ospf

IGP < EGP < INCOMPLETE

Communities

Transitive, Non-mandatory
Represented as a numeric value (0-0xffffffff)
Used to group destinations
Each destination could be member of multiple
communities
Flexibility to scope a set of prefixes within or
across AS for applying policy

Community...

Service Provider AS 200


C

Community
201:110
201:120

Community:201:110

Community:201:120

B
192.68.1.0/24

Customer AS 201

Local Preference
110
120

Synchronization
1880

D
690

OSPF
35/8

C not running BGP (non-pervasive BGP)


A wont advertise 35/8 to D until the B
IGP is in sync
Turn synchronization off!
Run pervasive BGP
router bgp 1880
no sync

209

BGP Route Selection (bestpath)


Only one path as the bestpath !
Route has to be synchronized
Prefix in forwarding table

Next-hop has to be accessible


Next-hop in forwarding table

Largest weight
Local to the router

Largest local preference


Spread within AS

Locally sourced
Via redistribute or network statement

BGP Route Selection ...


Shortest AS-path length
number of ASes in the AS-path attribute

Lowest origin
IGP < EGP < INCOMPLETE

Lowest MED
between paths from same AS

External over internal


closest exit from a router

Closest next-hop
Lower IGP metric, closer exit from as AS

Lowest router-id
Lowest IP address of neighbor

BGP Route Selection...


AS 100

AS 200

AS 300

D
Increase AS path attribute
length by at least 1

AS 400
AS 400s Policy to reach AS100
AS 200 preferred path
AS 300 backup

Stub AS
Typically no need for BGP
Point default towards the ISP
ISP advertises the stub network to
Internet
Policy confined within ISP policy

Stub AS

B
A

AS 100

Customer

AS 101
Provider

Multi-homed AS
Only border routers speak BGP
IBGP only between border routers
Exterior routes must be redistributed in
a controlled fashion into IGP or use
defaults

Multi-homed AS
AS 100
provider

AS 300
D

A
C

AS 200
customer

provider

Service Provider Network


IBGP used to carry exterior routes
IGP keeps track of topology
Full IBGP mesh is required

Common Service Provider


Network
AS 100

H
B

AS 300
D

provider
E

AS 400

AS 200

Routing Policy
Why?
To steer traffic through preferred paths
Inbound/Outbound prefix filtering
To enforce Customer-ISP agreements

How ?
AS based route filtering - filter list
Prefix based route filtering - distribute list
BGP attribute modification - route maps

Distribute list - using IP access lists


access-list 1 deny 10.0.0.0
access-list 1 permit any
access-list 2 permit 20.0.0.0
more access-lists as prefixes are added ...
router bgp 100
neighbor 171.69.233.33 remote-as 33
neighbor 171.69.233.33 distribute-list 1 in
neighbor 171.69.233.33 distribute-list 2 out

Filter list rules


Regular Expressions

RE is a pattern to match against an input


string
Used to match against AS-path attribute
ex: ^3561.*100.*1$
Flexible enough to generate complex filter
list rules

Filter list - using as-path access list

ip as-path access-list 1 permit 3561


ip as-path access-list 2 deny 35
ip as-path access-list 2 permit .*
router bgp 100
neighbor 171.69.233.33 remote-as 33
neighbor 171.69.233.33 filter-list 1 in
neighbor 171.69.233.33 filter-list 2 out

Route Maps
router bgp 300
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 route-map SETCOMMUNITY out
!
route-map SETCOMMUNITY permit 10
match ip address 1
match community 1
set community 300:100
!
access-list 1 permit 35.0.0.0
ip community-list 1 permit 100:200

Route-map match & set clauses


Match Clauses
AS-path
Community
IP address

Set Clauses

AS-path prepend
Community
Local-Preference
MED
Origin
Weight
Others...

Route-map Configuration Example

ISP2

C21

ethH

C22

eth H

ISP3
Inbound route-map
to set community

C31

eth

C32

eth

neighbor <y.y.y.y> route-map AS200_IN in


!
route-map AS200_IN permit 10
match community 1
set local-preference 200
!
ip community-list 1 permit 100:200

neighbor <x.x.x.x> route-map AS100_IN in


!
route-map AS100_IN permit 10
set community 100:200

Load Sharing & Redundancy


using BGP

Load-sharing - single path


Router A:
interface loopback 0
ip address 20.200.0.1 255.255.255.255
!
router bgp 100
neighbor 10.200.0.2 remote-as 200
neighbor 10.200.0.2 update-source loopback0
neighbor 10.200.0.2 ebgp-multi-hop 2
!
ip route 10.200.0.2 255.255.255.255 <DMZ-link1, link2>

A
AS100

Loopback 0
10.200.0.2

AS200
Loopback 0
20.200.0.1

Load Sharing - Multiple paths


from the same AS
Router A:
router bgp 100
neighbor 10.200.0.1 remote-as 200
neighbor 10.300.0.1 remote-as 200
maximum-paths 2

100

Note:A still only advertises one best path to ibgp peers

200

Redundancy - Multi-homing
Reliable connection to Internet
3 common cases of multi-homing:
- default from all providers
- customer + default routes from all
- full routes from all

Default from all providers


Low memory/CPU solution
Provider sends BGP default
provider is selected based on IGP metric

Inbound traffic decided by providers policy


Can influence using outbound policy, example:
AS-path prepend

Default from all providers

Provider

Provider

AS 200

AS 300
D

AS 400
C

Customer + default from all


providers
Medium memory and CPU solution
Granular routing for customer routes and
default for the rest
Inbound traffic decided by providers policy
Can influence using outbound policy

Customer routes from all


providers
Customer
AS 100
160.10.0.0/16

Provider

Provider

AS 200

AS 300
D

C chooses shortest AS
path

AS 400
C

Full routes from all providers


More memory/CPU

Full granular routing


Usually transit ASes take full routes
Usually pervasive BGP

Full routes from all providers


AS 100

AS 500

AS 200

AS 300
D

C chooses shortest AS
path

AS 400
C

Best Practices
IGP in Backbone
IGP connects your backbone together, not
your clients routes
IGP must converge quickly
IGP should carry netmask information OSPF, IS-IS, EIGRP

Best Practices...
Connecting to a customer
Static routes
You control directly
No route flaps

Shared routing protocol or leaking


You must filter your customers info
Route flaps

BGP for multi-homed customers

Best Practices...
Connecting to other ISPs

Use BGP4
Advertise only what you serve
Take back as little as you can
Take the shortest exit

Best Practices...
The Internet Exchange
Long distance connectivity is expensive
Connect to several providers at a single
point

Q&A