190 likes | 288 Views
Routing NextGen. What are the problems today (inter-domain): Lack of route selection One size fits all routing, usually a single best-path to a destination Selection is limited only to the edge, first hop ISP Bad for competition between ISPs Can not do QoS easily
E N D
Routing NextGen • What are the problems today (inter-domain): • Lack of route selection • One size fits all routing, usually a single best-path to a destination • Selection is limited only to the edge, first hop ISP • Bad for competition between ISPs • Can not do QoS easily • Architecture/implementation • Many complex computations happen in multiple places • How to deal with overlays from the infrastructure standpoint • Traffic engineering • Tussle between overlays and underlays • Overlays are hard to get right and scale • Adaptive traffic engineering
How do I change things? • Revolutionary changes • Throw away BGP and replace with something better • Is it is feasible? • Evolutionary changes • Come up with something that can coexist with BGP and can gradually replace it • Extend BGP mechanisms • But many things in BGP are already broken • Add hacks to BGP • Until it breaks completely • Bypass the whole thing • Overlay networks • Can be inefficient and may not scale to the whole Internet size
Offering more route selection • Technical problems • End nodes must discover potential routes • Scalability? • Must have some feedback about the QoS on them • Scalability? • Must be able to send their packets over one of them • Performance of source routing? • Per packet overheads for the source route? • Political problems • Will ISPs accept loosing control of their network • How to reconcile end-node route selection with ISP policy constraints
Brute force • This is not a new idea • NIMROD (It May Run One Day) • Well, it didn’t • Discover the map of the whole internet • Will it scale? • Can do with a smaller more abstract map • Hierarchical aggregation • IP source routing for selecting different routes • This will not work ok, will need some kind of support from the network for tunneling • Use active monitoring to determine which routes are good • This will not scale to large sizes • It is also optional
Better approaches • New architectures • Extend BGP • Overlays • Move the problem to a higher layer • Can be inefficient at the network layer • End-host overlays are usually very bandwidth limited • Active networks • Program routers to do whatever is needed • Security and performance is a problem • We have seen some • RON • Detour: use another node as a detour
NIRA • Throw away BGP • Use AS level routes • As most other proposals do, nothing else scales in the inter-domain • Route discovery • Flood AS connectivity information based on policy constraints using a new protocol (TIPP) • Well, more complexity • End nodes can build a topology map of their parents providers towards the core • Route QoS discovery • Use TIPP to send QoS information for a part of the route • End node may have incomplete or inaccurate information • Source gets an error and tries another route, takes a bit too long • Source routing • Take advantage of the hierarchy in the internet • Select a route as a combination of source and destination address • Forwarding must consider source address now
MIRO • Extend BGP to understand multiple paths • Focus: achieve this under ISP control • Evolutionary: still use BGP • AS a can ask its neighbor AS b for more paths if it is not happy with the single path it gets • Can specify some policy for the additional path(s) • E.g avoid ISP x • Use IP-in-IP tunneling to force traffic over the alternate paths • Tunnels need to be managed, setup, repaired etc… • Its starts getting a bit too complex • No attempt for getting QoS information for each alternate route
Routing as a service (ROSE) • Separation between forwarding infrastructure and path computation • Forwarding infrastructure is an overlay • Of nodes inside the ISPs • ISPs have control of how traffic is routed on their networks • Each node monitors performance of its connections with its neighbors • Loss rate, available b/w, latency • Path computation, done by ROSE using the QoS information • In order to scale decompose the network into domains • Paths are computed by servers in each domain • Servers of different domains cooperate to build an end-end path • Packet forwarding using identifiers very similar to MPLS • Trust? Does path computation trust the QoS reports from the forwarding? • Verify the information, punish the liars
Feedback based routing • End nodes are connected to the internet through access routers • Ases exchange topology connectivity information between them • Flooding, advertise periodically and time-out if not refreshed • Access routers build a complete internet map • Scaling? Multiple 10s of Mbytes for storing this information • Access routers monitor the quality of the various routes using active and passive probing • They monitor/use at least two routes for each destination so there is a fast fallback route • In extreme cases can duplicate traffic over both these paths for zero-time fail-over • Uses “internet relay tokens” to forward packets along an AS source route
Routing Deflections • Packets can be deflected to an alternate path (deflection) on their way to the destination • Deflections inside the ISP network and among ISPs • Packets contain a single tag that determines which deflections are used inside the network • End-nodes will probe different routes in order to achieve QoS • They is no clear mapping between tags and routes • Can not easily e.g. avoid a certain node/AS • But the overhead in the packet is very small • Deflection decisions are made independently by the transit networks • Must ensure there are no routing loops • Scales better than end-node selection • Deflect to another next-hop whose cost to destination is smaller • Has been used before for IP repair of traffic • Use additional rules to discover more options • Little bit more tricky to do across ISPs but it can be done
Internet indirection infrastructure (I^3) • Use indirection as the basic mechanism • There is a rendezvous point between sender and receiver • Receivers register a trigger (id, dest) • And refresh them periodically, soft state • Senders send to data to an id • Indirection node forwards data based on a longest prefix match on the id • Can implement many communication modes • Multicast, mobility anycast • Can have id stacks for implementing source routing • Service composition, load balancing • large scale multicast with id stacks • Very powerful construct • Implementation using a DHT to store the triggers • Demonstrated using chord
Declarative routing • Quite a bit more adventurous • Express the query for a route as a prolog query • Execute this query in a distributed way in the network • The result will be the route we are looking for • It is possible to express all types of routings • Unicast, multicast, policy best-path, link state • The ultimate route selection flexibility • BUT: • Security: my query has an infinite loop • It is possible to statically check • It may be too slow and to expensive to compute routes this way • It is possible to optimize execution a lot using techniques from database query execution
Fixing BGP • One major problem of BGP is that all changes are visible to all the network • This causes a lot of churn • HLP • Take advantage of provider hierarchies • Topology consists of AS not routers • Do link state inside a hierarchy • Each inter-domain link has a cost • Distance vector between the roots of the hierarchies • Changes inside a hierarchy do not have to be sent to all the network • Such a protocol may not be too hard to implement
Separating routing from routers • BGP problems • Each border router performs its own path computation • Needs to be configured with policies etc • Needs to exchange results with other border routers through iBGP • For scalability use route reflectors, backup route reflectors • When there are failures there can be loops • Route reflector will compute the same route for all the routers, not exactly the same as the routes computed by a full iBGP mesh • Centralize routing to a route control point (RCP) • Not unlike a route server • Has iBGP peerings with all the border routers, gets all the routes • Computes the best route for each router • Sends routes to each router in the domain over iBGP • RCPs from different domains peer with each other with eBGP • Enables more interesting inter-domain protocols • Implementing RCP is not too easy • Scalability, redundancy, synchronization between replicas
Separating infrastructure from service • An ISP owns the routers and owns the services that run on them • Little coordination between ISPs results in huge difficulty in providing end-to-end service • Introduction of new services is painfully complex • Infrastructure providers provide programmable routers • Service providers build their own virtual networks on top of the infrastructure and provide their service • Part overlay part virtual network • Virtual routers • Isolation and resource sharing • Virtual links • Isolation and sharing • Discovery of physical topology • Setting up the service network • Admission control • Security
Overlays • Can provide a lot of extra functionality without having to change the infrastructure • But there are problems: • Inefficient use of the underlying resources • Traffic may flow over a link twice • Failures are repaired at two different layers • Overlay links may violate BGP or other policies • Traffic engineering methods and decisions may be conflicting • Overlays can not scale to encompass the whole internet
Sample overlay work • RON: • Provide reliable communication even in the face of network failures and instability • Full mesh of overlay links that are constantly monitored to find paths with good performance • OverQoS: • Overlay links are more active • Shape traffic and attempt to achieve maximum loss rates by ECN and retransmissions • Need to make sure that overlay links are TCP friendly • Optimized placement of the overlay links/nodes • Attempt to optimize the usage of real links and nodes • Not easy to do since we do not know the traffic that overlay links will carry • May have to incrementally evolve the overlay network by moving overlay nodes around as network conditions change
Scalable overlays • Overlays can be quite inefficient • Cross the same physical links twice • May match very poorly the underlying network topology • Monitoring the QoS of the virtual links is expensive • We saw RON, a full mesh overlay that did not scale very well • Other attempts build more sparse overlays • Still treat the underlying network as a black box • Can use additional information • Geographical location • AS map of the internet • Can be derived relatively cheaply through the BGP routing tables
Traffic Engineering • Major issues • Dynamic TE, adapt quickly to changes in the load of the network • Without waiting weeks for re-optimization • Without requiring knowledge of a hard to measure traffic matrix • MATE etc… • Overlays and their interaction with the underlay • Overlays can be adaptive • Lot of traffic can shit suddenly • Right now there is no coordination • Decisions at each layer may be conflicting • Optimization of the underlay may be totally wrong