Вы находитесь на странице: 1из 71

Chapter 4 Network Layer (4b - Routing)

Modified by John Copeland Georgia Tech for use in ECE3076

A note on the use of these ppt slides:


Were making these slides freely available to all (faculty, students, readers). Theyre in PowerPoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, wed like people to use our book!) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR

Computer Networking: A Top Down Approach Featuring the Internet,


5th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2009.
Network Layer 4-1

All material copyright 1996-2006 J.F Kurose and K.W. Ross, All Rights Reserved

JAC 10-25-2012

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state (OSPF) Distance Vector (RIP) Hierarchical routing (BGP) 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

4.7 Broadcast and

RIP OSPF BGP

multicast routing

Network Layer

4-2

IP Addressing: introduction
IP address: 32-bit
223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9

identifier for host, and router interface interface: connection between host/router and physical link (sometimes

223.1.3.27

223.1.2.2

called a "port"). routers typically have multiple interfaces host typically has one interface IP addresses associated with each interface

223.1.3.1

223.1.3.2

223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1


Network Layer

1
4-3

Subnets
IP address: subnet part (high order bits) host part (low order bits)
223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.2.2

Whats a subnet ?

223.1.3.27

device interfaces with same subnet part of IP address can physically reach each other without intervening router

subnet
223.1.3.1 223.1.3.2

network consisting of 3 subnets

Network Layer

4-4

Subnets
Recipe To determine the subnets, detach each interface from its host or router, creating islands of isolated networks. Each isolated network is called a subnet.

223.1.1.0/24

223.1.2.0/24

223.1.3.0/24

Subnet mask: /24

Network Layer

4-5

Subnets
How many?

Stub Subnet -> 223.1.1.0/24


223.1.1.1

223.1.1.2

223.1.1.4 223.1.1.3

223.1.9.2

223.1.7.0

Transit Subnet -> 223.1.9.0/28


223.1.9.1 223.1.8.1 223.1.2.6

<-Transit Subnet 223.1.7.0/28 223.1.8.0/28


223.1.8.0 223.1.3.27 223.1.2.2 223.1.3.1 223.1.3.2 223.1.7.1

Stub Subnet -> 223.1.2.0/24

223.1.2.1

Stub Subnet -> 223.1.3.0/24

Network Layer

4-6

Simplified Network

Stub Subnet 223.1.1.0/24

B
A-B B-C

A
A-C

Transit Subnet 223.1.9.0/28

Transit Subnet 223.1.7.0/28

A
C
Stub Subnet 223.1.2.0/24

Transit Subnet 223.1.8.0/28

Stub Subnet 223.1.3.0/24

Routers ("Nodes") designated by a letter: A, B, C, ... All subnets are either: Transit Subnets ("Links" between nodes: A-B, B-C, A-C) or Stub Subnets (connected to a single "gateway" router) designated by the same letter: A, B, C, ...
Network Layer 4-7

Interplay between routing, forwarding


routing algorithm

Routing Table for Node A


Network Address 223.1.1.0 223.1.2.0 223.1.3.0 Network Mask 255.255.255.0 255.255.255.0 255.255.255.0 Port (A- ) B Local C

Destination address (IPd) in arriving packets IP header


223.1.3.123

B
A-B

Match row "i" if: IPd & Maski = NetAddri Use match with largest Maski.

3 2 A-D

A-C

D
Network Layer 4-8

Graph abstraction
5
2 1 Graph: G = (N,E) N = set of routers = { u, v, w, x, y, z }

"Cost" of Link w
3 1

v
2

z
2

1 (Nodes)

E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } (Edges) Remark: Graph abstraction is useful in other network contexts Example: P2P, where N is set of peers and E is set of TCP connections
Network Layer 4-9

Graph abstraction: costs


5 2 1

v
2

c(x,x) = cost of link (x,x)

w
3
1

- e.g., c(w,z) = 5

z
2

cost could always be 1, or inversely related to bandwidth, or inversely related to congestion

Cost of path (x1, x2, x3,, xp) = c(x1,x2) + c(x2,x3) + + c(xp-1,xp)


Question: Whats the least-cost path between u and z ?

Routing algorithm: algorithm that finds least-cost path


Network Layer 4-10

Routing Algorithm classification


Global or decentralized information?

Static or dynamic?
Static (Manual updates): routes change slowly over time Dynamic (RIP, OSPF): routes change more quickly periodic update in response to link cost changes

Global (e.g., OSPF): all routers have complete topology, link cost info link state algorithms Decentralized (e.g., RIP): router knows physicallyconnected neighbors, link costs to neighbors iterative process of computation, exchange of info with neighbors distance vector algorithms

Network Layer

4-11

A Link-State Routing Algorithm (OSPF)


Dijkstras algorithm
net topology, link costs

known to all nodes accomplished via link state broadcast all nodes have same info computes least cost paths from one node (source) to all other nodes gives forwarding table for that node iterative: after k iterations, know least cost path to k dest.s

Notation: c(x,y): link cost from node


x to y; = if not direct neighbors

D(v): current value of cost of path from source to dest. v p(v): predecessor node along path from source to v N': set of nodes whose least cost path definitively known
Network Layer 4-12

Dijsktras Algorithm
1 Initialization: 2 N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = c(u,v) 6 else D(v) = 7 8 Loop 9 find w not in N' such that D(w) is a minimum 10 add w to N' 11 update D(v) for all v adjacent to w and not in N' : 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N'
Network Layer 4-13

Dijkstras algorithm: example (for "u") - 1


5 2 1

v
2

3 3 1

w
1

z
2

Permanent Nodes: u (start with home node) Temporary Nodes: v(u,2), x(u,1), w(u,5) (linked to a permanent node, path cost in ()s) New Permanent Node: x(u,2) (lowest-cost path to u) New Permanent Link: u-x Delete Links: (from new permanent node to any permanent node, other than the New Permanent Link)
Network Layer 4-14

Dijkstras algorithm: example (for "u") - 2


5 2 1

v
2

3 3 1

w
1

z
2

Permanent Nodes: u(0), x(2) Temporary Nodes: v(u,2 or x,3), y(x,2), w(x,4 or u,5) New Permanent Node: v(u,2) New Permanent Link: v-u Delete Link: v-x Note: You can wait to delete (all non-permanent) links after the tree is complete.
Network Layer 4-15

Dijkstras algorithm: example (for "u") - 3


5 2 1

v
2

3 3 1

w
1

z
2

Permanent Nodes: u, x(1), v(2) Temporary Nodes: y(x,2), w(y,3 or x,4 or v,5)

New Permanent Node: y(x,2) New Permanent Link: x-y Delete Link: none
Network Layer 4-16

Dijkstras algorithm: example (for "u") - 4


5 2 1

v
2

3 3 1

w
1

z
2

Permanent Nodes: u, x(1), v(2), y(2) Temporary Nodes: w(y,3 or x,4 or v,5 or u,5), z(y,4) New Permanent Node: w(y,3) New Permanent Link: w-y Delete Links: w-x, w-v, w-u

Network Layer 4-17

Dijkstras algorithm: example (for "u") - 5


5 2 1

v
2

3 3 1

w
1

z
2

Permanent Nodes: u, x(1), v(2), y(2), w(3) Temporary Nodes: z(y,4 or w,8) New Permanent Node: z(y,4) New Permanent Link: y-z Delete Link: z-w This is called the "shortest-path tree", or "sink tree," for node u.
Network Layer 4-18

Dijkstras algorithm: example (2)


Resulting shortest-path tree from u:

v u

z x
y

Two-step process based on information received by broadcast OSPF messages from every router. 1. Construct a table of all advertised blocks and the edge router which connects to them. Add link to forward on for each edge router, based on the routing algorithm.

Resulting forwarding table in u: destination v x y w z link (u,v) (u,x) (u,x) (u,x) (u,x)

2.

Network Layer 4-19

Graphical Method - Sink Tree for Node "U" (animated - keep clicking)
5 (link cost) 3

5 (total cost) 5 w 4
3 5

2 2

v 3
2

3
1

u
1

z
4
2

2
1

Next Slide
Network Layer 4-20

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state (OSPF) Distance Vector (RIP) Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

4.7 Broadcast and

RIP OSPF BGP

multicast routing

Network Layer 4-21

Distance Vector Algorithm (RIP)


Bellman-Ford Equation (dynamic programming) Define dx(y) := cost of least-cost path from x to y Then dx(y) = min {c(x,v) + dv(y) } where min is taken over all neighbors v of x. This is the distance to y advertised by x. x will forward datagrams for y to v.
Network Layer 4-22

Bellman-Ford algorithm example


5 2

v
2

3 3

w
1

Find forwarding link for u to z when the cost to neighbors is known, c(u,?), and the cost from neighbors to z, d?(z) is known.
5

u
1

z
2

Known:, dv(z) = 5, dx(z) = 3, dw(z) = 3 B-F equation says: du(z) = min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) } = min {2 + 5, 1 + 3, z 5 + 3} = 4 ( -> x)

x
5 2

The way u sees the network.

u
1

w
5

x 3 Node that provides minimum distance (node x) is next hop in shortest path to z, forwarding table Network Layer

4-23

Distance Vector Algorithm


Dx(y) = estimate of least cost from x to y

Node x knows cost to each neighbor v:

c(x,v) Node x maintains distance vector Dx = [Dx(y): y N ] Node x also maintains its neighbors distance vectors
For

each neighbor v, x maintains Dv = [Dv(y): y N ]


Network Layer 4-24

Distance vector algorithm (4)


Basic idea: Each node periodically sends its own distance vector estimate to neighbors When a node x receives new DV estimate from neighbor, it updates its own DV using B-F equation:

Dx(y) minv{c(x,v) + Dv(y)}

for each node y N

Under minor changes, natural conditions, the

estimated Dx(y) converges to the actual least cost dx(y)


Network Layer 4-25

Distance Vector Algorithm (5)


Iterative, asynchronous:
each local iteration caused by: local link cost change DV update message from neighbor

Each node: wait for (change in local link


cost or msg from neighbor)

Distributed:
each node notifies

recompute estimates
if DV to any dest has changed, notify neighbors

neighbors only when its DV changes

neighbors then notify their neighbors if necessary

Network Layer 4-26

node x table cost to x y z from

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 cost to x y z x 0 2 3 y 2 0 1 z 7 1 0 cost to x y z from from cost to x y z x 0 2 3 y 2 0 1 z 3 1 0 cost to x y z

Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)}


= min{2+1 , 7+0} = 3

x 0 2 7 y z node y table + cost to x y z

x y 2 0 1 z node z table cost to x y z


from x y z 71 0 from

x 0 2 7 y 2 0 1 z 7 1 0
cost to x y z x 0 2 7 y 2 0 1 z 3 1 0

x 0 2 3 y 2 0 1 z 3 1 0
cost to x y z x 0 2 3 y 2 0 1 z 3 1 0 time

from

from

from

from

y
7

Network Layer 4-27

Distance Vector: link cost changes


Link cost changes:
node detects local link cost change updates routing info, recalculates

distance vector if DV changes, notify neighbors

y
50

good news travels fast

At time t0, y detects the link-cost change, updates its DV, and informs its neighbors.

At time t1, z receives the update from y and updates its table. It computes a new least cost to x and sends its neighbors its DV. At time t2, y receives zs update and updates its distance table. ys least costs do not change and hence y does not send any message to z.

Network Layer 4-28

Distance Vector: link cost changes


Link cost changes:
good news travels fast bad news travels slow -

60

y
50

count to infinity problem! 44 iterations before algorithm stabilizes: see text

Poisoned reverse:
If Z routes through Y to

get to X :

Z tells Y its (Zs) distance to X is infinite (so Y wont route to X via Z)

will this completely solve

count to infinity problem?

Y advertises X in 4 hops Z sends datagrams for X to Y Z advertises "X in 5 hops". Y-X link cost goes to 60 Y thinks Z can route in 5 hops, so Y advertises "X in 6", sends datagrams back to Z. Z sends datagrams back to Y, advertises "X in 7". Y sends datagrams back to Z, advertises "X in 8".
Network Layer 4-29

RIP (Distance-Vector Algorithm)


B M 128.230.0.0/16 Y
Router A Table Prefix Distance Port 1 128.230. 2 X 130.207. 6 N 209.196. 7 X 24.56. 9 X

Z
Router C Table Prefix Distance Port 1 128.230. 2 X 130.207. 4 X 209.196. 7 X 24.56. 11 P

Router B Table Prefix Distance Port 1 128.230. 2 X 130.207. 6 X 209.196. 5 M 24.56. 11 X

Construct the Routing Table for Router X. Use "L" for the port to the local LAN.
Prefix 128.23 130.207. 209.196 24.96. Router X Calculation Distance - A Distance - B Distance - C 1 1 1 6 6 4 7 5 7 9 11 11 Min + 1 0* 5 6 10 Closest Rtr *Local C B A

Router X Table Prefix Distance Port 128.230. 1 L 0 130.207. 5 C 209.196. 6 B 24.56. 10 A

Using Poison Reverse*, construct the Updates sent from Router X to A, B, and C. (infinity -> 15).
Update X to A Table Prefix Distance 128.230. 1 0 130.207. 5 209.196. 6 24.56. 15
Update X to B Table Prefix Distance 128.230. 1 0 130.207. 5 209.196. 15 24.56. 10 Update X to C Table Prefix Distance 128.230. 1 0 130.207. 15 209.196. 6 24.56. 10

*For "Poison Reverse" a distance of 15 is sent to destination router Network Layer 4-30 This is the format for a quiz question.

Comparison of LS (OSPF) and DV (RIP) algorithms LS = Link State, DV = Distance Vector)


Message complexity
LS: with n nodes, E links,

O(nE) msgs sent DV: exchange between neighbors only convergence time varies

Robustness: what happens if router malfunctions? LS:


Speed of Convergence
LS: O(n2) algorithm requires

DV:

node can advertise incorrect link cost each node computes only its own table DV node can advertise incorrect path cost each nodes table used by others

O(nE) msgs may have oscillations DV: convergence time varies may be routing loops count-to-infinity problem

errors propagate thru the network

Network Layer 4-31

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

RIP OSPF BGP

4.7 Broadcast and

multicast routing

Network Layer 4-32

Hierarchical Routing
Our routing study thus far - idealization all routers identical network flat not true in practice

scale: with 200 million destinations:


cant store all dests in

administrative autonomy
internet = network of

routing tables! routing table exchange would swamp links!

networks each network admin may want to control routing in its own network

Network Layer 4-33

Hierarchical Routing BGP - Border Gateway Protocol


aggregate routers into

regions, autonomous systems (AS) routers in same AS run same routing protocol [no, hierarchical architectures are possible]

Gateway router Direct link to router in another AS

intra-AS routing protocol routers in different AS can run different intraAS routing protocol

Network Layer 4-34

Interconnected ASes
3a 3b AS3 1a 3c 2a 1b AS1 2c
AS2

1c 1d

2b

Forwarding table is

Intra-AS Routing algorithm

Inter-AS Routing algorithm

configured by both intra- and inter-AS routing algorithm


Forwarding table

Intra-AS sets entries for internal dests Inter-AS & Intra-As sets entries for external dests
Network Layer 4-35

Inter-AS tasks
Suppose router in AS1

receives datagram for which destination is outside of AS1

Router should forward packet towards one of the gateway routers, but which one?

AS1 needs: 1. to learn which dests are reachable through AS2 and which through AS3 2. to propagate this reachability info to all routers in AS1 Job of inter-AS routing!

3c

3b

3a AS3 1a

1c 1d 1b

2a

2c
AS2

2b

AS1
Network Layer 4-36

Example: Setting forwarding table in router 1d


Suppose AS1 learns (via inter-AS protocol) that subnet

x is reachable via AS3 (gateway 1c) but not via AS2.

Inter-AS protocol propagates reachability info to all

internal routers. Router 1d determines from intra-AS routing info that its interface I is on the least cost path to 1c. Puts in forwarding table entry (x,I).
X 3c

3a 3b AS3 1a

1c 1d

2a 1b
AS1

2c
AS2

2b

Network Layer 4-37

Example: Choosing among multiple ASes


Now suppose AS1 learns from the inter-AS protocol

that subnet x is reachable from AS3 and from AS2. To configure forwarding table, router 1d must determine towards which gateway it should forward packets for dest x. This is also the job on inter-AS routing protocol!
X 3a 3b AS3 1a 3c 2a 1b AS1 2c
AS2

1c 1d

2b

Network Layer 4-38

Example: Choosing among multiple ASes


Now suppose AS1 learns from the inter-AS protocol

that subnet x is reachable from AS3 and from AS2. To configure forwarding table, router 1d must determine towards which gateway it should forward packets for dest x. This is also the job on inter-AS routing protocol! Hot potato routing: send packet towards closest of two routers.
Use routing info from intra-AS protocol to determine costs of least-cost paths to each of the gateways

Learn from inter-AS protocol that subnet x is reachable via multiple gateways

Hot potato routing: Choose the gateway that has the smallest least cost

Determine from forwarding table the interface I that leads to least-cost gateway. Enter (x,I) in forwarding table

Network Layer 4-39

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

RIP OSPF BGP

4.7 Broadcast and

multicast routing

Network Layer 4-40

Intra-AS Routing
Also known as Interior Gateway Protocols (IGP)

Most common Intra-AS routing protocols:


RIP: Routing Information Protocol OSPF: Open Shortest Path First IGRP: Interior Gateway Routing Protocol (Cisco proprietary)

Network Layer 4-41

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

RIP (Distance Vector) OSPF (Link State) BGP (Hierarchical)

4.7 Broadcast and

multicast routing

Network Layer 4-42

RIP ( Routing Information Protocol)


Distance vector algorithm

Included in BSD-UNIX Distribution in 1982


Distance metric: # of hops (max = 15 hops)
From router A to subsets: u v w destination hops u 1 v 2 w 2 x 3 y 3 z 2

x y

Network Layer 4-43

RIP advertisements
Distance vectors*: exchanged among

neighbors every 30 sec via Response Message (also called advertisement) Each advertisement: list of up to 25 destination nets within AS

* List of all subnets and their "distance" (cost: delay, hops, ).

Network Layer 4-44

RIP: Example
z

D
C

Destination Network

w y z x

Next Router

A B B -.

Num. of hops to dest.

2 2 7 1

....

Routing table in D
Network Layer 4-45

RIP: Example
Dest w x z . Next C hops 1 1 4 ...

Advertisement from A to D

z x

D
Next Router

Destination Network

w y z x

A B B A -.

Num. of hops to dest.

2 2 7 5 1
....

Routing table in D

Network Layer 4-46

RIP: Link Failure and Recovery


If no advertisement heard after 180 sec --> neighbor/link declared dead routes via neighbor invalidated new advertisements sent to neighbors neighbors in turn send out new advertisements (if tables changed) link failure info quickly (?) propagates to entire net poison reverse used to prevent ping-pong loops (infinite distance = 15 hops)

Network Layer 4-47

RIP Table processing


RIP routing tables managed by application-level

process called route-d (daemon) advertisements sent in UDP packets, periodically repeated
routed
Transprt (UDP) network (IP) link physical forwarding table forwarding table routed Transprt (UDP) network (IP) link physical
Network Layer 4-48

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

RIP OSPF BGP

4.7 Broadcast and

multicast routing

Network Layer 4-49

OSPF (Open Shortest Path First)


open: publicly available Uses Link State algorithm Link State packet dissemination Topology map at each node Route computation using Dijkstras algorithm OSPF advertisement carries one entry per neighbor

router Advertisements disseminated to entire AS (via flooding) [exception Hierarchical Routing]

Carried in OSPF messages directly over IP (rather than TCP or UDP


Network Layer 4-50

OSPF advanced features (not in RIP)


Security: all OSPF messages authenticated (to

prevent malicious intrusion) Multiple same-cost paths allowed (only one path in RIP) For each link, multiple cost metrics for different TOS (e.g., satellite link cost set low for best effort; high for real time) Integrated uni- and multicast support: Multicast OSPF (MOSPF) uses same topology data base as OSPF Hierarchical OSPF in large domains.
Network Layer 4-51

Hierarchical OSPF
Boundary routers can aggregate internal routes.

Network Layer 4-52

Hierarchical OSPF
Two-level hierarchy: local area, backbone.

Link-state advertisements only in area each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. Area border routers: summarize distances to nets in own area, advertise to other Area Border routers. Backbone routers: run OSPF routing limited to backbone. Boundary routers: connect to other ASs.

Network Layer 4-53

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

RIP OSPF BGP

4.7 Broadcast and

multicast routing

Network Layer 4-54

Internet inter-AS routing: BGP


BGP (Border Gateway Protocol):

facto standard BGP provides each AS a means to:


1. 2. 3.

the de

allows subnet to advertise its existence to

Obtain subnet reachability information from neighboring ASs. Propagate reachability information to all ASinternal routers. Determine good routes to subnets based on reachability information and policy.

rest of Internet: I am here

Network Layer 4-55

BGP basics
Pairs of routers (BGP peers) exchange routing info When AS2 advertises a prefix to AS1, AS2 is

over semi-permanent TCP connections: BGP sessions


BGP sessions need not correspond to physical links.

promising it will forward any datagrams destined to


that prefix towards the prefix.

AS2 can aggregate prefixes in its advertisement 3c 3a 3b AS3 1a AS1 1c 1d 1b

2a

2c
AS2

2b

eBGP session iBGP session

Network Layer 4-56

Distributing reachability info


With eBGP session between 3a and 1c, AS3 sends prefix

reachability info to AS1. 1c can then use iBGP do distribute this new prefix reach info to all routers in AS1 1b can then re-advertise new reachability info to AS2 over 1b-to-2a eBGP session When router learns of new prefix, creates entry for prefix in its forwarding table.
3c 3a 3b AS3 1a AS1

1c 1d
1b

2a

2c
AS2

2b

eBGP session iBGP session Network Layer 4-57

Path attributes & BGP routes


When advertising a prefix, advert includes BGP

attributes.

prefix + attributes = route

Two important attributes: AS-PATH: contains ASs through which prefix advertisement has passed: AS 67 AS 17 NEXT-HOP: Indicates specific internal-AS router to nexthop AS. (There may be multiple links from current AS to next-hop-AS.) When gateway router receives route advertisement,

uses import policy to accept/decline.

Network Layer 4-58

BGP route selection


Router may learn about more than 1 route

to some prefix. Router must select route. Elimination rules:


1. 2. 3. 4.

Local preference value attribute: policy decision Shortest AS-PATH Closest NEXT-HOP router: hot potato routing Additional criteria

Network Layer 4-59

BGP messages
BGP messages exchanged using TCP. BGP messages:

OPEN: opens TCP connection to peer and authenticates sender UPDATE: advertises new path (or withdraws old) KEEPALIVE keeps connection alive in absence of UPDATES; also ACKs OPEN request NOTIFICATION: reports errors in previous msg; also used to close connection

Network Layer 4-60

BGP routing policy

A,B,C are provider networks X,W,Y are customer (of provider networks) X is dual-homed: attached to two networks

X does not want to route from B via X to C .. so X will not advertise to B a route to C

Network Layer 4-61

BGP routing policy (2)

A advertises to B the path AW B advertises to X the path BAW Should B advertise to C the path BAW? No way! B gets no revenue for routing CBAW since neither W nor C are Bs customers B wants to force C to route to w via A B wants to route only to/from its customers!
Network Layer 4-62

Why different Intra- and Inter-AS routing ?


Policy:
Inter-AS: admin wants control over how its traffic

routed, who routes through its net. Intra-AS: single admin, so no policy decisions needed

Scale:
hierarchical routing saves table size, reduced update

traffic Performance: Intra-AS: can focus on performance Inter-AS: policy may dominate over performance

Network Layer 4-63

Area: Routing Type:

Lab, Home Distance Vector

Intra-AS (Ga. Tech) Link State OSPF, IGMP Dijkstra Delay

Inter-AS Manual + Others BGP Mixed Dollars, Policy, Rules

Example Protocol: RIP Routing Algorithm Cost Unit: Messaging: Adjust to congestion: Maximum Path: Hierarchical: Bellman-Ford, w Poison Reverse Links UDP/IP unicast No path: <15 links (nodes <25) No

OSPF/IP TCP/IP unicast broadcast (flood) Yes Large Can be Some places Large Yes (CIDR, AS Confederations)
4-64

Chapter 4: Network Layer


4. 1 Introduction

4.2 Virtual circuit and

datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol

4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the

Internet

Datagram format IPv4 addressing ICMP IPv6

RIP OSPF BGP

4.7 Broadcast and

multicast routing

Network Layer 4-65

Broadcast Routing
Deliver packets from source to all other nodes
Source duplication is inefficient:
duplicate

R1 R2

duplicate creation/transmission

R1
duplicate

R2 R4 R3 R4

R3

source duplication

in-network duplication

Source duplication: how does source

determine recipient addresses?

Network Layer 4-66

In-network duplication
Flooding: when node receives brdcst pckt,

sends copy to all neighbors

Problems: cycles & broadcast storm

Controlled flooding: node only broadcasts pkt

if it hasnt broadcast the same packet before


Node keeps track of pckt ids already brdcsted Or reverse path forwarding (RPF): only forward pckt if it arrived on shortest path between node and source

Spanning tree

No redundant packets received by any node


Network Layer 4-67

Spanning Tree
First construct a spanning tree

Nodes forward copies only along spanning

tree

A c

B D
F G

B D G

(a) Broadcast initiated at A

(b) Broadcast initiated at D


Network Layer 4-68

Multicast Routing: Problem Statement


Goal: find a tree (or trees) connecting

routers having local multicast group members


tree: not all paths between routers used source-based: different tree from each sender to rcvrs shared-tree: same tree used by all group members

Shared tree

Source-based trees

mc:/Users/copeland root# netstat -r -a -l -n Routing tables Internet: Destination Gateway Flags Refs default (0/0) 199.77.146.1 UGSc 6 17.112.152.32 199.77.146.1 UGHW3 0 127 (local) 127.0.0.1 UCS 0 127.0.0.1 127.0.0.1 UH 10 130.207.230.13 199.77.146.1 UGHW3 0 130.207.244.240 199.77.146.1 UGHW 1 130.207.244.244 199.77.146.1 UGHW 1 169.254 link#4 UCS 0 199.77.146/25 link#4 UCS 1 199.77.146.1 0:11:bc:f4:14:0 UHLW 6 199.77.146.101 127.0.0.1 UHS 2 224.0.0.251 199.77.146.1 UGHW 1 127. 169.254 /8 local

#MacOS

10.4

Use 6716 6683 0 21599 6746 52 1041 0 0 0 397306 270

Mtu 1500 1500 16384 16384 1500 1500 1500 1500 1500 1500 16384 1500

Netif en0 en0 lo0 lo0 en0 en0 en0 en0 en0 en0 lo0 en0

Local links for inter-process communication Not allocated (see RFC 3330, used when no IP) is multicast or anycast

/16 blackhole

224.0.0..0/4

(1110xxxx.X.X.X)

en0 is Ethernet,

lo0 is local OS port (loopback).

Flags: U=usable, G=gateway, H=host, W=setup by process,Network S=static Layer 4-70

Multicast and Anycast, 224.0.0.0 - 239.255.255.255


mc:/Users/copeland root# tcpdump -nvli en0 'ip[16]==224'
tcpdump: listening on en0, link-type EN10MB (Ethernet), capture size 96 bytes

08:04:06 IP (tos 0xc0,ttl 1, id 31543, off 0, len:116)199.77.146.1 > 224.0.0.5: OSPFv2, Hello (1), len:80 [len 44] 08:04:09 IP (tos 0xc0,ttl 1, id 31568, off 0, len:54) 199.77.146.1 > 224.0.0.13: pim v2 Hello (Hold-time 1m45s (Genid: 0xdf5b6033)(DR-Priority: 1)(State Refresh Capable;v1) 08:04:15 IP (tos 0xc0,ttl 1, id 31584, off 0, len:28) 199.77.146.1 > 224.0.0.1: igmp query v2
08:04:16 IP (tos 0xc0,ttl 1, id 31610, off 0, len:116)199.77.146.1 > 224.0.0.5: OSPFv2, Hello (1), len:80 [len 44] 08:04:19 IP (tos 0x0, ttl 1, id 32954, off 0, len:28) 199.77.146.99> 224.0.1.60: igmp v1 report 224.0.1.60 08:04:23 IP (tos 0x0, ttl 1, id 2665, off 0, len:32, opt:4 199.77.146.101 > 224.0.0.251: igmp v2 report 224.0.0.251 08:04:26 IP (tos 0xc0,ttl 1, id 31680, off 0, len:116)199.77.146.1 > 224.0.0.5: OSPFv2, Hello (1), len:80 [len 44] 08:04:39 IP (tos 0xc0,ttl 1, id 31814, off 0, len:54) 199.77.146.1 > 224.0.0.13: pim v2 Hello (Hold-time 1m45s) (Genid: 0xdf5b6033)(DR-Priority: 1)(State Refresh Capable;v1) 08:04:56 IP (tos 0xc0,ttl 1, id 31988, off 0, len:116)199.77.146.1 > 224.0.0.5: OSPFv2, Hello (1), len:80 [len 44] 08:05:15 IP (tos 0xc0,ttl 1, id 35789, off 0, len:28) 199.77.146.1 > 224.0.0.1: igmp query v2

igmp and pim are multicast protocols. OSPF routing uses "anycast" All 3 use "ttl 1" only reaches neighbors
Network Layer 4-71