Несколько вопросов по ipfw + kernel nat
Добавлено: 2011-03-09 9:16:40
one_pass = 0 (вообще где то читал, что в 8.1 one_pass всегда 0)
1. Почему может не работать конструкция :
Вариации с xmit, recv тоже не пахают. Приходится пользоваться конструкцией
Соответственно, nat приходится конфигать с deny_in. И вот тут след вопрос.
2. ЧТо происходит с пакетом попавшим в nat с deny_in извне ? Он блокируется наглухо ? или тупо nat с ним ничего не делает и он идёт дальше по правилам ? (кажется мне что наглухо блокируется, если в таблице ната нет соответствующей записи).
Далее, как разделить траффик инициированный самим шлюзом от трафика лок сети ? (ну то есть не отправлять в нат, то, что не должно туда итти ?). У меня пока мысль использовать что то типа
Как теперь сделать, чтобы трафик вышедший из nata, уже замаскараденный не попадал под это правило ?
Есть ли в ipfw конструкция чтобы проверить, что у пакета нет заданного тага ? чтобы можно было сделать а ля :
Или тупо не бабахать мозг и убрать deny_in ?
1. Почему может не работать конструкция :
Код: Выделить всё
ipfw add nat 1 ip from $lan to any out via $if_ext
ipfw add nat 1 ip from any to $ip_ext in via $if_ext
Код: Выделить всё
ipfw add nat 1 ip from any to any via $if_ext
2. ЧТо происходит с пакетом попавшим в nat с deny_in извне ? Он блокируется наглухо ? или тупо nat с ним ничего не делает и он идёт дальше по правилам ? (кажется мне что наглухо блокируется, если в таблице ната нет соответствующей записи).
Далее, как разделить траффик инициированный самим шлюзом от трафика лок сети ? (ну то есть не отправлять в нат, то, что не должно туда итти ?). У меня пока мысль использовать что то типа
Код: Выделить всё
ipfw add check-state
ipfw add allow ip from me to any out xmit $if_ext setup keep-state
Есть ли в ipfw конструкция чтобы проверить, что у пакета нет заданного тага ? чтобы можно было сделать а ля :
Код: Выделить всё
...
ipfw add tag THIS_IS_FOR_NAT ip from $lan to any
....
ipfw add allow ip from me to any out xmit $if_ext <<NOT_TAGGED THIS_IS_FOR_NAT>> setup keep-state
Или тупо не бабахать мозг и убрать deny_in ?