IOMMU 격리는 홈 서버 패스스루를 더 안전하게 만듭니다. 이는 패스스루된 PCIe 장치와 물리 시스템 메모리 사이에 하드웨어 변환 및 권한 경계를 두기 때문입니다. VM은 장치를 직접 제어할 수 있지만, 장치는 해당 VM 도메인에 매핑된 메모리 페이지만 접근해야 합니다.
이는 손상된 게스트 드라이버나 결함 있는 장치가 호스트 또는 다른 VM의 메모리에 DMA를 수행할 위험을 줄입니다. 보호는 여전히 올바른 IOMMU 그룹, PCIe 토폴로지, 인터럽트 재매핑, 장치 리셋 동작, 펌웨어, 그리고 그룹을 단순히 분리된 것처럼 보이게 하는 우회 방법을 피하는 것에 의존합니다.
패스스루가 가상 I/O와 다른 이유는 무엇인가요?
VFIO는 VM에 직접 장치 제어 권한을 부여하여 모든 작업을 하이퍼바이저가 제어하는 에뮬레이션 또는 패러버추얼 장치를 통해 보내는 대신 직접 제어할 수 있게 합니다.
이 직접 경로는 가상화 오버헤드를 줄이고 GPU, NVMe 드라이브, 네트워크 어댑터, 가속기 카드에 필요한 하드웨어 기능을 노출시킵니다. 또한 장치 동작의 더 많은 부분을 게스트가 제어할 수 있게 합니다.
따라서 보안 경계는 게스트가 호스트 CPU 명령을 실행하지 못하는 것만으로는 충분하지 않습니다. 버스 마스터링 장치는 독립적으로 메모리 트랜잭션을 시작할 수 있으므로, 그 DMA 주소 공간은 게스트 CPU 주소 공간만큼 신중하게 제한되어야 합니다.
IOMMU는 어떻게 장치 DMA를 제한하나요?
IOMMU 도메인은 장치 메모리 접근을 제한하며, 장치별로 선택된 페이지 테이블을 통해 장치가 볼 수 있는 I/O 주소를 변환합니다.
VFIO가 장치를 VM에 할당할 때, 유효한 매핑은 해당 VM이 소유한 메모리에 대응해야 합니다. 매핑된 범위를 벗어난 DMA 요청은 임의의 호스트 RAM에 도달하는 대신 차단될 수 있습니다.
이는 중재되지 않은 패스스루에 비해 중심적인 안전성 향상입니다. 장치는 호스트 물리 주소를 직접 선택하지 않고, IOMMU가 요청자 신원, 매핑 및 접근 권한을 확인한 후에야 트랜잭션을 허용합니다.
왜 IOMMU 그룹이 할당 경계인가요?
서로 격리할 수 없는 PCIe 기능은 동일한 그룹에 배치되며, 한 그룹 내 모든 장치는 격리를 공유합니다.
그래픽 카드는 하나의 장치 패키지 아래에 디스플레이, 오디오, USB, 직렬 버스 기능을 노출할 수 있습니다. 이러한 관련 기능은 리셋 동작을 공유하거나 피어 통신을 허용하는 토폴로지를 공유하기 때문에 함께 이동해야 하는 경우가 많습니다.
호스트 드라이버가 동일한 안전하지 않은 그룹 내의 엔드포인트를 계속 사용하면서 다른 엔드포인트가 게스트에 할당되면, 소프트웨어 분리는 하드웨어의 실제 라우팅 경계와 일치하지 않을 수 있습니다. 따라서 그룹 멤버십이 한 PCI 기능의 라벨보다 더 중요합니다.
PCIe 브리지와 ACS가 격리에 어떤 영향을 미치나요?
액세스 제어 서비스는 업스트림 포트가 피어 투 피어 트래픽을 격리 경로로 리디렉션하도록 돕습니다. ACS 오버라이드는 기본 토폴로지가 장치를 신뢰성 있게 분리할 수 없을 때 격리 보장을 약화시킵니다.
소프트웨어 오버라이드는 더 작은 그룹을 제시하여 패스스루 구성을 가능하게 할 수 있지만, 브리지나 스위치에 누락된 라우팅 강제 기능을 추가하지는 않습니다. 장치는 여전히 IOMMU가 관찰하거나 차단할 수 없는 경로를 가질 수 있습니다.
카드를 다른 슬롯으로 옮기거나, 더 나은 PCIe 토폴로지를 가진 메인보드를 선택하거나, 모든 엔드포인트를 안전하지 않은 브리지 아래에 할당하는 것이, 단순히 외관상 그룹 분할을 하드웨어 기반 격리와 동등하게 취급하는 것보다 더 강력합니다.
왜 인터럽트도 격리해야 하나요?
메모리 변환은 직접 할당의 일부일 뿐입니다. 인터럽트 리매핑은 장치에서 생성된 인터럽트를 제어하고 DMA 리매핑은 메모리 트랜잭션을 제어합니다.
안전한 인터럽트 경로가 없으면, 전달된 장치가 잘못된 프로세서나 게스트 컨텍스트에 신호를 보낼 수 있으며, 플랫폼은 의도한 경계를 약화시키는 안전하지 않은 인터럽트 호환 옵션을 요구할 수 있습니다.
안전한 설정은 호스트 로그에서 DMA와 인터럽트 리매핑을 모두 검증합니다. 게스트 내에서 벤치마크 트래픽이 통과된다는 것은 장치가 작동함을 증명하지만, 이것만으로 모든 인터럽트와 메모리 트랜잭션이 올바르게 격리되었음을 증명하지는 않습니다.
IOMMU 격리 후 남아 있는 위험은 무엇인가요?
IOMMU 매핑은 하드웨어가 소유자 간에 깨끗한 상태로 돌아가는 것을 보장할 수 없습니다. 일부 패스스루 장치는 깨끗하게 리셋하지 못해 장치가 사용 불가능하거나 오래된 상태를 유지할 수 있으며, 이 경우 호스트를 재부팅해야 합니다.
장치 펌웨어, 옵션 ROM, 호스트 펌웨어, 하이퍼바이저 버그, 공유 PCIe 자원, 사이드 채널, 물리적 접근은 좁은 DMA 매핑 보장 범위 밖에 남아 있습니다. 패스스루는 또한 마이그레이션을 제한하고 복구를 특정 장치에 의존하게 만들 수 있습니다.
Proxmox는 물리적 GPU를 VM에 노출할 수 있지만, 안전한 설계는 여전히 호스트 자체 관리 경로를 예약하고, 그룹 토폴로지를 검증하며, 안전하지 않은 오버라이드를 피하고, VM을 격리된 장치로 취급하기 전에 장치 리셋을 테스트합니다.
| 격리 계층 | 제어 대상 | 남은 경계 |
|---|---|---|
| IOMMU 도메인 | 장치가 DMA할 수 있는 호스트 메모리 페이지 | 올바른 매핑과 요청자 신원을 필요로 함 |
| IOMMU 그룹 | 독립적으로 할당할 수 있는 PCI 기능 | 실제 PCIe 토폴로지에 의해 제한됨 |
| 인터럽트 재매핑 | 장치 인터럽트가 전달되는 위치 | 안전하지 않은 호환성 모드는 보호를 약화시킵니다 |
| 장치 리셋 | 사용 간에 오래된 상태가 지워지는지 여부 | 일부 장치와 펌웨어는 신뢰할 수 없는 리셋을 수행합니다 |
자주 묻는 질문
IOMMU를 활성화하면 모든 패스스루 구성이 안전해지나요?
아니요. 장치는 안전한 그룹에 있어야 하며, DMA와 인터럽트가 재매핑되어야 하고 PCIe 토폴로지가 번역되지 않은 피어 투 피어 접근을 방지해야 합니다.
멀티 기능 GPU에서 디스플레이 기능만 패스스루할 수 있나요?
때때로 그렇지만 관련된 오디오, USB 또는 컨트롤러 기능은 종종 하나의 IOMMU 그룹과 리셋 경계를 공유합니다. 이들은 일반적으로 함께 분리되고 할당되어야 합니다.
ACS 오버라이드는 단지 성능 조정인가요?
아니요. 이것은 반드시 하드웨어 트래픽 격리를 추가하지 않고도 Linux가 그룹을 표시하는 방식을 변경합니다. 구성은 더 쉽게 만들 수 있지만 그룹 분할의 보안 의미는 약화시킬 수 있습니다.
왜 패스스루 GPU는 때때로 호스트 재부팅이 필요합니까?
일부 장치는 깨끗한 함수 수준 또는 버스 리셋을 지원하지 않습니다. 게스트 종료 후 카드가 다음 소유자를 위해 안전하게 초기화할 수 없는 상태로 남아 있을 수 있습니다.
최종 요점
IOMMU 격리는 DMA 기능이 있는 장치에 전체 호스트 메모리를 신뢰하는 대신 제한된 하드웨어 주소 공간을 제공하여 패스스루를 더 안전하게 만듭니다. 진정한 보안은 온전한 IOMMU 그룹, 신뢰할 수 있는 PCIe 라우팅, 인터럽트 재매핑, 깨끗한 장치 리셋, 그리고 보수적인 호스트 구성을 필요로 합니다. 패스스루된 장치는 무해한 가상 주변기기와 동등해지지 않으면서도 네이티브 성능에 근접할 수 있습니다.
기술 및 AI 허브
더 읽어보기

Home Assistant는 LAN 연결과 원격 연결에서 왜 다르게 작동하나요?
LAN 및 원격 Home Assistant 세션은 서로 다른 네트워크 경로를 사용합니다. 원격 연결의 지연 시간에는 DNS, 암호화, WAN, 프록시 또는 VPN, 재연결 동작으로 인한...

Home Assistant는 CGNAT 또는 이중 NAT 환경에서도 안정적으로 작동하나요?
CGNAT와 이중 NAT는 일반적으로 로컬 Home Assistant 제어에 영향을 주지 않으며, 주로 원격 클라이언트가 홈 네트워크로 인바운드 경로를 생성하는 방식에 영향을 줍니다.

인터넷 장애가 발생했을 때 네트워크 지연 시간이 Home Assistant에 어떤 영향을 미치나요?
인터넷 연결 끊김과 네트워크 지연 시간은 서로 다른 장애입니다. 로컬 장치 경로는 빠른 상태를 유지할 수 있지만, DNS, 클라우드 통합, 게이트웨이 또는 원격 클라이언트는...

