LINUX.ORG.RU
решено ФорумAdmin

``iptables\ip6tables`` имеет ключ ``-w``

 ,


0

3

добрый день!

это не тема-вопрос, а просто хотел бы поделиться [опытом] тем фактом что у ip{,6}tables есть ключ -w :-)

это значит что если вы используете iptables\ip6tables — внутри скриптов (а не набираете через командную строку) — без ключа -w соответствующие строчки скриптов работать не обязаны всегда :-)

(какие скрипты? например вот эти:
/etc/ppp/ipv6-up.d/99-custom-internet.sh , /etc/ppp/ip-up.d/99-custom-internet.sh ,
/etc/ppp/ip-down.d/99-custom-internet.sh , /etc/ppp/ipv6-down.d/99-custom-internet.sh )

------------------------------------------------------------

проведём простой синтетический эксперимент:

#!/usr/bin/bash

func () {
  iptables -N TEST_"$1" # error: эта строчка не обязана работать
  echo "func() done"
}

func 0 &
func 1 &
func 2 &
func 3 &
func 4 &
func 5 &
func 6 &
func 7 &
func 8 &
func 9 &

wait

true

в результате получим:

$ sudo iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_0 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_1 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_2 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_3 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_4 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_5 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_6 (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain TEST_8 (0 references)
 pkts bytes target     prot opt in     out     source               destination

такие вот дела :-)

Ответ на: комментарий от Bers666

Я ничего не понял. И в мане ключа -w не нашел. И в твоем посте тоже.

ну естественно! я в посте написаль потомучто — что будет если НЕ использоват ключ -w :-) .. получилось в результате:

TEST_0, TEST_1, TEST_2, TEST_3, TEST_4, TEST_5, TEST_6, TEST_8

(а TEST_7, TEST_9 --- нет)

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от Bers666

man iptables

-w, --wait

Wait for the xtables lock. To prevent multiple instances of the program from running concurrently, an attempt will be made to obtain an exclusive lock at launch. By default, the program will exit if the lock cannot be obtained. This option will make the program wait until the exclusive lock can be obtained.

sergej ★★★★★ ()
Ответ на: комментарий от Deleted

Зачем нужно это если есть ip*tables-restore?

ip{,6}tables-restore помог БЫ если только — ты обладал БЫ режимом Ванги(!) :-) .. в режиме Ванги — ты мог бы заранее написать правила для талицы.. это да..., это было бы наверно клёва :).

иначе же [те люди кто НЕ обладают режимом Ванги] — приходиться использовать скрипты для всяких там событий..

например:

загрузилась\остановилась виртуальная машина? — добавить\удалить для вирт машины пару правил в таблицу!

подключился\отключился по PPP? — добавить\удалить для канала пару правил в таблицу! (заранее мы ведь не знаем даже название канала: ppp0? ppp1? ppp2? ppp3?...)

клиент подключился\отключился по VPN? — добавить\удалить для него пару правил в таблицу!

ну и... ...правила сами не добавяться! пришло время добавить новые правила! :-)

user_id_68054 ★★★★★ ()
Ответ на: комментарий от d_a

Я принёс тебе нормальных кавычек для заголовка, возьми их - ", ", ", ".

у тебя тоже хорошие ковычки, да :-)

user_id_68054 ★★★★★ ()
Ответ на: комментарий от Bers666

в моей ubuntu 12.04 такого нет

очень, очень соболезную :-( ... [выходит что использовать iptables по хорошему на ubuntu-12.04 по нормальному то ни как нельзя?]

впрочем это полезная информация, спасибо.

но не вечно тебе же на ней сидеть?

цифорка 12 — это же значит — тот самый далёкий 2012 год? то есть а сейчас же 2014 год.. хм...

user_id_68054 ★★★★★ ()
Ответ на: комментарий от user_id_68054

использовать iptables по хорошему на ubuntu-12.04 по нормальному то ни как нельзя?

я бы не согласился. Никогда не было проблем с одновременным созданием таблиц (-N), потому что вероятность, что возникнет ситуация, когда надо в 1 момент времени создать 2 таблицы, равна 0.001%.

Bers666 ★★★★★ ()
Ответ на: комментарий от Bers666

потому что вероятность, что возникнет ситуация, когда надо в 1 момент времени создать 2 таблицы, равна 0.001%.

и вот представьте себе — как ни странно у меня эта вероятность возникла на практике [нет, я говорю НЕ про тот синтетический эксперимент который представлен на верху]. :-)

рассказываю как было дело:

во время подключения PPP-канала — происходит конфигурирование IPv4 и IPv6 — через скрипты...

при этом PPPD-демон — запускает скрипты конфигурировния — для IPv4 и IPv6 — одновременно, а не поочереди [так реализован PPPD-демон, а не моя прихоть].

в итоге в одном из скриптов — с довольно большой вероятостью — происходит невыполнение примерно одного или двух из всех правил. вот это был геморой так геморой :-)..

# P.S.: но только не Ubuntu у меня

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 2)
Ответ на: комментарий от user_id_68054

в убунте pppd запускает /etc/ppp/ip-down, а уже оттуда, с помощью run-parts, запускаются скрипты из /etc/ppp/ip-down.d/. man run-parts говорит, что они запускаются не одновременно, а по порядку.

Bers666 ★★★★★ ()

о, круто, спасибо!
пару раз ловил, когда при старте тачки скрипты вроде отрабатывали, но некоторые цепочки были пустые или неполные

ii343hbka ★★★ ()
Ответ на: комментарий от Bers666

в убунте pppd запускает /etc/ppp/ip-down, а уже оттуда, с помощью run-parts, запускаются скрипты из /etc/ppp/ip-down.d/. man run-parts говорит, что они запускаются не одновременно, а по порядку.

но ты однако забыл про IPv6 :-) ..

а скрипт /etc/ppp/ip-down — он только лишь для IPv4

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от ii343hbka

пару раз ловил, когда при старте тачки скрипты вроде отрабатывали, но некоторые цепочки были пустые или неполные

воспомни это гадкое чувство когда такое случалось :-)..

было же, да?

user_id_68054 ★★★★★ ()
Ответ на: комментарий от user_id_68054

ага :(
ребутнул тачку, ушел куда-то приходишь а интернетов нет
почему-то чаще всего такое было с mangle таблицей.

ii343hbka ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.