avn Posted August 26 Share Posted August 26 (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 August 26 by avn Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted August 26 Share Posted August 26 Нельзя полагаться на порядок вызовов или на их количество, это ведет к race-condition. Opkg не дает и не может дать никаких гарантий. Сделайте свои скрипты идемпотентными: то есть чтобы любой их порядок и количество вызовов не изменяло работу. Только в рассчете на это проектируются вызовы скриптов. Quote Link to comment Share on other sites More sharing options...
Question
avn
Добрый день!
Замечено, что правила 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 avnLink to comment
Share on other sites
1 answer to this question
Recommended Posts
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.