Коллеги,

Где документировано, что произойдет с пакетом, для которого нет записи
в таблице трансляции, при отсутствии deny_in? В natd возможны были
разные варианты в зависимости от значения -target_address, а в ядерном
nat оно как?

И второй вопрос, наверное связанный с первым. Есть набор правил для
входящего трафика

ipfw nat 2 config if $OUTSIDE deny_in
ipfw add 10 check-state
ipfw add 20 allow tcp from any to me $SERVICES in via $OUTSIDE
ipfw add 30 allow icmp from any to me in via $OUTSIDE
ipfw add 40 nat 2 ip from any to any in via $OUTSIDE

Из него видно, что если из внутренней сети был ICMP запрос наружу, то
ответ на этот запрос в NAT не попадет. А если убрать 30-е правило, то
сам роутер останется без входящего ICMP.

Как сделать правильно и красиво? 

Наиболее изящным решением было бы иметь разные адреса для трансляции и
для внешнего интерфейса, но "белый" адрес есть только один.

ЗЫ Для исходящего трафика правила примерно такие

ipfw add nat 2 ip from $RFC1918 to any out via $OUTSIDE
ipfw add allow ip from any to any out via $OUTSIDE keep-state

-- 
Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
sip:[email protected]

Ответить