
У меня есть хосты виртуализации (Проксмокс) запускает несколько виртуальных машин, предоставляющих публичные услуги. Я использую брандмауэр (OPNsense) для фильтрации трафика. Это отлично работает для маршрутизируемой подсети, где публичный IP-адрес напрямую привязан к виртуальному сетевому интерфейсу виртуальной машины: я могу установить правила брандмауэра для фильтрации трафика на основе порта/источника и т. д.
На одном из серверов я получил один дополнительный публичный IP-адрес от хостинг-провайдера, который не является частью маршрутизируемой подсети. Я получилвиртуальный MAC-адрес(виртуальный в терминахне привязан к физическому сетевому адаптеру) и я могу создать виртуальную сетевую карту для виртуальной машины с этим MAC-адресом, что позволит мне назначить этот IP-адрес напрямую виртуальной машине, подключенной к публичному мосту.
Поскольку я хочу фильтровать трафик с помощью своего брандмауэра, я назначил дополнительный виртуальный сетевой адаптер для брандмауэра VM. VM, которая предоставляет услугу, имеет локальный / не маршрутизируемый IP-адрес и подключена к локальному мосту наЛокальная сетьпорт за брандмауэром VM. Теперь я могу использоватьNAT назначенияправила сопоставления определенных портов для входящего трафика на виртуальную машину.
Насколько я понимаю, это потребует от меня добавленияисточник NATправила, чтобы убедиться, что исходящий трафик от этой виртуальной машины получает правильный публичный IP-адрес в качестве источника. Это правильно?
Интересно, это лучший способ сделать это или есть более прозрачный способ, при котором мне не придется иметь дело сДНКАТправила и весь трафик, обращенный к дополнительному публичному IP, будет направлен 1:1 на VM. Конечно, возможность фильтрации на основе правил все еще будет требованием.