diff --git a/server-configs/vms/README.md b/server-configs/vms/README.md
new file mode 100644
index 0000000..c652f38
--- /dev/null
+++ b/server-configs/vms/README.md
@@ -0,0 +1,65 @@
+# Virtual Machines
+
+## Resources used
+
+| Name | vCPU | Memory (MiB) | Disk (GiB) | VLANs |
+| --------------- | ---- | ------------ | ---------- | ----- |
+| gateway-openwrt | 8 | 4096 | 1 | all |
+| dns | 2 | 4096 | 20 | all |
+| monitoring | 4 | 4096 | 40 | 20 |
+| voip | 2 | 2048 | 20 | 26 |
+
+## SR-IOV
+
+Intel's X520 network adapters we are currently using support passing through a virtual function of the NIC directly to the VM.
+
+### Host configuration
+
+SR-IOV should be enabled in the server's BIOS.
+
+To create virtual functions on boot, a `udev` rule has to be created.
+On dual-port cards even VF numbers are given to the first port (`..f0`). Odd ones are connected to the second port (`..f1`).
+
+```bash
+cat > /etc/udev/rules.d/enp1s0f0.rules << EOF
+KERNEL=="0000:01:00.0", SUBSYSTEM=="pci", DRIVER=="ixgbe", ATTR{vendor}=="0x8086", ATTR{device}=="0x154d", ATTR{sriov_numvfs}="15"
+KERNEL=="0000:01:00.1", SUBSYSTEM=="pci", DRIVER=="ixgbe", ATTR{vendor}=="0x8086", ATTR{device}=="0x154d", ATTR{sriov_numvfs}="15"
+EOF
+```
+
+### Attaching a virtual function to a VM
+
+We have to manually edit the VM's XML definition.
+The function IDs must be unique as each virtual function can be used exclusively by a single VM (and is detached from the host).
+Depending on our needs, we can attach:
+
+#### In a specific VLAN (the NIC/hypervisor is responsible for tagging the frames)
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+#### Directly (to use as a dot1q trunk)
+
+```xml
+
+
+
+
+
+
+```
+
+All offloading features work on virtual functions, including VLAN tagging.
diff --git a/server-configs/vms/dns.xml b/server-configs/vms/dns.xml
new file mode 100644
index 0000000..0c0f3fc
--- /dev/null
+++ b/server-configs/vms/dns.xml
@@ -0,0 +1,207 @@
+
+ dns
+ 3c603d11-23d5-46b0-b944-390923af9f3d
+
+
+
+
+
+ 4194304
+ 4194304
+ 2
+
+ /machine
+
+
+ hvm
+
+
+
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ destroy
+
+
+
+
+
+ /usr/bin/qemu-system-x86_64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /dev/urandom
+
+
+
+
+
+
+ libvirt-3c603d11-23d5-46b0-b944-390923af9f3d
+
+
+
+ +64055:+64055
+
+
+
diff --git a/server-configs/vms/gateway.xml b/server-configs/vms/gateway.xml
new file mode 100644
index 0000000..c9c68f8
--- /dev/null
+++ b/server-configs/vms/gateway.xml
@@ -0,0 +1,233 @@
+
+ gateway-openwrt
+ 89849f20-f741-4425-917b-3d22908319d1
+
+
+
+
+
+ 4194304
+ 4194304
+ 8
+
+ /machine
+
+
+ hvm
+
+
+
+
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ destroy
+
+
+
+
+
+ /usr/bin/qemu-system-x86_64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /dev/urandom
+
+
+
+
+
+
+ libvirt-89849f20-f741-4425-917b-3d22908319d1
+
+
+
+ +64055:+64055
+
+
+
diff --git a/server-configs/vms/monitoring.xml b/server-configs/vms/monitoring.xml
new file mode 100644
index 0000000..3329291
--- /dev/null
+++ b/server-configs/vms/monitoring.xml
@@ -0,0 +1,210 @@
+
+ monitoring
+ b5954785-a436-4598-9e17-ea25d8209e21
+
+
+
+
+
+ 4194304
+ 4194304
+ 4
+
+ /machine
+
+
+ hvm
+
+
+
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ destroy
+
+
+
+
+
+ /usr/bin/qemu-system-x86_64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /dev/urandom
+
+
+
+
+
+
+ libvirt-b5954785-a436-4598-9e17-ea25d8209e21
+
+
+
+ +64055:+64055
+
+
+
diff --git a/server-configs/vms/voip.xml b/server-configs/vms/voip.xml
new file mode 100644
index 0000000..fc2a0ea
--- /dev/null
+++ b/server-configs/vms/voip.xml
@@ -0,0 +1,247 @@
+
+ voip
+ ab7dea2b-d424-468c-a35a-e44459c9bae6
+
+
+
+
+
+ 2097152
+ 2097152
+ 2
+
+ /machine
+
+
+ hvm
+
+
+
+
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ destroy
+
+
+
+
+
+ /usr/bin/qemu-system-x86_64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /dev/urandom
+
+
+
+
+
+
+ libvirt-ab7dea2b-d424-468c-a35a-e44459c9bae6
+
+
+
+ +64055:+64055
+
+
+