COMS/CSEE 4140 Networking Laboratory Lecture 05 Salman Abdul Baset Spring 2008
COMS/CSEE 4140 Networking Laboratory
Lecture 05
Salman Abdul BasetSpring 2008
2
Announcements 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
3
Previous 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)
4
Previous Lecture: The Count-to-Infinity Problem
AA BB CC1 1
A's Routing Table B's Routing Table
C
to costvia(next hop)
2B C
to costvia(next hop)
1C
now link B-C goes down
C 2 C oo
C oo-C 2B
C oo C 3
C 3AC oo-
C 4 C oo
C oo-C 4B
5
Agenda Routing Information Protocol (RIPv2) Link state protocols Open Shortest Path First (OSPF) Autonomous Systems (AS)
6
The Gang of FourLink State Vectoring
EGP
IGP
BGP
RIPIS-IS
OSPF
7
RIP - 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 Novell’s IPX RIP and Apple’s 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)
8
Routing 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
AA BB CC1 1A never advertises to B that its path to C goes through B
AA BB CC1 1
B ignores any updates for the link B-C for a hold-down time
AA BB CC1 1
B immediately advertises that its link is down.
9
Routing 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
10
RIPv1 Packet FormatIP header UDP header RIP Message
Command Version Set to 00...0
32-bit address
Unused (Set to 00...0)
address family Set to 00.00
Unused (Set to 00...0)
metric (1-16)
one
rout
e en
try(2
0 by
tes)
Up to 24 more routes (each 20 bytes)
32 bits
One RIP message can have up to 25 route entries20x25=500 bytes + 8 (RIP hdr) + 8 (UDP) + 20 (IP)=536 bytes
1: request2: response
2: for IP0…0: request full rou-ting table
Address of destination
Cost (measured in hops)
1: RIPv1
11
RIPv2 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
12
RIPv2 Packet FormatIP header UDP header RIP Message
Command Version Set to 00...0
32-bit address
Unused (Set to 00...0)
address family Set to 00.00
Unused (Set to 00...0)
metric (1-16)
one
rout
e en
try(2
0 by
tes)
Up to 24 more routes (each 20 bytes)
32 bits
One RIP message can have up to 25 route entries
1: request2: response
2: for IP0…0: request full rou-ting table
Address of destination
Cost (measured in hops)
2: RIPv2
13
RIPv2 Packet FormatIP header UDP header RIPv2 Message
Command Version Set to 00.00
IP address
Subnet Mask
address family route tag
Next-Hop IP address
metric (1-16)
one
rout
e en
try(2
0 by
tes)
Up to 24 more routes (each 20 bytes)
32 bits
Used to carry information from other routing protocols (e.g., autonomous system number)
Identifies a better next-hop address on the same subnet than the advertising router, if one exists (otherwise 0….0)
2: RIPv2
Subnet mask for IP address
Any problems?
14
RIP 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
15
Routing with RIP Initialization: Send a request packet (command = 1,
address family=0..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.
16
Agenda Routing Information Protocol (RIPv2) Link state protocols Open Shortest Path First (OSPF) Autonomous Systems
17
Link 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.
18
Dijkstra’s 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 = min{Dj ; 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 whileend for
19
Link state routing: graphical illustration
a
b
c d
3 1
62
a
36
b
c
a’s view:
a
b
c
3 1b’s view: c d2
d’s view:
Collecting all views yield a global & complete view of the network!
Global view:
a
b
c d
1
6
c’s view:
2
20
Operation of a Link State Routing Protocol
ReceivedLSAs
IP Routing Table
Dijkstra’s
Algorithm
Link StateDatabase
LSAs are flooded to other interfaces
LSA: link-state advertisement
21
Link State Routing: Properties Each node requires complete topology
information
Link state information must be flooded to all nodes
Guaranteed to converge
22
Distance 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.
AA BB CC
DD EE FF
23
Distance 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
AA BB CC
DD EE FF
A B C
D E F
A B C
D E F
A B C
D E F
A B C
D E F
A B C
D E F
A B C
D E F
24
Distance 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
25
Agenda Routing Information Protocol (RIPv2) Link state protocols Open Shortest Path First (OSPF) Autonomous Systems
26
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)
OSPF
27
Features 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
28
Hierarchical OSPF
29
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.
30
Example Network
Router IDs can be selected independent of interface addresses, but usually chosen to be the smallest interface address
3
4 2
5
1
1
32
• Link costs are called Metric
• Metric is in the range [0 , 216]
• Metric can be asymmetric
10.1.1.0 / 24
.1 .2 .2
10.1.1.1
10.1.4.0 / 24
10.1.2.0 / 24
.1
.4
10.1.7.0 / 24
10.1
.6.0
/ 24
10.1
.3.0
/ 24
10.1.5.0/24
10.1
.8.0
/ 24
.3
.3 .5
.2
.3
.5
.5
.4
.4
.6
.6
10.1.1.2 10.1.4.4 10.1.7.6
10.1.2.3 10.1.5.5
31
Link State Advertisement (LSA)
The LSA of router 10.1.1.1 is as follows:Link State ID: 10.1.1.1 = Router ID
Advertising Router: 10.1.1.1 = Router ID
Number of links: 3 = 2 links plus router itself
Description 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
10.1.1.0 / 24
.1 .2 .2
10.1.1.1
10.1.4.0 / 24
10.1.2.0 / 24
.1
.4
10.1.7.0 / 24
10.1
.6.0
/ 24
10.1
.3.0
/ 24
10.1.5.0/24
10.1
.8.0
/ 24
.3
.3 .5
.2
.3
.5
.5
.4
.4
.6
.6
10.1.1.2 10.1.4.4 10.1.7.6
10.1.2.3 10.1.5.5
4
3 2
32
Network 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
10.1.1.0 / 24
.1 .2 .2
10.1.1.1
10.1.4.0 / 24
10.1.2.0 / 24
.1
.4
10.1.7.0 / 24
10.1
.6.0
/ 24
10.1
.3.0
/ 24
10.1.5.0/24
10.1
.8.0
/ 24
.3
.3 .5
.2
.3
.5
.5
.4
.4
.6
.6
10.1.1.2 10.1.4.4 10.1.7.6
10.1.2.3 10.1.5.5
33
Link 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)
34
OSPF Packet Format
OSPF MessageIP header
Body of OSPF MessageOSPF MessageHeader
Message TypeSpecific Data
LSA LSALSA ...
LSAHeader
LSAData
...
Destination IP: neighbor’s IP address or 224.0.0.5 (ALLSPFRouters) or 224.0.0.6 (AllDRouters)
TTL: set to 1 (in most cases)
OSPF packets are not carried as UDP payload!OSPF has its own IP protocol number: 89
35
OSPF Packet Format
source router IP address
authentication
authentication
32 bits
version type message length
Area ID
checksum authentication type
Body of OSPF MessageOSPF MessageHeader
2: current version is OSPF V2
Message types:1: Hello (tests reachability)2: Database description3: Link state request4: Link state update5: Link state acknowledgement
ID of the Area from which the packet originated
Standard IP checksum taken over entire packet
0: no authentication1: Cleartext password2: MD5 checksum(added to end 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
36
OSPF LSA Format
Link State ID
link sequence number
advertising router
Link Age Link Type
checksum length
Link ID
Link Data
Link Type Metric#TOS metrics
LSA
LSAHeader
LSAData
Link ID
Link Data
Link Type Metric#TOS metrics
LSA Header
Link 1
Link 2
37
Discovery 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
OSPF Hello
OSPF Hello: I heard 10.1.10.2
10.1.10.1 10.1.10.2
Scenario:Router 10.1.10.2 restarts
38
Neighbor discovery and database synchronization
OSPF Hello
OSPF Hello: I heard 10.1.10.2
Database Description: Sequence = X
10.1.10.1 10.1.10.2
Database Description: Sequence = X, 5 LSA headers = Router-LSA, 10.1.10.1, 0x80000006 Router-LSA, 10.1.10.2, 0x80000007 Router-LSA, 10.1.10.3, 0x80000003 Router-LSA, 10.1.10.4, 0x8000003a Router-LSA, 10.1.10.5, 0x80000038 Router-LSA, 10.1.10.6, 0x80000005
Database Description: Sequence = X+1, 1 LSA header= Router-LSA, 10.1.10.2, 0x80000005
Database Description: Sequence = X+1
Sends empty database description
Scenario:Router 10.1.10.2 restarts
Discovery of adjacency
Sends database description. (description only contains LSA headers)
Database description of 10.1.10.2
Acknowledges receipt of description
After neighbors are discovered the nodes exchange their databases
39
Regular LSA exchanges
10.1.10.2 explicitly requests each LSA from 10.1.10.1
10.1.10.1 sends requested LSAs
10.1.10.1 10.1.10.2
Link State Request packets, LSAs =
Router-LSA, 10.1.10.1,
Router-LSA, 10.1.10.2,
Router-LSA, 10.1.10.3,
Router-LSA, 10.1.10.4,
Router-LSA, 10.1.10.5,
Router-LSA, 10.1.10.6,
Link State Update Packet, LSAs =
Router-LSA, 10.1.10.1, 0x80000006
Router-LSA, 10.1.10.2, 0x80000007
Router-LSA, 10.1.10.3, 0x80000003
Router-LSA, 10.1.10.4, 0x8000003a
Router-LSA, 10.1.10.5, 0x80000038
Router-LSA, 10.1.10.6, 0x80000005
40
Dissemination 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?
41
Agenda Routing Information Protocol (RIPv2) Link state protocols Open Shortest Path First (OSPF) Autonomous Systems
42
Autonomous 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)
43
Autonomous Systems (AS)Ethernet
Router
Ethernet
Ethernet
RouterRouter
Ethernet
Ethernet
EthernetRouterRouter
Router
AutonomousSystem 2
AutonomousSystem 1
44
Interdomain 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
AS 6 AS 7
AS 4
AS 2 AS 5
AS 1
AS 3
45
Interdomain 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
EGP (e.g., BGP)
AS 2 AS 2
IGP (e.g., OSPF)IGP (e.g., RIP)
46
Interdomain Routing Interdomain routing is based on connectivity between autonomous
systems Interdomain routing can ignore many details of router
interconnection
AS 1 AS 2
AS 3
47
AS Graphs
From: T. Griffin, BGP Tutorial, ICNP 2002
AT&T North America
48
Multiple Routing Protocols
Multiple routing protocols can run on the same router
Each routing protocol updates the routing table
routingtable
IP Forwarding
routing tablelookup
incoming IP datagrams
outgoing IP datagrams
routing protocol
routing protocol
RIP Process
OSPFProcess
BGP Process
routing table updates
49
Autonomous 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 >1
AS, but does not carry transit traffic Transit AS = has connection to >1
AS and carries transit traffic
50
Stub 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
AS 3
AS 1
AS 4
AS 2
AS 5
51
Selective 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.
AS 2AS 1
AS 3
AS 4
52
Customer/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
AS 5
AS 2
Customer/Provider
AS 6
Customer/Provider
AS 6
Customer/Provider
AS 4
Customer/Provider
AS 6
Customer/Provider
53
Customer/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
AS 3
AS 5
AS 2Peers
Customer/Provider
AS 6
Customer/Provider
AS 1Peers
AS 6
Customer/Provider
AS 4
Customer/Provider
AS 6
Customer/Provider
54
Shortcuts through peering
Note that peering reduces upstream traffic Delays can be reduced through peering But: Peering may not generate revenue
AS 3
AS 5
AS 2Peers
Customer/Provider
AS 6
Customer/Provider
AS 1Peers
AS 6
Customer/Provider
AS 4
Customer/Provider
AS 6
Customer/Provider
Peers
55
This week’s 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.log Count-to-infinity
disable split-horizon, triggered updates and set hold-down timer to zero.