MTS: Bringing Multi-Tenancy to Virtual Networking
Kashyap Thimmaraju, Saad Hermak, Gábor Rétvári and Stefan Schmid
USENIX Annual Technical Conference 2019 July 11, Renton, Washington, USA
MTS: Bringing Multi-Tenancy to Virtual Networking Kashyap - - PowerPoint PPT Presentation
MTS: Bringing Multi-Tenancy to Virtual Networking Kashyap Thimmaraju, Saad Hermak, Gbor Rtvri and Stefan Schmid USENIX Annual Technical Conference 2019 July 11, Renton, Washington, USA Virtual Networks Using Virtual Switches VM VM VM
Kashyap Thimmaraju, Saad Hermak, Gábor Rétvári and Stefan Schmid
USENIX Annual Technical Conference 2019 July 11, Renton, Washington, USA
Host OS VM $_ VM $_ Host OS VM $_ VM $_ VM $_ VM $_
2
Host OS VM $_ VM $_ Host OS VM $_ VM $_ VM $_ VM $_
Virtual Switch
3
Host OS VM $_ VM $_ Host OS VM $_ VM $_ VM $_ VM $_
4
Host OS VM $_ VM $_ Host OS VM $_ VM $_ VM $_ VM $_
Broadcast | Multicast | Unicast | Tunnel 1. Red 2. Blue 3. Green
5
Most emphasis has been on performance and flexibility
6
7
A malicious VM can send arbitrary packets to the virtual switch
Host OS VM $_ Host OS VM $_ VM $_
8
Oftentimes runs in the kernel for performance
9
Host OS VM $_ VM $_ Host OS VM $_ VM $_ User Kernel
Virtual network configurations are complex
10
Screenshot from Karim Elatov’s blog:
https://elatov.github.io/2018/01/openstack-ansible-and-kolla-on-ubuntu-1604/#5-packet-goes-from-ovs-inte gration-bridge-br-int-to-ovs-tunnel-bridge-br-tun
Mis-configurations could lead to security issues
Host OS VM $_ Host OS VM $_ VM $_
11
The consequence of a compromise can be severe, e.g., break out of VM isolation
Host OS VM $_ VM $_ Host OS VM $_ VM $_
12
SOSR’18: Remote-Code Exection OvS Con’19: Cross Tenant DoS
Host OS VM $_ Host OS VM $_ VM $_
13
14
15
16
1. Processes untrusted data 2. Privileged packet processing 3. Single point of failure 4. Co-located with the Host OS
Host $_ VM $_ VM $_
17
1. Processes untrusted data 2. Privileged packet processing 3. Single point of failure 4. Co-located with the Host OS
Host $_ VM $_ VM $_
18
1. Processes untrusted data 2. Privileged packet processing 3. Single point of failure 4. Co-located with the Host OS
Host $_ VM $_ VM $_
19
1. Processes untrusted data 2. Privileged packet processing 3. Single point of failure 4. Co-located with the Host OS
Host $_ VM $_ SR-IOV NIC
PF In/Out VF Gw VF T VF
VM $_
In/Out VF Gw VF T VF
L2 Switch in NIC
20
Mellanox ConnectX4, Open vSwitch, DPDK, QEMU, KVM More details in the paper
21
CPU
core
dedicated cores (not shown here)
Host OS
22
VM NIC In Out NIC In Out VM NIC In Out VM
p2p p2v v2v
23
64 byte UDP packets Roughly the same in p2p MTS is ~2x Baseline in p2v and v2v
24
B A S E L I N E 1 V S
M 2 V S
M 4 V S
M
64 byte UDP packets Roughly the same in p2p MTS is ~2x Baseline in p2v and v2v
25
MTS beats Baseline in Apache and Memcached
26
27
28
Real cloud systems can host more than just 4 tenants on a server
the same as running it in a VM for 4 containers
VMs
adding 40 VFs to 16 vswitches spread across 4 VMs. The interfaces do not appear in the VM although the configuration is present.
29
30
which our evaluation did not reveal
VMs with VFs
31
State-of-the-art MTS
Charge for CPU cycles used by the tenant-specific virtual switch
Broadcast | Multicast | Unicast 1. Red 2. Blue Broadcast | Multicast | Unicast Broadcast | Multicast | Unicast
$ $ $
32
Broadcast | Multicast | Unicast 1. Red 2. Blue Broadcast | Multicast | Unicast Broadcast | Multicast | Unicast
State-of-the-art MTS
1. Reduce parsing logic 2. Support tenant-specific features
33
34
1. Many virtual switches can be exploited to compromise Host and Network isolation 2. MTS is based on secure design principles that addresses security weakness of existing designs 3. MTS with SR-IOV offers security and performance for modest resources
Security Performance Resource
High High Mid
Our scripts and data are on github www.github.com/securedataplane
36
37
Virtual switches have to support an increasing number of protocols
38
39
More than 20
40
More than 20
41
More than 20
42
43
VM $_
HOST $_
L2 Switch in NIC
T VF PF GW VF IN/ OUT VF
VM $_
T VF GW VF IN/ OUT VF
44
VM $_
HOST $_
L2 Switch in NIC
VM $_ Packet destined to VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
45
L2 Switch in NIC
VM $_
HOST $_
VM $_ MAC address of the vswitch VF IP address of VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
46
L2 Switch in NIC
VM $_
HOST $_
VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
47
L2 Switch in NIC
VM $_
HOST $_
VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
48
L2 Switch in NIC
VM $_
HOST $_
VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
49
L2 Switch in NIC
VM $_
HOST $_
VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
50
L2 Switch in NIC
HOST $_
VM $_
T VF PF GW VF IN/ OUT VF T VF GW VF IN/ OUT VF
51
52
Can charge for compute and memory used by the vswitch
53
54
64 byte UDP packets Baseline is faster than MTS in p2p MTS is faster than Baseline in p2v and v2v
55
Baseline is faster than MTS in p2p MTS is faster than Baseline in p2v and v2v
56
Baseline is faster than MTS in p2p MTS is faster than Baseline in p2v and v2v
57
Baseline is faster than MTS in p2p MTS is faster than Baseline in p2v and v2v
58