OpenVNet
Axsh co., Ltd.

Wednesday, October 30, 13
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
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
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
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
Internal Architecture of
OpenVNet

Wednesday, October 30, 13
Network model of datacenter
Internet
DNAT / LB

Datacenter
network

Physical/Virtual server clusters
Wednesday, October 30, 13

SNAT
DHCP
DNS
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

OpenVNet - Introduction

  • 1.
  • 2.
    What is OpenVNet? • • • • • • Spin-offproject 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 aremany 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 Freelyand 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 Seamlessnetwork 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.
  • 7.
    Network model ofdatacenter Internet DNAT / LB Datacenter network Physical/Virtual server clusters Wednesday, October 30, 13 SNAT DHCP DNS
  • 8.
    Network model ofdatacenter 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 agentprogram 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
  • 12.
  • 13.
    Deployment External network WAN edgenetwork 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 inOpenVNet • 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 bothVM1 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 knowthat 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 ARPrequest 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 broadcaststhe 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 hostsreceive 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 checksthe 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 incase 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 packetaccording 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 comesin 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 knowsthat 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 isforwarded 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 hostreceives 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 sourcemac 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 packetto 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 GREtunnels 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 packetforwarding 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 Seamlessnetwork 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 VLANID 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 apacket 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 vSwitchforwards 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 thetranslation, 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 legacymachine 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 • • • Reducethe 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