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)
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. 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. 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. 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
7. Network model of datacenter
Internet
DNAT / LB
Datacenter
network
Physical/Virtual server clusters
Wednesday, October 30, 13
SNAT
DHCP
DNS
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. 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. 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. 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
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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