Internet Routing (COS 598A) Jennifer Rexford Today: Multi-Protocol Label Switching Tuesdays/Thursdays 11:00am-12:20pm

advertisement
Internet Routing (COS 598A)
Today: Multi-Protocol Label Switching
Jennifer Rexford
http://www.cs.princeton.edu/~jrex/teaching/spring2005
Tuesdays/Thursdays 11:00am-12:20pm
Outline
• Circuit switching
– Packet switching vs. circuit switching
– Virtual circuits
• MPLS
– Labels and label-switching
– Forwarding Equivalence Classes
– Label distribution
– MPLS applications
• Feedback forms
– Fill out during last 20 minutes
Packet Switching vs. Circuit Switching
• Packet switching
– Data traffic divided into packets
• Each packet contains its own header (with address)
• Packets sent separately through the network
– Destination reconstructs the message
– Example: sending a letter through postal system
• Circuit switching
– Source first establishes a connection to the destination
• Each router on the path may reserve bandwidth
– Source ends data over the connection
• No destination address, since routers know the path
– Source tears down the connection when done
– Example: voice conversation on telephone network
Advantages of Circuit Switching
• Guaranteed bandwidth
– Predictable communication performance
– Not “best-effort” delivery with no real guarantees
• Simple abstraction
– Reliable communication channel between hosts
– No worries about lost or out-of-order packets
• Simple forwarding
– Forwarding based on time slot or frequency
– No “longest prefix match” on each packet
• Low per-packet overhead
– Forwarding based on time slot or frequency
– No IP (and TCP/UDP) header on each packet
Disadvantages of Circuit Switching
• Wasted bandwidth
– Bursty traffic leads to idle connection during silent period
– Unable to achieve gains from statistical multiplexing
• Blocked connections
– Connection refused when resources are not sufficient
– Unable to offer “okay” service to everybody
• Connection set-up delay
– No communication until the connection is set up
– Unable to avoid extra latency for small data transfers
• Network state
– Routers must store per-connection information
– Unable to avoid per-connection storage and state failover
Virtual Circuits
• Hybrid of packet and circuit switching
– Logical circuit between a source and destination
– Packets from different VCs multiplex on a link
• Virtual Circuit Identifier (VC ID)
– Source set-up: establish path for the VC
– Switch: mapping VC ID to an outgoing link
– Packet: fixed length label in the header
1
2
1: 7
2: 7
link 7
1: 14
2: 8
link 14
link 8
Swapping the Label at Each Hop
• Problem: using VC ID along the whole path
– Each virtual circuit consumes a unique ID
– Starts to use up all of the ID space in the network
• Label swapping
– Map the VC ID to a new value at each hop
• Table has old ID, next link, and new ID
– Allows reuse of the IDs at different links
1
2
1: 7: 20
20: 14: 78
link 7
2: 7: 53
53: 8: 42
link 14
link 8
Virtual Circuits Similar to IP Datagrams
• Data divided in to packets
– Sender divides the data into packets
– Packet has an address (e.g., IP address or VC ID)
• Store-and-forward transmission
– Multiple packets may arrive at once
– Need buffer space for temporary storage
• Multiplexing on a link
– No reservations: statistical multiplexing
• Packets are interleaved without a fixed pattern
– Reservations: resources for group of packets
• Guarantees to get a certain number of “slots”
Virtual Circuits Differ from IP Datagrams
• Forwarding look-up
– Virtual circuits: fixed-length connection id
– IP datagrams: destination IP address
• Initiating data transmission
– Virtual circuits: must signal along the path
– IP datagrams: just start sending packets
• Router state
– Virtual circuits: routers know about connections
– IP datagrams: no state, easier failure recovery
• Quality of service
– Virtual circuits: resources and scheduling per VC
– IP datagrams: difficult to provide QoS
Wide Range of Quality-of-Service Models
• Policies for allocating resources
– Admission control: whether or not to accept the VC
– Link scheduling: what order to send packets
– Buffer management: which packets to drop
• One extreme: best-effort service
– Accept all connections (unless table is full)
– Put all packets in a first-in-first-out queue
– Drop any packet arriving when queue is full
• Another extreme: strict bandwidth guarantees
– Virtual circuit reserves bandwidth along the path
• Network edge must shape/police to enforce this rate
– Each link has a queue for packets from each VC
• Link schedules the packets using weighted fair queuing
Multi-Protocol Label Switching
Multi-Protocol Label Switching
• 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
Pushing, Swapping, and Popping
• Pushing: add the initial “in” label
• Swapping: map “in” label to “out” label
• Popping: remove the “out” label
Pushing
IP
IP
A
B
IP
IP
C
R2
R1
IP edge
Popping
Swapping
R4
R3
MPLS core
D
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
– Sent by a particular customer site
• Incoming interface at entry point
• Useful for virtual private networks
A label is just a locally-significant identifier for a FEC
Label Distribution Protocol
• Distributing labels
– Learning the mapping from FEC to label
– Told by the downstream router
• Example: destination-based forwarding
I’m using
I’m using
Pick in-label
labelIn:
43 Link:
for Outlabel 10
for
10
for
43:
to
R4:
10
12.1.1.0/24
12.1.1.0/24
12.1.1.0/24
Map destinations in
12.1.1.0/24 to out-label
43 and link to R2
R2
12.1.1.0/24
R1
R4
R3
Supporting Explicitly-Routed Paths
• Explicitly routing from ingress to egress
– Set an explicit path (e.g., based on load)
– Perhaps reserve resources along the path
• Extend a protocol for resource reservation
– Start with ReSource Reservation Protocol (RSVP)
• Used for reserving resources along an IP path
– Extensions for label distribution & explicit routing
• Extend a protocol for distributing labels
– Start with Label Distribution Protocol (LDP)
– Extensions for explicit routing & reservation
• Two competing proposed standards
Applications of MPLS
TE With Constraint-Based Routing
• Path calculation
– Constrained shortest-path first
– Compute shortest path based on weights
• But, exclude paths that do not satisfy constraints
• E.g., do not consider links with insufficient bandwidth
• Information dissemination
– Extend OSPF/IS-IS to carry the extra information
• E.g., link-state attributes for available bandwidth
• Path signaling
– Establish label-switched path on explicit route
• Forwarding: MPLS labels
Surviving Failures: Path Protection
• Path protection
– Reserve bandwidth on an alternate route
• Protect a label-switched path by having a stand-by
– Much better than conventional IP routing
• Precise control over where the traffic will go
• Stand-by path can be chosen to be disjoint
Surviving Failures: Fast Reroute
• Ensure fast recovery from a link failure
– Protect a link by having a protection sub-path
• Much faster recovery than switching paths
– Affected router can detect the link failure
– … and start redirecting to the protection sub-path
BGP-Free Core
iBGP
eBGP
A
R2
R1
B
C
12.1.1.0/24
R4
R3
D
FEC based on the
destination prefix
Routers R2 and R3 don’t need to speak BGP
VPNs With Private Addresses
10.1.0.0/24
10.1.0.0/24
A
R2
R1
Direct traffic
to orange
Two FECs
R4
R3
B
10.1.0.0/24
C
D
10.1.0.0/24
MPLS tags can differentiate green VPN from orange VPN.
Status of MPLS
• Deployed in practice
– BGP-free core
– Virtual Private Networks
– Traffic engineering
• Challenges
– Protocol complexity
– Configuration complexity
– Difficulty of collecting measurement data
• Continuing evolution
– Standards
– Operational practices and tools
Conclusion
• MPLS is an overlay
– Tunneling on top of the network
• Built on top of an underlying routing algorithm
– Flexibility in mapping traffic to paths
• Associating packets with FECs, and then labels
– New protocols for creating label-switching tables
• Binding FECs to labels across a path
• Establishing explicit routes
• Many open questions
– Makes operations easier vs. harder?
– Trade-offs in exploiting the flexibility?
– Interdomain routing with MPLS?
Rest of the Semester
• Rest of class
– Feedback forms
– Thanks (in advance) for your feedback
• Written reports for course projects
– Due Dean’s Date (May 10) by end of day
– Submitting via e-mail would be fine
• Oral presentations for course projects
– Monday May 16 at 1:30pm in room 302
– 15 minutes for single-person, 20 for groups
Download