Как я могу переопределить серверы имен netplan на интерфейс, вместо того, чтобы добавить им?

У меня есть сервер DigitalOcean, это настраивается через облако-init. С Ubuntu Бионический Бобр это создает netplan файл в /etc/netplan/50-cloud-init.yaml это содержит адреса сервера имен. Однако переопределение этих адресов не просто.

На бионическом бобре, /etc/resolv.conf управляется systemd-разрешенным сервисом. Я могу отредактировать глобальные серверы имен как так:

echo 'DNS=1.1.1.1 1.0.0.1' >> /etc/systemd/resolved.conf
service systemd-resolved restart

Однако это не влияет на определенные для интерфейса серверы имен, настроенные облаком-init. Для этого я должен отредактировать netplan файл непосредственно или переопределить его так или иначе. Я могу отредактировать файл непосредственно, но это не очень благоприятно для автоматизации. В netplan документации говорится, что существует иерархия для netplan YAML файлы:

Конфигурационные файлы могут существовать в трех различных местах с приоритетом от самого важного до наименьшее количество следующим образом:

  • /run/netplan / *.yaml
  • /etc/netplan / *.yaml
  • /lib/netplan / *.yaml

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

Учитывая это, я записал "в алфавитном порядке более поздний файл" следующим образом:

# /etc/netplan/51-cloudflare-dns.yaml
network:
    ethernets:
        eth0:
            nameservers:
                addresses:
                    - 1.1.1.1
                    - 1.0.0.1

Давший указания выше, я ожидал, что это заменит серверы имен для eth0 с новыми примененными. Однако выполнение netplan apply добавленный к списку серверов имен для интерфейса вместо того, чтобы заменить их, как замечено с systemd-resolve --status:

Link 2 (eth0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 8.8.8.8
                      8.8.4.4
                      1.1.1.1
                      1.0.0.1

Как я могу переопределить серверы имен netplan на интерфейс, вместо того, чтобы добавить им? И решения основанной на файле и командной строки, которые сохраняются через перезагрузки, приветствуются.

2
задан 30 August 2018 в 00:16

1 ответ

Это - единственный способ, которым я нашел:

Переименовать /etc/netplan/50-cloud-init.yaml кому: /etc/netplan/51-network-settings.yaml и отредактируйте его с изменениями, которые Вы хотите. Удостоверьтесь, что удалили старую версию файла для препятствования серверам имен то, чтобы быть добавленным к старым. Затем создайте файл, названный чем-то как /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg с содержанием network: {config: disabled}, который будет препятствовать тому, чтобы облако-init воссоздало свой выходной файл.

Оборотная сторона этого - то, если изменения конфигурации сети иначе, поскольку облако-init не будет справляться с настройками больше. Я предполагаю, что было бы лучше настроить облако-init для изменения просто серверов имен, но я не нашел способ сделать это.

0
ответ дан 2 December 2019 в 07:08

Другие вопросы по тегам:

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