Jump to content
Калькуляторы

После ngtee пакеты не возвращаются обратно в ipfw

Приветствую!

 

Пакеты после прохождения в ngtee не возвращаются обратно в фильтр и теряются:

 

00001     208750      26565728 allow ip from any to me
00002     571807      90239638 allow ip from me to any
03001          20          7840 ngtee 10 ip from any to any out xmit lagg1
03003         [b]0 [/b]             [b]0[/b] allow log ip from any to any

 

В чем может быть причина? Пробовал менять one_pass с единицы на ноль и обратно, траффик все равно не проходит. Будто дропается на этом правиле.

 

net.inet.ip.fw.one_pass: 0

 

Насколько я понимаю, ng_ipfw должен вернуть пакет обратно на следующее правило в любом случае? Вот у меня он почему-то этого не делает и траффик где-то теряется.

 

ngctl -f- <<-SEQ
mkpeer ipfw: netflow 10 iface0
name ipfw:10 netflow
msg netflow: setdlt { iface=0 dlt=12 }
msg netflow: settimeouts { inactive=30 active=30 }
mkpeer netflow: hub export hubtmp
name netflow:export netflowexp
mkpeer netflowexp: ksocket p1 inet/dgram/udp
msg netflowexp:p1 connect inet/IP.1-го.netflow.коллектора:порт
mkpeer netflowexp: ksocket p2 inet/dgram/udp
msg netflowexp:p2 connect inet/IP.2-го.netflow.коллектора:порт
SEQ

 

Может кто сталкивался?

Share this post


Link to post
Share on other sites

Проверил на другой машине, ngtee возращает траффик обратно в любом случае

Share this post


Link to post
Share on other sites

Никто не знает что можно проверить еще?

Share this post


Link to post
Share on other sites

man ng_ipfw:

 

Packets injected via the netgraph command are tagged with struct

ng_ipfw_tag. This tag contains information that helps the packet to re-

enter ipfw(4) processing, should the packet come back from netgraph(4) to

ipfw(4).

 

...

 

Packets received by a node from netgraph(4) must be tagged with struct

ng_ipfw_tag tag. Packets re-enter IP firewall processing at the next

rule. If no tag is supplied, packets are discarded

Share this post


Link to post
Share on other sites

Я это читал, но не понял что я могу сделать, чтобы тег присутствовал?

Edited by TiFFolk

Share this post


Link to post
Share on other sites

Приведи пример пожалуйста.

Там можно навесить цифру, но ng_ipfw_tag это структура

Edited by TiFFolk

Share this post


Link to post
Share on other sites

Примерно так

ipfw add 3001 ngtee 10 tag 100 ip from any to any out xmit lagg1

 

А есть ли разница, что ng_ipfw_tag - это структура? Она же содержит цифру

Share this post


Link to post
Share on other sites

Ну вот я пробал и так, и так тегом, нихера, все равно теряются.

Причем на аналогичной машине с такимже конфигами, но без бриджа все работает.

 

Может можно как-то продиагностировать продебажить что там происходит?

 

А есть ли разница, что ng_ipfw_tag - это структура? Она же содержит цифру

Конечно, нельзя присвоить структуре число. Вернее в С можно, но вместо струтктуры там будет ссылка непонятно на что)

 

 struct ng_ipfw_tag {
         struct m_tag     mt;         /* tag header */
         struct ip_fw     *rule;      /* matching rule */
         struct ifnet     *ifp;         /* interface, for ip_output */
         int         dir;         /* packet direction */
     #define NG_IPFW_OUT     0
     #define NG_IPFW_IN     1
         int         flags;      /* flags, for ip_output() */
     };

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this