Пробросить весь трафик идущий на ip внешнего маршрутизатора (XXX.XXX.XXX.XXX, сетевай карта em0) на внутренний адрес (192.168.0.10), правило для pf будет таким:
rdr on em0 proto { tcp, udp } from any to XXX.XXX.XXX.XXX -> 192.168.0.10
nat on em0 proto { tcp, udp } from 192.168.0.10 to any -> XXX.XXX.XXX.XXX
Для того что бы пробросить один порт, например 80 c ip XXX.XXX.XXX.XXX на 192.168.0.10 80 порт, конструкция будет такая:
rdr on em0 proto { tcp, udp } from any to XXX.XXX.XXX.XXX port 80 -> 192.168.0.10
nat on em0 proto { tcp, udp } from 192.168.0.10 to any -> XXX.XXX.XXX.XXX
порт 8080 ip XXX.XXX.XXX.XXX пробросить на 192.168.0.10, 80 порт то прописать надо такие настройки:
rdr on em0 proto { tcp, udp } from any to XXX.XXX.XXX.XXX port 8080 ->192.168.0.10 port 80
nat on em0 proto { tcp, udp } from 192.168.0.10 to any -> XXX.XXX.XXX.XXX
Во всех предыдущих примерах использовалась строка:
nat on em0 proto { tcp, udp } from 192.168.0.10 to any -> XXX.XXX.XXX.XXX
Для того что бы задействовать нат целой подсети достаточно прописать такие настройки:
nat on em0 from 192.168.0.10/24 to any ->XXX.XXX.XXX.XXX