Victor Sudakov wrote:
> 
> В ipfw с появлением ядерного nat конфигурация IMHO упростилась (не
> надо думать про пакет, который появляется обратно из divert, ведь
> действие "nat" при net.inet.ip.fw.one_pass=1 равносильно "permit"?), но всё
> равно остаётся много непонятного. Вот взять простейший набор правил
> для домашнего шлюза:
> 
> nat 2 config if fxp0 deny_in
> 00100 check-state
> # in
> 00200 allow tcp from any to me dst-port 22,6890-6999 in via fxp0
> 00300 nat 2 ip from any to any in via fxp0
> # out
> 00400 nat 2 ip from 192.168.1.0/24 to any out via fxp0
> 00500 nat 2 ip from 10.0.0.0/8 to any out via fxp0
> 00600 allow ip from any to any out via fxp0 keep-state
> 65535 allow ip from any to any
> 
> С устройств, живущих в INSIDE сети, можно нормально ходить в Интернет
> через NAT, т.е. это работает. А вот с самого шлюза 
> "telnet -s 192.168.1.1 ya.ru 80" не работает почему-то? Почему? По
> моему разумению, оно должно уходить в Интернет через 400 правило и
> возвращаться через 300-е.

Для того, чтобы ответить на "почему?", нужно заняться диагностикой. Для
диагностики вполне себе существуют средства, начиная от счётчиков на
правилах и заканчивая tcpdump.

> Или вот это, я уже писал в другом письме. Имеем набор правил:
> 
> router1# ipfw list
> 00100 check-state
> 00200 allow ip from any to any via lo0
> 00300 allow ip from any to any in via DMZ keep-state
> 00500 allow ip from any to any out via OUTSIDE keep-state
> 65535 deny ip from any to any
> 
> Трафик уходит из ДМЗ наружу и возвращается, всё в порядке.
> 
> Просто добавляем в 300 правило tag
> 
> router1# ipfw list
> 00100 check-state
> 00200 allow ip from any to any via lo0
> 00300 allow tag 12 ip from any to any in via DMZ keep-state
> 00500 allow ip from any to any out via OUTSIDE keep-state
> 65535 deny ip from any to any
> 
> и трафик ходить перестает. В логе видно, что *возвратный* трафик
> доходит до конца правил и режется на out via DMZ. 

Зачем Вы пересказываете лог вместо того, чтобы его показать?
 
> Почему так? 

См. выше про диагностику.
 
> Соответствующее STATE правило по "ipfw -d" видно, только почему не
> срабатывает?

Зачем вы пересказываете вывод команды вместо того, чтобы просто его
показать?

-- 
LEFT-(UANIC|RIPE)
JID: [email protected]
PGP fingerprint: 1BCD 7C80 2E04 7282 C944  B0E0 7E67 619E 4E72 9280

Ответить