150 likes | 231 Vues
This project aims to seamlessly integrate external connectivity with virtual network experiments by implementing a BGP Mux solution to improve stability, scalability, and session transparency. Using Quagga for control-plane implementation, the design allows for multiple BGP views, local AS changes, and transparent updates. By scaling with multiple views and deploying in VINI locations, the project ensures stable and scalable connectivity for virtual networks, with plans for further integration and data plane enhancements.
E N D
Bringing External Connectivity and Experimenters to GENI Nick Feamster
Cluster • Goal: Bring external connectivity to experiments through seamless integration with experiments on virtual networks
Session Background: BGP Autonomous Systems Route Advertisement Traffic
Problem • Virtual networks need upstream connectivity • Ability to receive routes for rest of internet • Ability to advertise routes • But, experiments using virtual networks may also be transient • High overhead for setting up new sessions • Transient nature of BGP sessions may create global instability
Individual Sessions Not Scalable AS1 AS2 BGP Sessions GENI, ProtoGENI, VINI Virtual AS1 Virtual AS2
Solution: BGP Mux AS1 AS2 BGP-Mux GENI, ProtoGENI, VINI Virtual AS1 Virtual AS2
Design Requirements • Session transparency: BGP updates should appear as they would with direct connection • Session stability: Upstreams should not see transient behavior • Isolation: Individual networks should be able to set their own policies, forward independently, etc. • Scalability: Mux should support many networks
Control-Plane Implementation: Quagga • Quagga Routing Suite • Open-source BGP daemon • Cisco like CLI support • Used by real ISPs • Salient features • Multiple BGP views • Local-AS change • Transparent updates
Configuration AS2 AS1 External IP BGP-Mux Server BGP Instance BGP-View – AS1 BGP-View – AS2 IP1 IP2 Virtual AS2 Virtual AS1
Configuration: Quagga bgp multiple-instance ! router bgp 64512 view Verio bgp router-id 147.28.7.21 network 168.62.16.0/21 neighbor 147.28.0.4 remote-as 3130 neighbor 147.28.0.4 description PSG0 - Verio neighbor 147.28.0.4 route-map BLOCK out ! router bgp 64512 view ATT bgp router-id 147.28.0.212 network 168.62.16.0/21 neighbor 147.28.0.1 remote-as 3130 neighbor 147.28.0.1 description ATT neighbor 147.28.0.1 route-map BLOCK out !
Scaling with Multiple Views AS1 AS2 External IP BGP-Mux Server BGP Server BGP Server BGP Instance BGP-View – AS1 BGP-View – AS2
Work in Progress • VINI Deployment: Two locations • Washington • Virginia • Waiting for upstream connectivity • Test clients in Emulab network • The number of clients • Memory consumption • CPU consumption • Update propagation speed
Next Steps • Internet2/ProtoGENI deployment • Upstream Connectivity • Ability to advertise prefixes (need to get prefixes from I2 for ProtoGENI) • Data Plane Integration • Integration with Emulab/ProtoGENI
Summary • Virtual networks need upstream connectivity • Transparent to experiments • Stable, from the appearance of the upstream ISP • BGP-Mux • Easy to implement • Easy to deploy • Scales
Other Aspect of Project • Ethernet GRE Tunnels within ProtoGENI • Ability to instantiate Ethernet GRE tunnels with • OpenVZ Kernel • Trellis Kernel