Назад | Перейти на главную страницу

Пользовательский сервер имен resolv.conf, использующий dhclient.conf, удаляется из Google Cloud

В соответствии с https://cloud.google.com/compute/docs/internal-dns Я добавил это в конце /etc/dhcp/dhclient.conf чтобы иметь собственный сервер имен на resolv.conf

prepend domain-name-servers x.x.x.x;

После service networking restart Файл resolv.conf заполняется настраиваемым сервером имен.

Проблема в том, что через несколько часов (около 12), иногда и больше (я не могу точно определить время, которое потребуется) аренда dhcp удаляет сервер имен из resolv.conf

Это вывод системного журнала на тот момент, когда это происходит:

normal syslog output
...
dhclient[30756]: DHCPREQUEST of 10.207.0.40 on eth1 to 169.254.169.254 port 67
dhclient[30756]: DHCPACK of 10.207.0.40 from 169.254.169.254
liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="11655" x-info="http://www.rsyslog.com"] exiting on signal 15.
systemd[1]: Stopping System Logging Service...
systemd[1]: Stopped System Logging Service.
systemd[1]: Starting System Logging Service...
dhclient[30756]: bound to 10.207.0.40 -- renewal in 35134 seconds.
liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="26725" x-info="http://www.rsyslog.com"] start
systemd[1]: Started System Logging Service.
...
normal syslog output

Я не знаю, почему системный журнал останавливается и запускается снова ...

Есть идеи о том, что пишет файл resolv.conf?

Причина, по которой файл resolv.conf перезаписывается снова и снова, заключается в том, что срок аренды DHCP на вашем экземпляре истекает. В документации [1] говорится:

Редактирование файла resolv.conf вручную приведет к его возврату к DHCP по умолчанию каждый раз, когда истекает 24-часовая аренда DHCP на вашем экземпляре. В экземплярах, использующих зональный DNS, срок аренды DHCP истекает каждый час. Чтобы внести статические изменения в файл resolv.conf, некоторые дистрибутивы Linux позволяют добавлять элементы к политике DHCP в начале или в конце.

Эта 24-часовая аренда не является SLO, так что это может произойти раньше.

Поскольку вы находитесь в облачной среде, вы можете добиться того же поведения при редактировании resolv.conf выполнив некоторые настройки Cloud DNS:

A) Если вы хотите переопределить DNS для использования ON PREM DNS, вы можете создать «Политику DNS-сервера» [2] [3] [4]

Б) Если вы хотите использовать свою собственную привязку (внутри вашего проекта) для создания внутренних зон, вы можете использовать частные зоны Cloud DNS [5]

В облачных средах никогда не рекомендуется переопределять resolv.conf.

[1] https://cloud.google.com/compute/docs/internal-dns#resolv.conf

[2] https://cloud.google.com/dns/docs/overview#dns-server-policy

[3] https://medium.com/fourcast-premier-google-cloud-partner/google-cloud-platform-dns-forwarding-is-a-big-thing-for-enterprises-305df0c6cf73

[4] https://cloud.google.com/dns/docs/best-practices-dns#best_practices_for_private_zones

[5] https://cloud.google.com/dns/zones/#creating_private_zones