У меня есть ситуация, когда у меня есть двухуровневый VOIP-сервер, который использует два интернет-соединения. Решение работает нормально, за исключением одной проблемы, когда основное интернет-соединение отключается, как и разрешение DNS. Это не позволяет моему VOIP-серверу подключаться к моему VOIP-провайдеру через резервное интернет-соединение, поскольку он не может разрешать DNS-имена серверов. Я не могу использовать IP, потому что провайдер любит перемещать свои серверы.
Так что мой «обходной» план состоит в том, чтобы обновлять записи HOSTS каждые x минут в задании cron, таким образом, если основной интернет не отключен в течение длительного периода времени и IP-адреса серверов не меняются, все должно быть в порядке.
Однако я не могу придумать хороший способ сделать это, имея в виду, что если записи DNS не могут быть разрешены, я не хочу перезаписывать их пробелами или информацией об ошибках.
Какие-либо предложения?
РЕДАКТИРОВАТЬ:
Возможно, я не совсем понял. Причина, по которой мне нужно это сделать, заключается в том, что мой провайдер VOIP любит перемещать свои серверы. Если я использую кеширующий сервер имен, и они перемещают серверы, то я получу устаревшие данные DNS, и если я установлю время кеширования DNS достаточно низко, то это нарушит цель, потому что, когда основной интернет выходит из строя, срок действия кеша истечет до того, как он вернется, и я в той же лодке.
Что мне нужно, так это способ получить лучшее из обоих миров, а именно способность быстро реагировать на изменения DNS, но не терять способность решать, если соединение обрывается, поэтому единственное решение, о котором я могу думать, - это обновленные хосты. файл.
Кроме того, использование OpenDNS ничего не решает, потому что поиск DNS не происходит во вторичном сетевом соединении, он всегда выполняется в первичном. Это проблема. Несмотря на то, что я привязал приложение к двум интерфейсам, которые используют разные сетевые подключения, оно выполняет поиск DNS только для основного подключения.
Почему бы вам не установить локальный кеширующий DNS-сервер (например, привязку) - настроить его очень просто.
Таким образом, вы запрашиваете только локальный DNS-сервер, а он запрашивает (и кеширует) сервер имен вашего интернет-провайдера. Вам просто нужно добавить директиву пересылки в named.conf
...
forwarders {
xxx.xxx.xxx.xxx; //. 1st DNS Server
xxx.xxx.xxx.xxx; //. 2nd DNS Server
};
(Вы можете добавить сколько угодно).
Почему бы вам просто не использовать сторонний DNS-сервер? opendns - это быстро, надежно и бесплатно.
Они будут полностью независимы от того, через какое интернет-соединение вы используете, вам действительно не нужно возиться с файлами хоста и заданиями cron.
РЕДАКТИРОВАТЬ: на основе вашего редактирования ...
Значит, вы не определили второе соединение как альтернативный шлюз?
Вы можете присвоить второму соединению более высокое «метрическое» значение, что фактически означает, что оно станет шлюзом по умолчанию, если основное соединение выйдет из строя.
Вот маршрут страница руководства и хороший как
Как только вы это сделаете, вы сможете использовать хорошего DNS-провайдера, отличного от интернет-провайдера (например, OpenDNS), и иметь два полностью избыточных интернет-соединения.
/ Ричи
У меня нет опыта использования двух интернет-соединений одновременно, но может ли это сработать, если вы поместите DNS-серверы двух провайдеров в свой файл resolv.conf (это можно сделать с помощью команды «заменить доменное имя» в вашем dhclient .conf)?
Сам DNS - это распределенная база данных, которая пытается обновлять файл hosts. Он делает это посредством рекурсивного поиска и кеширует результаты локально с истечением срока действия. BIND делает это за вас.
Вы также можете использовать серверы имен OpenDNS, которые должны работать для обоих провайдеров.
208.67.222.222 208.67.220.220