Stub Traffic Engineering

Stub Traffic Engineering
Jennifer Rexford
Fall 2010 (TTh 1:30-2:50 in COS 302)
COS 561: Advanced Computer Networks
Why Connect to Multiple Providers?
• Reliability
– Reduced fate sharing
– Survive ISP failure
• Performance
Provider 1
Provider 2
– Multiple paths
– Select the best
• Financial
– Leverage through competition
– Game 95th-percentile billing model
Stub: an Autonomous System that does not provide transit
• Outbound traffic
– Shortest-path routing
– Primary and backup providers
– Load balancing over multiple links
• Inbound traffic
– Primary and backup providers
– Selective advertising
– BGP communities
• Looking forward
– Control by routers vs. end hosts
– Exposing greater path diversity
– Stability of selfish routing
Controlling Outbound Traffic
Outbound Traffic: Pick a BGP Route
• Easier to control than inbound traffic
– IP routing is destination based
– Sender determines where the packets go
• Control only by selecting the next hop
– Border router can pick the next-hop AS
– Cannot control selection of the entire path
Provider 1
“(1, 3, 4)”
Provider 2
“(2, 7, 8, 4)”
Outbound Traffic: Shortest AS Path
• No import policy on border router
– Pick route with shortest AS path
– Arbitrary tie break (e.g., router-id)
• Performance?
– Shortest path is not necessarily best
– Propagation delay or congestion
• Load balancing?
– Could lead to uneven split in traffic
– E.g., one provider with shorter paths
– E.g., too many ties with a skewed tie-break
Outbound Traffic: Primary and Backup
• Single policy for all prefixes
– High local-pref for session to primary provider
– Low load-pref for session to backup provider
• Outcome of BGP decision process
– Choose the primary provider whenever possible
– Use the backup provider when necessary
• But…
– What if you want to balance traffic load?
– What if you want to select better paths?
Outbound Traffic: Load Balancing
• Selectively use each provider
– Assign local-pref across destination prefixes
– Change the local-pref assignments over time
• Useful inputs to load balancing
– End-to-end path performance data
 E.g., active measurements along each path
– Outbound traffic statistics per destination prefix
 E.g., packet monitors or router-level support
– Link capacity to each provider
– Billing model of each provider
Outbound Traffic: What Kind of Probing?
• Lots of options
– HTTP transfer
– UDP traffic
– TCP traffic
– Traceroute
– Ping
• Pros and cons for each
– Accuracy
– Overhead
– Dropped by routers
– Sets off intrusion detection systems
• How to monitor the “paths not taken”?
Outbound Traffic: How Often to Change?
• Stub ASes have no BGP customers
– So, routing changes do not trigger BGP updates
• TCP flows that switch paths
– Out-of-order packets during transition
– Change in round-trip-time (RTT)
• Impact on the providers
– Uncertainty in the offered load
– Interaction with their own traffic engineering?
• Impact on other end users
– Good: move traffic off of congested paths
– Bad: potential oscillation as other stub ASes adapt?
Controlling Inbound Traffic
Inbound Traffic: Influencing Others
• Harder to control than outbound traffic
– IP routing is destination based
– Sender determines where the packets go
• Control only by influencing others’ decisions
– Static configuration of the providers
– BGP route attributes sent by the stub
– Selective advertising of destination prefixes
Provider 1
Provider 2
Inbound Traffic: Primary and Backup
• Ask your provider to be a backup
– Provider violates “prefer customer” policy
– … by assigning lower local-pref to customer
– Backup link is only used if the primary link fails
Provider 1
Provider 2
Inbound Traffic: AS Prepending
• Make one path look longer
– Advertise short path one way
– … and longer path another
– In the hope of influencing choices
– But, how much prepending to do?
Provider 1
“ (3)”
Provider 2
“ (3, 3, 3)”
Inbound Traffic: Prepending Fail
• Example where prepending doesn’t work
– Customer does prepending of AS path
– Provider has a “prefer customer” policy
– Provider 2 prefers the longer path
“ (1, 3)”
Provider 1
“ (3)”
Provider 2
“ (3, 3, 3)”
Inbound Traffic: Programming Your Provider
• Better to have selective control over provider
– Tell the provider whether to prefer your route
– … on a per-prefix basis, with changes over time
• Enables adaptive load balancing
– Without asking provider to reconfigure policy
Provider 1
Provider 2
Inbound Traffic: BGP Communities
• Provider and customer agree on a “tag”
– One tag mean “primary” and the other “backup”
– Customer includes tags in BGP advertisements
– Provider sets local preference based on tags
• BGP community attribute
– Opaque attribute with no real meaning
 Two numbers: usually AS number and arbitrary number
– Sprint example (
 1239:70 means “assign local pref of 70”
 …
 1239:110 means “assign local pref of 110”
See RFC 1998
Example: ISP Setting Local-Pref
• Customers
– 110: Primary path
– 100: Secondary path
– 80: Primary backup path
– 70: Secondary backup path
• Peers
– 81-99: In between
– Range for traffic engineering
Inbound Traffic: Selective Advertising
• When you don’t have enough prefixes…
– Advertise one subnet to each provider
– Advertise the supernet to both providers
– Traffic splits due to the longest-prefix match
– Supernet ensures backup connectivity after failure
Provider 1
Provider 2
Causes unwanted increase in global routing tables
Inbound Traffic: Multiple Addresses
• Multiple external addresses for a service
– One IP address for each entry point
• Use DNS to adjust mapping of name to address
– Give different answers to different clients
– Adjust over time to performance, cost, traffic, etc.
Provider 1
Provider 2
Inbound Traffic: Tunneling
• Cooperation with sender
– Sending network picks the
ingress point
– Encapsulates the packet
with the interface address
Encapsulate with or
• Advantages
– Sender may
know best
Provider 1
Provider 2
• Disadvantages
– Requires cooperation
– Failure recovery
Looking Forward
Greater Path Diversity
• Performance depends on the end-to-end path
– Need greater path diversity
• How to get more paths?
– Add more providers? (expensive)
– Support multipath routing?
• Ways to support multipath routing
– Source routing
– Provider offering multipath as a service
– Overlays (e.g., RON)
– Deflecting packets through intermediate Ases
– Etc.
Overlay Example: RON
Premise: by building application overlay network,
can increase performance and reliability of routing
Two-hop (application-level)
Berkeley-to-Princeton route
Overlay Example: RON
• Exchange the results of the probes
– Each host shares results with every other host
– Essentially running a link-state protocol!
– So, every host knows the performance properties
• Forward through intermediate host when needed
Discussion: Who’s in Charge?
• Routers
– Reduces complexity and overhead the end hosts
– Avoids placing (unwarranted?) trust in end hosts
– Managed based on an organization’s goals
– Lower performance measurement overhead
• End hosts
– Best equipped to judge if performance is good enough
– Decisions customized to the specific application
– Finer-granularity of load-balancing decisions
– Monitor performance by observing their own traffic
Other Discussion
• At what layer or component (e.g., DNS, BGP,
overlays, application, etc.)?
• How to get extra path diversity?
• Who pays for extra resources?
• How to prevent global inefficiency or instability?
• What is a good clean-slate solution?