Как я могу настроить iptables, чтобы передать и забыть?

Вы могли ifup для использования сценария для добавления адресов для Вас. Создайте следующий сценарий как /etc/network/if-up.d/eth0

#!/bin/bash

if [ "$IFACE" eq "eth0" ]; then
    for IP in {128..254}; do
        ip addr add 192.168.1.${IP}/24 dev eth0
    done
fi

# EOF

/24 должен быть заменен соответствующей маской подсети.

Соответствующий сценарий в /etc/network/if-down.d/eth0 должен быть создан с помощью "IP addr" del вместо "IP addr, добавляют".

Обязательно работайте chmod +x на обоих сценариях.

Можно протестировать сценарий с помощью команды IFACE=eth0 /etc/network/if-up.d/eth0.

Вы могли также создать файл как /usr/local/sbin/eth0-aliases и выполненный это от опции в /etc/network/interfaces. Добавить up /usr/local/sbin/eth0-aliases к eth0 строке файла конфигурации. При использовании этого механизма, Вам не нужно если условие в сценарии.

0
задан 24 February 2014 в 21:50
1 ответ

Если у вас нет доступа к определенным игровым серверам (которые являются экземплярами EC2?) И, следовательно, вы не можете назначить им статический IP-адрес (эластичный IP-адрес на жаргоне AWS), тогда вам необходимо иметь возможность обнаруживать изменение IP-адресов и обновлять соответствующее правило iptables, когда это происходит (имена DNS разрешаются только при первой загрузке правила).

Вы можете использовать задание cron, подобное приведенному здесь ( Я не без ума от этого кода Python, но поиск по запросу «iptables dynamic DNS» должен дать еще несколько идей:

http://diginc.us/linux/2010/using-iptables-with-dynamic-ip- hostnames-like-dyndns-org /

(Обратите внимание, что на странице руководства iptables указано, что использование имен хостов - «очень плохая идея», но я не понимаю, как переписывать правила с использованием IP из результатов DNS-запроса. другой, в любом случае ты 're работает с исходящими соединениями, не разрешая входящие).

Что касается ведения журнала, в iptables типичной практикой является добавление правила сопоставления с адресатом LOG перед рассматриваемым правилом:

Лично я бы создал отдельная цепочка для каждого сервера, на который вы хотите перенаправить:

iptables -t nat -N chain_gameserver1
iptables -t nat -A chain_gameserver1 -m state --state NEW -j LOG --log-prefix "Gameserver 1 new connection"
iptables -t nat -A chain_gameserver1 -j DNAT --to gameserver1.wherever.com:<port>

И затем попросите cron, который проверяет изменения IP-адресов на gameserver1, просто очистить и перезагрузить chain_gameserver1, а не все ваши таблицы.

0
ответ дан 5 December 2019 в 14:18

Теги

Похожие вопросы