Прекрасно работает такая конструкция.
На нас, на пример, каждом BRASе поднято одно правило:
fwd 10.0.0.1 ip from 172.16.5.0/24 to any
(Должникам выдается такой пул, если выдаются реальные -- используйте таблицу)
А на отдельностоящем хосте 10.0.0.1 поднято.... да что угодно, у нас это транспарент прокси. Вы можете поставить nginx, apache, etc
В man'е белым по черному написано: fwd | forward ipaddr | tablearg[,port] Change the next-hop on matching packets to ipaddr, which can be an IP address or a host name.
...
If ipaddr is not a local address, then the port number (if specified) is ignored, and the packet will be forwarded to the remote
address, using the route as found in the local routing table for that IP.
бегло переводя на язык русских админов:
1. некстхоп МЕНЯЕТСЯ.
2. если некстхоп -- чужая тачка, то порт будет проигнорирован, но роут на этот адрес ДОЛЖЕН присутствовать в системе.
P.S. забыл добавить: на удаленном хосте (10.0.0.1) тоже должно быть правило вида:
fwd 127.0.0.1,3128 tcp from 172.16.5.0/24 to any dst-port 80
ну и проксисервер (или http-сервер), который слушает порт 3128.
все отлично работает уже около 5 лт :)