Страница 1 из 1

ipfw divert

Добавлено: 2007-10-24 16:48:05
blah
скажите, что происходит с пакетом, после того как он задиверчен в natd? снова идет по всем правилам ipfw сверху вниз?

Re: ipfw divert

Добавлено: 2007-10-24 16:53:31
Mr Alter Ego
нет ...

пакет доходит до правила диверт, и далее уходит в нат. в мир.

остальные правила ... не обрабатываются!

работает по принцыпу - перебираем правила, пока не подойдет к нам по условию.

получается ... если диверт стоит первый, то пакет фум и ушел в нат. с ната аналогично назад.

я могу ошибаться ... извините конечно ... но помоему именно так

Re: ipfw divert

Добавлено: 2007-10-24 17:02:11
schizoid
http://www.lissyara.su/?id=1536
Примечание: Относительно DIVERT в MAN-е по IPFW присутствует присутствует некая двусмысленность, согласно MAN-у для пакета попавшего под правило с DIVERT дальнейший поиск прекращается, а что происходит с самим пакетом - неясно.
Экпериментально установлено, что в случае трансляции адресов, пакет прошедший через DIVERT-сокет, продолжает путь по правилам IPFW сразу после правила с DIVERT, имея переписаный (транслированный) IP в заголовке.

Re: ipfw divert

Добавлено: 2007-10-24 17:23:42
Mr Alter Ego
Экпериментально установлено, что в случае трансляции адресов, пакет прошедший через DIVERT-сокет, продолжает путь по правилам IPFW сразу после правила с DIVERT, имея переписаный (транслированный) IP в заголовке.
то есть пакет таки проходит по остальным правилам, НО
он автоматически неможет ... подлежать обработке какого либо правила, так как он имеет другое "форматирование". на пакете висит другой адрес и возможно другие данные.

как я понял ...

Re: ipfw divert

Добавлено: 2007-10-24 23:05:23
dikens3
Какое форматирование, о чём речь вообще?

1. Пакет пришёл
2. Пакет выходит

Подключим НАТ:

1. Пакет пришёл
1.5 Пакет преобразуется (Адрес и т.п., вобщем что нужно)
2. Пакет выходит

P.S. Есть опция sysctl какая-то, чтобы после DIVERT'a (НАТА) пакет не бежал по правилам дальше.

Re: ipfw divert

Добавлено: 2007-10-25 14:37:39
boroday

Код: Выделить всё

net.inet.ip.fw.one_pass: 0
пакеты после диверта возвращаются на следующее по номеру правило.

Код: Выделить всё

net.inet.ip.fw.one_pass: 1
пакеты после диверта выходят из фаирвола.

Re: ipfw divert

Добавлено: 2007-10-25 14:53:49
-cat-
boroday писал(а):net.inet.ip.fw.one_pass: 0
пакеты после диверта возвращаются на следующее по номеру правило.

net.inet.ip.fw.one_pass: 1
пакеты после диверта выходят из фаирвола.
1.не катит при написании статьи переменная была net.inet.ip.fw.one_pass=1
2. а еще можно посмотреть сюда http://ipfw.ism.kiev.ua/dummynet.html

Re: ipfw divert

Добавлено: 2007-10-25 15:06:33
boroday
man ipfw

Код: Выделить всё

SYSCTL VARIABLES
     net.inet.ip.fw.one_pass: 1
             When set, the packet exiting from the dummynet(4) pipe or from
             ng_ipfw(4) node is not passed though the firewall again.  Other-
             wise, after an action, the packet is reinjected into the firewall
             at the next rule.
ага, это касается не диверта..


А в диверте

Код: Выделить всё

#man ipfw
             Divert packets that match this rule to the divert(4) socket bound
             to port port.  The search terminates.
#man natd

Код: Выделить всё

          After translation by natd, packets re-enter the firewall at the rule
          number following the rule number that caused the diversion (not the
          next rule if there are several at the same number).
Спасибо natd за наше счастливое детство.

Re: ipfw divert

Добавлено: 2007-10-25 15:41:50
-cat-
boroday писал(а):Спасибо natd за наше счастливое детство.
На самом деле с NATD не такое счастливое, я убил неделю пытаясь использовать все опции которые возможны, но больше всего добили -proxy, кстати там, насколько помню, с правилами все по-другому.
Вобщем NATD вещь в себе.

Re: ipfw divert

Добавлено: 2012-07-16 10:01:54
Bugaev
подскажите плиз, какая будет строчка команды ipfw, со следующей задачей:
есть 2 сетки - a и b. сетка a имеет возможность через другой шлюз в сетку b. на машине поднят апач. все кто смотрит сайт из сетки b ипы реальные видны, а кто из сетки a ип шлюза в сеть b. как сделать так чтобы из сети a перенаправлялись в a, чтобы видеть реальные ип.
чтото типа такого.