Поиск по сайту:

Как установить порядок поиска DNS в Ubuntu 18.04 с помощью NetPlan


До Ubuntu 18.04 DNS-серверы имен традиционно настраивались с помощью файла конфигурации /etc/resolv.conf. Долгое время этот файл позволял быстро и легко настраивать DNS-серверы имен, как показано в примере файла resolv.conf ниже.

nameserver 1.1.1.1
nameserver 1.0.0.1

Начиная с Ubuntu 18.04, сетевые настройки, включая серверы имен, теперь контролируются через интерфейс NetPlan. Даже до 18.04 вам по-прежнему разрешалось вносить изменения в исходный resolv.conf, но на самом деле этот файл контролировался NetworkManager и его файлами конфигурации, обычно расположенными в /etc/ каталог network/interfaces.

Итак, что побудило это изменение использовать новый интерфейс NetPlan? Простота и гибкость. Использование удобочитаемого файла YAML значительно упрощает настройку сложных сетевых конфигураций. Кроме того, отладка выполняется быстрее, а ошибки легче отслеживать.

Изменение серверов имен в NetPlan

С этим изменением интерфейсов, как мы на самом деле можем обновить серверы имен для системы Ubuntu 18.04? Вместо использования /etc/resolv.conf перейдите в /etc/netplan, и вы можете найти там серию файлов *.yaml. Если ни один из них еще не определен, вы должны создать его в рекомендуемом формате именования ##-name.yaml, например 01-netconfig.yaml. NetPlan загрузит эти файлы в следующем каталоге в порядке приоритета, а затем в предыдущем порядке номеров.

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

Найдите существующую IP-конфигурацию

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

user> ip a

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

В этой конфигурации вы найдете свои активные интерфейсы. В этом случае мы ищем конфигурацию eth0 для целей этого руководства.

Обновление конфигурации

Либо выберите существующий файл YAML для редактирования, либо создайте новый и добавьте следующую конфигурацию, измененную по мере необходимости для вашей конфигурации.

В этой конфигурации предполагается, что вы используете статический IP-адрес, а eth0 является вашим основным интерфейсом, как следует из приведенной выше команды ip a.

network:
  version: 2
  ethernets:
    eth0:
			addresses:
        - 10.10.10.2/24
        gateway4: 10.10.10.1
      nameservers:
        addresses:
        - 1.1.1.1
        - 1.0.0.1
        - 2606:4700:4700::1111
        - 2606:4700:4700::1001
        search: []

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

Если вы хотите использовать DHCP, вы можете заменить статическую IP-конфигурацию на dhcp4: yes в разделе eth0.

Кроме того, если вы используете DHCP, вам нужно будет установить переопределение для серверов имен.

dhcp4-overrides:
	use-dns: false

Вы могли заметить, что адреса перечислены в списке под addresses, но также возможно определить эти адреса в конфигурации массива.

addresses: [1.1.1.1, 1.0.0.1, "2606:4700:4700::1111", "2606:4700:4700::1001"]

Рендереры

В некоторых конфигурациях вы можете увидеть в списке конфигурацию renderer. Доступны два типа: NetworkManager и networkd. По умолчанию используется networkd. Разница в том, что NetworkManager — это диспетчер графического интерфейса, используемый Ubuntu, тогда как networkd используется Systemd. Нет необходимости определять это, так как конфигурация по умолчанию должна работать в большинстве случаев.

Тестирование смены сервера имен

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

В случае сбоя конфигурация автоматически восстановится через 120 секунд. Вы можете открыть вторую оболочку, чтобы проверить любые конфигурации, пока это применяется. Если настройки работают должным образом, вы можете нажать Enter, чтобы сохранить эти настройки или вернуться, если они не работают. Это позволяет изменять конфигурации до тех пор, пока они не заработают.

Применение изменения

Наконец, убедившись, что изменения точны, их необходимо применить. Для этого запустите команду netplan apply следующим образом.

sudo netplan apply

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

Включение и выключение интерфейсов

Ранее ifconfig использовался для включения и выключения интерфейса. Однако, как отмечалось ранее, команда ip заменяет ifconfig. В приведенном ниже примере eth0 отключается, а затем снова включается.

ip link set eth0 down
ip link set eth0 up

Если eth0 — ваш единственный интерфейс, будьте осторожны, чтобы не отключить интерфейс, не имея возможности удаленно подключиться к системе.

Отладка NetPlan

Что произойдет, если конфигурация пойдет не так? Есть несколько способов изучить конфигурацию NetPlan и выяснить, где мог произойти сбой. Один из способов определить, была ли активно применена правильная конфигурация, — проверить файлы конфигурации, сгенерированные в /run/systemd/network. Например, вы можете перейти в этот каталог и найти соответствующий файл конфигурации *.network, а затем убедиться, что конфигурация соответствует вашим ожиданиям.

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

sudo netplan --debug generate

Имейте в виду, что следующий снимок экрана может отличаться в зависимости от вашей конфигурации.

Заключение

NetPlan — это большое изменение в существующей сети Ubuntu, но оно предназначено для упрощения и создания более гибких конфигураций. Используя комбинацию существующих и новых команд NetPlan, мы можем быстро создавать и применять сложные сетевые конфигурации.

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