Бесшовный переход на другой DNS сервер в resolv.conf?
Суть вопроса в следующем, в resolv.conf указано два сервера DNS и если первый сервер перестаёт отвечать то по сценарию запросы идут на второй. Но проблема в том что эти запросы начинают идти с затупами и с задержками, так как каждый раз и каждый запрос система спотыкается об этот мервый первый сервер и по истечению какого-то таймаута обращается ко второму и так по кругу. Различные опции в resolv.conf не помогают решить эту проблему
Вопрос, есть ли возможность сделать в resolv.conf или при помощи других инструментов бесшовный переход от мертвого DNS к живому без постоянной долбёжки в тот самый мертвый DNS адрес
Дополнительно:
может проще нормальный dns сервер прописать?
В моём случае за стабильность DNS отвечаю только я, и я не могу гарантировать что в датацентре где хостится сервак не упадёт что либо. Поэтому есть зеркало в другом датацентре, отсюда задача.
Настрой кеширующий DNS сервер на этой машине и укажи в resolv.conf nameserver 127.0.0.1 помимо того, что запрос будет отправлен сразу на несколько серверов, что исправит указанную в вопросе проблему побочным эффектом будет некоторое ускорение резолвинга за счёт кеширования (главное не переборщить с TTL).
- У меня уже есть DNS сервер, основой и зеркало. Задача как раз остальные 9 серверов направить на эти два адреса. Предложенный вами вариант очень хорошь, но у меня на центральном DNS сервере постоянно добавляются или правятся списки блокировок (трекеры и реклама). Хотелось бы как то научить реагировать систему более логично реагировать на падение одного из серверов. По сути прописывать второй DNS сервер в resolv.conf полный бред так как при падении первого система всё равно превращается в тыкву, это очень очень странно. Как ни странно, но Windows в этом плане риагирует на падение одного из серверов вообще незаметно для пользователя.
- Всё таки воспользовался вашим решением, скорость резолвинга просто сумасшедшая, мне нравится :)
Ответы:
Может тупо скрипт написать, который будет пинги слать каждые несколько секунд на основной DNS сервер, и если он становится недоступным вносить изменения в resolv.conf? Да, костыль, но тем не менее.
- Кстати да, хорошая идея! Я серьёзно подумаю над этим :)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для осуществления бесшовного перехода на другой DNS сервер в файле resolv.conf можно использовать инструмент resolvconf. Resolvconf — это пакет, предназначенный для управления файлом resolv.conf, который содержит информацию о DNS серверах.
Для начала установим пакет resolvconf, если его еще нет на системе:
sudo apt-get update sudo apt-get install resolvconf
После установки пакета resolvconf, мы можем добавить DNS сервера, которые будут использоваться в файле resolvconf:
sudo nano /etc/resolvconf/resolv.conf.d/base
В открывшемся файле добавляем IP-адреса DNS серверов, которые вы хотите использовать, например:
nameserver 8.8.8.8 nameserver 8.8.4.4
Сохраните изменения и закройте файл. Затем обновите конфигурацию resolvconf:
sudo resolvconf -u
Теперь ваша система будет использовать новые DNS сервера, указанные в файле resolvconf, для разрешения DNS запросов. Если вам нужно вернуться к предыдущим настройкам, просто удалите или закомментируйте добавленные строки с DNS серверами из файла /etc/resolvconf/resolv.conf.d/base и повторите команду обновления конфигурации resolvconf.
Таким образом, вы можете легко осуществить бесшовный переход на другой DNS сервер в файле resolv.conf с помощью инструмента resolvconf.