Intradomain Routing
Jennifer Rexford
[Link]
Advanced Computer Networks
Tuesdays/Thursdays 1:30pm-2:50pm
What is Routing?
A famous quotation from RFC 791
A name indicates what we seek. An address indicates where it is. A route indicates how we get there. -- Jon Postel
Forwarding vs. Routing Forwarding: data plane
Directing a data packet to an outgoing link Individual router using a forwarding table
Routing: control plane
Computing the paths the packets will follow Routers talking amongst themselves Individual router creating a forwarding table
Internet Structure
Federated network of Autonomous Systems
Routers and links controlled by a single entity Routing between ASes, and within an AS
4 3 5 2 7 6
Web client
Web server
Two-Tiered Internet Routing System
Interdomain routing: between ASes
Routing policies based on business relationships No common metrics, and limited cooperation BGP: policy-based, path-vector routing protocol
Intradomain routing: within an AS
Shortest-path routing based on link metrics Routers all managed by a single institution OSPF and IS-IS: link-state routing protocol RIP and EIGRP: distance-vector routing protocol
Shortest-Path Routing Path-selection model
Destination-based Minimum hop count or sum of link weights Dynamic vs. static link weights
2 3 2 1 4 1 5 3 4
Distance Vector Routing: Bellman-Ford Define distances at each node x
dx(y) = cost of least-cost path from x to y
Update distances based on neighbors
dx(y) = min {c(x,v) + dv(y)} over all neighbors v
v
2 1 1
x
3
u
1
z t
2
w
4 5
s
du(z) = min{c(u,v) + dv(z), c(u,w) + dw(z)}
E.g., RIP and EIGRP
Link-State Routing: Dijsktras Algorithm
Each router keeps track of its incident links
Link cost, and whether the link is up or down
Each router broadcasts the link state
To give every router a complete view of the graph
Each router runs Dijkstras algorithm
To compute shortest paths and forwarding table 2 3 2 1 4 1 5 3 4
E.g., OSPF and IS-IS
Routing Protocols (COS 461 #15 and 16) Link State Dissemination
Flood link state advertisements to all routers
Distance Vector Path Vector
Update distances from neighbors distances Bellman-Ford shortest path Update paths based on neighbors paths Local policy to rank paths
Algorithm Dijsktras
shortest path
Converge Fast due to flooding Protocols OSPF, IS-IS
Slow, due to Slow, due to count-to-infinity path exploration RIP, EIGRP BGP
History: Packet-Based Load-Sensitive Routing
Packet-based routing
Forward packets based on forwarding table
Load-sensitive
Compute table entries based on load or delay
Questions
What link metrics to use? How frequently to update the metrics? How to propagate the metrics? How to compute the paths based on metrics? Still a popular area of research
Original ARPANET Algorithm (1969)
Delay-based routing algorithm
Shortest-path routing based on link metrics Instantaneous queue length plus a constant Distributed shortest-path algorithm (Bellman-Ford)
2 3 2 1 20 1 3 5
congested link
Performance of Original ARPANET Algorithm
Light load
Delay dominated by the constant part (transmission delay and propagation delay)
Medium load
Queuing delay is no longer negligible Moderate traffic shifts to avoid congestion
Heavy load
Very high metrics on congested links Busy links look bad to all of the routers All routers avoid the busy links Routers may send packets on longer paths
Improvements in the Second ARPANET Algorithm Original ARPANET Algorithm (1969) Timescale of Instantaneous the link metric queue length Routing protocol Update frequency Second ARPANET Algorithm (1979) Averaging of the link metric over time
Distance vector Link state for faster slow convergence convergence Updates on every Updates if change metric change passes a threshold
Problem of Long Alternate Paths
Picking alternate paths
Long path chosen by one router consumes resource that other packets could have used Leads other routers to pick other alternate paths
Solution: limit path length
Bound the value of the link metric This link is busy enough to go two extra hops
Extreme case
Limit path selection to the shortest paths Pick the least-loaded shortest path in the network
Problem of Out-of-Date Information Lincoln Tunnel NJ Holland Tunnel Backup at Lincoln on radio triggers congestion at Holland NYC
Routers make decisions with old information
Propagation delay in flooding link metrics Thresholds applied to limit number of updates
Old information leads to bad decisions
All routers avoid the congested links leading to congestion on other links and the whole things repeats
Intradomain Routing Today
Link-state routing with static link weights
Static weights: avoid stability problems Link state: faster reaction to topology changes
Most common protocols in backbones
OSPF: Open Shortest Path First IS-IS: Intermediate SystemIntermediate System
Some use of distance vector in enterprises
RIP: Routing Information Protocol EIGRP: Enhanced Interior Gateway Routing Protocol
Growing use of Multi-Protocol Label Switching
What do Operators Worry About?
Topology design
Small propagation delay and low congestion Ability to tolerate node and link failures
Convergence delay
Limiting the disruptions during topology changes E.g., by trying to achieve faster convergence
Traffic engineering
Limiting propagation delay and congestion E.g., by carefully tuning the static link weights
Scalable routing designs
Avoiding excessive protocol overhead E.g., by introducing hierarchy in routing
Topology Design: Intra-AS Topology Node: router Edge: link
Hub-and-spoke
Backbone
Topology Design: Abilene Internet2 Backbone
Topology Design: Points-of-Presence (PoPs)
Inter-PoP links
Long distances High bandwidth
Inter-PoP Intra-PoP
Intra-PoP links
Short cables between racks or floors Aggregated bandwidth
Links to other networks
Wide range of media and bandwidth
Other networks
Convergence: Detecting Topology Changes Beaconing
Periodic hello messages in both directions Detect a failure after a few missed hellos
hello
Performance trade-offs
Detection speed Overhead on link bandwidth and CPU Likelihood of false detection
Convergence: Transient Disruptions Inconsistent link-state database
Some routers know about failure before others The shortest paths are no longer consistent Can cause transient forwarding loops
2 3 2 1 4 1 5 3 4 1 2 3 2 1 4 3 1 4 1
Convergence: Delay for Converging Sources of convergence delay
Detection latency Flooding of link-state information Shortest-path computation Creating the forwarding table
Performance during convergence period
Lost packets due to blackholes and TTL expiry Looping packets consuming resources Out-of-order packets reaching the destination
Very bad for VoIP, online gaming, and video
Convergence: Reducing Convergence Delay Faster detection
Smaller hello timers Link-layer technologies that can detect failures
Faster flooding
Flooding immediately Sending link-state packets with high-priority
Faster computation
Faster processors on the routers Incremental Dijkstra algorithm
Faster forwarding-table update
Data structures supporting incremental updates
Traffic Engineering: Tuning Link Weights Problem: congestion along the blue path
Second or third link on the path is overloaded
Solution: move some traffic to bottom path
E.g., by decreasing the weight of the second link
2 3 2 3 1 4 1 3 5 3
Traffic Engineering: Problem Formulation Topology
Connectivity & capacity of routers & links
Traffic matrix
Offered load between points in the network
Link weights
Configurable parameters for the protocol
Performance objective
Balanced load, low latency, service agreements
Question: Given topology and traffic matrix, which link weights to use?
Traffic Engineering: Key Ingredients of Approach
Instrumentation
Topology: monitoring of the routing protocols Traffic matrix: fine-grained traffic measurement
Network-wide models
Representations of topology and traffic What-if models of shortest-path routing
Network optimization
Efficient algorithms to find good configurations Operational experience to identify key constraints
Scalability: Overhead of Link-State Protocols
Protocol overhead depends on the topology
Bandwidth: flooding of link state advertisements Memory: storing the link-state database Processing: computing the shortest paths
2 3 2 1 4 1 3 5 3
Scalability: Improving the Scaling Properties
Dijkstras shortest-path algorithm
Simplest version: O(N2), where N is # of nodes Better algorithms: O(L*log(N)), where L is # links Incremental algorithms: great for small changes
Timers to pace operations
Minimum time between LSAs for the same link Minimum time between path computations
More resources on the routers
Routers with more CPU and memory
Scalability: Introducing Hierarchy Through Areas
Divide network into regions
Backbone (area 0) and non-backbone areas Each area has its own link-state database Advertise only path distances at area boundaries Area 1 area border router Area 0 Area 3 Area 4 Area 2
Scalability: Dividing into Multiple ASes
Divide the network into regions
Separate instance of link-state routing per region Interdomain routing between regions (i.e., BGP) Loss of visibility into differences within region 50 100 20 100 20 50 50 20 100 100 50 Europe 20 50 50 20 100 100 20
North America
Asia
Limitations of Conventional Intradomain Routing
Overhead of hop-by-hop forwarding
Large routing tables and expensive look-ups
Paths depend only on the destination
Rather than differentiating by source or class
Only the shortest path(s) are used
Even if a longer path has enough resources
Transient disruptions during convergence
Cannot easily prepare in advance for changes
Limited control over paths after failure
Depends on the link weights and remaining graph
Multi-Protocol Label Switching (MPLS)
Multi-Protocol
Encapsulate a data packet
Could be IP, or some other protocol (e.g., IPX)
Put an MPLS header in front of the packet
Actually, can even build a stack of labels
Label Switching
MPLS header includes a label Label switching between MPLS-capable routers MPLS header IP packet
Multi-Protocol Label Switching (MPLS)
Key ideas of MPLS
Label-switched path spans group of routers Explicit path set-up, including backup paths Flexible mapping of data traffic to paths
Motivating applications
Small routing tables and fast look-ups Virtual Private Networks Traffic engineering Path protection and fast reroute
MPLS: Forwarding Based on Labels
Hybrid of packet and circuit switching
Logical circuit between a source and destination Packets with different labels multiplex on a link
Basic idea of label-based forwarding
Packet: fixed length label in the header Switch: mapping label to an outgoing link 1: 7 2: 7
1 2
link 7
1: 14 2: 8
link 14 link 8
MPLS: Swapping the Label at Each Hop
Problem: using label along the whole path
Each path consumes a unique label Starts to use up all of label space in the network
Label swapping
Map the label to a new value at each hop Table has old label, next link, and new label Allows reuse of the labels at different links 1 2 1: 7: 20 20: 14: 78 link 7 2: 7: 53 53: 8: 42 link 14 link 8
MPLS: Pushing, Swapping, and Popping
Pushing: add the initial in label Swapping: map in label to out label Popping: remove the out label
Pushing IP A IP R2 R1 B R3 R4 D Swapping IP C Popping IP
IP edge
MPLS core
MPLS: Forwarding Equivalence Class (FEC)
Rule for grouping packets
Packets that should be treated the same way Identified just once, at the edge of the network
Example FECs
Destination prefix
Longest-prefix match in forwarding table at entry point Useful for conventional destination-based forwarding
Src/dest address, src/dest port, and protocol
Five-tuple match at entry point Useful for fine-grain control over the traffic
A label is just a locally-significant identifier for a FEC
Status of MPLS
Deployed in practice
Small control and data plane overhead in core Virtual Private Networks Traffic engineering and fast reroute
Challenges
Protocol complexity Configuration complexity Difficulty of collecting measurement data
Continuing evolution
Standards Operational practices and tools
Conclusion
Two-tiered Internet routing system
Interdomain: between Autonomous Systems Intradomain: within an Autonomous System
Intradomain routing
Shortest path routing based on link metrics Stability problems with dynamic link metrics Link-state vs. distance-vector protocols
MultiProtocol Label Switching (MPLS)
Forwarding packets based on a label Explicit path set-up