Top Banner
A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster
27

A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Mar 27, 2015

Download

Documents

David Rankin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

A Narrow Waist for Multipath Routing

Murtaza MotiwalaBilal Anwer, Mukarram bin TariqDavid Andersen, Nick Feamster

Page 2: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Many Threats to Availability

• Natural disasters• Physical failures (node, link)• Router software bugs• Misconfiguration• Mis-coordination• Denial-of-service (DoS) attacks• Changes in traffic patterns

(e.g., flash crowd)• …

Page 3: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Idea: Backup/Multipath

• For intradomain routing– IP and MPLS fast re-route– Packet deflections [Yang 2006]– ECMP, NotVia, Loop-Free Alternates [Cisco]

• For interdomain routing– MIRO [Rexford 2006]

• Problem– Complexity and Scale: Protecting against arbitrary

failures requires storing lots of state, exchanging lots of messages

– Control: End systems can’t signal when they think a path has “failed”

Page 4: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Two Questions

• What is the appropriate mechanism for achieving multiple paths?– One example: Path Splicing

• What is the appropriate interface for allowing end systems access to multiple paths?– Path Bits: A “narrow waist” for Internet routing

Page 5: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Backup Paths: Promise and Problems

• Bad: If any link fails on both paths, s is disconnected from t

• Want: End systems remain connected unless the underlying graph has a cut

ts

Page 6: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Path Splicing: Main Idea

• Step 1 (Generate slices): Run multiple instances of the routing protocol, each with slightly perturbed versions of the configuration

• Step 2 (Splice end-to-end paths): Allow traffic to switch between instances at any node in the protocol

ts

Compute multiple forwarding trees per destination.Allow packets to switch slices midstream.

Page 7: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Generating Slices

• Goal: Each instance provides different paths• Mechanism: Each edge is given a weight that is

a slightly perturbed version of the original weight– Two schemes: Uniform and degree-based

ts

3

3

3

“Base” Graph

ts

3.5

4

5 1.5

1.5

1.25

Perturbed Graph

Page 8: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

How to Perturb the Link Weights?

• Uniform: Perturbation is a function of the initial weight of the link

• Degree-based: Perturbation is a linear function of the degrees of the incident nodes– Intuition: Deflect traffic away from nodes where traffic

might tend to pass through by default

Page 9: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Forwarding Traffic

• One approach: shim header with forwarding bits

• Routers use lg(k) bits to index forwarding tables– Shift bits after inspection

• To access different (or multiple) paths, end systems simply change the forwarding bits– Incremental deployment is trivial– Persistent loops cannot occur

• Other variations are possible (2nd half of talk)

Page 10: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Reliability Approaches Optimal• Sprint (Rocketfuel) topology• 1,000 trials• p indicates probability edge was removed from base graph

Reliability approaches optimal

Average stretch is only 1.3

Sprint topology,degree-based perturbations

Page 11: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Simple Recovery Strategies Work Well

• Which paths can be recovered within 5 trials?– Sequential trials: 5 round-trip times– …but trials could also be made in parallel

Recovery approaches maximum possible

Adding a few more slices improves recovery beyond best possible reliability with fewer slices.

Page 12: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Two Questions

• What is the appropriate mechanism for achieving multiple paths?– One example: Path Splicing

• What is the appropriate interface for allowing end systems access to multiple paths?– Path Bits: A “narrow waist” for Internet routing

Page 13: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Allow for Innovation Above & Below

• Different applications & uses for multipath– Performance and load balancing– Availability

• Different mechanisms– Routing protocols: path splicing, ECMP, R-BGP,

NIRA, MIRO, …– Implementation platforms: proprietary solutions, Click,

NetFPGA, OpenFlow

Need: Common interface for multipath routing.

Page 14: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

A Narrow Waist for Multipath Routing

Page 15: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Decouple End Hosts from Protocols

• Easy access to multiple paths

• Consistent path selection per-host– Same encoding should always yield the same path

• Interoperation among many different multipath routing protocols– Different switches and different networks may have

different implementations

Page 16: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Simple Interface and Implementation

• Ease of use at end systems

• Efficiently implementable in the network

• Scalable access to a large number of paths– End systems should not have to store state to

represent all paths– Routers should not have to store forwarding table

state for all paths

Page 17: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Path Bits: Three-Part Design

• Path bits interface– Level of control– Number of bits

• End system support– Monitoring framework– Packet interception

• Network control– Indexing into forwarding tables

Page 18: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Decision: Level of Control

• Path bits are opaque– Carry no explicit semantics– Instead, provide the following:

Changing the bits, will, with high probability, change the forwarding path

• Satisfies the two design goals– End-host interface is decoupled from implementation– Interface is simple: few changes required

Page 19: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Decision: Number of Bits

• A small number of bits can provide sufficient flexibility.– Example: Path splicing

• Possible to map many existing multipath implementations to the interface

Page 20: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

End-System Implementation

• Socket capture library– Intercept connect() and

sendto()

• Kernel interface– Click module– Keeps track of active

flows & bits for those flows

• Monitoring daemon

Page 21: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Network Implementations

• Software implementations in Click– Splicing, Deflections, ECMP++

• Hardware implementations– Intel IXP: Splicing (~30 lines of C++ plug-in)– OpenFlow: kN entries per slice, ~20-25 lines at NOX

controller– NetFPGA: Small additional overhead beyond base

router implementation

Key Idea: Multiple forwarding table entires with bits to index. Different routing protocols simply change what is in the tables and how the bits are mapped to this interface.

Page 22: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Path Splicing in Click

Eight lines of C++.

Page 23: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Routing Deflections in ClickNine lines of C++.

Page 24: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

NetFPGA Implementation

• Eight slices

• About 69% of available BRAM on NetFPGA(base router uses 53% of available BRAM)

Page 25: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

NetFPGA Forwarding Performance

No noticeable performance penalty with four tables.

Page 26: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Applications with Path Bits: Recovery

Single-Path Routing(Baseline)

Path Splicing ECMP++

Page 27: A Narrow Waist for Multipath Routing Murtaza Motiwala Bilal Anwer, Mukarram bin Tariq David Andersen, Nick Feamster.

Conclusion• Many uses and applications for multipath routing

– Availability– Performance

• Many implementations of protocols– Path splicing: Simple, scalable, stable– Routing deflections

• Path bits: narrow waist allows applications and implementations to evolve independently– Decouples end host request from network

implementation/protocol– Affords very simple implementations– Many environments: Data center, interdomain, intradomain, etc.