Skip to content

Networking Architecture

PiVirt delivers software-defined networking (SDN) spanning single-node bridge topologies, 802.1Q VLAN isolation, cross-host VXLAN overlays, and SR-IOV hardware passthrough.

VM ←veth→ linux-bridge ←phys→ uplink

Simple layer-2 connectivity through a Linux bridge.

VM ←veth→ linux-bridge (vlan=100) ←phys→ trunk port

802.1q VLAN tagging for network segmentation.

VM ←veth→ vxlan0 ←UDP:4789→ vxlan0 ←veth→ VM (remote host)

Overlay networks for multi-host deployments.

VM ←VF→ Physical NIC (no bridge)

Direct hardware access for maximum performance.

network:
default_bridge: "virbr0"
bridges:
- name: "virbr0"
type: "bridge"
interface: "eth0"
vlan_aware: true
network:
vlans:
- name: "vlan10"
bridge: "virbr0"
vlan_id: 10
network:
vxlans:
- name: "vxlan100"
vni: 100
local_ip: "10.0.1.10"
remote_ips: ["10.0.1.11", "10.0.1.12"]
spec:
nics:
- name: eth0
network: virbr0
model: virtio
mac: "aa:bb:cc:dd:ee:01"
queues: 2 # Multi-queue
apiVersion: pivirt.pilab.hu/v1
kind: NetworkPolicy
metadata:
name: web-isolation
namespace: production
spec:
podSelector:
matchLabels:
app: web
ingress:
- from:
- namespaceSelector:
matchLabels:
name: monitoring
ports:
- protocol: TCP
port: 80
spec:
nics:
- name: eth0
network: virbr0
bandwidth:
ingress:
rate: "100Mbps"
burst: "150Mbps"
egress:
rate: "50Mbps"
burst: "75Mbps"
spec:
nics:
- name: eth0
network: virbr0
ipam:
mode: dhcp
spec:
nics:
- name: eth0
network: virbr0
ipam:
mode: static
address: "10.0.1.100/24"
gateway: "10.0.1.1"
dns: ["8.8.8.8", "8.8.4.4"]