E6998 - Virtual Machines Lecture 5 Network Virtualization
Scott Devine VMware, Inc.
Computer System Organization
CPU
MMU
Memory
Controller
Local Bus
Interface
High-Speed I/O Bus
NIC Controller Bridge Frame Buffer
LAN
Low-Speed I/O Bus
CD-ROM USB
Device Virtualization
Goals
Isolation Multiplexing Speed Mobility Interposition
Device Virtualization Strategies
Direct Access Emulation Para-virtualization
Network Virtualization
Considerations
What layer?
Ethernet TCP/IP
Which network are we attached to? What network identity?
Virtual Networking with vnets
VM 1 VM 2
Guest NIC Driver
Para-virtualized NIC Driver
NIC Emulation
Para-virt Interface
TCP/IP Stack
vnet
HW NIC Driver
VMM / Hypervisor / Host OS
LAN
vnets in a Hosted Architecture
User App Guest NIC Emulation NIC Driver
Host OS
vnet
Monitor
LAN
VMware's Hosted vnet API
char packet[1500];
fd = open("/dev/vmnet1", O_RDWR);
ioctl(fd, ...); read(fd, packet, 1500); write(fd, packet, 1500); close(fd);
DHCP Service
VM 1
vnet DHCP Server
VM 2
Guest NIC Driver
Para-virtualized NIC Driver
NIC Emulation
Para-virt Interface
TCP/IP Stack
vnet
HW NIC Driver
VMM / Hypervisor / Host OS
LAN
Host-only Networking
VM 1
vnet DHCP Server
VM 2
Guest NIC Driver
Para-virtualized NIC Driver
NIC Emulation
Para-virt Interface
TCP/IP Stack
HW NIC Driver
vnet NIC Driver
vnet
VMM / Hypervisor / Host OS
LAN
Bridged Networking
VM 1 VM 2
Guest NIC Driver
Para-virtualized NIC Driver
NIC Emulation
Para-virt Interface
TCP/IP Stack
Bridge
vnet
HW NIC Driver
VMM / Hypervisor / Host OS
LAN
Secure Networking with 2 NICs
Internet VM Intranet App
Browser
TCP/IP Stack
Bridge
vnet
HW NIC 1 Driver HW NIC 2 Driver
VMM / Hypervisor / Host OS
LAN
www
NAT Networking with vnets
VM 1
NAT App
VM 2
Guest NIC Driver
Para-virtualized NIC Driver
NIC Emulation
Para-virt Interface
TCP/IP Stack
vnet
HW NIC Driver
VMM / Hypervisor / Host OS
LAN
VLAN Trunking
P P
VLAN 1
VLAN 2
VLAN 1
VLAN 2
VLAN 3
Q P
VLAN Switch
VLAN Trunk
VLAN Switch
VLAN 3
VLAN 1
<1,P> <3,Q>
VLAN 2
VLAN 3
VLAN 2
VLANs with vnets
VM 1 on VLAN 1 VM 2 on VLAN2
VMM / Hypervisor / Host OS
Bridge
vnet1
Bridge
vnet2
HW NIC Driver
HW NIC Driver
VLAN 1
VLAN 2
VLAN Trunking with vnets
VM 1 on VLAN 1 VM 2 on VLAN2
VMM / Hypervisor / Host OS
vnet1
HW NIC Driver
vnet2
Virtual VLAN Switch
VLAN Trunk