L'isolamento IOMMU rende il passthrough del server domestico più sicuro posizionando un confine hardware di traduzione e permessi tra un dispositivo PCIe passato e la memoria fisica del sistema. La VM può controllare direttamente il dispositivo, ma il dispositivo dovrebbe raggiungere solo le pagine di memoria mappate nel dominio di quella VM.
Questo riduce il rischio che un driver ospite compromesso o un dispositivo difettoso esegua DMA nella memoria dell'host o di un'altra VM. La protezione dipende ancora da gruppi IOMMU corretti, topologia PCIe, rimappatura delle interruzioni, comportamento di reset del dispositivo, firmware e dall'evitare soluzioni che fanno sembrare i gruppi separati senza esserlo.
Perché il passthrough è diverso dall'I/O virtuale?
VFIO dà a una VM il controllo diretto del dispositivo invece di inviare ogni operazione attraverso un dispositivo emulato o paravirtuale controllato dall'hypervisor.
Questa via diretta può ridurre il sovraccarico della virtualizzazione ed esporre funzionalità hardware necessarie per GPU, unità NVMe, adattatori di rete e schede acceleratrici. Sposta inoltre più comportamento del dispositivo sotto il controllo dell'ospite.
Il confine di sicurezza quindi non può basarsi solo sul fatto che l'ospite non possa eseguire istruzioni della CPU host. Un dispositivo bus-master può iniziare transazioni di memoria in modo indipendente, quindi il suo spazio di indirizzi DMA deve essere confinato con la stessa cura dello spazio di indirizzi della CPU dell'ospite.
Come limita l'IOMMU il DMA del dispositivo?
I domini IOMMU limitano l'accesso alla memoria del dispositivo traducendo gli indirizzi I/O visibili al dispositivo tramite tabelle delle pagine selezionate per quel dispositivo.
Quando VFIO assegna un dispositivo a una VM, le mappature valide dovrebbero corrispondere alla memoria di proprietà di quella VM. Una richiesta DMA al di fuori dell'intervallo mappato può essere bloccata anziché raggiungere una RAM arbitraria dell'host.
Questo è il miglioramento centrale della sicurezza rispetto al passthrough non mediato. Il dispositivo non sceglie direttamente gli indirizzi fisici dell'host; l'IOMMU verifica l'identità del richiedente, la mappatura e i permessi di accesso prima di consentire la transazione.
Perché un gruppo IOMMU è il confine di assegnazione?
Le funzioni PCIe che non possono essere isolate l'una dall'altra sono collocate nello stesso gruppo, e tutti i dispositivi in un gruppo condividono l'isolamento.
Una scheda grafica può esporre funzioni di display, audio, USB e bus seriale sotto un unico pacchetto dispositivo. Queste funzioni correlate spesso devono muoversi insieme perché condividono il comportamento di reset o una topologia che consente la comunicazione peer.
Se un driver host continua a usare un endpoint all'interno dello stesso gruppo non sicuro mentre un altro endpoint è assegnato a un guest, la separazione software potrebbe non corrispondere al reale confine di routing hardware. L'appartenenza al gruppo è quindi più importante dell'etichetta su una funzione PCI.
Come influenzano l'isolamento i bridge PCIe e ACS?
I servizi di controllo accessi aiutano le porte upstream a reindirizzare il traffico peer-to-peer attraverso il percorso di isolamento. La sovrascrittura ACS indebolisce le garanzie di isolamento quando la topologia sottostante non può separare affidabilmente i dispositivi.
Una sovrascrittura software può rendere possibile la configurazione passthrough presentando gruppi più piccoli, ma non aggiunge l'applicazione mancante del routing a un bridge o switch. I dispositivi possono ancora avere un percorso che l'IOMMU non può osservare o bloccare.
Spostare una scheda in un altro slot, scegliere una scheda madre con una topologia PCIe migliore o assegnare ogni endpoint sotto il bridge non sicuro è più efficace che trattare una divisione cosmetica del gruppo come equivalente all'isolamento supportato dall'hardware.
Perché anche gli interrupt devono essere isolati?
La traduzione della memoria è solo una parte dell'assegnazione diretta. il rimappamento degli interrupt controlla gli interrupt generati dal dispositivo mentre il rimappamento DMA controlla le transazioni di memoria.
Senza un percorso sicuro per gli interrupt, un dispositivo passato potrebbe segnalare il processore o il contesto guest sbagliato, oppure la piattaforma potrebbe richiedere un'opzione di compatibilità per interrupt non sicuri che indebolisce il confine previsto.
Una configurazione sicura verifica sia il rimappamento DMA che quello degli interrupt nei log dell'host. Il passaggio del traffico di benchmark all'interno del guest dimostra che il dispositivo funziona; non prova da solo che ogni interrupt e transazione di memoria sia isolata correttamente.
Quali rischi rimangono dopo l'isolamento IOMMU?
La mappatura IOMMU non può garantire che l'hardware torni a uno stato pulito tra un proprietario e l'altro. alcuni dispositivi in passthrough non si resettano correttamente, il che può lasciare il dispositivo inutilizzabile o con stato obsoleto fino al riavvio dell'host.
Firmware del dispositivo, ROM opzionali, firmware host, bug dell'hypervisor, risorse PCIe condivise, canali laterali e accesso fisico rimangono al di fuori della stretta garanzia di mappatura DMA. Il passthrough limita anche la migrazione e può rendere il recupero dipendente da un dispositivo specifico.
Proxmox può esporre GPU fisiche alle VM, ma un design sicuro riserva comunque un percorso di gestione proprio all'host, verifica la topologia dei gruppi, evita override non sicuri e testa il reset del dispositivo prima di considerare la VM come un dispositivo isolato.
| Strato di isolamento | Cosa controlla | Confine residuo |
|---|---|---|
| Dominio IOMMU | Quali pagine di memoria host un dispositivo può usare per DMA | Richiede mappature corrette e identità del richiedente |
| Gruppo IOMMU | Quali funzioni PCI possono essere assegnate indipendentemente | Limitato dalla reale topologia PCIe |
| Rimappamento delle interruzioni | Dove vengono consegnate le interruzioni del dispositivo | Modalità di compatibilità non sicure indeboliscono la protezione |
| Reset del dispositivo | Se lo stato obsoleto viene cancellato tra un utilizzo e l'altro | Alcuni dispositivi e firmware si resettano in modo inaffidabile |
FAQ
Abilitare IOMMU rende sicura ogni configurazione di passthrough?
No. Il dispositivo deve essere in un gruppo sicuro, DMA e interruzioni devono essere rimappati e la topologia PCIe deve impedire l'accesso peer-to-peer non tradotto.
Posso passare solo la funzione display di una GPU multifunzione?
A volte, ma funzioni correlate come audio, USB o controller spesso condividono un gruppo IOMMU e un confine di reset. Comunemente devono essere staccate e assegnate insieme.
L'override ACS è solo una modifica per le prestazioni?
No. Cambia il modo in cui Linux presenta i gruppi senza necessariamente aggiungere isolamento del traffico hardware. Può rendere la configurazione più semplice indebolendo però il significato di sicurezza della divisione in gruppi.
Perché una GPU in passthrough a volte richiede un riavvio dell'host?
Alcuni dispositivi non supportano un reset pulito a livello di funzione o bus. Dopo lo spegnimento del guest, la scheda può rimanere in uno stato che non può essere inizializzato in sicurezza per il prossimo utilizzatore.
Conclusione finale
L'isolamento IOMMU rende il passthrough più sicuro fornendo a un dispositivo con capacità DMA uno spazio di indirizzi hardware limitato anziché affidargli tutta la memoria host. La vera sicurezza richiede anche gruppi IOMMU intatti, un routing PCIe affidabile, il rimappamento delle interruzioni, un reset pulito del dispositivo e una configurazione host conservativa. Un dispositivo passato in passthrough può avvicinarsi alle prestazioni native senza diventare equivalente a una periferica virtuale innocua.
Hub Tecnologico e AI
Altro da leggere

Perché Home Assistant offre prestazioni diverse sulla rete locale e con le connessioni remote?
Le sessioni di Home Assistant sulla LAN e da remoto utilizzano percorsi di rete diversi; la latenza da remoto aggiunge DNS, crittografia, WAN, proxy...

Home Assistant funziona in modo affidabile dietro CGNAT o doppio NAT?
CGNAT e doppio NAT di solito non influiscono sul controllo locale di Home Assistant; cambiano principalmente il modo in cui i client remoti possono...

In che modo la latenza di rete influisce su Home Assistant durante le interruzioni di Internet?
La perdita della connessione Internet e la latenza di rete sono problemi diversi: i percorsi dei dispositivi locali possono rimanere veloci mentre DNS, integrazioni...

