>>1) исходящие через внешний интерфейс - out xmit ${ext_if}
>>2) входящие через внешний интерфейс - in recv ${ext_if}
>>
>>не только
>
>сильно :-) Привыкайте, это опеннет, здесь любят такие категорические высказывания)
Если в двух словах, то nat в ipfw можно сделать несколькими способами.
Те, что я знаю:
- nat самим ipfw - тут, скорее всего, как раз и действуют указанные вами ограничения.
- nat с помощью divert в демон natd - тут все зависит от настройки natd (в связи с этим возможны очень хитрые схемы натирования).
- nat с помощью ng_nat - делается через директиву "divert" или "netgraph" и, так же, все зависит от настройки ng_nat.
Демон natd богат на функционал, поэтому с ним можно играться разными способами.
Например, можно повесить его не на интерфейс, а на ip адрес.
В этом случае натить (и разнатить) можно в любом месте ipfw.
Я баловался именно с ним, поэтому не знаю, можно ли в ng_nat и ipf nat назначить нат на ip адрес.
Кстати, по скорости выигрывают первый и третий, так как все происходит в ядре, не выходя в userspace (на современном компе чувствуется при натировании канала от 10-50-100Мбит/с).
Ещё есть ipf nat, но я не игрался с ipf.