Мне интересно, когда пакет достигает интерфейса, и у меня есть некоторые правила PF, которые проверяются в первую очередь, таблица маршрутизации или набор правил?
ext_if = "em0"
int_if = "em1"
localnet = $int_if:network
VPN_if = 172.16.0.110
nat log on $ext_if from any to any -> ($ext_if)
rdr pass log on $ext_if proto tcp from !($ext_if) to any port 1:65000\
-> $VPN_if port 2500
pass log from { lo0, $localnet } to any keep state
В FreeBSD межсетевые экраны (IPF, IPFW и PF) находятся между драйвером устройства и IP-стеком.
Маршрутизация является частью IP-стека.