300 likes | 460 Views
Hosting Virtual Networks on Commodity Hardware. VINI Summer Camp. Decouple Service from Infrastructure. Service: “slices” of physical infrastructure Applications and networks that benefit from Flexible, custom topologies Application-specific routing
E N D
Hosting Virtual Networks on Commodity Hardware VINI Summer Camp
Decouple Service from Infrastructure • Service: “slices” of physical infrastructure • Applications and networks that benefit from • Flexible, custom topologies • Application-specific routing • Infrastructure: needed to build networks
Network Virtualization: 3 Aspects • Host: Divide the resources of one physical node into the appearance of multiple distinct hosts • Network stack: Give each process its own interfaces, routing table, etc. • Links: Connect two nodes by composing underlying links
Why Virtual Networks • Sharing amortizes costs • Enterprise network or small ISP does not have to buy separate routers, switches, etc. • Large ISP can easily expand to new data center without buying separate equipment • Programmability and customizability • Testing in realistic environments
Why Commodity Hardware • Lower barrier to entry • Servers are inexpensive • Routing (e.g., Quagga), and forwarding (e.g., Click) software is open source (free) • No need for specialized hardware • Open-source routing software: Quagga, etc. • Network processors can be hard to program • Easy adaptation of physical infrastructure • Expansion is easy: buy more servers
Commercial Motivation:Logical Routers • Consolidation • PoP and Core • Simpler physical topology • Fewer physical interconnection • Application-Specific Routing • PoP and Core • Simpler physical topology • Fewer physical interconnection • Wholesale Router Market • Proof-of-Concept Deployment
Other Beneficiaries • Interactive applications: require application-specific routing protocols • Gaming • VoIP • Critical services: benefit from custom data plane • Applications that need more debugging info • Applications with stronger security requirements
Requirements • Speed: Packet forwarding rate that approach that of native, in-kernel • Flexibility: Support for custom routing protocols and topology • Isolation: Separation of resource utilization and namespaces
Host Virtualization • Full virtualization: VMWare Server, KVM • Advantage: No changes to Guest OS, good isolation • Disadvantage: Slow • Paravirtualization: Xen, Viridian • OS-Level Virtualization: OpenVZ, VServers, Jail • Advantage: Fast • Disadvantage: Requires special kernel, less isolation
Network Stack Virtualization • Allows each container to have its own • Interfaces • View of IP address space • Routing and ARP tables • VServer does not provide this function • Solution 1: Patch VServer with NetNS • Solution 2: OpenVZ • VServer is already used for PlanetLab
Link Virtualization • Containers need Ethernet connectivity • Routers expect direct Ethernet connections to neighbors • Linux GRE tunnels support only IP-in-IP • Solution: Ethernet GRE (EGRE) tunnel
Synthesis • Tunnel interface outside of container • Permits traffic shaping outside of container • Easier to create point-to-multipoint topology • Need to connect tunnel interface to virtual interface
Connecting Interfaces: Bridge • Linux bridge module: connects virtual interface with the tunnel interface • speed suffers due to bridge table lookup • allows point-to-multipoint topologies
Optimization: ShortBridge • Kernel module used to join virtual interface inside the container with the tunnel interface • Achieves high packet forwarding rate
Evaluation • Forwarding performance • Packets-Per-Second • Source->Node-Under-Test->Sink • Isolation • Jitter/loss measurements with bursty cross traffic • Scalability • Forwarding performance as the number of containers grow • All tests were conducted on Emulab • 3GHz CPU, 1MB L2 Cache, 800MHz FSB, 2GB 400MHz DDR2 RAM
Forwarding Performance - Click • Minimal Click configuration • Raw UDP receive->send • Higher jitter • ~80’000PPS
Forwarding Performance - Bridged Allows more flexibility through bridging ~250’000PPS
Forwarding Performance – Bridged w/o Tunneling Xen: often crashes, ~70’000PPS OpenVZ: ~300’000PPS NetNS: ~300’000PPS
Forwarding Performance – Spliced Avoids bridging overhead Point-to-Point topologies only ~500’000PPS
Forwarding Performance - Direct No resource control ~580’000PPS
Isolation • Setup: • 5 nodes. 2 pairs of source+sink • 2 NetNS containers in spliced mode • pktgen used to generate cross flow • iperf measures jitter on another flow • Step function • CPU utilization < 99%: no loss, 0.5ms jitter • CPU utilization ~> 100%: loss, 0.5ms jitter for delivered packets
Tradeoffs • Bridge vs. Shortbridge • Bridge enables point-to-multipoint • Shortbridge is faster • Data-plane flexibility vs. Performance • Non-IP forwarding requires user-space processing (Click)
Future Work • Resource allocation and scheduling • CPU • Interrupts/packet processing • Long-running deployment on VINI testbed • Develop applications for the platform
Questions • Other motivations/applications? • Other aspects to test? • Design alternatives?