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 в
пользу других.

Ответить