У меня есть сервер Ubuntu с 4 физическими сетевыми картами. 2 из них я хочу «скрыть» от хоста, чтобы сам хост не мог получать доступ к трафику на этих 2 сетевых картах, а только к виртуальной машине, куда я их передаю (транзит).
Может, кто-то знает хороший урок или краткое описание, как лучше всего это сделать?
Таким образом, моя виртуальная машина может выступать в качестве брандмауэра, и я не рискую каким-либо образом подвергнуть хост риску.
решение1
Ключевое слово — PCI passthrough. Используя этот метод, можно напрямую привязать PCI-устройства к виртуальной машине, и хост вообще не увидит эти устройства.
Это пример определения сквозного протокола PCI в virt-manager
.
<hostdev mode="subsystem" type="pci" managed="yes">
<source>
<address domain="0x0000" bus="0x08" slot="0x00" function="0x0"/>
</source>
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</hostdev>
Чтобы добавить устройство к виртуальной машине virt-manager
, выполните следующие действия:
1. Make sure the VM is shut down.
2. Open the VM details tab, and click "Add Hardware" on the left bottom.
3. Select `PCI Host Device`.
4. Select your device from the list.
После этого устройство отключается от хоста при запуске виртуальной машины и подключается к виртуальной машине.