>Такое впечатление, что форвардит только на адрес, но не на порт. Отчасти, это действительно так. Если открыть man ipfw, раздел fwd, мы увидим (перевод вольный):
fwd | forward ipaddr[,port]
Принудительно задает маршрут следующего прыжка для пакета, удовлетворяющего определенным условиям, на некий хост, обозначаемый IP-адресом или именем хоста. Последующий правила для такого пакета игнорируются.
Если параметр ipaddr задает локальный (то есть принадлежащий этой же машине) адрес, пакет может быть перенаправлен на заданый порт (если порт не указан в правиле, его номер берется из заголовка пакета).
Если параметр ipaddr задает не локальный адрес, заданый в правиле номер порта будет проигнорирован, а пакет будет перенаправлен на заданый адрес в соответствии с локальной таблицей маршрутизации.
Правило fwd не работает с layer-2 пакетами (которые получены от ether_input, ether_output, or bridged).
Действия правила fwd не изменяют содержимое пересылаемых пакетов. В частности остается неизмененным адрес назначения, таким образом пакеты, отправленные другой системе, скорее всего, будут отклонены, если в системе не предусмотрена обработка таких пакетов.