Jump to content

Question

Posted (edited)

Добрый день!

Замечено, что правила ndm\netfilter.d для ipv6 и ipv4 обрабатываются в разном порядке.

Например, есть два скрипта 10m-vpn.sh 10m-ray.sh, которые симметрично задают правила для v6 и v4. В итоге получаю правила в таком порядке:

Скрытый текст
 ~  # iptables -t mangle -nvL PREROUTING && ip6tables -t mangle -nvL PREROUTING 
Chain PREROUTING (policy ACCEPT 1471 packets, 246K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CONNMARK   all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set redir4-vpn dst ! match-set localnet4 dst ctstate NEW CONNMARK set 0xffffaaa
    0     0 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            connmark match  0xffffaaa CONNMARK restore
    0     0 TPROXY     tcp  --  br0    *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 match-set redir4-ssp dst ! match-set localnet4 dst mark match ! 0xea TPROXY redirect 127.0.0.1:9172 mark 0xe9/0xe9
    0     0 TPROXY     udp  --  br0    *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 match-set redir4-ssp dst ! match-set localnet4 dst mark match ! 0xea TPROXY redirect 127.0.0.1:9172 mark 0xe9/0xe9
Chain PREROUTING (policy ACCEPT 41631 packets, 10M bytes)
    0     0 TPROXY     tcp      br0    *       ::/0                 ::/0                 multiport dports 80,443 match-set redir6-ssp dst ! match-set localnet6 dst mark match ! 0xea TPROXY redirect ::1:9172 mark 0xe9/0xe9
    0     0 TPROXY     udp      br0    *       ::/0                 ::/0                 multiport dports 80,443 match-set redir6-ssp dst ! match-set localnet6 dst mark match ! 0xea TPROXY redirect ::1:9172 mark 0xe9/0xe9
    0     0 CONNMARK   all      br0    *       ::/0                 ::/0                 match-set redir6-vpn dst ! match-set localnet6 dst ctstate NEW CONNMARK set 0xffffaaa
    0     0 CONNMARK   all      *      *       ::/0                 ::/0                 connmark match  0xffffaaa CONNMARK restore

 

Т.е. для 4 версии порядок вызова правил - 10m-vpn.sh 10m-ray.sh, а для 6й - 10m-ray.sh 10m-vpn.sh

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

 

Актуально и для более ранних версий.

Edited by avn

1 answer to this question

Recommended Posts

  • 0
Posted

Нельзя полагаться на порядок вызовов или на их количество, это ведет к race-condition. Opkg не дает и не может дать никаких гарантий.

Сделайте свои скрипты идемпотентными: то есть чтобы любой их порядок и количество вызовов не изменяло работу. Только в рассчете на это проектируются вызовы скриптов.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.