Title: COMSCSEE 4140 Networking Laboratory Lecture 05
1COMS/CSEE 4140 Networking LaboratoryLecture 05
- Salman Abdul Baset
- Spring 2008
2Announcements
- Lab 4 (1-4) due next week before your lab slot
- Assignment 2 due next Monday
- Class participation
- Help me update the router/linux commands
- Glossary
- Lab participation
- TAs / myself will ask random questions
- Midterm (March 10th, duration 1.5 hours)
- Projects
3Previous Lecture
- CIDR multi-homing and IP forwarding
- The Internet
- IETF, IRTF, IESG, IRB
- IANA, ICANN
- IETF (eight areas, 119 WGs)
- Routing protocols
- Distance vector vs. link state
- Intra-domain vs. inter-domain (IGP vs. EGP)
- Routing Information Protocol (RIP)
4Previous Lecture The Count-to-Infinity Problem
A
B
C
1
1
5Agenda
- Routing Information Protocol (RIPv2)
- Link state protocols
- Open Shortest Path First (OSPF)
- Autonomous Systems (AS)
6The Gang of Four
7RIP - History
- Late 1960s Distance Vector protocols were used
in the ARPANET - Mid-1970s XNS (Xerox Network system) routing
protocol is the precursor of RIP in IP (and
Novells IPX RIP and Apples routing protocol) - 1982 Release of routed for BSD Unix
- 1988 RIPv1 (RFC 1058) - classful routing
- 1993 RIPv2 (RFC 1388) - adds subnet masks
with each route entry - allows classless
routing - 1997 RIPng (IPv6)
- 1998 Current version of RIPv2 (RFC 2453) and
Internet standard (STD 56) (IPv4)
8Routing Information Protocol
- RIPv2
- Subnet masks, next hop addresses, authentication
(plain text), multicast (instead of broad cast) - Count-to-infinity solution
- Split-horizon
- Hold-down timer
- Triggered updates
A
B
C
1
1
A never advertises to B that its path to C goes
through B
A
B
C
1
1
B ignores any updates for the link B-C for a
hold-down time
A
B
C
1
1
B immediately advertises that its link is down.
9Routing Information Protocol
- Looping solution (for RIP messages)
- Maximum number of hops is 16.
- Link costs
- Always one or 16 (link-down)
- RIP timers
- per table update (30s /- 0 to 5) send complete
routing table in unsolicited response to every
neighbor router. - per entry each entry has a timeout timer (180s)
- per entry route-flush timer (120s)
- Dedicated port
- UDP port 520 (msgs sent and rcvd on this port)
- Complete or partial routing table?
- Complete (may spread over multiple fragments)
- No reliable delivery
- Multicast
- 224.0.0.9
10RIPv1 Packet Format
1 RIPv1
1 request2 response
2 for IP 00 request full rou-ting table
Address of destination
Cost (measured in hops)
One RIP message can have up to 25 route
entries20x25500 bytes 8 (RIP hdr) 8 (UDP)
20 (IP)536 bytes
11RIPv2
- RIPv2 is an extends RIPv1
- Subnet masks are carried in the route information
- Authentication of routing messages
- Route information carries next-hop address
- Exploits IP multicasting
- Extensions of RIPv2 are carried in unused fields
of RIPv1 messages
12RIPv2 Packet Format
2 RIPv2
1 request2 response
2 for IP 00 request full rou-ting table
Address of destination
Cost (measured in hops)
One RIP message can have up to 25 route entries
13RIPv2 Packet Format
2 RIPv2
Used to carry information from other routing
protocols (e.g., autonomous system number)
Subnet mask for IP address
Identifies a better next-hop address on the same
subnet than the advertising router, if one exists
(otherwise 0.0)
Any problems?
14RIP Messages
- Dedicated port for RIP is UDP port 520.
- Two types of messages
- Request messages
- used to ask neighboring nodes for an update
- Response messages
- contains an update
15Routing with RIP
- Initialization Send a request packet (command
1, address family0..0) on all interfaces - RIPv1 uses broadcast if possible,
- RIPv2 uses multicast address 224.0.0.9, if
possible - requesting routing tables from neighboring
routers - Request received Routers that receive above
request send their entire routing table - Response received Update the routing table
- Regular routing updates Every 30 /- 5 seconds,
send all or part of the routing tables to every
neighbor in an response message - Triggered Updates Whenever the metric for a
route change, send entire routing table.
16Agenda
- Routing Information Protocol (RIPv2)
- Link state protocols
- Open Shortest Path First (OSPF)
- Autonomous Systems
17Link State Routing
- Based on Dijkstra s Shortest-Path-First
algorithm. - Each router starts by knowing
- Prefixes of its attached networks.
- Links to its neighbors.
- Each router advertises to the entire network
(flooding) - Key idea synchronize state with directly
connected routers - Key idea ACK the flooded messages
- Prefixes of its directly connected networks
- Active links to its neighbors.
- Each router learns
- A complete topology of the network (routers,
links). - Each router computes shortest path to each
destination. - In a stable situation, all routers have the same
graph, and compute the same paths.
18Dijkstras Shortest Path Algorithm for a Graph
Input Graph (N,E) with N the set of nodes
and E the set of edges cvw link cost (cvw 1
if (v,w) ? E, cvv 0) s source node. Output
Dn cost of the least-cost path from node s to
node n M s for each n ? M Dn
csn while (M ? all nodes) do Find w ? M
for which Dw minDj j ? M Add w to
M for each neighbor n of w and n ? M Dn
min Dn, Dw cwn Update route end for
end while end for
19Link state routing graphical illustration
Global view
b
3
1
2
a
c
d
6
Collecting all views yield a global complete
view of the network!
20Operation of a Link State Routing Protocol
IP Routing Table
Dijkstras Algorithm
Link StateDatabase
ReceivedLSAs
LSAs are flooded to other interfaces
LSA link-state advertisement
21Link State Routing Properties
- Each node requires complete topology information
- Link state information must be flooded to all
nodes - Guaranteed to converge
22Distance Vector vs. Link State Routing
- With distance vector routing, each node has
information only about the next hop - Node A to reach F go to B
- Node B to reach F go to D
- Node D to reach F go to E
- Node E go directly to F
- Distance vector routing makespoor routing
decisions if directions are not
completelycorrect (e.g., because a node is
down). - If parts of the directions incorrect, the routing
may be incorrect until the routing algorithms has
re-converged.
A
B
C
F
D
E
23Distance Vector vs. Link State Routing
- In link state routing, each node has a complete
map of the topology - If a node fails, each node can calculate the
new route - Difficulty All nodes need to have a consistent
view of the network
A
B
C
F
D
E
24Distance Vector vs. Link State Routing
Link State
Vectoring
- Topology information is flooded within the
routing domain - Best end-to-end paths are computed locally at
each router. - Best end-to-end paths determine next-hops.
- Based on minimizing some notion of distance
- Works only if policy is shared and uniform
- Examples OSPF, IS-IS
- Each router knows little about network topology
- Only best next-hops are chosen by each router for
each destination network. - Best end-to-end paths result from composition of
all next-hop choices - Does not require any notion of distance
- Does not require uniform policies at all routers
- Examples RIP, BGP
25Agenda
- Routing Information Protocol (RIPv2)
- Link state protocols
- Open Shortest Path First (OSPF)
- Autonomous Systems
26OSPF
- OSPF Open Shortest Path First (Why Open?)
- The OSPF routing protocol is the most important
link state routing protocol on the Internet
(another link state routing protocol is IS-IS
(intermediate system to intermediate system) - The complexity of OSPF is significant
- RIP (RFC 2453 40 pages)
- OSPF (RFC 2328 250 pages)
- History
- 1989 RFC 1131 OSPF Version 1
- 1991 RFC 1247 OSPF Version 2
- 1994 RFC 1583 OSPF Version 2 (revised)
- 1997 RFC 2178 OSPF Version 2 (revised)
- 1998 RFC 2328 OSPF Version 2 (current version)
27Features of OSPF
- Provides authentication of routing messages
- Enables load balancing by allowing traffic to be
split evenly across routes with equal cost
(problem reordering) - Type-of-Service routing allows to setup different
routes dependent on the TOS field - Supports subnetting
- Supports multicasting
- Allows hierarchical routing
28Hierarchical OSPF
29Hierarchical 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.
30Example Network
10.1.7.6
10.1.1.1
10.1.1.2
10.1.4.4
.1
.2
.2
.4
.4
.6
10.1.7.0 / 24
10.1.4.0 / 24
10.1.1.0 / 24
.1
.2
.4
.6
Router IDs can be selected independent of
interface addresses, but usually chosen to be the
smallest interface address
10.1.6.0 / 24
10.1.3.0 / 24
10.1.8.0 / 24
10.1.2.0 / 24
.3
.5
.3
.5
.5
.3
10.1.5.0/24
10.1.2.3
10.1.5.5
- Link costs are called Metric
- Metric is in the range 0 , 216
- Metric can be asymmetric
31Link State Advertisement (LSA)
4
3
2
- The LSA of router 10.1.1.1 is as followsLink
State ID 10.1.1.1 Router IDAdvertising
Router 10.1.1.1 Router IDNumber of links
3 2 links plus router itselfDescription of
Link 1 Link ID 10.1.1.2, Metric
4Description of Link 2 Link ID 10.1.2.2,
Metric 3Description of Link 3 Link ID
10.1.1.1, Metric 0
32Network and Link State Database
Each router has a database which contains the
LSAs from all other routers
LS Type
Link
StateID
Adv. Router
Checksum
LS
SeqNo
LS Age
Router-LSA
10.1.1.1
10.1.1.1
0x9b47
0x80000006
0
Router-LSA
10.1.1.2
10.1.1.2
0x219e
0x80000007
1618
Router-LSA
10.1.2.3
10.1.2.3
0x6b53
0x80000003
1712
Router-LSA
10.1.4.4
10.1.4.4
0xe39a
0x8000003a
20
Router-LSA
10.1.5.5
10.1.5.5
0xd2a6
0x80000038
18
Router-LSA
10.1.7.6
10.1.7.6
0x05c3
0x80000005
1680
33Link State Database
- The collection of all LSAs is called the
link-state database - Each router has an identical link-state database
- Useful for debugging Each router has a complete
description of the network - If neighboring routers discover each other for
the first time, they will exchange their
link-state databases - The link-state databases are synchronized using
reliable flooding (flooded packets are
acknowledged using Link State Acknowledgement
packet)
34OSPF Packet Format
OSPF packets are not carried as UDP payload! OSPF
has its own IP protocol number 89
TTL set to 1 (in most cases)
Destination IP neighbors IP address or
224.0.0.5 (ALLSPFRouters) or 224.0.0.6
(AllDRouters)
35OSPF Packet Format
2 current version is OSPF V2
ID of the Area from which the packet originated
Message types 1 Hello (tests reachability) 2
Database description 3 Link state request 4
Link state update 5 Link state acknowledgement
0 no authentication 1 Cleartext password 2 MD5
checksum (added to end packet)
Standard IP checksum taken over entire packet
Authentication passwd 1 64 cleartext
password Authentication passwd 2 0x0000
(16 bits) KeyID (8 bits)
Length of MD5 checksum (8 bits)
Nondecreasing sequence number (32 bits)
Prevents replay attacks
36OSPF LSA Format
LSA Header
Link 1
Link 2
37Discovery of Neighbors
- Routers multicasts OSPF Hello packets on all
OSPF-enabled interfaces. - If two routers share a link, they can become
neighbors, and establish an adjacency - After becoming a neighbor, routers exchange their
link state databases
ScenarioRouter 10.1.10.2 restarts
38Neighbor discovery and database synchronization
ScenarioRouter 10.1.10.2 restarts
After neighbors are discovered the nodes exchange
their databases
Sends database description. (description only
contains LSA headers)
Sends empty database description
Acknowledges receipt of description
Database description of 10.1.10.2
39Regular LSA exchanges
10.1.10.2 explicitly requests each LSA from
10.1.10.1
10.1.10.1 sends requested LSAs
40Dissemination of LSA-Update
- A router sends and refloods LSA-Updates, whenever
the topology or link cost changes. (If a received
LSA does not contain new information, the router
will not flood the packet) - Exception Infrequently (every 30 minutes), a
router will flood LSAs even if there are not new
changes. - Acknowledgements of LSA-updates
- explicit ACK, or
- implicit via reception of an LSA-Update
- Question If a new node comes up, it could build
the database from regular LSA-Updates (rather
than exchange of database description). What role
do the database description packets play?
41Agenda
- Routing Information Protocol (RIPv2)
- Link state protocols
- Open Shortest Path First (OSPF)
- Autonomous Systems
42Autonomous Systems
- An autonomous system (AS) is a region of the
Internet that is administered by a single entity
and that has a unified routing policy - Each autonomous system is assigned an Autonomous
System Number (ASN). - Columbia campus network (AS14)
- Rogers Cable Inc. (AS812)
- Sprint (AS1239, AS1240, AS 6211, )
- Interdomain routing is concerned with determining
paths between autonomous systems (interdomain
routing) - Routing protocols for interdomain routing are
called exterior gateway protocols (EGP)
43Autonomous Systems (AS)
44Interdomain and Intradomain Routing
- Routing protocols for intradomain routing are
called interior gateway protocols (IGP) - Objective shortest path
- Routing protocols for interdomain routing are
called exterior gateway protocols (EGP) - Objective satisfy policy of the AS
45Interdomain vs. Intradomain
- Intradomain routing
- Routing is done based on metrics
- Routing domain is one autonomous system
- Interdomain routing
- Routing is done based on policies
- Routing domain is the entire Internet
46Interdomain Routing
- Interdomain routing is based on connectivity
between autonomous systems - Interdomain routing can ignore many details of
router interconnection
47AS Graphs
ATT North America
From T. Griffin, BGP Tutorial, ICNP 2002
48Multiple Routing Protocols
- Multiple routing protocols can run on the same
router - Each routing protocol updates the routing table
49Autonomous Systems Terminology
- local traffic traffic with source or
destination in AS - transit traffic traffic that passes through
the AS - Stub AS has connection to only one AS, only
carry local traffic - Multihomed AS has connection to gt1 AS, but
does not carry transit traffic - Transit AS has connection to gt1 AS and
carries transit traffic
50Stub and Transit Networks
- AS 1, AS 2, and AS 5 are stub networks
- AS 2 is a multi-homed stub network
- AS 3 and AS 4 are transit networks
51Selective Transit
- Example
- Transit AS 3 carries traffic between AS 1 and AS
4 and between AS 2 and AS 4 - But AS 3 does not carry traffic between AS 1 and
AS 2 - The example shows a routing policy.
52Customer/Provider
- A stub network typically obtains access to the
Internet through a transit network. - Transit network that is a provider may be a
customer for another network - Customer pays provider for service
53Customer/Provider and Peers
- Transit networks can have a peer relationship
- Peers provide transit between their respective
customers - Peers do not provide transit between peers
- Peers normally do not pay each other for service
54Shortcuts through peering
- Note that peering reduces upstream traffic
- Delays can be reduced through peering
- But Peering may not generate revenue
55This weeks lab
- /etc/quagga/ripd.conf
- eth1 does not work on some machines (PC1 and PC2
of rack 3) - Set eth1 to a completely different IP address
e.g., 202.11.12.15 and use eth2 - Enable debugging and observe /etc/quagga/ripd.lo
g - Count-to-infinity
- disable split-horizon, triggered updates and set
hold-down timer to zero.