проблема решена, просто на глаза попался пост, может кому пригодится…
Данная необычная ситуация возникает, при таких условиях:
1 - есть некий LAN интерфейс, описанный как 192.168.1.1/24
2 - этот интерфес подключён к умному маршрутизатору 192.168.1.2/24
3 - умный маршрутизатор раздаёт разным клиентам разные адреса из других подсетей, например 192.168.2.0/24, 192.168.3.0/24
4 - дорога к клиентам обозначена как static route в удалённые подсети, через гейт 192.168.1.2
в такой ситуации pfsense пытается выбрать ip сервера по ip клиента, через функцию arp_get_mac_by_ip($ip)
и это успешно получается, но только при условии что клиент находится в одной подсети с интерфейсом сервера(static routes не проверяется).
в итоге, получается что маршрутизация работает отлично, а captive_portal с изюминкой))
решено добавлением в arp_get_mac_by_ip($ip) проверки по статическим маршрутам.