18 декабря 2011 г. 11:30 пользователь Victor Sudakov <[email protected]> написал: > Коллеги, > > Где документировано, что произойдет с пакетом, для которого нет записи > в таблице трансляции, при отсутствии 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 >
Этому багу года три, исправлено летом в 8.2-STABLE (т.е. в будущем 8.3-RELEASE), 9.0 http://www.freebsd.org/cgi/query-pr.cgi?pr=129093 http://www.freebsd.org/cgi/query-pr.cgi?pr=122109 http://www.freebsd.org/cgi/query-pr.cgi?pr=157379 Варианты решения: или обновляться, или отказаться от ядерного nat в пользу других.
