Я думаю, что лучший способ решить это - использовать PCI passthrough в Xen. Это означает, что вы можете оставить 1 из своих сетевых адаптеров, подключенных к dom0 (который затем может быть подключен к мосту, чтобы позволить другим виртуальным машинам подключаться через один и тот же интерфейс). Посмотрите на один из Xen articles on network configuration для некоторых примеров того, как установить это, он будет таким же, как если бы у вас был только один сетевой адаптер) и разрешить брандмауэру полный контроль над двумя другими сетевыми адаптерами.
Процесс для этого несколько вовлекается и может варьироваться в зависимости от распределения, поэтому я бы посоветовал вам проверить первую связанную мной статью, но я опишу основной процесс.
Проверьте адреса PCI двух сетевых карт, которые вы хотите пройти, используя lspci
. Линии вывода для карт будет выглядеть следующим образом (хотя детали будут сильно отличаться структура будет такой же):
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:19.1 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
Запишите в первой колонке (00:19.0
и 00:19.1
в этом примере). Добавьте к этому конфигурации для вашего брандмауэра VM в следующем формате:
pci=['00:19.0','00:19.1']
по себе это приведет к VM, чтобы не загрузиться, как он не сможет пройти через устройство. Для того, чтобы эти устройства должны быть переданы через они должны быть связаны с водителем pciback на dom0 с помощью следующей команды:
xl pci-assignable-add 00:19.0
xl pci-assignable-add 00:19.1
Это не может быть возможным во всех ситуациях, но есть и другие методы, если это не , Я настоятельно рекомендую вам прочитать the article. Я упомянул ранее, чтобы полностью понять, что лучший способ сделать это в вашем случае.