OpenVNet - Introduction

1,693 views

Published on

It'd be honored to announce our product OpenVNet, which offers efficient and seamless network virtualization. This is an open source project under LGPL 3.0, hosted on GitHub (https://github.com/axsh/openvnet)

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,693
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
30
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

OpenVNet - Introduction

  1. 1. OpenVNet Axsh co., Ltd. Wednesday, October 30, 13
  2. 2. What is OpenVNet? • • • • • • Spin-off project from Wakame-vdc 4 developers 1170 commits Written in Ruby 9619 LOCs (13033 LOCs with test codes) Started March 2013, now it is 7 month old Wednesday, October 30, 13
  3. 3. Why OpenVNet? • There are many products offering network virtualization but not free • Is there any product to freely try out network virtualization? • • Wakame-vdc offers network virtualization Extract virtual network functionality from Wakame-vdc to make an independent package Wednesday, October 30, 13
  4. 4. Advantages of OpenVNet Freely and easily create/destroy networks • e.g.) quickly preparing an isolated network for experiment Reduce the maintaining cost of the physical networks • • Users can create complex networks on top of OpenVNet Keep the physical networks simple No need expensive network switches • Wednesday, October 30, 13 Edge-overlay architecture enables creating complex multi-tenant networks
  5. 5. Advantages of OpenVNet Seamless network virtualization • • Virtualizing entire network is difficult • OpenVNet supports association with legacy network Why not to start network virtualization from smaller part? Wednesday, October 30, 13
  6. 6. Internal Architecture of OpenVNet Wednesday, October 30, 13
  7. 7. Network model of datacenter Internet DNAT / LB Datacenter network Physical/Virtual server clusters Wednesday, October 30, 13 SNAT DHCP DNS
  8. 8. Network model of datacenter Internet External network DNAT / LB WAN edge network Datacenter network SNAT DHCP DNS Datacenter physical network LAN edge network General servers Appliance servers Physical/Virtual server clusters Resources Wednesday, October 30, 13 Storage servers
  9. 9. Deployment of agent program Internet DNAT / LB agent agent agent Datacenter network agent agent SNAT DHCP DNS agent Physical/Virtual server clusters Wednesday, October 30, 13 Deploy agents for packet control
  10. 10. Message queue Internet DNAT / LB agent agent agent Datacenter Queue network agent agent SNAT DHCP DNS agent Physical/Virtual server clusters Wednesday, October 30, 13 Agents communicate to each other through message queue system
  11. 11. Components of OpenVNet vna (virtual network agent) • • Agent Configure OpenvSwitch (version 1.10.0) Include an OpenFlow controller implemented with Trema-edge vnmgr (virtual network manager) other components • • • Manage the datacenter network Provide database access back-ended by MySQL Command vna to do some specific actions e.g.) update flows vnapi (virtual network API) • WebAPI to talk to vnmgr • Command line interface to use vnapi vnctl (virtual network controller) Wednesday, October 30, 13
  12. 12. Components of OpenVNet Internet DB mysql vna vnmgr vnctl OpenFlow Switch (OpenvSwitch 1.10.0) http vnapi zeromq vna Datacenter Queue network vna vna vna OpenFlow Controller (Trema-edge) OpenFlow 1.3 Servers Wednesday, October 30, 13 vna vna
  13. 13. Deployment External network WAN edge network Datacenter physical network A dedicated line for management Packets for the service go through the public line management line public line eth0 LAN edge network General servers Appliance servers Storage servers Resources Wednesday, October 30, 13 Open vSwitch VM eth1 eth0 eth1 vna Open vSwitch vna VM
  14. 14. Packet forwarding in OpenVNet • MAC2MAC • OpenVNet original way of packet forwarding • Forward packet based on MAC address • GRE Tunnel • Over L3 routing • VNet edge • Perform VLAN ID translation • Associate with legacy network Wednesday, October 30, 13
  15. 15. MAC2MAC Suppose that both VM1 and VM2 exist on the same virtual network public line eth0 Open vSwitch eth1 eth0 eth1 vna Open vSwitch vna virtual network1 VM1 MAC = 00:00:00:00:01 IP = 10.102.0.10 Wednesday, October 30, 13 VM2 MAC = 00:00:00:00:02 IP = 10.102.0.11
  16. 16. MAC2MAC both vna know that VM1 and VM2 exist on virtual network1 public line eth0 Open vSwitch VM1 eth1 eth0 eth1 vna Open vSwitch vna virtual network1 VM2 VM1 = 00:00:00:00:01 VM2 = 00:00:00:00:02 Wednesday, October 30, 13
  17. 17. MAC2MAC VM1 sends ARP request public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 vna Open vSwitch vna src_ip = 10.102.0.10 dst_ip = 10.102.0.11 src_mac = 00:00:00:00:00:01 dst_mac = ff:ff:ff:ff:ff:ff VM2
  18. 18. MAC2MAC Open vSwitch broadcasts the packet public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 src_ip = 10.102.0.10 vna dst_ip = 10.102.0.11 src_mac = 00:00:00:00:00:01 dst_mac = ff:ff:ff:ff:ff:ff Open vSwitch vna VM2
  19. 19. MAC2MAC The other hosts receive the packet public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 src_ip = 10.102.0.10 vna dst_ip = 10.102.0.11 src_mac = 00:00:00:00:00:01 dst_mac = ff:ff:ff:ff:ff:ff Open vSwitch vna VM2
  20. 20. MAC2MAC Open vSwitch checks the src_mac, then it founds the packet is of virtual network1 public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 vna src_mac = 00:00:00:00:00:01 eth0 eth1 Open vSwitch vna VM2
  21. 21. MAC2MAC Remember src_mac in case of other packets whose destination is 00:00:00:00:00:01 public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 vna Open vSwitch vna dst_mac = 00:00:00:00:00:01 ⇛ output:eth0 VM2
  22. 22. MAC2MAC Forward a packet according to the network public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 vna Open vSwitch vna src_ip = 10.102.0.10 dst_ip = 10.102.0.11 src_mac = 00:00:00:00:00:01 dst_mac = ff:ff:ff:ff:ff:ff VM2
  23. 23. MAC2MAC ARP reply comes in the Open vSwitch public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 vna Open vSwitch vna src_ip = 10.102.0.11 dst_ip = 10.102.0.10 src_mac = 00:00:00:00:00:02 dst_mac = 00:00:00:00:00:01 VM2
  24. 24. MAC2MAC Open vSwitch knows that the packet should be forwarded to eth0 public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 vna dst_mac = 00:00:00:00:00:01 ⇛ output:eth0 src_ip = 10.102.0.11 dst_ip = 10.102.0.10 src_mac = 00:00:00:00:00:02 dst_mac = 00:00:00:00:00:01 eth0 eth1 Open vSwitch vna VM2
  25. 25. MAC2MAC The packet is forwarded from eth0 public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 src_ip = 10.102.0.11 dst_ip = 10.102.0.10 vna src_mac = 00:00:00:00:00:02 dst_mac = 00:00:00:00:00:01 eth0 eth1 Open vSwitch vna VM2
  26. 26. MAC2MAC The another host receives the ARP reply packet public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 src_ip = 10.102.0.11 dst_ip = 10.102.0.10 vna src_mac = 00:00:00:00:00:02 dst_mac = 00:00:00:00:00:01 eth0 eth1 Open vSwitch vna VM2
  27. 27. MAC2MAC Remember the source mac address public line eth0 Open vSwitch eth1 eth0 eth1 vna Open vSwitch vna src_mac = 00:00:00:00:00:02 ⇛ output:eth0 VM1 Wednesday, October 30, 13 VM2
  28. 28. MAC2MAC Output the packet to the specific VM public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 eth1 vna Open vSwitch vna src_ip = 10.102.0.11 dst_ip = 10.102.0.10 src_mac = 00:00:00:00:00:02 dst_mac = 00:00:00:00:00:01 VM2
  29. 29. GRE Tunnel Prepare GRE tunnels in case of L3 routing required Use MAC2MAC over GRE tunnels GRE tunnel L3 switch public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 vna Open vSwitch VM2 eth1 eth0 eth1 vna Open vSwitch vna VM3
  30. 30. Overall Any complex packet forwarding is done by Open vSwitch Just normal L2 and L3 switch are required No need to buy expensive network switches!! L3 switch public line eth0 Open vSwitch VM1 Wednesday, October 30, 13 eth1 eth0 vna Open vSwitch VM2 eth1 eth0 eth1 vna Open vSwitch vna VM3
  31. 31. Advantages of OpenVNet Seamless network virtualization • • Virtualizing entire network is difficult • OpenVNet supports association with legacy network Why not to start network virtualization from smaller part? Wednesday, October 30, 13
  32. 32. VNet edge Perform VLAN ID translation • • • legacy line Associate the legacy machine to the virtual network ID 2 Edge server is responsible for VLAN ID translation Legacy machine is connected to the edge server over L2 network Legacy L2 switch eth0 Legacy machine public line eth2 eth0 Open vSwitch eth1 eth0 eth1 vna Open vSwitch vna VM1 Edge server Wednesday, October 30, 13 Network ID 2
  33. 33. VNet edge Send a packet from a legacy machine • legacy line Suppose the legacy machine is associated with VLAN ID 100 Legacy L2 switch eth0 Legacy machine public line eth2 eth0 Open vSwitch eth1 eth0 eth1 vna Open vSwitch vna VM1 Edge server Wednesday, October 30, 13
  34. 34. VNet edge Open vSwitch forwards the packet to the OF controller Translates VLAN ID 100 to network ID 2 legacy line Legacy L2 switch eth0 Legacy machine public line eth2 eth0 eth1 VLAN 100 vnet 2 Edge server Wednesday, October 30, 13 eth1 vna Open vSwitch eth0 Open vSwitch vna VM1
  35. 35. VNet edge After the translation, the packet is forwarded by MAC2MAC legacy line Legacy L2 switch eth0 Legacy machine public line eth2 eth0 eth1 VLAN 100 vnet 2 Edge server Wednesday, October 30, 13 eth1 vna Open vSwitch eth0 Open vSwitch vna VM1
  36. 36. VNet edge The legacy machine can participate in the virtual network legacy line Legacy L2 switch eth0 Legacy machine public line eth2 eth0 eth1 VLAN 100 vnet 2 Edge server Wednesday, October 30, 13 eth1 vna Open vSwitch eth0 Open vSwitch vna VM1
  37. 37. Conclusion • • Advantages of OpenVNet • • • Reduce the cost for maintaining the physical networks No need to buy expensive network switches Association with the legacy networks Github • https://github.com/axsh/openvnet Wednesday, October 30, 13

×