Пытаюсь продублировать работу vpn сервера.
Система должна работать следующим образом. Есть два vpn сервера - один основной, другой его дублирует. У клиента поднято два vpn соединения - одно с основным, другое с дублирующим и скрипт который пингует основной vpn сервер, при падении основного скрипт в табличке nat делает подмену ip основного на ip дублирующего и опять продолжает пинговать основной. При поднятии основного, удаляет правила для nat и опять продолжает пинговать основной и т. д.
Для экспериментов сделал следующую систему из двух компов. На одном поднято два vpn сервера (например с ip основного 172.16.0.1 и ip дублирующего 10.0.0.1) и ftp сервер (который слушает два виртуальных интерфейса с ip 172.16.0.1 и 10.0.0.1) для проверки.
Со скриптом разобрался. Непонятки вот в чём.
На клиенте делаю подмену следующими правилами:
iptables -t nat -A PREROUTING -p tcp -d 172.16.0.1 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A PREROUTING -p udp -d 172.16.0.1 -j DNAT --to-destination 10.0.0.1
Далее командой:
watch iptables -t nat -vnL
Смотрю сколько пакетов попали в эти правила. И оказывается что пакеты не попадают в эти правила. Я не пойму почему?
Просьба не предлагать следующий вариант - на дублирующем сервере пинговать основной и при его отсутствии на дублирующем перепрописывать сетевые данные основного. Если первый вариант не получится то сделаю этот.
Хотелось разобраться почему пакеты не попадают в правила для nat!
За помощь заранее благодарен!