Всем доброго вечера.
Не так давно поднял шлюз на убунте, настроил локалку и провайдера, поставил bind9 сделал форвардинг dns и всё пело и плясало. Но, возникла необходимость подключить резервного провайдера.
Подумав, решил написать 2 скрипта для iptables, с помощью первого скрипта я весь трафик пускаю через 1 прова, ну и есесно с помощью второго пускаю по резервной линии. Первые попытки переключения каналов инета привели в к проблеме с DNS, при запуске 2 скрипта с консоли пропадал пинг на тот же ya.ru
Подскажите люди добрые, как мне сделать автоматическую смену днс сервера при запуске скрипта для резервной линии.
скрипт раз
#faces
INET_IFACE="eth0" # inet
INET_IP="192.168.5.115"
LAN_IP="192.168.0.251"
LAN_IP_RANGE="192.168.0.0/24"
LAN_IFACE="eth1"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/sbin/iptables"
# demons
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
#forward
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -F
$IPTABLES -F
$IPTABLES -X
####
# nat na server
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.251 -o $INET_IFACE -j SNAT --to-source $INET_IP
# nat na icq
$IPTABLES -t nat -A POSTROUTING -p tcp --dport 5190 -o $INET_IFACE -j SNAT --to-source $INET_IP
# nat mail
$IPTABLES -t nat -A POSTROUTING -p tcp --dport 110 -o $INET_IFACE -j SNAT --to-source $INET_IP
$IPTABLES -t nat -A POSTROUTING -p tcp --dport 25 -o $INET_IFACE -j SNAT --to-source $INET_IP
#####
$IPTABLES -A INPUT -s $LAN_IP_RANGE -d $LAN_IP -p tcp --destination-port 3128 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -s $LAN_IP_RANGE -d $LAN_IP -p tcp --destination-port 80 -j ACCEPT
$IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -m state --state NEW,ESTABLISHED -j ACCEPT
# port mapping
#mail.ru
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp -d 192.168.0.251 --dport 9110 -m conntrack --ctstate NEW -j DNAT --to-destination 94.100.177.9:110
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp -d 192.168.0.251 --dport 9025 -m conntrack --ctstate NEW -j DNAT --to-destination 94.100.177.2:25
#its-com
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/255.255.0.0 -p tcp -m tcp -d 192.168.0.251 --dport 9001 -m conntrack --ctstate NEW -j DNAT --to-destination 91.189.80.70:110
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/255.255.0.0 -p tcp -m tcp -d 192.168.0.251 --dport 9002 -m conntrack --ctstate NEW -j DNAT --to-destination 91.189.80.70:25
# SSH
$IPTABLES -A INPUT --protocol tcp --dport 22 -s $LAN_IP_RANGE -j ACCEPT
скрипт 2
#faces
INET_IFACE="eth2" # inet
INET_IP="89.31.187.38"
LAN_IP="192.168.0.251"
LAN_IP_RANGE="192.168.0.0/24"
LAN_IFACE="eth1"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/sbin/iptables"
# demons
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
#forward
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -F
$IPTABLES -F
$IPTABLES -X
####
# nat na server
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.251 -o $INET_IFACE -j SNAT --to-source $INET_IP
# nat na icq
$IPTABLES -t nat -A POSTROUTING -p tcp --dport 5190 -o $INET_IFACE -j SNAT --to-source $INET_IP
# nat mail
$IPTABLES -t nat -A POSTROUTING -p tcp --dport 110 -o $INET_IFACE -j SNAT --to-source $INET_IP
$IPTABLES -t nat -A POSTROUTING -p tcp --dport 25 -o $INET_IFACE -j SNAT --to-source $INET_IP
#####
$IPTABLES -A INPUT -s $LAN_IP_RANGE -d $LAN_IP -p tcp --destination-port 3128 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -s $LAN_IP_RANGE -d $LAN_IP -p tcp --destination-port 80 -j ACCEPT
$IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -m state --state NEW,ESTABLISHED -j ACCEPT
# port mapping
#mail.ru
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp -d 192.168.0.251 --dport 9110 -m conntrack --ctstate NEW -j DNAT --to-destination 94.100.177.9:110
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp -d 192.168.0.251 --dport 9025 -m conntrack --ctstate NEW -j DNAT --to-destination 94.100.177.2:25
#its-com
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/255.255.0.0 -p tcp -m tcp -d 192.168.0.251 --dport 9001 -m conntrack --ctstate NEW -j DNAT --to-destination 91.189.80.70:110
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/255.255.0.0 -p tcp -m tcp -d 192.168.0.251 --dport 9002 -m conntrack --ctstate NEW -j DNAT --to-destination 91.189.80.70:25
# SSH
$IPTABLES -A INPUT --protocol tcp --dport 22 -s $LAN_IP_RANGE -j ACCEPT
Скрипты идентичны, разница лишь в названиях инетовских интерфейсах
Как я понимаю, после смены провайдера, DNS продолжает стучаться на старый сервер, хотя в настройках бинда, в форвардинге я указал оба dns сервера провайдеров.