LINUX.ORG.RU

Непонятки с perl и iptables


0

0

Из перла вызываю system( "iptables -D INPUT -s 192.168.0.20:83 -j REJECT");

При этом, аналогично вызывается правило для объекта 10.1.1.1 (без указания порта). 
Адреса 10.1.1.1 в сети нет.

В первом случае наблюдаю какое-то подвисание, секунд на 15.
Непонятно, почему iptables может "тормозить" на этом правиле.

ps ax показывает следущее:

27120 pts/12   S+     0:00 sh -c iptables -D INPUT -s 192.168.0.20:83 -j REJECT 2>/dev/null
27121 pts/12   S+     0:00 iptables -D INPUT -s 192.168.0.20:83 -j REJECT

Через несколько секунд программа продолжает работать как обычно.

qx[iptables -D INPUT -s 192.168.0.20:83 -j REJECT];
exec("iptables -D INPUT -s 192.168.0.20:83 -j REJECT");
`iptables -D INPUT -s 192.168.0.20:83 -j REJECT`;

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

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

Так какое объяснение? Не могу понять ....

Только что пробовал qx[]. Та же история. Может быть я что-то не понял из твоего ответа?

RomanU
() автор топика
Ответ на: комментарий от RomanU

Всё оказалось совсем просто:

romanu:~ # iptables -I INPUT -d 192.168.0.20:83 -j REJECT
iptables v1.3.1: host/network `192.168.0.20:83' not found
Try `iptables -h' or 'iptables --help' for more information.
romanu:~ #

В одном месте программы обрабатывал указание порта, 
а в другом, как раз где выполнялось это правило - забыл. :)

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