Как сохранить resolv.conf опции те, которые вращаются, тайм-аут в CentOS?

CentOS вытрет любые ручные изменения, внесенные в /etc/resolv.conf периодически. Значения по умолчанию в Linux плохи с точки зрения обработки отказа в разумный срок (серверы имени запроса в том же порядке каждый раз, 5 вторых тайм-аутов, 2 повторения).

Следовательно, первый DNS в Вашем resolv.conf чрезвычайно критический путь. Если это перестало работать, можно смотреть за 10 секунд перед обработкой отказа.

Эти значения по умолчанию tweakable (см. resolv.conf страницу справочника), но как какие-либо изменения могут делаться постоянными в CentOS и сохраниться через перезагрузки и т.д.?

8
задан 28 October 2015 в 21:02
7 ответов

Ответ можно найти в / sbin / dhclient-script :

if [ -n "${RES_OPTIONS}" ]; then
    echo "options ${RES_OPTIONS}" >> ${rscf}
fi

Но не так уж очевидно, где можно установить RES_OPTIONS чтобы сценарий подхватил его - некоторые вещи, например, домен поиска, можно установить в файле ifcfg-ethX , но параметры преобразователя задаются где-то еще. На самом деле вам нужен файл / etc / sysconfig / network . Чтобы установить соответствующие параметры, добавьте в этот файл что-то вроде этой строки:

RES_OPTIONS="rotate timeout:1 retries:1"

Это установит тайм-аут в 1 секунду, используйте одну повторную попытку и скажите клиенту, что нужно чередовать свои преобразователи для каждого запроса вместо последовательного просмотра списка каждый раз .

Если вы хотите, чтобы изменения вступили в силу немедленно, введите команду service network restart и проверьте свой новый /etc/resolv.conf во всей красе. Вот как мой выглядел во время тестирования:

# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
search example.com
options rotate timeout:1 retries:1
nameserver 10.1.1.2
nameserver 10.1.1.1
12
ответ дан 2 December 2019 в 23:01

В прошлый раз я столкнулся с той же проблемой с моим новым подписанным Linux VPS. Как я решил, это было использовать команду chattr + i, чтобы сделать файл неизменяемым. Просто перейдите в папку / etc и запустите это после того, как вы внесли необходимые изменения в файл resolv.conf:

chattr + i resolv.conf

Если вы хотите отменить настройку, просто сделайте следующее:

chattr -i resolv.conf

Полное руководство для справки: http://boxtutor.com/fix-etcresolv-conf-is-not-saving-after-server-reboot/

-3
ответ дан 2 December 2019 в 23:01

просто добавьте

resolv_conf_options=rotate\ timeout:1\ retries:1

в свой resolvconf.conf

-1
ответ дан 2 December 2019 в 23:01

Принятый ответ - при использовании устаревших сетевых сценариев. Если вы используете NetworkManager , у вас может даже не быть / etc / sysconfig / network , и если вы это сделаете, он все равно не будет использоваться для подключений, управляемых NetworkManager .

Если вы используете NetworkManager :

Чтобы добавить параметры, например, добавление , поверните в bond0 :

nmcli con mod bond0 +ipv4.dns-options rotate

Чтобы удалить этот параметр:

nmcli con mod bond0 -ipv4.dns-options rotate

+ также хороши для изменения параметров; NetworkManager достаточно умен, чтобы обнаруживать существующие параметры и обновлять их. Например, изменение значения тайм-аута:

root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options:                       "rotate,timeout:5"
root@debian:~# nmcli con mod bond0 +ipv4.dns-options timeout:3
root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options:                       "rotate,timeout:3"

Это означает, что значение игнорируется для удаления и даже не требуется. Чтобы удалить тайм-аут:

nmcli con mod bond0 -ipv4.dns-options timeout

Он также будет работать со значением тайм-аута, но это значение будет проигнорировано , поэтому удаление тайм-аута: 5 также удалит любое другое значение тайм-аута.

NB: Изучая это, я обнаружил ошибку, связанную с , которая была исправлена ​​в network-manager v1.14.6 , v1.15.2-dev и v1.16 . Если вы столкнулись с какой-либо проблемой, сначала проверьте свою версию network-manager .

3
ответ дан 16 April 2020 в 04:18

Если вам нужно сделать это с плоскими файлами, а не с командами nmcli (например, с помощью инструмента управления конфигурацией), Red Hat предлагает другое решение.

Создайте сценарий /etc/NetworkManager/dispatcher.d/15-resolv , который копирует пользовательский /etc/resolv.conf на место.

#!/bin/bash
#
# Description : script to override default resolv.conf file
# with customized file.
cp -f /etc/resolv.conf.custom /etc/resolv.conf

После перезапуска NetworkManager этот сценарий будет выполнен, заменив файл вашим собственным.

https: //access.redhat.com / solutions / 61921

0
ответ дан 17 April 2020 в 16:22

Вы можете указать NetworkManager не управлять файлом /etc/resolv.conf вместе.

  1. Создайте файл /etc/NetworkManager/conf.d/90-dns-none.conf со следующим содержанием:

      [основной]
    dns = none
    
  2. Перезагрузить службу NetworkManager:

     systemctl перезагрузить NetworkManager
    

В документации есть второе решение, которое включает замену /etc/resolv.conf символической ссылкой на ваш файл.

Прочтите это: 22. Настройка файла /etc/resolv.conf вручную

0
ответ дан 17 April 2020 в 16:32

Поскольку этот ответ появился в моих поисках того, как это сделать на моей машине (MX Linux, производная от Debian), и он не был ответ для этого дистрибутива, я хочу добавить, как это сделать для этого дистрибутива:

Редактировать этот файл:

 /etc/resolvconf/resolv.conf.d/head
1
ответ дан 29 June 2020 в 17:56

Теги

Похожие вопросы