@BirBar
а на нем уже добавляются Virtual IPs и к ним отдельные Gateway
возможно , что именно тут и кроется суть проблемы
Надо смотреть , какие конфиги создаются системой в этом случае, и как отрабатывает ПО PF в этом случае
( может быть это ошибка разработчиков именно для Вашего случая, не знаю)
Для анализа , возможно Вам потребуется
1 выгрузить XML файл конфигурации PF
2 посмотреть содержимое файлов папки /tmp/gbe0 (1-2-3__xxxxx
3 и уже смотреть , что делает код PF
возможно , что в Вашем случае нужен другой путь создания необходимой конфигурации ( средствами FreeBsd )
Использовать Netgraph ( встроен в ядро)
На мой взгляд , понадобятся модули
1 ng_ether
2 ng_bridge
3 ng_eiface
Идея состоит в том , чтобы на начальном этапе загрузки PF , выполняется скрипт , который создает несколько виртуальных Ethernet интерфейсов, присваевает им случайные Mac-адреса , и потом присваиваются нужные ip адреса
После загрузки у Вас появляются несколько интерфейсов раздельных с отд ip для каждого , видимых системе , у которого будет свой отдельный gateway
Картинку , как это могло бы выглядеть в теории , скидываю
97e6bb79-642b-4e5b-88f7-54e87ff509c5-image.png