Download CS244a: An Introduction to Computer Networks

Document related concepts

Backpressure routing wikipedia , lookup

IEEE 1355 wikipedia , lookup

Deep packet inspection wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Distributed firewall wikipedia , lookup

Internet protocol suite wikipedia , lookup

Network tap wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Piggybacking (Internet access) wikipedia , lookup

Peering wikipedia , lookup

Computer network wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

Airborne Networking wikipedia , lookup

Peer-to-peer wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Routing wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Transcript
Routing: Network Layer Part II
•
Routing Algorithms:
–
•
Routing in the Internet
–
–
–
•
Link state vs. Distance Vector
Intra-AS vs. Inter-AS routing
Intra-AS: RIP and OSPF
Inter-AS: BGP and Policy Routing
MPLS
Readings: Textbook: Chapter 4:
Sections 4.2-4.3, 4.5-4.6
Csci 232 – Computer Networks
Routing and Network Layer Part II
1
Routing & Forwarding:
Logical View of a Router
5
A
2
1
B
2
D
3
3
1
C
5
1
E
F
2
Csci 232 – Computer Networks
Routing and Network Layer Part II
2
IP Forwarding Process
1. Remove a packet
from an input
queue
2. Check for sanity,
decrement TTL
field
4. Place packet on
correct output
queue
Forwarding Process
3. Match packet’s
destination to
a table entry
If queues
get full, just
drop packets!
If queues
get full, just
drop packets!
IP Forwarding Table
Router
Csci 232 – Computer Networks
3
IP Forwarding Table
Destination
Net A
Net B
Net C, Host 3
Net C
A destination is usually
a network. May also be
a host, or a “gateway
of last resort” (default)
Csci 232 – Computer Networks
Next Hop
Router 1
Direct
Router 2
Router 1
The next hop is either a
directly connected network
or a router on a directly
connected network
Interface
INT 7
INT 4
INT 3
INT 7
A physical interface
4
How Are Forwarding Tables
Populated to Implement Routing?
Dynamically
Statically
Administrator
manually configures
forwarding table entries
+ More control
+ Not restricted to
destination-based
forwarding
- Doesn’t scale
- Slow to adapt to
network failures
Routers exchange network reachability
information using ROUTING PROTOCOLS.
Routers use this to compute best routes
+ Can rapidly adapt to changes
in network topology
+ Can be made to scale well
- Complex distributed algorithms
- Consume CPU, Bandwidth, Memory
- Debugging can be difficult
- Current protocols are destination-based
In practice : a mix of these.
Static routing mostly at the “edge”
Csci 232 – Computer Networks
5
Dynamic Routing: Intra- vs. Inter-AS
OSPF
BGP
AS 1
IGP = Interior Gateway Protocol
Metric based: OSPF, IS-IS, RIP,
EIGRP (cisco)
EGP = Exterior Gateway Protocol
EIGRP
AS 2
Policy based: BGP
The Routing Domain of BGP is the entire Internet
Csci 232 – Computer Networks
Routing and Network Layer Part II
6
Internet AS Hierarchy
border (exterior gateway) routers
interior routers
Csci 232 – Computer Networks
Routing and Network Layer Part II
7
Intra-AS vs. Inter-AS Routing
C.b
a
Host
h1
C
A.a
b
Inter-AS
routing
between
A and B
A.c
a
d
c
b
A
Intra-AS routing
within AS A
Csci 232 – Computer Networks
B.a
a
c
B
Host
h2
b
Intra-AS routing
within AS B
Routing and Network Layer Part II
8
Intra-AS and Inter-AS Routing
C.b
a
C
A.a
b
A.c
d
A
a
b
“Gateways”:
B.a
a
c
B
b
c
•perform interAS routing
amongst
themselves
•perform intraAS routing with
other routers in
their AS
network layer
inter-AS, intra-AS
routing in
gateway A.c
Csci 232 – Computer Networks
link layer
physical layer
Routing and Network Layer Part II
9
Where Does Forwarding Table Come From?
BGP
RIP Process
BGP Process
RIP Routing tables
BGP Routing tables
OSPF Process
OSPF Routing tables
RIP
Domain
OSPF
Domain
Forwarding Table Manager
Forwarding Table
Csci 232 – Computer Networks
10
Routing
• Goal: determine a “good” path through
the network from source to destination
– Good means usually the shortest path
• Network modeled as a graph
5
– Routers  nodes
– Link edges
• Edge cost: delay, congestion level,…
2
A
B
2
1
D
Csci 232 – Computer Networks
Routing and Network Layer Part II
3
C
3
1
5
F
1
E
2
11
Basic Routing Problem
• Assume
– A network with N nodes, where each
edge is associated a cost
– A node knows only its neighbors and the
cost to reach them
• How does each node learn how
to reach every other node
along the shortest path?
A
5
2
B
2
1
D
Csci 232 – Computer Networks
Routing and Network Layer Part II
3
C
3
1
5
F
1
2
E
12
Routing: Issues
• How are routing tables determined?
• Who determines table entries?
• What info is used in determining table
entries?
• When do routing table entries change?
• Where is routing info stored?
• How to control routing table size?
Answer these questions, we are done!
Csci 232 – Computer Networks
Routing and Network Layer Part II
13
Routing Paradigms
• Hop-by-hop Routing
– Each packet contains destination address
– Each router chooses next-hop to destination
• routing decision made at each (intermediate) hop!
• packets to same destination may take different paths!
– Example: IP’s default datagram routing
• Source Routing
– Sender selects the path to destination precisely
– Routers forward packet to next-hop as specified
• Problem: if specified path no longer valid due to link failure!
– Example:
• IP’s loose/strict source route option
• virtual circuit setup phase in ATM (or MPLS)
Csci 232 – Computer Networks
Routing and Network Layer Part II
14
Routing Algorithms/Protocols
Issues Need to Be Addressed:
• Route selection may depend on different criteria
– Performance: choose route with the smallest delay
– Policy: choose a route that doesn’t cross .gov network
• Adapt to changes in network topology or condition
– Self-healing: little or no human intervention
• Scalability
– Must be able to support a large number of hosts, routers
Csci 232 – Computer Networks
Routing and Network Layer Part II
15
Centralized vs. Distributed
Routing Algorithms
Centralized:
• A centralized route server collects routing information and
network topology, makes route selection decisions, then
distributes them to routers
Distributed:
• Routers cooperate using a distributed protocol
– to create mutually consistent routing tables
• Two standard distributed routing algorithms
– Link State (LS) routing
– Distance Vector (DV) routing
Csci 232 – Computer Networks
Routing and Network Layer Part II
16
Link State vs Distance Vector
• Both assume that
– The address of each neighbor is known
– The cost of reaching each neighbor is known
• Both find global information
– By exchanging routing info among neighbors
• Differ in the information exchanged and
route computation
– LS: tells every other node its distances to neighbors
– DV: tells neighbors its distance to every other node
Csci 232 – Computer Networks
Routing and Network Layer Part II
17
Link State Algorithm
• Basic idea: Distribute link state packet to
all routers
– Topology of the network
• Cost of each link in the network
• Each router independently computes
optimal paths
– From itself to every destination
– Routes are guaranteed to be loop free if
• Each router sees the same cost for each link
• Uses the same algorithm to compute the best path
Csci 232 – Computer Networks
Routing and Network Layer Part II
18
Link State: Control Traffic
• Each node floods its local information to every
other node in the network
• Each node ends up knowing the entire network
topology  use Dijkstra to compute the shortest
path to every other node
Host C
Host D
Host A
N1
N2
N3
N5
Host B
Host E
N4
N6
Csci 232 – Computer Networks
Routing and Network Layer Part II
N7
19
Link State: Node State
C
C
A
Host C
D
A
C
A
D
D
Host D
Host A
B
B
E
B
N2
N1
E
E
C
A
D
N3
C
A
D
B
E
N5
B
Host B
C
A
C
E
A
D
B
N4
N6
Csci 232 – Computer Networks
D
B
E
Routing and Network Layer Part II
Host EE
N7
20
Topology Dissemination
• Each router creates a set of link state
packets (LSPs)
– Describing its links to neighbors
– LSP contains
• Router id, neighbor’s id, and cost to its neighbor
• Copies of LSPs are distributed to all
routers
– Using controlled flooding
• Each router maintains a topology database
– Database containing all LSPs
Csci 232 – Computer Networks
Routing and Network Layer Part II
21
Topology Database: Example
5
2
A
B
3
2
1
D
C
F
1
3
1
5
E
2
link state database
Csci 232 – Computer Networks
Routing and Network Layer Part II
22
Constructing Routing Table:
Dijkstra’s Algorithm
• Given the network topology
– How to compute the shortest path to each destination?
• Some notation
– X: source node
– N: set of nodes to which shortest paths are known so far
• N is initially empty
– D(V): the cost of the known shortest path from source X
to V
– C(U,V): cost of link U to V
• C(U,V) =  if not neighbors
Csci 232 – Computer Networks
Routing and Network Layer Part II
23
Algorithm (at Node X)
• Initialization
– N = {X}
– For all nodes V
• If V adjacent to X, D(V) = C(X,V) else D(V) = 
• Loop
– Find U not in N such that D(U) is the smallest
– Add U into set N
– Update D(V) for all V not in N
• D(V) = min{D(V), D(U) + C(U,V)}
– Until all nodes in N
Csci 232 – Computer Networks
Routing and Network Layer Part II
24
Example: Dijkstra’s Algorithm
Step
0
1
2
3
4
5
start N
A
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


2,A
1,A
5,A
5
2
A
B
2
1
D
3
C
3
1
Csci 232 – Computer Networks
5
F
1
E
2
1 Initialization:
2 N = {A};
3 for all nodes v
4
if v adjacent to A
5
then D(v) = c(A,v);
6
else D(v) = ;
…
Routing and Network Layer Part II
25
Example: Dijkstra’s Algorithm
Step
0
1
2
3
4
5
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


2,A
1,A
5,A

4,D
2,D
start N
A
AD
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
Csci 232 – Computer Networks
2
…
8 Loop
9
find w not in N s.t. 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 until all nodes in N;
Routing and Network Layer Part II
26
Example: Dijkstra’s Algorithm
Step
0
1
2
3
4
5
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


2,A
1,A
5,A

4,D
2,D
3,E
4,E
start N
A
AD
ADE
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
Csci 232 – Computer Networks
2
…
8 Loop
9
find w not in N s.t. 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 until all nodes in N;
Routing and Network Layer Part II
27
Example: Dijkstra’s Algorithm
Step
0
1
2
3
4
5
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


2,A
1,A
5,A

4,D
2,D
3,E
4,E
start N
A
AD
ADE
ADEB
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
Csci 232 – Computer Networks
2
…
8 Loop
9
find w not in N s.t. 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 until all nodes in N;
Routing and Network Layer Part II
28
Example: Dijkstra’s Algorithm
Step
0
1
2
3
4
5
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


2,A
1,A
5,A

4,D
2,D
3,E
4,E
start N
A
AD
ADE
ADEB
ADEBC
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
Csci 232 – Computer Networks
2
…
8 Loop
9
find w not in N s.t. 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 until all nodes in N;
Routing and Network Layer Part II
29
Example: Dijkstra’s Algorithm
Step
0
1
2
3
4
5
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


2,A
1,A
5,A

4,D
2,D
3,E
4,E
start N
A
AD
ADE
ADEB
ADEBC
ADEBCF
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
Csci 232 – Computer Networks
2
…
8 Loop
9
find w not in N s.t. 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 until all nodes in N;
Routing and Network Layer Part II
30
Dijkstra’s Algorithm: In a Nutshell
Step
0
1
2
3
4
5
start N
A
AD
ADE
ADEB
ADEBC
ADEBCF
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
2,A
1,A
5,A
infinity
infinity
2,A
4,D
2,D
infinity
2,A
3,E
4,E
3,E
4,E
4,E
5
2
A
2
1
Csci 232 – Computer Networks
B
D
3
C
3
1
5
F
1
E
2
Routing and Network Layer Part II
31
Routing Table Computation
5
2
dest next
B
C
D
E
F
B
D
D
D
D
A
3
B
2
1
Csci 232 – Computer Networks
D
C
F
1
3
1
5
E
Routing and Network Layer Part II
2
32
Distance Vector Routing
• A router tells neighbors its distance to every
router
– Communication between neighbors only
• Based on Bellman-Ford algorithm
– Computes “shortest paths”
• Each router maintains a distance table
– A row for each possible destination
– A column for each neighbor
• DX(Y,Z) : distance from X to Y via Z
• Exchanges distance vector (the table) with
neighbors
– Distance vector: current least cost to each destination
Csci 232 – Computer Networks
Routing and Network Layer Part II
33
Distance Vector: Control Traffic
• When the routing table of a node changes, the node
sends its table to its neighbors
• A node updates its table with information received
from its neighbors
Host C
Host D
Host A
N1
N2
N3
N5
Host B
Host E
N4
N6
Csci 232 – Computer Networks
Routing and Network Layer Part II
N7
34
Distance Table: Example
cost to destination via
E
6
A
B
1
C
E
A
B
D
A
1
14
11
B
7
8
5
C
8
9
4
D 10
11
2
2
8
1
D ()
2
Csci 232 – Computer Networks
D
Routing and Network Layer Part II
35
Distance Table to Routing Table
cost to destination via
E
D ()
A
B
A
1
14
5
B
7
8
5
C
6
9
4
D
4
11
D
2
Distance table
Csci 232 – Computer Networks
Outgoing link
to use, cost
A
A,1
B
D,5
C
D,4
D
D,2
Routing table
Routing and Network Layer Part II
36
Distance Vector Routing Algorithm
iterative:
Distance Table data structure
• continues until no
nodes exchange info.
• self-terminating: no
“signal” to stop
•
•
•
asynchronous:
• nodes need not
exchange info/iterate
in lock step!
distributed:
• each node talks only
with directly-attached
neighbors
Csci 232 – Computer Networks
•
each node has its own
row for each possible destination
column for each directly-attached
neighbor to node
example: in node X, for dest. Y via
neighbor Z:
X
D (Y,Z)
distance from X to
= Y, via Z as next hop
Z
= c(X,Z) + minw {D (Y,w)}
Routing and Network Layer Part II
37
Distance Vector Routing: Overview
Iterative, asynchronous:
each iteration caused by:
• local link cost change
• message from neighbor: its
least cost path change
from neighbor
Distributed:
• each node notifies
neighbors only when its
least cost path to any
destination changes
– neighbors then notify
their neighbors if
necessary
Csci 232 – Computer Networks
Each node:
wait for (change in local
link cost or msg from
neighbor)
recompute distance table
if least cost path to any
dest has changed, notify
neighbors
Routing and Network Layer Part II
38
Distance Vector Algorithm: Example
X
2
Y
7
1
Z
Z
X
D (Y,Z) = c(X,Z) + minw {D (Y,w)}
= 7+1 = 8
Y
X
D (Z,Y) = c(X,Y) + minw {D (Z,w)}
= 2+1 = 3
Csci 232 – Computer Networks
Routing and Network Layer Part II
39
Distance Vector Algorithm: Example
X
2
Y
7
1
Z
Csci 232 – Computer Networks
Routing and Network Layer Part II
40
Convergence of DV Routing
• router detects local link cost change
• updates distance table
• if cost change in least cost path, notify
neighbors
1
X
4
Y
50
1
Z
algorithm
terminates
“good
news
travels
fast”
Csci 232 – Computer Networks
Routing and Network Layer Part II
41
Problems with DV Routing
Link cost changes:
• good news travels fast
• bad news travels slow
– “count to infinity” problem!
60
X
4
Y
50
1
Z
algorithm
continues
on!
Csci 232 – Computer Networks
Routing and Network Layer Part II
42
Count-to-Infinity Problem
1
X
1
Y
Z
2
Csci 232 – Computer Networks
Routing and Network Layer Part II
43
“Fixes” to Count-to-Infinity Problem
• Split horizon
– A router never advertises the cost of a
destination to a neighbor
• If this neighbor is the next hop to that destination
• Split horizon with poisonous reverse
– If X routes traffic to Z via Y, then
• X tells Y that its distance to Z is infinity
– Instead of not telling anything at all
– Accelerates convergence
Csci 232 – Computer Networks
Routing and Network Layer Part II
44
Split Horizon with Poisoned Reverse
If Z routes through Y to get to X :
• Z tells Y its (Z’s) distance to X is
infinite (so Y won’t route to X via Z)
60
X
4
Y
50
1
Z
algorithm
terminates
Csci 232 – Computer Networks
Routing and Network Layer Part II
45
Count-to-Infinity Problem
Revisited
X
Y
Z
W
Csci 232 – Computer Networks
Routing and Network Layer Part II
46
Link State vs Distance Vector
• Tells everyone about
neighbors
• Controlled flooding to
exchange link state
• Dijkstra’s algorithm
• Each router computes
its own table
• May have oscillations
• Open Shortest Path
First (OSPF)
Csci 232 – Computer Networks
• Tells neighbors about
everyone
• Exchanges distance
vectors with neighbors
• Bellman-Ford
algorithm
• Each router’s table is
used by others
• May have routing loops
• Routing Information
Protocol (RIP)
Routing and Network Layer Part II
47
Link State vs. Distance Vector (cont’d)
Message complexity
• LS: O(n2*e) messages
Robustness: what happens
if router malfunctions?
• LS:
– n: number of nodes
– e: number of edges
• DV: O(d*n*k) messages
– d: node’s degree
– k: number of rounds
Time complexity
• LS: O(n*log n)
• DV: O(n)
Convergence time
• LS: O(1)
• DV: O(k)
Csci 232 – Computer Networks
– node can advertise
incorrect link cost
– each node computes only
its own table
• DV:
– node can advertise
incorrect path cost
– each node’s table used by
others; error propagate
through network
Routing and Network Layer Part II
48
Routing in the Real World
Our routing study thus far - idealization
• all routers identical
• network “flat”
How to do routing in the Internet
• scalability and policy issues
scale: with 200 million
destinations:
• can’t store all dest’s in
routing tables!
• routing table exchange
would swamp links!
Csci 232 – Computer Networks
administrative autonomy
• internet = network of
networks
• each network admin may
want to control routing in its
own network
Routing and Network Layer Part II
49
Routing in the Internet
• The Global Internet consists of Autonomous Systems
(AS) interconnected with each other hierarchically:
– Stub AS: small corporation: one connection to other AS’s
– Multihomed AS: large corporation (no transit): multiple
connections to other AS’s
– Transit AS: provider, hooking many AS’s together
• Two-level routing:
– Intra-AS: administrator responsible for choice of
routing algorithm within network
– Inter-AS: unique standard for inter-AS routing: BGP
Csci 232 – Computer Networks
Routing and Network Layer Part II
50
Internet Architecture
Internet: “networks of networks”!
NAP
Internic
International
lines
regional
network
national
network
ISP
company
on-line
services
ISP
university
company
access via
modem
LANs
Csci 232 – Computer Networks
Routing and Network Layer Part II
51
Internet AS Hierarchy
Inter-AS border (exterior gateway) routers
Intra-AS interior (gateway) routers
Csci 232 – Computer Networks
Routing and Network Layer Part II
52
Intra-AS vs. Inter-AS Routing
C.b
a
Host
h1
C
A.a
b
Inter-AS
routing
between
A and B
A.c
a
d
c
b
A
Intra-AS routing
within AS A
Csci 232 – Computer Networks
B.a
a
c
B
Host
h2
b
Intra-AS routing
within AS B
Routing and Network Layer Part II
53
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, update traffic
Performance:
• Intra-AS: can focus on performance
• Inter-AS: policy may dominate over performance
Csci 232 – Computer Networks
Routing and Network Layer Part II
54
Intra-AS and Inter-AS Routing
C.b
a
C
A.a
b
A.c
d
A
a
b
“Gateways”:
B.a
a
c
B
b
c
•perform interAS routing
amongst
themselves
•perform intraAS routers with
other routers in
their AS
network layer
inter-AS, intra-AS
routing in
gateway A.c
Csci 232 – Computer Networks
link layer
physical layer
Routing and Network Layer Part II
55
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
– IS-IS: Intermediate System to Intermediate
System (OSI Standard)
– EIGRP: Extended Interior Gateway Routing
Protocol (Cisco proprietary)
Csci 232 – Computer Networks
Routing and Network Layer Part II
56
RIP ( Routing Information Protocol)
• Distance vector algorithm
• Included in BSD-UNIX Distribution in 1982
• Distance metric: # of hops (max = 15 hops)
Number of hops from source router A to various subnets:
u
v
A
z
C
Csci 232 – Computer Networks
B
D
w
x
y
destination hops
u
1
v
2
w
2
x
3
y
3
z
2
Routing and Network Layer Part II
57
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
Csci 232 – Computer Networks
Routing and Network Layer Part II
58
RIP: Example
z
w
A
x
D
y
B
C
Destination Network
w
y
z
x
….
Next Router
Num. of hops to dest.
….
....
A
B
B
--
2
2
7
1
Routing table in D
Csci 232 – Computer Networks
Routing and Network Layer Part II
59
RIP: Example
Dest
w
x
z
….
Next
C
…
w
hops
4
...
A
Advertisement
from A to D
z
x
Destination Network
w
y
z
x
….
Csci 232 – Computer Networks
D
y
B
C
Next Router
Num. of hops to dest.
….
....
A
B
B A
--
Routing and Network Layer Part II
Routing table in D
2
2
7 5
1
60
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 = 16 hops)
Csci 232 – Computer Networks
Routing and Network Layer Part II
61
RIP Table processing
• RIP routing tables managed by application-level
process called route-d (daemon)
• advertisements sent in UDP packets, periodically
repeated
routed
routed
Transprt
(UDP)
network
(IP)
Transprt
(UDP)
forwarding
table
forwarding
table
link
link
physical
Csci 232 – Computer Networks
network
(IP)
physical
Routing and Network Layer Part II
62
OSPF (Open Shortest Path First)
• “open”: publicly available
• Uses Link State algorithm
– LS packet dissemination
– Topology map at each node
– Route computation using Dijkstra’s algorithm
• OSPF advertisement carries one entry per neighbor
router
• Advertisements disseminated to entire AS (via
flooding)
– Carried in OSPF messages directly over IP (rather than TCP or UDP
Csci 232 – Computer Networks
Routing and Network Layer Part II
63
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.
Csci 232 – Computer Networks
Routing and Network Layer Part II
64
Hierarchical OSPF
Csci 232 – Computer Networks
Routing and Network Layer Part II
65
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.
– Communications between areas via backbone
• 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 AS’s.
Csci 232 – Computer Networks
Routing and Network Layer Part II
66
Inter-AS Routing in the Internet: BGP
R4
R5
R3
BGP
AS1
AS2
(RIP intra-AS
routing)
(OSPF
intra-AS
routing)
BGP
R1
R2
AS3
(OSPF intra-AS
routing)
Figure 4.5.2-new2: BGP use for inter-domain routing
Csci 232 – Computer Networks
Routing and Network Layer Part II
67
Internet inter-AS routing: BGP
• BGP (Border Gateway Protocol): the de
facto standard
• BGP provides each AS a means to:
1. Obtain subnet reachability information from neighboring
ASs.
2. Propagate the reachability information to all routers
internal to the AS.
3. Determine “good” routes to subnets based on
reachability information and policy.
• Allows a subnet to advertise its existence
to rest of the Internet: “I am here”
Csci 232 – Computer Networks
Routing and Network Layer Part II
68
BGP basics
• Pairs of routers (BGP peers) exchange routing info over semipermanent TCP conctns: BGP sessions
• Note that BGP sessions do not correspond to physical links.
• When AS2 advertises a prefix to AS1, AS2 is 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
2a
1c
1d
1b
2c
AS2
2b
eBGP session
Csci 232 – Computer Networks
Routing and Network Layer Part II
iBGP session
69
Distributing reachability info
• With eBGP session between 3a and 1c, AS3 sends prefix
reachability info to AS1.
• 1c can then use iBGP to distribute this new prefix reach info
to all routers in AS1
• 1b can then re-advertise the new reach info to AS2 over the
1b-to-2a eBGP session
• When router learns about a new prefix, it creates an entry
for the prefix in its forwarding table.
3c
3a
3b
AS3
1a
AS1
2a
1c
1d
1b
2c
AS2
2b
eBGP session
Csci 232 – Computer Networks
Routing and Network Layer Part IIiBGP session
70
Path attributes & BGP routes
• When advertising a prefix, advert includes BGP
attributes.
– prefix + attributes = “route”
• Two important attributes:
– AS-PATH: contains the ASs through which the advert for the
prefix passed: AS 67 AS 17
– NEXT-HOP: Indicates the specific internal-AS router to nexthop AS. (There may be multiple links from current AS to nexthop-AS.)
• When gateway router receives route advert, uses
import policy to accept/decline.
Csci 232 – Computer Networks
Routing and Network Layer Part II
71
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
Csci 232 – Computer Networks
Routing and Network Layer Part II
72
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
Csci 232 – Computer Networks
Routing and Network Layer Part II
73
BGP routing policy
legend:
B
W
provider
network
X
A
customer
network:
C
Y
Figure 4.5-BGPnew: a simple BGP scenario
• 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
Csci 232 – Computer Networks
Routing and Network Layer Part II
74
BGP routing policy (2)
legend:
B
W
provider
network
X
A
customer
network:
C
Y
• A advertises to B the path AW
• B advertises to X the path BAW
• Should B advertise to C the path BAW?
Figure 4.5-BGPnew: a simple BGP scenario
– No way! B gets no “revenue” for routing CBAW since neither W nor
C are B’s customers
– B wants to force C to route to w via A
– B wants to route only to/from its customers!
Csci 232 – Computer Networks
Routing and Network Layer Part II
75
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
Csci 232 – Computer Networks
Routing and Network Layer Part II
76
Multi-Protocol Label Switching (MPLS)
• initial goal: speed up IP forwarding by using fixed
length label (instead of IP address) to do
forwarding
– borrowing ideas from Virtual Circuit (VC) approach
– but IP datagram still keeps IP address!
PPP or Ethernet
header
MPLS header
label
20
Csci 232 – Computer Networks
IP header
remainder of link-layer frame
Exp S TTL
3
1
5
Routing and Network Layer Part II
77
MPLS Capable Routers
• a.k.a. label-switched router
• forwards packets to outgoing interface based
only on label value (don’t inspect IP address)
– MPLS forwarding table distinct from IP forwarding tables
• signaling protocol needed to set up forwarding
– RSVP-TE, LDP
– forwarding possible along paths that IP alone would not allow
(e.g., least cost path routing) !!
– use MPLS for traffic engineering
• must co-exist with IP-only routers
Csci 232 – Computer Networks
Routing and Network Layer Part II
78
MPLS Forwarding Tables
in
label
out
label dest
out
interface
10
12
A
D
0
0
in
label
8
A
1
10
12
out
label dest
6
9
out
interface
A
D
1
0
R6
0
R4
R5
1
R3
0
1
D
0
0
R2
in
label
8
out
label dest
6
Csci 232 – Computer Networks
A
out
interface
in
label
6
outR1
label dest
-
A
A
out
interface
0
0
Routing and Network Layer Part II
79
Why Mobile IP?
• Need a protocol which allows network
connectivity across host movement
• Protocol to enable mobility must not
require massive changes to router
software, etc.
• Must be compatible with large installed
base of IPv4 networks/hosts
• Confine changes to mobile hosts and a
few support hosts which enable mobility
Csci 232 – Computer Networks
Routing and Network Layer Part II
80
Internet Protocol (IP)
• Network layer, "best-effort" packet delivery
• Supports UDP and TCP (transport layer protocols)
• IP host addresses consist of two parts
– network id + host id
• By design, IP host address is tied to home network
address
– Hosts are assumed to be wired, immobile
– Intermediate routers look only at network address
– Mobility without a change in IP address results in
un-route-able packets
Csci 232 – Computer Networks
Routing and Network Layer Part II
81
IP Routing Breaks Under Mobility
.50
.52
.53
router
137.30.2.*
.200
router
139.20.3.*
Why this hierarchical approach? Answer: Scalability!
Millions of network addresses, billions of hosts!
Csci 232 – Computer Networks
Routing and Network Layer Part II
82
Mobile IP: Basics
• Proposed by IETF (Internet Engineering Task
Force)
– Standards development body for the Internet
• Mobile IP allows a mobile host to move about
without changing its permanent IP address
• Each mobile host has a home agent on its home
network
• Mobile host establishes a care-of address when
it's away from home
Csci 232 – Computer Networks
Routing and Network Layer Part II
83
Mobile IP: Basics, Cont.
• Correspondent host is a host that wants to send
packets to the mobile host
• Correspondent host sends packets to the mobile
host’s IP permanent address
• These packets are routed to the mobile host’s
home network
• Home agent forwards IP packets for mobile host
to current care-of address
• Mobile host sends packets directly to
correspondent, using permanent home IP as
source IP
Csci 232 – Computer Networks
Routing and Network Layer Part II
84
Mobile IP: Basics, Cont.
correspondent host
Csci 232 – Computer Networks
home agent
Routing and Network Layer Part II
85
Mobile IP: Care-of Addresses
• Whenever a mobile host connects to a remote
network, two choices:
– care-of can be the address of a foreign agent on the remote
network
• foreign agent delivers packets forwarded from home agent
to mobile host
– care-of can be a temporary, foreign IP address obtained
through, e.g., DHCP
• home agent tunnels packets directly to the temporary IP
address
• Regardless, care-of address must be registered
with home agent
Csci 232 – Computer Networks
Routing and Network Layer Part II
86
IP-in-IP Tunneling
• Packet to be forwarded is encapsulated
in a new IP packet
• In the new header:
– Destination = care-of-address
– Source = address of home agent
– Protocol number = IP-in-IP
IP header
data
Csci 232 – Computer Networks
IP header
IP header
data
Routing and Network Layer Part II
87
At the Other End...
• Depending on type of care-of address:
– Foreign agent or
– Mobile host
• … strips outer IP header of tunneled
packet, which is then fed to the mobile
host
• Aside: Any thoughts on advantages of
foreign agent vs. co-located (foreign IP)
address?
Csci 232 – Computer Networks
Routing and Network Layer Part II
88
Routing Inefficiency
Mobile host and correspondent host
might even be on the same
network!!
correspondent host
Csci 232 – Computer Networks
home agent
Routing and Network Layer Part II
89
Route Optimizations
• Possible Solution:
– Home agent sends current care-of address to correspondent
host
– Correspondent host caches care-of address
– Future packets tunneled directly to care-of address
• But!
– An instance of the cache consistency problem arises...
– Cached care-of address becomes stale when the mobile host
moves
– Potential security issues with providing care-of address to
correspondent
Csci 232 – Computer Networks
Routing and Network Layer Part II
90
Possible Route Optimization
Csci 232 – Computer Networks
Routing and Network Layer Part II
91
Network Layer Part II Summary
• Network Layer Routing
– Basic Issues
– Distributed Routing Algorithms: LS vs. DV
– Link State (LS): How does it work?
– Distance Vector (DV): How does it work? Issues?
– Mobile IP: how does it work? Issues?
– MPLS
• Routing in the Internet
– Intra-AS vs. Inter-AS routing
– Intra-AS: RIP and OSPF
– Inter-AS: BGP and Policy Routing
• Things we didn’t cover: VPN, IP Multicast, IPv6 (but please
read by yourself!)
Csci 232 – Computer Networks
Routing and Network Layer Part II
92