Итак,
есть некий шлюз на фре, выполняющий еще и дополнительные функции для сетки, ну там почту принять-отдать, про днс всем показать, ssh - в общем по-мелочи.
Вот стал я заменять natd на ipfw-nat и завяз, сократил скрипт запуска firewall'a до минимума, а все мимо.
Код: Выделить всё
${fw} -f flush
${fw} add allow ip from any to any via lo0 # Все что угодно через петлю
${fw} add allow ip from $lan_ip_range to $lan_ip_range via $lan_iface # Все что угодно из локальной сети в нее же через внутренний интерфейс
${fw} add nat 1 ip from $lan_ip_range to any out via $inet_iface # Натить все что уходит из локальной сети наружу через внешний интерфейс
${fw} add nat 1 ip from any to $inet_ip in via $inet_iface # Разнатить все что пришло откуда угодно на вход внешнего интерфейса с дистанейшеном внешнего ip
${fw} nat 1 config ip $inet_ip # Конфигунация инстанса ната без излишеств(опции ничего не меняют)
${fw} add allow icmp from $inet_ip to any out via $inet_iface # ICMP от шлюза - можно, ведь со шлюза может захотется попинговать или потрейсрутить
${fw} add allow icmp from any to $inet_ip in via $inet_iface # ICMP для шлюза - можно, а вдруг нам ответят или тоже попингуют
${fw} add allow icmp from any to $lan_ip_range out via $lan_iface # ICMP от компьютеров в сети, там тоже люди любят пинговать все
${fw} add allow icmp from $lan_ip_range to any in via $lan_iface # ICMP для компьютеров в сети, им тоже могут ответить
${fw} add deny ip from any to any # Все - больше ничего не надо
Если поставить "массовый заворот" в нат вида
Код: Выделить всё
${fw} add nat 1 ip from any to any via $inet_iface
Вывод в моем понимании один, все входящие пакеты попадают, в любом раскладе, под правило "все в нат", и не находят там ничего приятного - записи в таблице ната для них нет и они очевидно дропятся. И если в первом случае это предположение прокатывает, то во втором у меня зреет вывод, что мысль о том, что пакеты могут быть адресованы и самому шлюзу в ipfw-nat не попала. А точнее мысль, что пакеты одного типа могут быть адресованы как самому шлюзу так и сетке за ним.
В общем, полейте меня грязью, считайте малограмотным ламером, но вытолкните меня из этого замкнутого круга.
