Назад | Перейти на главную страницу

Как я могу проксировать запросы ICMP?

У меня есть сервер ubuntu, который получает много запросов ping от различных других серверов в сети. Я хотел бы иметь возможность проксировать эти запросы. Используя правила iptable, я могу увидеть, как ОТКАЗАТЬ или ПРИНЯТЬ запросы, но есть ли способ их перенаправить? В частности, я ищу способ условно ответить на них. Может быть, небольшой псудокод поможет объяснить ...

 if [ "$SourceIP" ==  "192.168.1.5" ]; then
    #send response
 elif [ "$SourceIP" == "192.168.1.6" ]; then
    #drop
 elif [ "$SourceIP == "192.168.1.7" ]; then
    sleep 20
    #send response
 fi

Я знаю, что могу использовать правила iptable, чтобы отбрасывать и принимать определенные IP-адреса (первые два сценария). Но мне нужно больше контроля, чем это. Мне нужно уметь логически определять, когда и если будет дан ответ.

Это возможно?

Спасибо за любые идеи, которые вы можете предложить!

Как вы уже поняли, iptables может выполнять определенные действия (отбрасывать / отклонять / принимать) при определенных условиях (IP / порт / протокол / и т. Д.). Вы можете организовать свой файл iptables аналогично тому, что вы только что описали в примере сценария оболочки.

Я думаю, вы можете работать с расширениями / модулями iptables / netfilter, чтобы определять действия для заданных сценариев (отклоняет на определенных IP-адресах, принимает на других и т. Д.), Записывая их в определенном порядке (например, в вашем сценарии оболочки). Я не уверен, какие именно действия вы хотите выполнить и при каких условиях, но вы можете попробовать проверить наличие расширений здесь: HOWTO по расширениям Netfilter так же как XTables-Дополнения

Также было обсуждение severfault, как ввести дополнительные задержки с tc, если они вам тоже нужны.