Unicast Routing Protocols

flutteringevergreenNetworking and Communications

Oct 29, 2013 (3 years and 9 months ago)

71 views

1

Unicast Routing Protocols

2

Outline


Routing basic


RIP


OSPF


BGP

3

Routing Basic


IP Routing


Autonomous System (AS)


IGP/EGP


Distance
-
vector(DV)/Link
-
state(LS)


How routing protocol works?

4

IP Routing


Route entry


Destination/netmask


Nexthop


Longest
-
match


Default
-
route


Equal Cost Multipath Protocol(ECMP)


Static routing/Dynamic routing

5

Autonomous System (AS)


Collection of networks with same policy


Usually under single administrative control


IGP to provide internal connectivity


Identified by a short number


Public & Private AS numbers


public: 1
-

64511


private: 64512


65535


AS 100

6

What Is an IGP?


Interior Gateway Protocol


Within an Autonomous System


Carries information about internal
prefixes


Examples



RIP, OSPF, ISIS


7

What Is an EGP?


Exterior Gateway Protocol


Used to convey routing information
between ASes


Independent from the IGP


Current EGP is BGP4

8

Why Do We Need an EGP?


Scaling to large network


Hierarchy


Limit scope of failure


Define administrative boundary


Policy


Control reachability to prefixes

9

Hierarchy of Routing Protocols

Customers

Other ISP’s

BGP4

BGP4/Static

BGP4 / IGP


Customers

BGP4

10

Distance
-
vector (Bellman
-
Ford)


Routers only know their local state


link metric and neighbor estimates


Examples



RIP, BGP (path
-
vector)


11

Link
-
state


Routers have knowledge of the
global state


topology database


global optimization (Shortest Path First
-

Dijkstra)


Examples



OSPF, ISIS


12

How Routing Protocol works?


Neighbor Discovery


Route Exchange between neighbors


learning/flooding/invalidation/refresh


Best route choice and routing table
management


Responsibility


Fast convergence and loop
-
free


Scalability


Robustness


Some control of routing choices


13

Routing Information Protocol (RIP)


RIP basic


General operation


RIP v2 VS RIP v1


Conclusion



14

RIPv2 basic


Distance
-
vector protocol


Metric


hops


Metric is increased when routes are
updated to neighbors


Network span limited to 15 (16 means
unreachable)


Encapsulated as UDP packets, port
520


15

RIPV2 General operation


On startup, send request on all interfaces.


When a request is received, a response is sent.


-

Response contains entire routing table.


A response is also gratuitously sent every 30s.




Response contains entire routing table.


A response is also sent when update detected.


-

Response only contains changed routes.


Route metric is set to 16 when network
becomes inaccessible or not refreshed during 6
update periods(180s)


Invalid routes are flushed after another 4
update periods(120s)

16

Count of infinity


What happens when a link dies?


A

B

C

A: 0

B: 1, B

C: 2, B

A: 1, A

B: 0

C: 1, C

A: 2, B

B: 1, B

C: 0

A: 0

B: 1, B

C: 2, B

A: 1, A

B: 0

C: 3, A

A: 2, B

B: 1, B

C: 0

A: 0

B: 1, B

C: 4, B

A: 1, A

B: 0

C: 3, A

A: 2, B

B: 1, B

C: 0

A: 0

B: 1, B

C: 15, B

A: 1, A

B: 0

C: 16, A

A: 2, B

B: 1, B

C: 0

17

Split horizon

To speed up
convergence


Simple


-

do not claim reachability for a
destination network to the neighbor
from which the route was learned.


Poison reverse


-

includes such routes in updates, but
sets their metrics to infinity


18

Split horizon
-

simple

A

B

C

A: 0

B: 1, B

C: 2, B

A: 1, A

B: 0

C: 1, C

A: 2, B

B: 1, B

C: 0

A: 0

B: 1, B

C: 16, B

A: 1, A

B: 0

C: 16

A: 2, B

B: 1, B

C: 0

19

Split horizon


poison reverse

A

B

C

A: 0

B: 1, B

C: 2, B

A: 1, A

B: 0

C: 1, C

A: 2, B

B: 1, B

C: 0

A: 0

B: 1, B

C: 16, B

A: 1, A

B: 0

C: 16



A: 2, B

B: 1, B

C: 0

C: 16

20

RIPv2 vs RIPv1


224.0.0.9
-

broadcast


Variable Length Subnet Mask(VLSM)
-

Classless Inter
-
Domain

Routing (CIDR, no prefix/subnet
information, derived from address
class)


Authentication
-

none

21

Conclusion


Simplicity


Slow convergence


Not suited for large and complex
networks


22


OSPF Basic


OSPF Neighbors


OSPF Area


SPF and LSA database


OSPF Messages


Conclusion


Open Shortest Path First (OSPF)

23

OSPF Basic


Encapsulated as RAW IP packets,
protocol ID 89


Uses metrics

path cost(1

65,535)




24

OSPF Basic
-

general operation


Use Hello Protocol to establish neighbors


All routers exchange Link State Advertisement
(LSA) to build and maintain a consistent database


Each router runs SPF on LSA database
independently and gets optimal routes


Periodic flooding of LSAs every 30 minutes


LSA age


0 when created


Incremented as time elapsed.


Max age 3600 indicates invalid


Remove a LSA by incrementing age to 3600,
reflooding and flushing.

25

OSPF Network type


Broadcast


Point
-
to
-
Point/Point
-
to
-
Multipoint


NBMA(Non
-
Broadcast Multiple
Access)


26

Neighbor discovery


Hello packets


Periodically Multicasting 224.0.0.5,
including


RouterId, AreaId, Netmask, hello interval,
Priority, DR, BDR, Neighbor list


Neighbor state machine


Works differently on different network


27

DR/BDR/Others


For broadcast and NBMA networks


Optimize the flooding procedure


Designated Router(DR)


Adjacent to all routers


Describe all routers on the network


Send updates to all routers on the network


Backup Designated Router(BDR)


Adjacent to all routers


Act as new DR when previous DR fails


Others


Only adjacent to DR/BDR, only send updates
to DR/BDR

28

OSPF Area


Why divide the network into different
areas?


Limit the scope of updates and computational
overhead


independent SPF computing in each area


inject aggregated information on routes into
other areas


32 bit number


Backbone area


area 0 or 0.0.0.0


All areas must connect to backbone area.


Backbone area must be continuous


Virtual link when the above fails


Area Border Routers(ABR)

29

Virtual Link

Area 1

Area 0

Area 2

Area 3

Virtual link

ABR

ABR

ABR

30

Shortest Path First

A

B

C

D

10

3

1

4

7

31

Candidat
e

Root
cost

SPF tree

Description

A, A, 0

Root tree

A, B, 3

A, C, 1

A, D, 10

3

1

10

A, A, 0

Add adjacent links to A into Candidate and
calculate cost to A.

A, B, 3

A, D, 10

C, D, 7

3

10

8

A, A, 0

A, C, 1

Choose the lowest cost link (A, C, 1),

add it into SPF tree and remote it from Candidate.

Add adjacent links to C into Candidate and
calculate cost to A. Because the new lowest cost to
D is 8, <A, D, 10> is remoted.

C, D, 7

B, D, 4

8

7

A, A, 0

A, C, 1

A, B, 3

Choose the lowest cost link(A, B, 3),

Add it into SPF tree and remote it from Candidate.

Add adjacent links to B into Candidate and
calculate cost to A. because the new lowest cost to
D is 7, <C, D, 7> is removed.

A, A, 0

A, C, 1

A, B, 3

B, D, 4


Choose the lowest cost link(B, D, 4),

Add it into SPF tree and remote it from Candidate.
Because the Candidate is empty, the process is
over.


32

OSPF SPF process


SPF calculation is performed
independently for each area


Router LSA


Each router creates a router LSA for each area


Describe links to an area


DR/BDR(broadcast)


Neighboring router(point
-
to
-
point)


Prefix/mask(stub network)


metric


Network LSA


Only DR creates a network LSA for a network


Describe all routers on the network

33

Inter
-
area routes


Network Summary LSA


Created by ABR


Advertise optimal routes in one area
into another area


Prefix/mask


Metric


Flood only in one area


34

Inter
-
AS routes


Autonomous System Border Router(ASBR)


Autonomous System External LSA


Created by ASBR


Describe routes redistributed from other AS


Prefix/mask


Metric


Flood across area in an AS(except stub area)


ASBR summary LSA


Created by ABR


Describe ASBR routers in one area


ASBR router id


metric


35

Stub area


AS External LSA are forbidden in
stub area


Why stub area?


When many networks are connected
only via one router


All external networks aggregated into
default
route


Reduce routing table sizes


36

OSPF Messages


Hello


Used to establish neighbor relationship


Database description


Used to describe brief information of LSA


Link
-
state request


Used to request LSAs


Link
-
state update


Used to update LSAs


Link
-
state acknowledgment


Used to assure LSA flooding reliable by
including brief description of received LSA



37

Conclusion


2
-
level hierarchical model


Faster convergence


Relatively low, steady state bandwidth
requirements



38

Border Gateway Protocol (BGP)



BGP Basic


BGP Peers


BGP Updates


NLRI and Path Attributes


Synchronization with IGP


Route Reflector and AS Confederation


Routing policy


BGP Messages


Conclusion


39

BGP Basic


Based on TCP connection, port 179


BGP peer is configured manually


BGP Peers exchange

Update messages containing Network
Layer Reachability Information (NLRI)


Path attributes are with NLRI to avoid
loop and facilitate policy control


No routes refresh


40

AS 100

AS 101

AS 102

A

C

BGP Peers
-

eBGP

eBGP TCP/IP

Peer Connection

Peers in different AS’s

are called

External Peers

Note: eBGP Peers normally should be directly connected.

E

B

D

220.220.8.0/24

220.220.16.0/24

220.220.32.0/24

eBGP

eBGP

eBGP

41

AS 100

AS 101

A

C

BGP Peers
-

iBGP

iBGP TCP/IP

Peer Connection

Peers in the same AS

are called

Internal Peers

AS 102

E

B

D

Note: iBGP Peers don’t have to be directly connected. Loopback
interface are normally used as peer connection end
-
points. In
this case, r
ecursive route look
-
up is needed.

220.220.8.0/24

220.220.16.0/24

220.220.32.0/24

iBGP

iBGP

42

Full mesh


Each iBGP speaker must peer with every other

iBGP speaker in the AS (full mesh)


IBgp speaker never floods routes received from
another iBGP peer to any other iBGP peer.


AS 100

A

B

C

D

43

BGP Updates


NLRI


Network Layer Reachability
Information


Used to advertise feasible routes


Composed of:


Network Prefix


Mask Length

44

BGP
Updates


Path
Attributes


Used to convey information
associated with NLRI


Origin

-

mandatory


AS path
-

mandatory


Next hop
-

mandatory


Local preference


Multi
-
Exit Discriminator (MED)


Community


Origin


Aggregator


Rich policy control

45

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

46


Sequence of ASes a
route has traversed


Loop detection


Apply policy

AS 100

AS 300

AS 200

AS 500

AS 400

170.10.0.0/16

180.10.0.0/16

150.10.0.0/16

Network Path

180.10.0.0/16

300 200 100

170.10.0.0/16

300 200

150.10.0.0/16

300 400

Network Path

180.10.0.0/16 300 200 100

170.10.0.0/16 300 200

AS
-
Path Attribute

47


Sequence of ASes a route has
traversed


Loop detection

AS
-
Path
Loop detection

AS 100

AS 300

AS 200

AS 500

AS 400

170.10.0.0/16

180.10.0.0/16

150.10.0.0/16

180.10.0.0/16

300 200 100

170.10.0.0/16

300 200

150.10.0.0/16

300 400

180.10.0.0/16

dropped

48

160.10.0.0/16

150.10.0.0/16

192.10.1.0/30

.2

AS 100

AS 200

Network Next
-
Hop Path

160.10.0.0/16 192.20.2.1 100

C

Next Hop Attribute

.1

BGP Update

Messages

B

A

.1

.2

AS 300

E

D


Next hop to reach a network


Usually a local network is the next hop in
eBGP session


Next Hop updated between eBGP Peers


Next hop not changed between iBGP peers

140.10.0.0/16

192.20.2.0/30

Network Next
-
Hop Path

150.10.0.0/16 192.10.1.1 200

160.10.0.0/16
192.10.1.1

200 100

Network Next
-
Hop Path

150.10.0.0/16 192.10.1.1 200

160.10.0.0/16
192.10.1.1

200 100

49

Local Preference

AS 400

AS 200

160.10.0.0/16

AS 100

AS 300


160.10.0.0/16 500

> 160.10.0.0/16 800

800

E

B

C

A

D

500

Multi
-
homed AS



Only for iBGP



Local to an AS



Path with highest
local preference wins



50

Multi
-
Exit Discriminator (MED)

AS 201

AS 200

192.68.1.0/24

C

A

B

192.68.1.0/24 1000

192.68.1.0/24 2000

preferred



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

51

Customer AS 201

Service Provider AS 200

192.68.1.0/24

C

A

B

Community:201:110

Community:201:120

D


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


Communities

52

BGP Updates




Withdrawn Routes


Used to

withdraw


network reachability


Each Withdrawn Route is composed of:


Network Prefix


Mask Length

53

Synchronization with IGP


C not running BGP (non
-
pervasive BGP)


A won’t advertise 35/8 to D until the IGP is in
sync


Turn synchronization off!


Run pervasive BGP


1880

209

690

B

A

C

35/8

D

OSPF

54

Alternative to Full Mesh






Router
-
reflection

AS 100

RR

Client

Non
-
client

Non
-
client

Client


Non
-
client peers are full
-
mesh connected


RR reflects routes from non
-
client peers to all client peers


RR reflects routes from client peers to all non
-
client peers and other
client peers


Route Reflector (RR)


Client peers


Non
-
client peers

55

Alternative to Full Mesh






Confederation

AS Confederation 100

Member
-
AS 65532

Member
-
AS 65531


Divided into member AS, marked by private AS number


Full
-
mesh in member AS


Peers between member AS are most similar with eBGP, except that
inserted AS path is confederation AS path


When routes get out of AS confederation, remove confederation AS
path

56

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

57

BGP Messages


OPEN


To negotiate and establish peering


UPDATE


To exchange routing information(NLRI,
Path attributes, Withdrawn routes)


KEEPALIVE


To maintain peering session


NOTIFICATION


To report errors (results in session reset)


58

Conclusion


The single extant protocol for interdomain
routing


Fundamentally simple algorithms but can
provide complex and flexible policy
control


More future applications, such as
BGP/MPLS VPN networks