vrrp на базе keepalived linux debian dns

В общем суть такова, что есть у меня 2 DNS-сервера, мастер и слейв.
И беда вся состояла в том, что когда у меня падал сервак с первичным dns-сервером,
клиенты продолжали слать запросы к нему и только когда понимали что он дохлый слали ко второму,
а иногда и вовсе не слали. В общем резолвинг из-за этого очень страдал и был очень медленным.
Решил проблему с помощью VRRP по средством такой утилиты как keepalived.
Идея заключается в том, что с помощью keepalived я вешаю один и тот же ip-адрес(первичного) на оба DNS-сервера. На первичном делаю выше приоритет и поэтому он поднимается на Мастере.
Но как только сервер с первичной DNS-кой дохнет, этот айпишник (первичного DNS) поднимается на вторичном, дергаются настройки вторичного и он начинает слушать оба адреса и работает за двоих )
В итоге никаких проблем с резолвингом не происходит) Теперь к практике.

1.Устанавливаем keepalived на оба сервера

# apt-get install keepalived

2.Так как демоны общаются между собой через multicast-группу 224.0.0.18
Добавляем на оба сервера правило iptables с протоколом 112, интерфейсы укажите свои.

# cat /etc/protocols | grep vrrp
vrrp    112     VRRP            # Virtual Router Redundancy Protocol [RFC5798]
# iptables -A INPUT -p 112 -i eth0 -j ACCEPT

3.Создаем на серверах конфиги /etc/keepalived/keepalived.conf (по умолчанию их нет)
А) Первичный DNS-сервер (MASTER)

# cat /etc/keepalived/keepalived.conf 
global_defs {
  router_id main
}
vrrp_instance dns {
  state MASTER
  interface bond0
  virtual_router_id 1
  priority 200
  advert_int 1
  virtual_ipaddress {
    x.x.x.96
  }
}

Б) Вторичный DNS-сервер (SLAVE)
# cat /etc/keepalived/keepalived.conf 
global_defs {
  router_id lt
}
vrrp_instance dns {
  state BACKUP
  interface eth0
  virtual_router_id 1
  priority 100
  advert_int 1
  virtual_ipaddress {
    x.x.x.96
  }
# Invoked to master transition
notify_master "/usr/sbin/rndc reload"
# Invoked to slave transition
notify_backup "/usr/sbin/rndc reload"
}

Необходимо обратить внимание на приоритет, на мастере он должен быть выше.
А также должно совпадать значение параметра virtual_router_id
virtual_ipaddress - это как раз ip-адрес первичного DNS сервера, который нужно поднять на вторичном в случае отказа первого.
Так же на бекапе, я дергаю DNS-сервер с помощью rndc reload для того чтобы он начал слушать на новом айпишнике, после того как keepalived его навесит на интерфейс.
Также стоит обратить внимание на то, чтобы после перезагрузки сервера с первичной ДНС-кой, BIND стартовал позже, чем keepalived, иначе он не сможет запуститься совсем либо не будет слушать на этом айпишнике.