Get your virtual machine up and running quickly with this step-by-step guide.
1
Initial Setup
Navigate to the Overview tab to view your VM status
Set a hostname following RFC 1035 standards (lowercase, 1-253 chars)
Configure a secure password (minimum 8 characters)
Click "Save & Apply" to apply settings via cloud-init
2
Network Configuration
Go to the Network tab to view assigned IP addresses
Configure network devices if needed (VirtIO recommended for Linux)
Set up static IP addresses via Cloud-init if required
Configure DNS servers for proper name resolution
3
First Boot
Power on your VM from the Overview tab
Use NoVNC or Xterm.js for console access
Complete OS installation if using installation media
Verify network connectivity and DNS resolution
4
Post-Installation
Update your operating system: apt update && apt upgrade (Debian/Ubuntu)
Install QEMU Guest Agent for enhanced features
Configure firewall rules as needed
Set up SSH access for remote administration
Create your first backup
How to Reinstall
Learn how to reinstall your virtual machine with a fresh operating system. Reinstalling will completely wipe your current installation and install a new OS from scratch.
Important: Data Loss Warning
All data will be permanently deleted - This includes files, applications, configurations, and user data
Backups are not automatically restored - Make sure to restore any needed data from backups after reinstallation
IP addresses are preserved - Your assigned IP addresses will remain the same
Network configuration is reset - You may need to reconfigure network settings after reinstall
1
Before You Begin
Backup important data - Download or backup any files, databases, or configurations you need to keep
Document your current configuration - Note down network settings, installed packages, and custom configurations
Verify server protection status - Some servers may have reinstall protection enabled (contact support if needed)
Ensure you have console access - You'll need NoVNC or Xterm.js access to complete the installation
2
Accessing the Reinstall Feature
Navigate to the Overview tab of your server
Scroll down to find the "Reinstall Server" button (usually in the server management section)
Click the button to open the reinstall dialog
If the button is disabled or shows a warning, your server may be protected - contact support
3
Selecting an Operating System
The reinstall dialog displays available operating system templates organized by category:
Ubuntu - Popular Linux distribution with LTS (Long Term Support) versions
Debian - Stable, community-driven Linux distribution
CentOS / Enterprise / RHEL Family - Enterprise Linux distributions (AlmaLinux, Rocky Linux, Oracle Linux)
Community & Rolling - Fedora, Arch Linux, openSUSE, Gentoo
Lightweight - Alpine Linux for minimal resource usage
BSD Family - FreeBSD, NetBSD, OpenBSD
Windows Server - Microsoft Windows Server editions
Proxmox Hypervisor - Proxmox VE for virtualization hosts
Tip: Look for "Recommended" badges on certain OS versions for best compatibility and support.
4
Confirming the Reinstall
Select your desired operating system from the list
Review the warning message about data loss
Check the confirmation checkbox to acknowledge data will be deleted
Click "Reinstall" to begin the process
You will be redirected to the servers list - the reinstall happens in the background
5
During Reinstallation
The reinstall process typically takes 5-15 minutes and involves:
Stopping the current virtual machine
Deleting the existing VM configuration and disk
Creating a new VM with the selected OS template
Installing the operating system from scratch
Configuring network settings with your assigned IP addresses
Setting up initial user credentials (password will be generated and sent via notification)
6
After Reinstallation
Check your notifications - You'll receive a notification with the new root/admin password
Access the console - Use NoVNC or Xterm.js to access the new installation
Verify network connectivity - Check that IP addresses are configured correctly
Update the system - Run system updates: apt update && apt upgrade (Debian/Ubuntu) or equivalent
Restore your data - Restore files and configurations from your backups
Reconfigure services - Set up applications, web servers, databases, etc.
Update Cloud-init settings - Configure hostname, SSH keys, and other settings in the Cloud-init tab
Frequently Asked Questions
Will my IP addresses change?
No, your assigned IP addresses (both IPv4 and IPv6) will remain the same after reinstallation.
Can I cancel a reinstall once it starts?
No, once the reinstall process begins, it cannot be cancelled. The old VM is deleted immediately.
What if my server shows "Protected" status?
Protected servers have reinstall disabled for safety. Contact support to enable reinstall if needed.
Will my backups be deleted?
No, existing backups are preserved. However, you'll need to manually restore data from backups after reinstall.
How long does reinstallation take?
Typically 5-15 minutes depending on the OS template size and server resources. You'll receive a notification when complete.
Overview Tab
The Overview tab provides a comprehensive dashboard for monitoring and managing your virtual machine. It displays real-time statistics, system information, and provides quick access to essential management functions.
Server Details
Hostname Management
The hostname is the network name assigned to your virtual machine. It's used for identification on the network and should follow RFC 1035 standards.
Enter a valid hostname following RFC 1035 standards
Click "Save" to store in database only
Click "Save & Apply" to also update VM configuration via cloud-init
Reboot the VM for changes to take effect
Examples
web-server-01
db-primary.example
Web_Server(uppercase, underscore)
-server-(starts/ends with hyphen)
Password Management
Manage the root or default user password for your virtual machine. Passwords are securely stored and can be applied via cloud-init.
Requirement
Specification
Minimum Length
8 characters
Confirmation
Must be entered twice for verification
Storage
Securely stored in encrypted database
Application
Applied via cloud-init on next boot
Important: Password Application
The server must be rebooted for password changes to take effect. Cloud-init applies the password during the boot process.
DNS Configuration
Domain Name System (DNS) settings determine how your virtual machine resolves domain names to IP addresses. These settings follow RFC 1034 and RFC 1035 standards.
Common DNS Servers:
Provider
IPv4 Primary
IPv4 Secondary
IPv6
Google
8.8.8.8
8.8.4.4
2001:4860:4860::8888
Cloudflare
1.1.1.1
1.0.0.1
2606:4700:4700::1111
Quad9
9.9.9.9
149.112.112.112
2620:fe::fe
API Integration & Technical Details
For software developers integrating with the QEMU/KVM API, hostname updates are performed via the QEMU configuration endpoint.
Management API Endpoint: Update VM Name
Use the Proxmox configuration endpoint to rename a VM. Authentication requires a ticket and CSRF token issued via the access/ticket endpoint.
Note: The VM name is used by cloud-init as the hostname. Changes require a VM restart to take effect via cloud-init. The management platform uses a ticket-based authentication system with CSRF protection.
Storage System Architecture
The platform supports multiple storage backends, each optimized for different use cases:
Storage Type
Backend
Use Case
Features
local
Directory
ISO images, templates
Simple file storage
local-lvm
LVM thin provisioning
VM disks, snapshots
Thin provisioning, snapshots
cephpool
Ceph RBD
Shared storage, HA
Distributed, replicated
nfs
NFS mount
Shared storage
Network-attached
Cloud-init Hostname Configuration
Cloud-init reads the VM name from QEMU config and applies it as hostname:
The hostname is set during first boot or when cloud-init clean is run followed by a reboot.
Security Considerations
Password Storage: Passwords are hashed using bcrypt (cost factor 10) before database storage
Cloud-init Transmission: Passwords are transmitted to QEMU API via HTTPS/TLS 1.2+
API Authentication: Uses PVEAuthCookie with CSRF token validation (RFC 7231)
Session Management: Tickets expire after 2 hours of inactivity (configurable)
Password Policy: Minimum 8 characters, no maximum (enforced client-side and server-side)
Performance Monitoring
Real-time performance graphs display CPU usage, memory consumption, network traffic, and disk I/O over various time ranges.
RRD Data Collection
Performance data is collected using Round Robin Database (RRD) format:
RRD storage consolidates historical metrics at different resolutions (hour, day, week, month, year) to keep graph rendering fast. The Overview and Statistics tabs consume the same data stream.
Data Retention: Hour (1 year), Day (5 years), Week (10 years), Month (50 years), Year (indefinite)
Metric
Description
Unit
CPU
Percentage of CPU time used by the virtual machine
Percentage (%)
Memory
RAM usage including cached and buffered memory
Bytes (B, KB, MB, GB)
Network
Inbound and outbound network traffic
Bytes per second (B/s)
Disk
Read and write operations on virtual disks
Bytes per second (B/s)
Time Ranges
Hour - Last 60 minutes
Day - Last 24 hours
Week - Last 7 days
Month - Last 30 days
Year - Last 365 days
Aggregation Methods
Average: Shows typical usage patterns
Maximum: Shows peak usage and spikes
Resource Allocation vs Entitlement
The Resource Allocation vs Entitlement section provides real-time visibility into how your virtual machine's actual resource consumption compares to its allocated entitlements. This helps you monitor resource usage, identify potential bottlenecks, and ensure optimal performance.
CPU Allocation
Displays live CPU usage as a percentage of your vCPU entitlement. Values are sampled directly from the Proxmox hypervisor and update automatically with each status poll (every 30 seconds by default, or every 2 seconds during fast polling).
Usage Calculation: Shows current CPU time used divided by total vCPU cores allocated
Progress Bar: Visual indicator that can exceed 100% to show over-allocation scenarios
Real-time Updates: Refreshes alongside the live status poll
Data Source: Directly from Proxmox hypervisor metrics
Memory Allocation
Shows current RAM usage compared to your provisioned memory entitlement. Calculated from the VM's allocated memory and updates in real-time as memory consumption changes.
Usage Display: Shows used memory vs. total allocated memory
Format: Human-readable format (B, KB, MB, GB) for easy understanding
Entitlement Label: Displays your provisioned RAM entitlement
Calculation: Based on the VPS's provisioned RAM configuration
Hypervisor Uptime
Displays the live uptime reported by the Proxmox hypervisor, plus power event statistics from the task history. This provides insight into VM stability and availability.
Uptime Display: Shows how long the VM has been running (formatted as days, hours, minutes)
Power Events: Tracks starts, shutdowns, and reboots from task history
Data Source: Combined data from hypervisor status and historical task logs
Badge: Always shows "Live" to indicate real-time data
Status Badges
Color-coded badges provide quick visual feedback about resource health status.
Badge
Condition
Color
Healthy
Usage below 85% of entitlement
Green
Watchlist
Usage between 85% and 100%
Yellow
Over entitlement
Usage exceeds 100% of entitlement
Red
Live Network Traffic
The Live Network Traffic section provides real-time bandwidth monitoring for each network interface on your virtual machine. It displays current transfer rates, peak values, historical traffic graphs, and cumulative statistics.
Current Rates
Shows the instantaneous download and upload speeds in bytes per second, updated every 30 seconds from Proxmox RRD (Round Robin Database) data. The update interval matches Proxmox's RRD sampling rate to ensure accurate data representation.
Download Rate: Inbound traffic speed (displayed in green)
Upload Rate: Outbound traffic speed (displayed in blue)
Update Frequency: Every 30 seconds (matches Proxmox RRD sampling)
Data Source: Proxmox RRD data via the /rrddata API endpoint
Format: Human-readable with automatic unit conversion (B/s, KiB/s, MiB/s, GiB/s)
Peak Values
Tracks the highest observed transfer rates for each direction since the page was loaded. Peak values help identify maximum bandwidth usage and can be useful for capacity planning.
Tracking: Automatically tracks peak download and upload rates
Reset: Resets when the page is refreshed or reloaded
Display: Shown next to current rates for easy comparison
Historical Graph
Click the "Graph" button in the top-right corner of each interface card to view a line chart showing network traffic trends over the last 10 minutes.
Time Range: Last 10 minutes of network activity
Data Lines: Separate lines for download (green) and upload (blue) traffic
Data Points: Up to 20 samples from Proxmox RRD data
Interactive: Hover over data points to see exact values at specific times
Auto-update: Graph updates automatically every 30 seconds with new data
Toggle: Click "Graph" again to hide the chart
Total Statistics
Displays cumulative data transfer totals from the VM's start, providing a long-term view of network usage.
Combined: Total of current download and upload rates
Total In: Cumulative bytes received since VM start
Total Out: Cumulative bytes sent since VM start
Data Source: From Proxmox /status/current endpoint
Format: Human-readable format (B, KB, MB, GB) for easy reading
Multiple Interfaces
If your virtual machine has multiple network interfaces configured, each interface will be displayed in its own card with separate statistics and graphs.
Interface Identification: Each card shows the interface name and bridge (e.g., "net0 (Route1p2)")
Independent Tracking: Each interface tracks its own rates, peaks, and history
Layout: Multiple interfaces are displayed in a responsive grid layout
Data Aggregation: Total statistics combine data from all interfaces
Data Refresh Rate
The Live Network Traffic section updates every 30 seconds to match Proxmox's RRD data sampling rate. This ensures that the displayed data accurately reflects the actual network activity without unnecessary API calls.
Boot Settings Tab
The Boot Settings tab allows you to configure the boot order for your virtual machine. This determines the sequence in which the system attempts to boot from available devices.
Understanding Boot Order
Boot order specifies the priority sequence for boot devices. The system will attempt to boot from each device in order until it finds a bootable medium. This is essential for controlling how your virtual machine starts.
Boot Process Flow
1
Power On / Reset
VM receives power signal and firmware initializes
2
Firmware Initialization
BIOS or UEFI firmware loads and initializes hardware
3
Boot Device Check
Firmware checks devices in configured boot order
4
Bootable Media Detection
If device contains bootable media, system boots from it
5
OS Load
Operating system bootloader executes and OS starts
Device Types
Device Type
Description
Common Use Case
Hard Disk
Primary storage device containing the operating system
Normal operation (highest priority)
CD/DVD
Optical media drive for installation or recovery
OS installation, system recovery
Network (PXE)
Network boot via Preboot Execution Environment
Automated deployment, diskless systems
USB
External storage devices
Portable installations, recovery media
QEMU Boot Sequence
QEMU uses a default platform boot sequence if no explicit boot order is configured. The boot order is populated directly from the QEMU configuration via the QEMU API.
Default Boot Behavior
If no boot order is set, QEMU follows the standard platform boot sequence:
Hard disk (primary storage)
CD/DVD (if attached)
Network (if PXE is configured)
Other devices
How to Configure Boot Order
Navigate to the Boot Settings tab
Review the current boot order in the "Current Boot Order" section
Add Devices using the "Add" button to include devices in the boot priority list
Auto-Detection - Devices are automatically detected from the QEMU configuration
Save your boot order configuration
Restart the VM for changes to take effect (changes apply on next power event)
QEMU Boot Configuration API
How the Platform Updates Boot Order
The control panel translates your boot order selections into the same parameters Proxmox expects (for example, scsi0 for the primary disk, ide2 for a virtual CD/DVD, and net0 for PXE). When you save, the backend updates the VM configuration on the node so the hypervisor knows which device to start from first.
Legacy BIOS-style flags such as order=dc are mapped automatically, and storage mappings are inferred from the datastore you chose—local-LVM disks become SCSI devices, ISO images are attached as virtual IDE drives, and network boot entries map to the network adapters listed in the UI.
UEFI Boot Configuration
UEFI Boot Manager Configuration:
# EFI Boot Manager entries (stored in EFI disk)
# Boot0000: Hard Disk
# Boot0001: CD-ROM
# Boot0002: Network
# UEFI boot order is managed via EFI variables
# Accessible through QEMU Guest Agent or UEFI shell:
# efibootmgr -o 0000,0001,0002
# QEMU UEFI boot configuration
{
"bios": "ovmf",
"efidisk0": "local-lvm:vm-100-disk-1,size=4M",
"boot": "order=scsi0"
}
PXE Network Boot (RFC 2131, 2132)
PXE Boot Process:
DHCP Discovery: VM broadcasts DHCP request (RFC 2131)
DHCP Offer: Server responds with IP, boot server, boot file
TFTP Download: Boot file (pxelinux.0) downloaded via TFTP (RFC 1350)
Use the “Console” tab or the node’s shell tools to inspect QEMU devices. Commands like qm monitor <vmid> info block or qm config <vmid> show which disks are attached and the current boot priorities.
For UEFI guests, enabling OVMF debugging or attaching a serial console can capture early boot logs. The platform exposes toggles for these options so you don’t have to edit config files manually.
Whenever you open the web console, the panel requests a one-time VNC/WebSocket tunnel from the hypervisor. This lets you troubleshoot boot issues immediately without handling node credentials yourself.
Best Practices
Set hard disk as primary boot device
Use CD/DVD only for installation
Remove temporary boot devices after use
Test changes on non-production systems
Document boot order for disaster recovery
Common Issues
VM won't boot - check boot device
Changes not applied - restart required
Wrong device boots - verify order
UEFI boot fails - check EFI disk
Firewall Tab
The Firewall tab provides comprehensive firewall management for your virtual machine. You can enable or disable the firewall, create allow and block rules for network traffic, manage aliases for IP addresses and networks, and configure IP sets for advanced rule management.
Firewall Status
The firewall can be enabled or disabled using the toggle switch at the top of the Firewall tab. When enabled, all configured firewall rules will be active and enforced. When disabled, all traffic will be allowed by default.
Enabled: All firewall rules are active and traffic is filtered according to your rules
Disabled: All traffic is allowed, firewall rules are ignored
Firewall Rules
Firewall rules control which network traffic is allowed or blocked. Rules are processed in order from top to bottom, and the first matching rule determines the action taken.
Rule Actions
Action
Description
ACCEPT
Allows the matching traffic to pass through
REJECT
Blocks the traffic and sends a rejection response to the sender
DROP
Silently blocks the traffic without sending a response
Rule Parameters
Source: IP address or network (CIDR notation) where traffic originates from (e.g., 192.168.1.0/24)
Destination: IP address or network (CIDR notation) where traffic is going to
Protocol: Network protocol (TCP, UDP, ICMP, ICMPv6, or Any)
Destination Port: Port number or range (e.g., 80, 443, or 1000:2000)
Source Port: Source port number or range
Interface: Network interface name (e.g., net0) to apply the rule to
Rules are processed in order from top to bottom. The first matching rule determines the action. It's important to place more specific rules before general ones. For example:
Allow specific IP addresses first
Then allow specific port ranges
Finally, block or reject all other traffic
Aliases
Aliases allow you to create named references to IP addresses or networks. This makes firewall rules more readable and easier to maintain. Instead of typing IP addresses repeatedly, you can use an alias name.
Example: Create an alias named trusted-network for 192.168.1.0/24, then use trusted-network in your firewall rules instead of the full CIDR notation.
Alias names must be unique
CIDR notation is required (e.g., 192.168.1.0/24)
Aliases can be used in firewall rule source and destination fields
IP Sets
IP sets are collections of IP addresses or networks that can be referenced in firewall rules. They are useful for managing large lists of IP addresses, such as blocked IPs or allowed IPs for specific services.
Use Cases:
Blocking multiple IP addresses from accessing your services
Creating allow lists for specific applications
Managing IP addresses that change frequently
Note: After creating an IP set, you can add individual IP addresses or networks to it through the API. IP sets can then be referenced in firewall rules using the set name.
Best Practices
Default Deny: Start with a default deny policy and explicitly allow only necessary traffic
Specific Rules First: Place more specific rules before general ones to ensure correct matching
Use Aliases: Use aliases for frequently referenced networks to improve readability and maintenance
Enable Logging: Enable logging on important rules to monitor traffic and troubleshoot issues
Test Rules: Test new rules carefully to avoid accidentally blocking legitimate traffic
Document Rules: Use comments to document the purpose of each rule
Regular Review: Periodically review and clean up unused rules, aliases, and IP sets
The Network tab provides comprehensive network configuration and monitoring capabilities. It displays assigned IP addresses, network interfaces, and allows configuration of network devices and addresses.
IP Address Standards
Protocol
Scope
RFC Standard(s)
Address Format / Examples
IPv4
Public
RFC 791
Internet Protocol (IPv4)
32-bit dotted decimal addresses routable on the public Internet. 203.0.113.10, 198.51.100.25
Private
RFC 1918
Address Allocation for Private Internets
Non-routable private ranges used inside LANs and VPNs only: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
IPv6
Global Unicast (Public)
RFC 2460 / RFC 8200
Internet Protocol Version 6 (IPv6)
128-bit hexadecimal addresses routable on the public Internet. 2001:db8::100, 2a00:1450::1
Best on VMware‑optimised guest OS images (Windows, some enterprise Linux)
Migrated workloads from VMware or environments requiring VMXNET3 semantics
Network Architecture & Protocol Details
Network Topology & Bridge Configuration
Physical Host (Management Node)
└── Linux Bridge (vmbr0) - Managed by platform
├── Host Interface (eth0) - Physical NIC
├── VLAN Interfaces (vmbr0.100, vmbr0.200)
└── TAP Device (vnetX) - Created per VM
└── QEMU VM
└── VirtIO/E1000 Network Adapter
└── Guest OS Network Stack
# Bridge Configuration (managed by platform)
# /etc/network/interfaces or netplan
auto vmbr0
iface vmbr0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_vlan_aware yes
TAP devices operate at Layer 2 (Ethernet) and are bridged to the physical network interface. The management platform automatically creates and manages TAP devices for each VM network interface.
How Network Settings Are Applied
The Network tab mirrors the bridge definitions on each Proxmox node (for example, vmbr0 for the public network). When you attach a NIC in the UI, the backend writes the same net0=... syntax that Proxmox uses, including MAC address, bridge, firewall flag, VLAN tag, and rate limits.
This means any change you make—adding a VirtIO adapter, toggling the firewall, or tagging a VLAN—is propagated down to the node in the exact format it expects, ensuring the guest receives the configuration you see on screen.
QEMU Network Device Configuration
# QEMU command-line equivalent
-netdev type=tap,id=net0,ifname=vnet0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown \\
-device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56,bus=pcie.0,addr=0x2
# Configuration parameters:
# -netdev type: tap|user|bridge|socket
# -device: virtio-net-pci|e1000|rtl8139
# mac: MAC address (auto-generated if not specified)
# bus: PCIe bus location
# addr: PCIe device address
Network Security & Isolation
Feature
Implementation
Security Level
MAC Address Filtering
Linux bridge ebtables rules
Layer 2 protection
VLAN Isolation
802.1Q VLAN tagging
Network segmentation
Firewall Rules
iptables/nftables on host
Layer 3/4 filtering
Private Networks
RFC 1918 address space
NAT isolation
Performance Tuning
VirtIO Performance Optimization:
Multiqueue: Enable with mq=on,vectors=4 for multi-core VMs
Use standard Linux networking tools on the node, such as ip link show type tap to inspect TAP interfaces, tcpdump -i vmbr0 to watch bridge traffic, and bridge fdb show to view MAC tables.
Inside the hypervisor shell, qm config <vmid> lists the virtual NICs (net0, net1, etc.) exactly as the platform created them. You can also open a QEMU monitor session (qm monitor <vmid>) and run info network for deeper diagnostics.
If you suspect bridge or firewall issues, brctl show vmbr0, bridge vlan show, and filtering iptables -L output by bridge name are quick ways to confirm whether packets are being forwarded.
Platform Firewall Integration
The management platform includes an integrated firewall system that can apply rules at the VM level, bridge level, or cluster level.
Toggling the firewall slider on a NIC tells the backend to recreate that interface definition with the firewall flag enabled. Any rules you define in the UI (direction, action, CIDRs, ports, comments) are stored centrally and rendered to iptables on the node, so you don't have to craft rule syntax yourself.
The platform automatically maps rules to the correct chains—INPUT for traffic hitting the node, FORWARD for VM-to-VM flows, and OUTPUT for traffic originating from the VM—keeping your policy consistent across the cluster.
IPv6 vs IPv4: Understanding the Differences
IPv4 and IPv6 are separate and independent network protocols that operate at the same layer (Layer 3) but use completely different addressing schemes and have distinct characteristics. Understanding their differences is crucial for proper network configuration.
Fundamental Differences
Characteristic
IPv4
IPv6
Address Length
32 bits (4 bytes)
128 bits (16 bytes)
Address Format
192.168.1.1 (dotted decimal)
2001:db8::1 (hexadecimal)
Address Space
~4.3 billion addresses
~340 undecillion addresses
NAT Requirement
Commonly required due to address exhaustion
Not required (sufficient addresses)
Header Size
20 bytes (minimum)
40 bytes (fixed)
Fragmentation
Performed by routers
Performed by source only
Security
Optional (IPsec)
Built-in (IPsec mandatory)
Configuration
Manual or DHCP
SLAAC (Stateless) or DHCPv6
Separate and Independent Operation
IPv4 and IPv6 are completely separate protocols:
They operate independently on the same network interface (dual-stack)
Each protocol has its own routing table and forwarding logic
IPv4 addresses cannot communicate directly with IPv6 addresses
Both can be assigned to the same network interface simultaneously
Applications must explicitly support IPv6 to use it (IPv4 is the default fallback)
Functionalities and Use Cases
IPv4 Functionalities
Universal compatibility (all systems support IPv4)
Mature ecosystem with extensive tooling
Required for legacy applications and services
Essential for email (SMTP) and many mail servers
Widely supported by CDNs and hosting providers
Standard for most web hosting and APIs
Required for many third-party integrations
IPv6 Functionalities
Massive address space (no NAT needed)
Improved routing efficiency and performance
Built-in security features (IPsec)
Better support for mobile and IoT devices
Simplified network configuration (SLAAC)
Future-proof for growing internet needs
Reduced latency in some scenarios
IPv4-Only Services and Compatibility
Why Some Services Remain IPv4-Only
Many critical internet services, particularly email and legacy systems, are typically deployed only on IPv4 for compatibility reasons:
Email (SMTP/POP3/IMAP): Many mail servers and email providers only accept connections over IPv4 due to legacy infrastructure, spam filtering systems, and compatibility with older mail clients
Legacy Applications: Older software and enterprise applications may not support IPv6 at all
Third-Party APIs: Many external services and APIs only provide IPv4 endpoints
CDN and Hosting: Some content delivery networks and hosting providers have limited IPv6 support
DNS and Infrastructure: Some DNS resolvers and network infrastructure components are IPv4-only
Security Tools: Firewalls, intrusion detection systems, and security appliances may have better IPv4 support
Best Practice: Deploy services on both IPv4 and IPv6 (dual-stack) when possible, but always ensure IPv4 connectivity for maximum compatibility, especially for email and critical business applications.
IPv6 Adoption Worldwide
The following chart from APNIC Labs shows the current IPv6 adoption rate for the world. IPv6 adoption varies significantly by region, with some countries having over 50% adoption while others remain primarily on IPv4.
Dual-stack refers to running both IPv4 and IPv6 simultaneously on the same network interface. This is the recommended approach for maximum compatibility:
IPv4 ensures compatibility with all existing services and applications
IPv6 provides future-proofing and access to IPv6-only resources
Applications automatically choose the best protocol (IPv6 preferred, IPv4 fallback)
Both protocols can be configured independently with different gateways and DNS servers
# Example dual-stack configuration (Linux)
# IPv4 configuration
ifconfig eth0 203.0.113.10 netmask 255.255.255.0
route add default gw 203.0.113.1
# IPv6 configuration (SLAAC or static)
ip -6 addr add 2001:db8::100/64 dev eth0
ip -6 route add default via 2001:db8::1
# Both protocols operate independently on the same interface
NAT64 and DNS64: Bridging IPv4 and IPv6
NAT64 (Network Address Translation 64) and DNS64 (DNS 64) are transition technologies defined in RFC 6146 and RFC 6147 that enable IPv6-only clients to communicate with IPv4-only servers. Together, they bridge the protocol gap during the IPv6 transition period.
How NAT64 and DNS64 Work Together
Step-by-step process:
IPv6-only client requests a domain name (e.g., example.com)
DNS64 server queries for AAAA (IPv6) record first
If no AAAA record exists, DNS64 queries for A (IPv4) record
DNS64 synthesizes an IPv6 address by embedding the IPv4 address into a special IPv6 prefix (typically 64:ff9b::/96 or a NAT64 prefix)
Client receives the synthesized IPv6 address and connects to it
NAT64 gateway intercepts the IPv6 packet, extracts the embedded IPv4 address, and translates it to IPv4
NAT64 forwards the packet to the IPv4-only server
Response follows the reverse path back to the IPv6 client
IPv6-only networks: Allows IPv6-only clients to access IPv4-only internet resources
Gradual transition: Enables organizations to deploy IPv6 without breaking IPv4 connectivity
Address exhaustion: Helps conserve IPv4 addresses by allowing IPv6-only deployments
Mobile networks: Commonly used in cellular networks where IPv6 is preferred
Cost reduction: Reduces need for dual-stack infrastructure in some scenarios
Limitations and Considerations
Important Limitations:
No IPv4-to-IPv6 translation: NAT64 only works one-way (IPv6→IPv4), not IPv4→IPv6
Embedded IP addresses: Applications that embed IPv4 addresses in payloads may fail (e.g., FTP, SIP)
Protocol limitations: Some protocols like ICMP may not translate correctly
Performance overhead: Translation adds latency and processing overhead
Stateful translation: NAT64 maintains connection state, which can be a bottleneck
DNS dependency: Requires DNS64-capable DNS servers; won't work with hardcoded IPv4 addresses
Port restrictions: Some NAT64 implementations have port range limitations
Application compatibility: Applications using IPv4 literals or low-level socket APIs may not work
NAT64 Prefix Formats
Prefix
Type
Description
64:ff9b::/96
Well-Known
RFC 6052 well-known prefix for NAT64 (most common)
2001:db8::/96
Documentation
Example/documentation prefix (RFC 3849)
Custom /96
Provider
ISP or organization-specific prefix
When to Use NAT64/DNS64
✅ Good Use Cases:
IPv6-only mobile networks
Internal networks transitioning to IPv6
IoT deployments with IPv6 preference
Cloud environments with IPv6-first policies
❌ Not Recommended For:
High-performance applications
Protocols with embedded IPs (FTP, SIP)
Applications using IPv4 literals
When dual-stack is feasible
Best Practice
Dual-stack is preferred over NAT64/DNS64 when possible, as it provides native connectivity without translation overhead. Use NAT64/DNS64 primarily for IPv6-only networks that need occasional IPv4 access, or as a transition mechanism during IPv6 deployment phases.
RFC Standards Reference
This section provides a comprehensive reference to all RFC (Request for Comments) standards that apply to virtual machine configuration and networking.
RFC Number
Title
Category
Applies To
RFC 791
Internet Protocol (IPv4)
Network
IPv4 packet format, addressing, and routing behaviour used by all IPv4 networking features.
RFC 1034
Domain Names – Concepts and Facilities
DNS
High-level DNS model and resolution process referenced by DNS and subdomain configuration.
RFC 1035
Domain Names – Implementation and Specification
DNS
Hostname syntax and record formats; hostname/subdomain validation rules in the UI are based on this RFC.
RFC 1918
Address Allocation for Private Internets
Network
Defines private IPv4 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) used to distinguish public vs. private addresses in UI explanations.
RFC 2460 / RFC 8200
Internet Protocol Version 6 (IPv6)
Network
IPv6 header format and addressing used by IPv6 network configuration and Network Analysis.
AAAA record format used for IPv6 DNS entries in network examples.
RFC 4253
SSH Transport Layer Protocol
Security
SSH key formats and transport, referenced in SSH key management and Cloud-init examples.
RFC 5656
Elliptic Curve Algorithm Integration in SSH
Security
ECDSA SSH keys used in recommended key types for secure access.
RFC 6143
The Remote Framebuffer Protocol
Remote Access
VNC/NoVNC protocol used for graphical console access.
RFC 7230–7235
HTTP/1.1 Message Syntax and Routing
API
HTTP semantics for all API requests between the control panel and Proxmox/Core Router services.
RFC 8709
Ed25519 for SSH
Security
Defines ED25519 SSH keys, which are recommended as a modern, secure key type.
Troubleshooting Guide
Common issues and their solutions for virtual machine management.
VM Won't Boot
Symptom
Possible Cause
Solution
Black screen, no boot
No bootable media in boot order
Check boot order, ensure OS is installed
Boot loop
Corrupted boot sector or OS
Restore from backup or reinstall OS
Firmware error
Incompatible firmware type
Change firmware type in System tab
Subdomain Tab
The Subdomain tab allows you to create and manage DNS subdomains for your virtual machine. Each subdomain points to one of your assigned public IP addresses.
DNS Record Types
Record Type
RFC Standard
Purpose
Example
A Record
RFC 1035
Maps domain to IPv4 address
web.dns.virtnet.host → 192.168.1.1
AAAA Record
RFC 3596
Maps domain to IPv6 address
web.dns.virtnet.host → 2001:db8::1
Wildcard (*)
RFC 1035
Matches all subdomains
*.web.dns.virtnet.host
Subdomain Limitations
Only A and AAAA records are created automatically
One subdomain per public IP address
Wildcard subdomains (*) are automatically created
PTR, MX, NS, and other record types are not supported
DNS Protocol Implementation (RFC 1035)
DNS Record Structure
# DNS Resource Record Format (RFC 1035 Section 3.2.1)
NAME TYPE CLASS TTL RDLENGTH RDATA
web.example.com A IN 3600 4 192.168.1.1
# DNS Message Format
Header (12 bytes)
- ID (16 bits): Transaction identifier
- Flags (16 bits): QR, Opcode, AA, TC, RD, RA, Z, RCODE
- QDCOUNT (16 bits): Number of questions
- ANCOUNT (16 bits): Number of answers
- NSCOUNT (16 bits): Number of authority records
- ARCOUNT (16 bits): Number of additional records
Question Section
- QNAME: Domain name (variable length)
- QTYPE: Record type (A=1, AAAA=28)
- QCLASS: Class (IN=1)
Answer Section
- Resource Records (variable)
DNS TTL & Propagation (RFC 1035 Section 3.2.1)
TTL Value
Cache Duration
Use Case
60
1 minute
Frequent changes, testing
300
5 minutes
Development environments
3600
1 hour
Standard production (default)
86400
24 hours
Stable services
DNS Security (DNSSEC, RFC 4033-4035)
While DNSSEC is not currently implemented in the subdomain system, understanding DNS security is important:
RFC 4033: DNS Security Introduction and Requirements
RFC 4034: Resource Records for DNS Security Extensions
RFC 4035: Protocol Modifications for DNS Security
TSIG (RFC 2845): Transaction Signatures for DNS updates
Cloud-init Tab
Cloud-init is a standard method for customizing cloud instances during boot. It allows you to configure users, SSH keys, network settings, and more automatically when the VM first starts.
The Display tab allows you to configure the virtual graphics adapter and video memory for your virtual machine. These settings affect how the VM displays output and can impact performance in graphical environments.
Display Adapter Types - Complete Reference
VirtIO-GPU (Recommended for Linux)
Type
Paravirtualized GPU (VirtIO specification)
Performance
Excellent - Hardware acceleration support
Max VRAM
256 MB (configurable in 16 MB increments)
Resolution Support
Up to 4K (3840x2160) and higher
OS Support
Linux (excellent), Windows 10+ (good with drivers)
Features
Hardware acceleration, 3D acceleration (experimental), multiple displays
QEMU Device
virtio-gpu-pci
Technical Details:
Implements the VirtIO GPU specification for paravirtualized graphics
Uses host GPU resources when available (GPU passthrough not required)
Supports OpenGL ES 2.0/3.0 for 3D acceleration (requires host GPU support)
Lower CPU overhead compared to emulated VGA adapters
Supports multiple virtual displays (up to 4 heads)
Efficient memory management with shared memory regions
Note: VRAM is allocated from VM's main memory. Higher VRAM reduces available RAM for the guest OS. Use the minimum required for your use case.
Platform Display Configuration API
Changing the display adapter in the UI instructs the backend to update the VM’s vga parameter to VirtIO, Standard VGA, VMware SVGA, QXL, or “none” for headless guests. Selecting “Serial console” rewires the console tab to a text-only TTY.
When you adjust video memory, the platform recalculates the amount of VRAM allocated from system RAM (16–256 MB for VirtIO-GPU) and pushes that value to the node. Disabling the memory balloon when large VRAM is requested prevents the guest from losing addressable space.
Statistics Tab
The Statistics tab provides comprehensive performance monitoring and historical data tracking for your virtual machine. It automatically collects metrics hourly and allows you to create manual snapshots for detailed analysis.
Automatic Statistics Collection
The system automatically collects statistics once every hour for all VPS, regardless of their power state or status. This ensures you have a continuous record of your server's performance over time.
Collection Frequency
Once every hour (24 times per day)
Maximum Entries
24 automatic statistics per server
Retention Policy
Oldest entries are automatically removed when limit is reached
Power State
Statistics collected regardless of VM power state (running, stopped, etc.)
Background Process
Runs automatically via Laravel task scheduler
Manual Statistics Snapshots
In addition to automatic collection, you can create up to 5 manual statistics snapshots at any time. These are useful for capturing performance data at specific moments.
Manual statistics can be deleted individually to free up space
Data Captured
Same metrics as automatic statistics (CPU, memory, disk, network, etc.)
Metrics Tracked
Metric
Description
Display Format
CPU Usage
Current CPU utilization as a percentage of allocated CPU resources
Percentage (0-100%)
Memory Usage
Current RAM utilization compared to maximum allocated memory
Percentage (0-100%)
Disk Usage
Disk space used compared to total allocated disk space
Percentage (0-100%)
Network In
Total bytes received since VM start (difference shown between statistics)
Bytes with rate (bytes/s)
Network Out
Total bytes transmitted since VM start (difference shown between statistics)
Bytes with rate (bytes/s)
Disk I/O
Disk read and write operations (difference shown between statistics)
Bytes (read/write)
Uptime
Total time the VM has been running since last boot
Formatted (days, hours, minutes, seconds)
VM Status
Current power state of the virtual machine
Running, Stopped, etc.
Task History
The Task History section displays all tasks executed on your virtual machine through the Proxmox API. This includes operations like VM management, configuration changes, backups, and other administrative tasks.
Auto-Refresh
Task list refreshes every 10 seconds automatically
Task Details
Click the expand arrow to view detailed task information and logs
Status Indicators
Tasks show completion status (Success/Failure) with timestamps
Task Types
VM operations, configuration changes, backups, migrations, etc.
Understanding Statistics Data
Network and Disk I/O Values
Network In/Out and Disk I/O values displayed in the statistics table represent the difference between the current statistic and the previous one. This shows the amount of data transferred or disk operations performed during the time period between statistics. The rate (bytes/s) is calculated based on the time difference between statistics.
Statistics Retention
Automatic statistics are maintained at a maximum of 24 entries per server. When this limit is reached, the oldest automatic statistic is automatically removed when a new one is created. Manual statistics are separate and can be individually deleted. This ensures you always have the most recent 24 hours of automatic performance data while allowing flexibility for manual snapshots.
Statistics Collection for All VPS
Statistics are collected for all virtual machines regardless of their power state (running, stopped, suspended) or service status. This ensures you have a complete historical record of your server's state and can track performance even when the VM is not actively running. Some metrics (like CPU usage) will be zero or minimal when the VM is stopped, but the data point is still valuable for historical tracking.
Technical Implementation
Background Statistics Collection
# Statistics collection runs via Laravel scheduler
# Scheduled command: proxmox:poll-statistics
# Frequency: Hourly (every hour on the hour)
# Command implementation:
php artisan schedule:run
# The scheduler executes:
Schedule::command(PollServerStatistics::class)
->description('Poll Proxmox server statistics hourly')
->hourly();
# Statistics are stored in database table:
# ext_proxmox_servers_statistics
# Fields tracked:
# - server_id: Foreign key to server
# - netin, netout: Network traffic counters
# - diskread, diskwrite: Disk I/O counters
# - diskused, diskmax: Disk space usage
# - memoryused, memorymax: Memory usage
# - cpuused, cpumax: CPU usage
# - uptime: VM uptime in seconds
# - vmstatus: Current VM power state
# - DateTime: Timestamp of statistic
# - is_automatic: Boolean flag (true for automatic, false for manual)
Statistics Data Management
# Automatic statistics cleanup logic:
# When creating a new automatic statistic:
1. Create new statistic with is_automatic = true
2. Count total automatic statistics for server
3. If count > 24:
- Find oldest automatic statistics (order by DateTime ASC)
- Delete excess entries (count - 24)
- Keep exactly 24 automatic statistics
# Manual statistics management:
# - Users can create up to 5 manual statistics
# - Manual statistics are marked with is_automatic = false
# - Manual statistics can be deleted individually
# - Manual statistics are NOT automatically cleaned up
# Query examples:
# Get all statistics for a server:
SELECT * FROM ext_proxmox_servers_statistics
WHERE server_id = ?
ORDER BY DateTime DESC;
# Get only automatic statistics:
SELECT * FROM ext_proxmox_servers_statistics
WHERE server_id = ? AND is_automatic = true
ORDER BY DateTime DESC
LIMIT 24;
# Get manual statistics:
SELECT * FROM ext_proxmox_servers_statistics
WHERE server_id = ? AND is_automatic = false
ORDER BY DateTime DESC;
Live Telemetry Graphs
The Live Telemetry section at the top of the Statistics tab shows real-time performance graphs sourced directly from the Proxmox RRD API. These graphs are optimized to load quickly and to avoid overloading either the browser or the API.
Proxmox RRD API (/nodes/{node}/qemu/{vmid}/rrddata)
Auto-Refresh
Graphs request fresh data every 2 minutes while the Statistics tab is open.
Data Sampling
Each graph is sampled down to a maximum of 40 data points to keep rendering smooth and payloads small.
Aggregation
Average uses RRD's AVERAGE consolidation function, and Maximum uses the MAX function.
Memory Utilization Graph Details
The Memory Utilization graph displays a single series showing current RAM usage over time.
The vertical axis locks to the VM's configured maximum memory when a valid value is available; otherwise it auto-scales to fit the data so the graph is never flat.
Values are shown in bytes and converted to human-readable units (KiB, MiB, GiB) on the y-axis using binary prefixes.
Export actions download the currently displayed memory data points as a CSV file.
Network Analysis (Core Router)
The Network Analysis section is powered by an external Core Router API and provides deep visibility into active firewall sessions, top peers, ports, and security events related to your server's IP addresses.
Data Source
Core Router API firewall state table (list of active sessions).
IP Filtering
Only connections where the source or destination matches an IP assigned to your server are included.
Sections
Active Connections, Top Peers, Top Ports, and Security (threat detections).
Loading Behaviour
Network Analysis is loaded when the Statistics tab opens. If the Core Router API is not configured or the server has no IPs, a clear warning message is shown instead of an endless loading state.
Error Handling
HTTP 502 errors from the Core Router API trigger automatic, limited retries with exponential backoff before a final error is presented.
Active Connections Table & Traffic Sorting
The Active Connections table supports searching, filtering, and clicking any header to sort by that column.
The Traffic column sorts by the underlying total bytes for each connection (not the formatted text), so high-traffic sessions rise to the top or bottom depending on the sort direction.
Clicking the Traffic header toggles between descending (largest traffic first) and ascending order.
Very low or empty traffic values still participate in the sort; connections with no traffic are treated as zero.
Loading & Performance Optimizations
When you first open a server page, the Statistics tab is preloaded in the background so that navigating to it later is faster.
Live Telemetry responses from the Proxmox RRD API are cached per graph type, time range, and aggregation to reduce redundant upstream calls.
Network Analysis results are cached per server for a short period to avoid repeatedly scanning the full firewall state table when you revisit the Statistics tab.
All graphs limit the number of rendered points to keep the UI responsive, even on busy servers with long time ranges selected.
EFI (Extensible Firmware Interface) disks and TPM (Trusted Platform Module) devices are security and compatibility features required for modern operating systems and security-hardened configurations. Understanding when and why to implement these is crucial for proper VM configuration.
EFI Disks - When and Why
EFI disks are small storage devices (typically 4MB) that store UEFI firmware variables, boot configuration, and Secure Boot keys. They are essential for UEFI-based virtual machines.
When EFI Disks Are Required:
Requirement
Explanation
Mandatory
UEFI Firmware (OVMF)
EFI disks are required when using OVMF/UEFI firmware instead of SeaBIOS
Yes
Secure Boot
Secure Boot requires EFI disk to store keys and boot configuration
Yes
Modern Windows (10/11)
Windows 10/11 installations typically require UEFI, which needs EFI disk
Recommended
GPT Disk Partitions
Disks larger than 2TB or using GPT require UEFI, which needs EFI disk
Yes
Linux with Secure Boot
Security-hardened Linux distributions requiring Secure Boot
Yes
Legacy BIOS (SeaBIOS)
EFI disks are not needed and not supported with legacy BIOS
No
Why EFI Disks Are Needed:
Firmware Variable Storage: UEFI firmware needs persistent storage for boot configuration, boot entries, and system settings that survive reboots
Secure Boot Keys: Stores Platform Key (PK), Key Exchange Keys (KEK), and Signature Database (DB) for Secure Boot validation
Boot Manager Configuration: Maintains UEFI boot manager entries and boot order settings
NVRAM Emulation: Provides non-volatile RAM functionality that physical systems have in hardware
System Integrity: Enables firmware-level security features and trusted boot processes
EFI Disk Configuration:
Platform Configuration
# EFI disk configuration via platform API
PUT /api2/json/nodes/{node}/qemu/{vmid}/config
{
"bios": "ovmf", # Required: Use UEFI firmware
"efidisk0": "local-lvm:vm-100-disk-1,size=4M,format=raw",
"machine": "q35" # Required: Q35 chipset for UEFI
}
# EFI disk storage format:
# efidisk0: storage:disk-name,size=4M,format=raw
# - storage: Storage backend (local-lvm, cephpool, etc.)
# - size: Fixed at 4MB (platform standard)
# - format: Always raw format
# Multiple EFI disks (advanced):
# efidisk0: local-lvm:vm-100-efi-0,size=4M
# efidisk1: local-lvm:vm-100-efi-1,size=4M # Additional EFI disk slot
Preenroll Keys Option:
When creating an EFI disk, you can enable "Preenroll keys" to automatically configure Secure Boot keys during EFI disk creation.
Option
Effect
Use Case
Preenroll Keys: Enabled
Secure Boot keys pre-enrolled, Secure Boot enabled by default
Security-hardened systems, Windows 11, Secure Boot required
Preenroll Keys: Disabled
EFI disk created without Secure Boot keys, Secure Boot disabled
UEFI without Secure Boot, development, custom key management
# Create EFI disk with preenrolled keys
POST /api2/json/nodes/{node}/qemu/{vmid}/config
{
"efidisk0": "local-lvm:vm-100-disk-1,size=4M,format=raw",
"efidisk0_pre_enrolled_keys": 1 # Enable preenroll keys
}
# Secure Boot keys included:
# - Microsoft Windows Production CA (for Windows)
# - Microsoft Corporation UEFI CA (for Windows)
# - Canonical Ltd. Master CA (for Ubuntu)
# - Other common distribution keys
EFI Disk Storage Details:
Size: Fixed at 4MB (sufficient for firmware variables and keys)
Format: Always raw format (not qcow2 or other formats)
Storage: Can be stored on any storage backend (local-lvm, cephpool, etc.)
Location: Automatically provisioned on cephpool if available, otherwise uses configured storage
Backup: Included in VM backups automatically
Multiple Slots: Platform supports multiple EFI disk slots (efidisk0, efidisk1, etc.) for advanced configurations
TPM Devices - When and Why
TPM (Trusted Platform Module) devices provide hardware-based security features for virtual machines. They enable secure boot, disk encryption, and other security features that require TPM functionality.
When TPM Devices Are Required:
Requirement
Explanation
Mandatory
Windows 11
Windows 11 requires TPM 2.0 for installation and operation
Yes
BitLocker Encryption
Windows BitLocker requires TPM for key storage and system integrity
Yes
Windows Device Guard
Windows security feature requiring TPM for attestation
Yes
Linux Secure Boot (Advanced)
Some security-hardened Linux configurations use TPM for measured boot
Optional
Disk Encryption (LUKS with TPM)
Linux LUKS encryption can use TPM for key storage
Optional
General Use Cases
TPM not required for standard VM operations or older OS versions
Size: Fixed at 4MB (sufficient for TPM state and keys)
Format: Raw format, stores TPM persistent state
Storage: Can be stored on any storage backend (local-lvm, cephpool, etc.)
Location: Automatically provisioned on cephpool if available
State Persistence: TPM state is preserved across VM reboots and migrations
Backup: Included in VM backups (critical for encrypted systems)
Security: TPM state file should be protected - loss prevents access to encrypted data
Critical: TPM State Backup
If a VM uses TPM with BitLocker or disk encryption, losing the TPM state file will result in permanent data loss. Always ensure TPM state files are included in backups and stored securely.
EFI/TPM Implementation Guide
Step-by-Step Configuration:
1
Configure Firmware and Machine Type
PUT /api2/json/nodes/{node}/qemu/{vmid}/config
{
"bios": "ovmf", # Required for EFI/TPM
"machine": "q35" # Required for UEFI/TPM support
}
2
Add EFI Disk (if using UEFI)
PUT /api2/json/nodes/{node}/qemu/{vmid}/config
{
"efidisk0": "local-lvm:vm-100-efi-0,size=4M,format=raw",
"efidisk0_pre_enrolled_keys": 1 # Enable if Secure Boot needed
}
3
Add TPM Device (if required)
PUT /api2/json/nodes/{node}/qemu/{vmid}/config
{
"tpmstate0": "local-lvm:vm-100-tpm-0,size=4M,version=v2.0"
}
4
Verify Configuration
GET /api2/json/nodes/{node}/qemu/{vmid}/config
# Verify efidisk0 and tpmstate0 entries exist
Common Use Case Scenarios
Windows 11 Installation
EFI Disk
Required (UEFI boot)
TPM Device
Required (TPM 2.0)
Preenroll Keys
Recommended (Secure Boot)
Machine Type
Q35 (required for UEFI/TPM)
Windows 11 has strict hardware requirements including TPM 2.0 and UEFI firmware with Secure Boot capability. Both EFI disk and TPM device are mandatory.
BitLocker Encrypted Windows
EFI Disk
Required (UEFI)
TPM Device
Required (key storage)
TPM Version
v2.0 (recommended for BitLocker)
BitLocker uses TPM to store encryption keys securely. Without TPM, BitLocker requires a recovery key or password on every boot, which is less secure and less convenient.
Security-Hardened Linux
EFI Disk
Required (Secure Boot)
TPM Device
Optional (measured boot)
Preenroll Keys
Enable for Secure Boot with signed kernels
Linux distributions with Secure Boot support (Ubuntu, RHEL, etc.) require EFI disk. TPM is optional but recommended for measured boot and disk encryption with TPM integration.
Standard Linux Server (No Security Features)
EFI Disk
Not required (use SeaBIOS)
TPM Device
Not required
Standard Linux servers without security requirements can use legacy BIOS (SeaBIOS) and don't need EFI or TPM devices. This reduces complexity and resource usage.
Troubleshooting EFI/TPM Issues
Issue
Cause
Solution
VM won't boot with UEFI
EFI disk missing or incorrectly configured
Add efidisk0 with correct storage backend
Windows 11 installation fails
TPM 2.0 not detected
Add tpmstate0 with version=v2.0
Secure Boot not working
Keys not pre-enrolled in EFI disk
Recreate EFI disk with preenroll keys enabled
BitLocker recovery required
TPM state lost or corrupted
Restore TPM state from backup or use recovery key
EFI/TPM not available
Using i440fx machine type
Change machine type to Q35
Platform Storage & Disk Management
Disk Configuration Format
# Platform disk configuration format
# scsi0: storage:disk-name,size=32G,format=raw,cache=writeback,iothread=1
# Storage types:
# - local-lvm: LVM thin pool (local-lvm:vm-100-disk-0)
# - cephpool: Ceph RBD (cephpool:vm-100-disk-0)
# - local: Directory storage (local:100/vm-100-disk-0.raw)
# - nfs: NFS mount (nfs:vm-100-disk-0)
# Disk options:
# - size: Disk size (e.g., 32G, 100G)
# - format: raw|qcow2|vmdk
# - cache: none|writeback|writethrough|unsafe|directsync
# - iothread: Enable I/O thread (1|0)
# - discard: Enable TRIM/discard (on|ignore)
# - ssd: Emulate SSD (1|0)
# - replicate: Enable replication (1|0) - for Ceph
# Example configurations:
{
"scsi0": "local-lvm:vm-100-disk-0,size=32G,format=raw,cache=writeback",
"scsi1": "cephpool:vm-100-disk-1,size=100G,format=raw,replicate=1",
"ide2": "local:iso/debian-12.iso,media=cdrom"
}
# Add disk via API
POST /api2/json/nodes/{node}/qemu/{vmid}/config
{
"scsi1": "local-lvm:vm-100-disk-1,size=50G"
}
Resource Pools & Limits
Platform Resource Management:
# Resource pools allow grouping VMs for management
POST /api2/json/pools
{
"poolid": "production",
"comment": "Production VMs"
}
# Add VM to pool
PUT /api2/json/pools/{poolid}
{
"vms": "100,101,102"
}
# Resource limits per VM
PUT /api2/json/nodes/{node}/qemu/{vmid}/config
{
"memory": 4096, # RAM in MB
"cores": 4, # CPU cores
"cpu": "host", # CPU type
"balloon": 1024, # Balloon device memory (MB)
"shares": 1000, # CPU shares (relative priority)
"cpulimit": 2, # CPU limit (cores)
"cpuunits": 1024, # CPU weight (relative to 1024)
"net0": "virtio=...,rate=100" # Network rate limit (MB/s)
}
# Platform automatically enforces limits via:
# - cgroups (CPU, memory)
# - tc (traffic control for network)
# - iotune (disk I/O limits)
High Availability (HA) Configuration
The platform supports high availability for VMs across cluster nodes using Corosync and Pacemaker.
# Enable HA for VM
POST /api2/json/cluster/ha/groups
{
"group": "production",
"nodes": "pve-node-01,pve-node-02,pve-node-03",
"restart": 1,
"max_restart": 3,
"max_relocate": 3
}
POST /api2/json/cluster/ha/resources
{
"sid": "vm:100",
"group": "production",
"max_restart": 3,
"max_relocate": 3
}
# HA behavior:
# - Automatic VM restart on node failure
# - VM migration to healthy node
# - Fencing of failed nodes
# - Requires shared storage (Ceph, NFS)
# HA requirements:
# - Minimum 3 nodes for quorum
# - Shared storage for VM disks
# - Network connectivity between nodes
# - Corosync cluster configuration
Backups Tab
Restoration Warning
Restoring a backup will replace the current VM state. All changes made after the backup was created will be permanently lost.
Platform Backup System Architecture
Backup Storage & Format
The management platform uses a proprietary backup format (VMA - Virtual Machine Archive) that stores complete VM state including disks, configuration, and snapshots.
# Backup file format
vzdump-qemu-{vmid}-{timestamp}.vma.zst
# Backup contents:
# - VM configuration (QEMU config)
# - Disk images (raw or qcow2)
# - Metadata (VM name, description, tags)
# - Compression: zstd (default) or gzip
# Backup storage locations
# - local storage: /var/lib/vz/dump/
# - NFS storage: mounted NFS share
# - S3-compatible: object storage
# - PBS (Platform Backup Server): dedicated backup server
# Create backup via API
POST /api2/json/nodes/{node}/qemu/{vmid}/vzdump
{
"storage": "local",
"compress": "zstd",
"mode": "snapshot",
"remove": 0
}
# Backup modes:
# - snapshot: Live backup (VM continues running)
# - stop: Stop VM before backup
# - suspend: Suspend VM during backup
# Restore backup via API
POST /api2/json/nodes/{node}/storage/{storage}/content
{
"filename": "vzdump-qemu-100-20240101_120000.vma.zst",
"vmid": 200,
"storage": "local-lvm"
}
Backup Scheduling & Retention
Platform Backup Jobs:
# Create backup job
POST /api2/json/config/backup
{
"vmid": "100",
"storage": "local",
"compress": "zstd",
"mode": "snapshot",
"schedule": "0 2 * * *", # Cron format: daily at 2 AM
"prune-backups": "keep-last=7,keep-daily=30,keep-weekly=12,keep-monthly=12"
}
# Retention policy:
# - keep-last: Keep last N backups
# - keep-daily: Keep daily backups for N days
# - keep-weekly: Keep weekly backups for N weeks
# - keep-monthly: Keep monthly backups for N months
# List backup jobs
GET /api2/json/config/backup
# Backup job execution
# Platform runs backup jobs via cron or systemd timers
# Logs available at: /var/log/pve/tasks/active
Console Access
Console Options Comparison
Console Type
Interface
Best For
Protocol
NoVNC
Graphical (web-based)
Desktop environments, installation
VNC (RFC 6143)
Xterm.js
Text-based (web-based)
Command-line administration
Serial console
Platform Console Access Architecture
VNC Proxy & WebSocket
# Platform VNC proxy API
GET /api2/json/nodes/{node}/qemu/{vmid}/vncproxy
{
"port": "5900",
"user": "root@pam",
"ticket": "PVE:root@pam:65A8B123::..."
}
# VNC WebSocket URL format
wss://{host}:8006/api2/json/nodes/{node}/qemu/{vmid}/vncwebsocket?port={port}&vncticket={ticket}
# Platform automatically:
# - Creates VNC server on VM startup
# - Manages VNC port allocation
# - Provides WebSocket proxy for browser access
# - Handles authentication via tickets
# VNC configuration in VM
{
"vga": "std", # Standard VGA (includes VNC)
"vnc": 1, # Enable VNC
"vncdisplay": 0, # VNC display number
"keyboard": "en-us" # Keyboard layout
}
# Serial console access
{
"serial0": "socket",
"vga": "serial0"
}
# Platform serial console
GET /api2/json/nodes/{node}/qemu/{vmid}/termproxy
# Returns WebSocket URL for serial console
Console Security & Authentication
The platform implements ticket-based authentication for console access, providing secure temporary access tokens.
Border Gateway Protocol (BGP) is the routing protocol that makes the internet work. This guide explains how BGP works and how to get started with BIRD2, a popular open-source BGP implementation.
What is BGP?
BGP (Border Gateway Protocol) is an exterior gateway routing protocol (RFC 4271) used to exchange routing information between autonomous systems (AS) on the internet. Unlike interior gateway protocols like OSPF or RIP, BGP is designed for routing between different organizations and networks.
Autonomous System (AS): A collection of IP networks under a single administrative control, identified by a unique AS number (ASN)
Path Vector Protocol: BGP maintains not just routes, but the entire path (AS path) to reach destinations
TCP-based: Uses TCP port 179 for reliable communication between BGP peers
Policy-based: Routes are selected and filtered based on configurable policies
How BGP Works
BGP Session Establishment
BGP operates through sessions between routers (BGP speakers). The process involves:
TCP Connection: BGP peers establish a TCP connection on port 179
OPEN Message: Exchange BGP capabilities, AS numbers, and hold timers
UPDATE Messages: Exchange routing information (prefixes, attributes)
KEEPALIVE Messages: Maintain session (sent every 30 seconds by default)
NOTIFICATION Messages: Error handling and session termination
When multiple paths exist to a destination, BGP uses a decision process to select the best route:
Valid Next-Hop: Next-hop must be reachable
Highest Local Preference: Administrative preference (default: 100)
Shortest AS Path: Fewer AS hops preferred
Lowest Origin Type: IGP < EGP < Incomplete
Lowest MED (Multi-Exit Discriminator): Prefer lower MED values
eBGP over iBGP: External routes preferred over internal
Lowest IGP Metric: Shortest path to BGP next-hop
Oldest Route: Prefer route received first
Lowest Router ID: Tie-breaker using BGP router ID
Shortest Cluster List: For route reflectors
Lowest Neighbor Address: Final tie-breaker
# BGP Attributes (Path Attributes):
# - AS_PATH: List of AS numbers traversed
# - NEXT_HOP: IP address of next router
# - ORIGIN: Route origin (IGP, EGP, Incomplete)
# - LOCAL_PREF: Local preference (iBGP only)
# - MED: Multi-Exit Discriminator
# - COMMUNITY: Route tagging for policy
# - ORIGINATOR_ID: Route reflector originator
# - CLUSTER_LIST: Route reflector cluster IDs
BGP Route Types
Type
Description
Use Case
eBGP
External BGP between different ASes
ISP peering, internet routing
iBGP
Internal BGP within same AS
Large enterprise networks, data centers
Route Reflector
iBGP scaling mechanism
Avoid full mesh iBGP requirement
Getting Started with BIRD2
BIRD (BIRD Internet Routing Daemon) is a full-featured routing daemon that supports BGP, OSPF, RIP, and other routing protocols. BIRD2 is the current version, with improved IPv6 support and better performance.
BIRD2 uses a single configuration file: /etc/bird/bird.conf
# /etc/bird/bird.conf
# Basic BIRD2 configuration
# Router ID (unique identifier, typically an IP address)
router id 192.168.1.1;
# Protocol kernel - sync routes with Linux kernel
protocol kernel {
ipv4 {
import all;
export all;
};
learn; # Learn routes from kernel
scan time 10; # Scan kernel routing table every 10 seconds
}
# Protocol device - scan network interfaces
protocol device {
scan time 10; # Scan interfaces every 10 seconds
}
# Static routes (optional)
protocol static {
ipv4;
route 10.0.0.0/8 via 192.168.1.254;
}
# BGP protocol definition
protocol bgp peer1 {
description "BGP peer to AS 65001";
local as 65000; # Your AS number
neighbor 192.168.1.100 as 65001; # Peer IP and AS
# IPv4 configuration
ipv4 {
import filter {
# Accept all routes by default
accept;
};
export filter {
# Export all routes
accept;
};
};
# Connection settings
connect retry time 30; # Retry connection every 30 seconds
hold time 90; # Hold timer (seconds)
keepalive time 30; # Keepalive interval (seconds)
# Authentication (optional)
password "your-secure-password";
# Graceful restart (optional)
graceful restart;
}
Note: Replace AS numbers, IP addresses, and passwords with your actual values. AS numbers must be obtained from your Regional Internet Registry (RIR).
Starting and Managing BIRD2
# Start BIRD2
sudo systemctl start bird
sudo systemctl enable bird # Enable on boot
# Check status
sudo systemctl status bird
# View BIRD2 status
sudo birdc show status
# View BGP protocols
sudo birdc show protocols
# View BGP neighbors
sudo birdc show protocols all bgp1
# View routes
sudo birdc show route
sudo birdc show route for 192.168.1.0/24
sudo birdc show route protocol bgp1
# View route details
sudo birdc show route all
# Reload configuration
sudo birdc configure
# or restart service
sudo systemctl restart bird
# View BIRD2 logs
sudo journalctl -u bird -f
Route Filtering and Policy
BIRD2 allows sophisticated route filtering using filter functions:
# Define filter functions
filter bgp_import {
# Reject default route
if (net = 0.0.0.0/0) then reject;
# Accept only /24 or smaller prefixes
if (net.len > 24) then reject;
# Reject RFC 1918 private addresses
if (net ~ [10.0.0.0/8+, 172.16.0.0/12+, 192.168.0.0/16+]) then reject;
# Set local preference for specific routes
if (net ~ [203.0.113.0/24+]) then {
bgp_local_pref = 200;
accept;
}
# Accept all others
accept;
}
filter bgp_export {
# Only export our own prefixes
if (source = RTS_STATIC) then accept;
if (source = RTS_DEVICE) then accept;
reject;
}
# Apply filters to BGP protocol
protocol bgp peer1 {
local as 65000;
neighbor 192.168.1.100 as 65001;
ipv4 {
import filter bgp_import;
export filter bgp_export;
};
}
BGP Communities
Communities allow tagging routes for policy control:
# Set communities on export
filter bgp_export_with_communities {
if (source = RTS_STATIC) then {
bgp_community.add((65000, 100)); # Add community (AS, value)
accept;
}
reject;
}
# Filter based on communities on import
filter bgp_import_communities {
# Reject routes with NO_EXPORT community
if (bgp_community ~ [(65001, 65535)]) then reject;
# Prefer routes with HIGH_PREF community
if (bgp_community ~ [(65001, 200)]) then {
bgp_local_pref = 150;
}
accept;
}
# Well-known communities:
# (0, 0) - Internet (no special meaning)
# (65535, 0) - NO_EXPORT - Don't export to eBGP peers
# (65535, 1) - NO_ADVERTISE - Don't advertise to any peer
# (65535, 2) - NO_EXPORT_SUBCONFED - Don't export outside confederation
Route Reflector Configuration
For large iBGP networks, use route reflectors to avoid full mesh:
# Route Reflector Server
protocol bgp rr_client1 {
local as 65000;
neighbor 192.168.1.10 as 65000;
ipv4 {
import all;
export all;
};
# Enable route reflection
rr client; # This is a route reflector client
}
# Route Reflector Client
protocol bgp rr_server {
local as 65000;
neighbor 192.168.1.1 as 65000; # Route reflector server
ipv4 {
import all;
export all;
};
# No special configuration needed on client
}
IPv6 BGP (MP-BGP)
BIRD2 supports IPv6 through Multiprotocol BGP (MP-BGP):
protocol bgp peer1 {
local as 65000;
neighbor 2001:db8::1 as 65001;
# IPv6 configuration
ipv6 {
import all;
export all;
};
# Can also configure both IPv4 and IPv6
ipv4 {
import all;
export all;
};
ipv6 {
import all;
export all;
};
}
Check network stability, verify hold timers match, check for authentication mismatches
Wrong route selected
Review BGP decision process, check local preference, verify AS path length
# Useful debugging commands
sudo birdc show protocols all # Detailed protocol status
sudo birdc show route all # All routes with attributes
sudo birdc show route filtered # Filtered routes
sudo birdc show route rejected # Rejected routes
sudo birdc show route count # Route count statistics
sudo birdc show route protocol bgp1 all # Routes from specific peer
# Enable debug logging
# Edit /etc/bird/bird.conf and add:
# log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
# View detailed logs
sudo journalctl -u bird -f -n 100
Security Best Practices
Use BGP passwords: Always configure MD5 authentication or TCP-AO for BGP sessions
Route filtering: Implement strict import/export filters to prevent route hijacking
Prefix limits: Set maximum prefix limits to prevent resource exhaustion
RPKI validation: Use Resource Public Key Infrastructure to validate route origins
BGP communities: Use communities for traffic engineering and policy enforcement
Monitor sessions: Set up monitoring for BGP session state and route changes
AS path filtering: Reject routes with unexpected AS paths
# Example secure BGP configuration
protocol bgp secure_peer {
local as 65000;
neighbor 192.168.1.100 as 65001;
password "strong-random-password-here";
# Prefix limits
ipv4 {
import limit 1000 action block; # Max 1000 routes
import filter strict_import;
export filter strict_export;
};
# Connection security
connect retry time 30;
hold time 90;
keepalive time 30;
# Graceful restart
graceful restart;
}
# Strict import filter
filter strict_import {
# Reject default route
if (net = 0.0.0.0/0) then reject;
# Reject private addresses
if (net ~ [10.0.0.0/8+, 172.16.0.0/12+, 192.168.0.0/16+]) then reject;
# Reject too-specific prefixes
if (net.len > 24) then reject;
# Accept valid routes
accept;
}
Additional Resources
RFC 4271: BGP-4 Protocol Specification
RFC 1997: BGP Communities Attribute
RFC 4760: Multiprotocol Extensions for BGP-4
BIRD Documentation: https://bird.network.cz/
BGP Best Current Practices: RFC 7454
Glossary
Comprehensive definitions of terms and concepts used throughout the virtual machine management interface.
A
ACPI (Advanced Configuration and Power Interface)
A standard for power management and hardware configuration. Required for proper shutdown and power management in modern operating systems. Enables features like sleep, hibernate, and graceful shutdown.
A Record
A DNS record type (RFC 1035) that maps a domain name to an IPv4 address. The most common DNS record type for pointing domains to IP addresses.
AAAA Record
A DNS record type (RFC 3596) that maps a domain name to an IPv6 address. The IPv6 equivalent of an A record.
Aggregation
A method of combining multiple data points into a single value. Common aggregation functions include AVERAGE (typical usage) and MAX (peak usage) for performance metrics.
Anycast
A network addressing and routing method where the same IP address is assigned to multiple servers in different locations. Traffic is routed to the nearest server based on routing metrics. Used for DNS root servers, CDNs, and distributed services to improve performance and redundancy.
API (Application Programming Interface)
A set of protocols and tools for building software applications. The management platform provides a RESTful API for programmatic VM management.
Authentication
The process of verifying the identity of a user or system. The platform uses ticket-based authentication with CSRF protection.
B
Backup
A copy of VM data and configuration stored for recovery purposes. The platform uses VMA (Virtual Machine Archive) format with compression.
Balloon Driver
A memory management feature that allows the hypervisor to reclaim memory from VMs by inflating a "balloon" inside the guest OS. Helps with memory overcommitment.
BGP (Border Gateway Protocol)
An exterior gateway routing protocol (RFC 4271) used to exchange routing information between autonomous systems (AS) on the internet. BGP is the protocol that makes the internet work by routing traffic between ISPs and large networks. Operates on TCP port 179. BGP uses path vector routing, maintaining a table of network reachability information along with the path (AS path) to reach those networks. Key features include: AS path attributes for loop prevention, route selection based on multiple criteria (local preference, AS path length, origin, MED), support for IPv4 (BGP-4) and IPv6 (MP-BGP), route reflectors and confederations for scaling, and communities for policy control. BGP sessions can be internal (iBGP) within an AS or external (eBGP) between ASes. Used extensively in data centers, cloud providers, and internet backbone routing. Supports route filtering, prefix limits, and graceful restart for high availability.
BIOS (Basic Input/Output System)
Legacy firmware interface for system initialization and boot. SeaBIOS is a common open-source BIOS implementation for virtual machines.
Boot Order
The sequence in which a system attempts to boot from available devices (hard disk, CD/DVD, network, etc.). Configured via QEMU boot parameters.
Bridge
A network device that connects multiple network segments at Layer 2 (Ethernet). Linux bridges (vmbr0) connect VM network interfaces to physical networks. Operates at the data link layer (OSI Layer 2).
Broadcast
A network transmission method where data is sent to all devices on a network segment. Broadcast address for IPv4 is typically the last address in a subnet (e.g., 192.168.1.255/24).
C
CDN (Content Delivery Network)
A geographically distributed network of servers that delivers web content to users based on their location. Reduces latency and bandwidth usage by caching content closer to end users. Uses techniques like edge caching, anycast routing, and intelligent routing to optimize content delivery.
CD-ROM
A virtual optical disc drive used for mounting ISO images or physical media. Typically mapped to IDE devices in boot order.
Ceph
A distributed storage system that provides object, block, and file storage. Ceph RBD (RADOS Block Device) is used for VM disk storage in clustered environments.
CIDR (Classless Inter-Domain Routing)
A method for allocating IP addresses and routing (RFC 4632). Expressed as IP address followed by slash and number (e.g., 192.168.1.0/24). Replaces classful addressing (Class A, B, C) for more efficient address allocation.
Cirrus VGA
An emulated VGA adapter based on the Cirrus Logic CLGD 5446 chipset. Provides maximum compatibility across all operating systems.
Cloud-init
A standard method for customizing cloud instances during boot. Allows automatic configuration of users, SSH keys, network settings, and more.
Cluster
A group of physical nodes working together to provide high availability and resource sharing. Uses Corosync for cluster communication.
Console
A text or graphical interface for accessing and controlling a VM. Options include VNC (graphical), serial (text), and web-based terminals.
Corosync
A cluster communication framework used by the management platform for node coordination, quorum, and high availability features.
CPU (Central Processing Unit)
The processor allocated to a VM. Can be configured with specific CPU types, cores, and limits for performance control.
CSRF (Cross-Site Request Forgery)
A security attack that forces authenticated users to execute unwanted actions. The platform uses CSRF tokens to prevent such attacks.
D
DHCP (Dynamic Host Configuration Protocol)
A network protocol (RFC 2131) that automatically assigns IP addresses and network configuration to devices. Used for PXE network boot. DHCP server provides IP address, subnet mask, gateway, DNS servers, and other network parameters. Supports both IPv4 (DHCP) and IPv6 (DHCPv6, RFC 3315).
DHCPv6
The IPv6 version of DHCP (RFC 3315). Provides stateful address configuration for IPv6 networks. Can work alongside stateless address autoconfiguration (SLAAC, RFC 4862).
DNS (Domain Name System)
A hierarchical naming system (RFC 1034/1035) that translates domain names to IP addresses. Essential for internet connectivity and name resolution. Uses UDP port 53 for queries, TCP port 53 for zone transfers.
DNSSEC (DNS Security Extensions)
A suite of extensions (RFC 4033-4035) that adds security to DNS by providing authentication and data integrity for DNS responses. Uses cryptographic signatures to verify DNS record authenticity.
Disk
Virtual storage device attached to a VM. Can be stored on various backends (local-lvm, Ceph, NFS) and formatted as raw, qcow2, or vmdk.
DSCP (Differentiated Services Code Point)
A field in the IP header (RFC 2474) used for quality of service (QoS) classification. Replaces the Type of Service (ToS) field. Allows traffic prioritization and classification.
DNS (Domain Name System)
A hierarchical naming system (RFC 1034/1035) that translates domain names to IP addresses. Essential for internet connectivity and name resolution.
DNSSEC (DNS Security Extensions)
A suite of extensions (RFC 4033-4035) that adds security to DNS by providing authentication and data integrity for DNS responses.
Disk
Virtual storage device attached to a VM. Can be stored on various backends (local-lvm, Ceph, NFS) and formatted as raw, qcow2, or vmdk.
E
E1000
A virtual network adapter that emulates the Intel 82540EM network controller. Provides good compatibility across all operating systems.
EFI (Extensible Firmware Interface)
A specification for firmware interfaces, predecessor to UEFI. EFI disks store UEFI firmware variables and boot configuration.
EFI Disk
A small storage device (typically 4MB) that stores UEFI firmware variables, boot entries, and Secure Boot keys. Required for UEFI-based VMs.
Emulation
The process of mimicking hardware behavior in software. QEMU emulates various hardware devices (VGA, network cards, etc.) for VMs.
F
Firewall
A network security system that monitors and controls incoming and outgoing traffic. The platform includes an integrated firewall for VM-level protection. Can filter at Layer 3 (IP) and Layer 4 (TCP/UDP ports).
Firmware
Low-level software that initializes hardware and boots the operating system. Options include SeaBIOS (legacy) and OVMF (UEFI).
FQDN (Fully Qualified Domain Name)
The complete domain name for a host, including all domain levels. Example: web.example.com. Always ends with a dot (absolute) or is relative to the search domain.
Fragmentation
The process of breaking IP packets into smaller pieces when they exceed the MTU of a network link. Fragments are reassembled at the destination. Can cause performance issues.
G
Gateway
A network device that serves as an access point to another network. Typically the router's IP address on your local network. Also called default gateway or default route.
GPT (GUID Partition Table)
A partitioning scheme that supports disks larger than 2TB and more partitions than MBR. Requires UEFI firmware.
GRE (Generic Routing Encapsulation)
A tunneling protocol (RFC 2784) that encapsulates network layer protocols inside IP packets. Used for site-to-site VPNs, network extension, and protocol transport. Provides point-to-point connections without encryption (often combined with IPsec for security).
Guest Agent
Software running inside the virtual machine that provides additional information and control capabilities to the hypervisor. QEMU Guest Agent enables features like graceful shutdown and network statistics.
Guest OS
The operating system running inside a virtual machine. Also called the "guest" to distinguish it from the host OS.
H
HA (High Availability)
A system design that ensures services remain available even when components fail. The platform supports HA for VMs across cluster nodes using Corosync and Pacemaker.
Headless
A system configuration without a graphical display. VMs can run in headless mode with no VGA adapter for resource efficiency.
Host
The physical machine running the hypervisor. Also called the "host OS" or "host system".
Hostname
The network name assigned to a computer. Must follow RFC 1035 standards (lowercase letters, numbers, hyphens, dots; 1-253 characters).
Hypervisor
Software that creates and runs virtual machines. KVM/QEMU is a type-2 hypervisor that runs on a host operating system.
I
i440fx
A legacy Intel chipset emulation that provides maximum compatibility with older operating systems. Uses PCI (not PCIe) bus.
IDE (Integrated Drive Electronics)
A legacy interface for connecting storage devices. Typically used for CD/DVD drives in VMs.
I/O Thread
A dedicated thread for handling disk I/O operations, improving performance by reducing CPU contention. Can be enabled for VirtIO disk devices.
ICMP (Internet Control Message Protocol)
A network protocol (RFC 792) used for diagnostic and error reporting. ICMP messages include ping (echo request/reply), destination unreachable, and time exceeded. Essential for network troubleshooting.
IGMP (Internet Group Management Protocol)
A communications protocol (RFC 3376) used by hosts and routers to establish multicast group memberships. Enables efficient multicast traffic delivery.
IPv4 (Internet Protocol Version 4)
The fourth version of the Internet Protocol (RFC 791). Uses 32-bit addresses (e.g., 192.168.1.1). The most widely used IP version. Address space: 0.0.0.0 to 255.255.255.255.
IPv6 (Internet Protocol Version 6)
The sixth version of the Internet Protocol (RFC 2460). Uses 128-bit addresses (e.g., 2001:db8::1) to address IPv4 address exhaustion. Supports stateless address autoconfiguration (SLAAC) and improved security.
ISO (International Organization for Standardization)
A file format for disk images. ISO files are commonly used for operating system installation media and can be mounted as virtual CD/DVD drives.
iptables
A Linux firewall utility that manages packet filtering and NAT rules. The platform uses iptables to implement firewall rules for VMs. Operates on chains: INPUT, OUTPUT, FORWARD, and custom chains.
IPsec (Internet Protocol Security)
A suite of protocols (RFC 4301) that provides secure communication at the IP layer. Supports authentication, encryption, and key management. Used for VPNs, site-to-site tunnels, and secure network connections.
IS-IS (Intermediate System to Intermediate System)
A link-state interior gateway routing protocol (ISO/IEC 10589, RFC 1195). Used in large service provider networks. Supports both IPv4 and IPv6 routing.
IXP (Internet Exchange Point)
A physical infrastructure where multiple Internet Service Providers (ISPs), Content Delivery Networks (CDNs), cloud providers, and enterprises connect to exchange internet traffic through peering agreements. IXPs enable direct peering between networks, reducing latency, improving performance, and significantly reducing transit costs by avoiding upstream providers. Major IXPs include AMS-IX (Amsterdam), DE-CIX (Frankfurt), LINX (London), and Equinix. IXPs typically use Ethernet switches (Layer 2) with participants connecting via 1G, 10G, 100G, or higher speed ports. They facilitate both public peering (via shared switch fabric) and private peering (direct cross-connects). IXPs use BGP for route exchange and often provide route servers to simplify peering. Benefits include: reduced latency (local traffic stays local), cost savings (avoiding transit fees), improved redundancy (multiple paths), and better performance (direct interconnections). IXPs are critical infrastructure for internet routing efficiency and are often non-profit organizations managed by their participants.
K
KVM (Kernel-based Virtual Machine)
A virtualization infrastructure for Linux that turns the kernel into a hypervisor. Works with QEMU to provide full virtualization with hardware acceleration.
L
LVM (Logical Volume Manager)
A storage management system that allows flexible disk space allocation. LVM thin pools provide efficient storage for VM disks with snapshot support.
local-lvm
A storage type using LVM thin provisioning on the local node. Provides efficient disk allocation and snapshot capabilities.
Link Aggregation
A method of combining multiple network interfaces into a single logical interface (IEEE 802.3ad, LACP). Provides increased bandwidth, redundancy, and load balancing. Also called bonding or teaming.
LACP (Link Aggregation Control Protocol)
A protocol (IEEE 802.3ad) used to dynamically aggregate multiple physical links into a single logical link. Provides automatic link management and failure detection.
Load Balancer
A device or service that distributes network traffic across multiple servers to improve performance, availability, and reliability. Methods include round-robin, least connections, IP hash, and weighted distribution. Can operate at Layer 4 (TCP/UDP) or Layer 7 (HTTP/HTTPS).
M
MAC Address (Media Access Control)
A unique identifier assigned to network interfaces. Format: XX:XX:XX:XX:XX:XX in hexadecimal. Auto-generated for VM network adapters. Used for Layer 2 addressing in Ethernet networks.
MBR (Master Boot Record)
A legacy partitioning scheme limited to 2TB disks and 4 primary partitions. Compatible with BIOS firmware.
Memory Balloon
See Balloon Driver.
MLPS
See MPLS.
MPLS (Multiprotocol Label Switching)
A routing technique (RFC 3031) that directs data using short path labels instead of long network addresses. Used in service provider networks for traffic engineering and VPNs. Operates between Layer 2 and Layer 3.
Multicast
A network transmission method where data is sent to a group of devices. IPv4 multicast addresses range from 224.0.0.0 to 239.255.255.255. Used for streaming, video conferencing, and service discovery.
Multiqueue
A network feature that uses multiple queues to distribute network processing across CPU cores, improving performance for high-speed networks. Enables parallel packet processing.
N
NAT (Network Address Translation)
A method of remapping IP addresses (RFC 3022). Allows VMs with private IPs to access the internet through the host's public IP. Types include SNAT (Source NAT) and DNAT (Destination NAT).
Network Bridge
See Bridge.
Node
A physical server in a cluster that runs the hypervisor and hosts VMs. Multiple nodes form a cluster for high availability.
NoVNC
A web-based VNC client that provides graphical console access through a web browser. Uses the VNC protocol (RFC 6143) over WebSocket.
NFS (Network File System)
A distributed file system protocol (RFC 7530) that allows access to files over a network. Can be used as shared storage for VM disks and backups. Versions include NFSv3, NFSv4, and NFSv4.1.
MTU (Maximum Transmission Unit)
The largest packet size that can be transmitted over a network interface without fragmentation. Standard Ethernet MTU is 1500 bytes. Jumbo frames support MTU up to 9000 bytes for improved performance.
NIC (Network Interface Card)
A hardware or virtual component that connects a computer to a network. Virtual NICs in VMs are emulated or paravirtualized adapters (VirtIO, E1000, etc.).
O
OpenVPN
An open-source VPN protocol that creates secure point-to-point or site-to-site connections. Uses SSL/TLS for key exchange and supports both UDP and TCP transport. Provides flexible configuration, strong encryption, and cross-platform compatibility. Commonly uses TUN (Layer 3) or TAP (Layer 2) interfaces.
OSPF (Open Shortest Path First)
A link-state interior gateway routing protocol (RFC 2328) used within an autonomous system. OSPF calculates the shortest path using Dijkstra's algorithm and supports areas for hierarchical routing.
OVMF (Open Virtual Machine Firmware)
An open-source UEFI firmware implementation for virtual machines. Required for UEFI boot, Secure Boot, and modern Windows installations.
Overcommitment
The practice of allocating more resources (CPU, memory) to VMs than physically available, based on the assumption that not all VMs will use their full allocation simultaneously.
P
Pacemaker
A cluster resource manager that provides high availability services. Works with Corosync to manage VM failover in clustered environments.
Paravirtualization
A virtualization technique where the guest OS is modified to be aware of the virtualized environment, improving performance. VirtIO devices use paravirtualization.
PCI (Peripheral Component Interconnect)
A legacy bus standard for connecting hardware devices. Used by i440fx chipset.
PCIe (PCI Express)
A modern high-speed bus standard for connecting hardware devices. Used by Q35 chipset for better performance and UEFI compatibility.
Pool
A logical grouping of VMs for management purposes. Allows applying settings, permissions, and resource limits to multiple VMs at once.
Port
A 16-bit number (0-65535) that identifies a specific process or service on a network host. Well-known ports (0-1023) are reserved for system services. Used by TCP and UDP for multiplexing.
Proxy
An intermediary server that acts on behalf of clients, forwarding requests to other servers. Types include forward proxy (client-side, for access control and caching), reverse proxy (server-side, for load balancing and SSL termination), and transparent proxy (intercepts traffic without client configuration). Common protocols: HTTP, HTTPS, SOCKS.
Peering
A voluntary interconnection of separate networks for the purpose of exchanging traffic. Can be public (at Internet Exchange Points) or private (direct connections). Reduces transit costs and improves latency between networks.
PXE (Preboot Execution Environment)
A network boot protocol that allows a computer to boot from a network server. Useful for automated OS installation and diskless systems. Uses DHCP and TFTP protocols.
Q
Q35
A modern virtual machine chipset type that provides PCIe support and UEFI-friendly layout. Recommended for modern operating systems and better performance.
QEMU (Quick Emulator)
A generic and open-source machine emulator and virtualizer. Works with KVM to provide hardware-accelerated virtualization. Handles device emulation and VM lifecycle.
QEMU Guest Agent
Software running inside the guest OS that communicates with QEMU to provide enhanced features like graceful shutdown, file system freeze for backups, and network statistics.
QoS (Quality of Service)
Network mechanisms that manage bandwidth, latency, and packet loss to ensure acceptable service levels. Techniques include traffic shaping, prioritization, and bandwidth limiting. Uses DSCP, VLAN priorities, and traffic control.
QXL
A paravirtualized 2D graphics adapter designed for use with SPICE protocol. Provides 2D acceleration and supports multiple displays.
qcow2 (QEMU Copy-On-Write version 2)
A disk image format that supports snapshots, compression, and encryption. More flexible than raw format but with slight performance overhead.
Quorum
The minimum number of nodes that must be online for a cluster to operate. Typically requires more than half of the nodes (e.g., 3 nodes require 2 for quorum).
R
RAD (Rapid Application Development)
A software development methodology that emphasizes rapid prototyping and iterative development. Not directly related to networking, but may refer to RADIUS in network contexts.
RADIUS (Remote Authentication Dial-In User Service)
A networking protocol (RFC 2865) that provides centralized authentication, authorization, and accounting (AAA) for network access. Used for VPN, Wi-Fi, and network device authentication. Uses UDP ports 1812 (authentication) and 1813 (accounting).
Reverse Proxy
A server-side proxy that receives requests from clients and forwards them to backend servers. Provides load balancing, SSL termination, caching, and security features. Clients are unaware of the backend servers. Common implementations: Nginx, HAProxy, Apache mod_proxy.
RBD (RADOS Block Device)
A block storage interface provided by Ceph. Used for VM disk storage in distributed storage environments.
REST (Representational State Transfer)
An architectural style for web services. The management platform provides a RESTful API for VM management operations.
RFC (Request for Comments)
A series of documents that define internet standards and protocols. Examples: RFC 791 (IPv4), RFC 1035 (DNS), RFC 2460 (IPv6).
RIP (Routing Information Protocol)
A distance-vector interior gateway routing protocol (RFC 2453). Uses hop count as the routing metric. RIP v1 and v2 support IPv4; RIPng supports IPv6.
RSS (Receive Side Scaling)
A network feature that distributes incoming network traffic across multiple CPU cores, improving performance for high-speed networks. Uses hash-based distribution to maintain flow affinity.
RRD (Round Robin Database)
A time-series database format used for storing performance metrics. The platform uses RRD for CPU, memory, network, and disk statistics.
rtl8139
A virtual network adapter that emulates the Realtek 8139 network controller. Provides legacy compatibility for older operating systems.
Routing
The process of selecting paths for network traffic. Routing protocols (BGP, OSPF, RIP) exchange routing information to build routing tables. Can be static (manual) or dynamic (protocol-based).
S
SCSI (Small Computer System Interface)
A standard interface for connecting storage devices. VirtIO SCSI is commonly used for VM disk devices due to better performance than IDE.
SeaBIOS
An open-source BIOS implementation for x86 systems. Provides legacy BIOS compatibility for VMs that don't require UEFI features.
Secure Boot
A security feature that ensures only signed, trusted software can boot. Requires UEFI firmware, EFI disks, and pre-enrolled keys.
Serial Console
A text-based console accessed via serial port (COM1, ttyS0). Provides remote access without network connectivity.
Snapshot
A point-in-time copy of a VM's disk state. Allows reverting to a previous state or creating multiple VM instances from a snapshot.
SPICE (Simple Protocol for Independent Computing Environments)
A remote desktop protocol that provides better performance than VNC. Works with QXL graphics adapter for optimized remote desktop access.
SNAT (Source Network Address Translation)
A type of NAT that translates the source IP address of outgoing packets. Used to allow private networks to access the internet through a public IP. Also called masquerading.
SNMP (Simple Network Management Protocol)
A protocol (RFC 1157) for network management and monitoring. Allows collection of network device statistics, configuration, and alerts. Uses UDP ports 161 (agent) and 162 (trap).
SPF (Shortest Path First)
A routing algorithm used by OSPF and IS-IS. Calculates the shortest path to destinations using Dijkstra's algorithm based on link costs.
SSH (Secure Shell)
A network protocol (RFC 4253) for secure remote access and command execution. Uses public-key cryptography for authentication. Operates on TCP port 22.
SSL/TLS (Secure Sockets Layer / Transport Layer Security)
Cryptographic protocols (RFC 8446 for TLS 1.3) that provide secure communication over networks. Used for HTTPS, VPNs, and encrypted connections. TLS is the modern replacement for SSL.
Storage
A backend system for storing VM disks, ISO images, and backups. Types include local, local-lvm, Ceph, NFS, and others.
Subdomain
A domain that is part of a larger domain hierarchy. For example, "web.example.com" is a subdomain of "example.com".
Subnet
A logical subdivision of an IP network. Defined by a network address and subnet mask (or CIDR notation). Enables network segmentation and efficient IP address allocation.
Subnet Mask
A 32-bit number (IPv4) that identifies which portion of an IP address is the network portion and which is the host portion. Expressed in dotted decimal (255.255.255.0) or CIDR notation (/24).
T
TCP (Transmission Control Protocol)
A connection-oriented transport protocol (RFC 793) that provides reliable, ordered delivery of data. Used by HTTP, HTTPS, SSH, and many other applications. Operates at OSI Layer 4.
TFTP (Trivial File Transfer Protocol)
A simple file transfer protocol (RFC 1350) used for PXE network boot to download boot files from a network server. Uses UDP port 69. No authentication or encryption.
Thin Provisioning
A storage allocation technique where disk space is allocated on-demand rather than upfront. Allows overcommitment of storage resources.
ToS (Type of Service)
A field in the IP header (RFC 791) used for quality of service indication. Replaced by DSCP (Differentiated Services) in modern networks. Used for traffic prioritization.
TPM (Trusted Platform Module)
A hardware security module that provides secure storage for keys and cryptographic operations. Required for features like BitLocker and Secure Boot.
TSIG (Transaction Signature)
A DNS security mechanism (RFC 2845) that provides authentication for DNS updates using cryptographic signatures. Prevents unauthorized DNS zone modifications.
TTL (Time To Live)
A DNS record field (RFC 1035) that specifies how long a DNS record should be cached before being refreshed. Also used in IP packets to limit routing hops (prevents infinite loops).
Tailscale
A zero-configuration VPN service built on WireGuard that creates a secure mesh network. Provides automatic NAT traversal, centralized access control, and easy device management. Uses WireGuard protocol with additional coordination layer for seamless connectivity across firewalls and NAT devices.
TAP Device
A virtual network interface that operates at Layer 2 (Ethernet). Created automatically by the platform for each VM network adapter and connected to a Linux bridge. TAP (Network TAP) provides Layer 2 connectivity. Also used by VPN software like OpenVPN for bridging networks.
TCP (Transmission Control Protocol)
A connection-oriented transport protocol (RFC 793) that provides reliable, ordered delivery of data. Used by HTTP, HTTPS, SSH, and many other applications. Operates at OSI Layer 4.
Tunnel
A method of encapsulating one network protocol within another. Examples include VPN tunnels (IPsec, OpenVPN, WireGuard), GRE (Generic Routing Encapsulation), and VXLAN (Virtual Extensible LAN). Enables secure communication, network extension, and protocol transport across incompatible networks.
TUN Device
A virtual network interface that operates at Layer 3 (IP). Used by VPN software like OpenVPN and WireGuard for routing-based VPNs. Provides IP-level connectivity without Ethernet framing.
U
UDP (User Datagram Protocol)
A connectionless transport protocol (RFC 768) that provides fast but unreliable data delivery. Used by DNS, DHCP, TFTP, and streaming applications. Operates at OSI Layer 4.
UEFI (Unified Extensible Firmware Interface)
A modern firmware interface that replaces BIOS. Provides better security features (Secure Boot), faster boot times, and support for larger disks (GPT).
Unicast
A network transmission method where data is sent from one source to one destination. The most common transmission method for point-to-point communication. Each packet has a single destination address.
USB Tablet
A virtual input device that provides absolute pointer tracking for smoother mouse capture in VNC. Recommended for graphical environments.
V
VGA (Video Graphics Array)
A display standard. Virtual VGA adapters provide graphical output for virtual machines. Options include Standard VGA, VirtIO-GPU, QXL, and VMware SVGA.
VLAN (Virtual Local Area Network)
A network segmentation technique (IEEE 802.1Q) that logically separates network traffic. VLAN-aware bridges support tagged VLAN traffic. VLAN tags (1-4094) identify different network segments on the same physical infrastructure.
VXLAN (Virtual Extensible LAN)
A network virtualization technology (RFC 7348) that overlays Layer 2 networks over Layer 3. Enables large-scale network segmentation (24-bit VNI vs 12-bit VLAN). Used in cloud and data center environments.
VMA (Virtual Machine Archive)
A proprietary backup format used by the management platform. Stores complete VM state including disks, configuration, and metadata. Typically compressed with zstd or gzip.
VNC (Virtual Network Computing)
A remote desktop protocol (RFC 6143) that provides graphical console access to remote systems. The platform provides VNC access via WebSocket proxy.
VirtIO
A paravirtualization framework that provides high-performance virtual devices (network, disk, GPU) for virtual machines. Reduces overhead compared to emulated devices.
VirtIO-GPU
A paravirtualized graphics adapter that provides hardware acceleration and supports up to 256MB VRAM. Best performance option for Linux guests.
VM (Virtual Machine)
A software emulation of a physical computer that runs an operating system and applications. Also called a "guest" or "instance".
VMID (Virtual Machine ID)
A unique numeric identifier assigned to each VM. Typically ranges from 100-999 for user VMs, with lower numbers reserved for system VMs.
VMware SVGA
A virtual graphics adapter that emulates VMware's SVGA II adapter. Provides good compatibility with VMware virtual machines and works well with VMware Tools.
vhost-net
A kernel-based packet processing mechanism for VirtIO network adapters. Reduces latency by moving packet processing from userspace to kernel space.
VRAM (Video Random Access Memory)
Memory allocated to the graphics adapter for storing frame buffers and graphics data. Allocated from the VM's main memory.
W
WebSocket
A communication protocol that provides full-duplex communication over a single TCP connection. Used by the platform for VNC and serial console access via web browsers.
Wildcard
A DNS record that matches all subdomains. Represented by an asterisk (*). For example, *.example.com matches www.example.com, mail.example.com, etc.
WireGuard
A modern, high-performance VPN protocol that uses state-of-the-art cryptography (ChaCha20, Poly1305, Curve25519, BLAKE2). Simpler and faster than IPsec and OpenVPN. Uses UDP transport and supports both TUN (routing) and TAP (bridging) modes. Native support in Linux kernel 5.6+. Provides secure point-to-point and site-to-site VPN connections with minimal configuration overhead.
X
Xterm.js
A web-based terminal emulator that provides text-based console access to virtual machines through a web browser. Emulates a standard terminal interface.
Y
YAML (YAML Ain't Markup Language)
A human-readable data serialization format. Used by cloud-init for configuration files (user-data, meta-data).
Z
zstd (Zstandard)
A fast compression algorithm developed by Facebook. Used by the platform for compressing backup files (VMA format). Provides better compression ratios and speed than gzip.