netplan generate: gateway4 устарел, используйте маршруты по умолчанию вместо этого.

Вопрос или проблема

При использовании netplan generate я постоянно получал сообщение об ошибке:

gateway4 устарел, используйте вместо этого маршруты по умолчанию.

Для статической настройки IP-адресов в netplan я всегда использовал следующую структуру:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
      addresses:
      - 192.168.10.10/24
      gateway4: 192.168.10.1
      nameservers:
      addresses: [192.168.10.1]

Явно, gateway4 ссылается на gateway4: 192.168.10.1, но как это исправить?

Текущий синтаксис для замены gateway4 это routes с to и via.

Для вышеуказанного netplan на основе сети 192.168.10.0/24, это будет:

            routes:
                - to: default
                  via: 192.168.10.1

Таким образом, вся конфигурация будет следующей:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
     dhcp4: false
     dhcp6: false
     addresses:
      - 192.168.10.10/24
     routes:
      - to: default
        via: 192.168.10.1
     nameservers:
       addresses: [192.168.10.1]

В настоящее время существует очень хорошая ссылка с практическими примерами по адресу:
https://netplan.io/examples/

Еще один совет при работе с файлами netplan, yamllint может сэкономить вам много времени и проблем.

sudo apt install yamllint
sudo dnf install yamllint
sudo pacman -S yamllint

Например, я допустил небольшую ошибку в форматировании:

      - to: default
      via: 192.168.10.1

Затем, когда я запущу yamllint, я получу номер строки, который должен помочь отследить, где находятся ошибки.

yamllint /etc/netplan/01-netplan.yaml
28:9      ошибка    ошибка синтаксиса: ожидался <конец блока>, но найден '?' (синтаксис)

Если у вас есть ошибки синтаксиса (например, проблемы с пробелами), yamllint даст вам номера строк с вашими проблемами.

Надеюсь, это сделает вашу работу с netplan generate и netplan apply более гладкой!

sudo netplan generate
sudo netplan --debug apply

.

Ответ или решение

Когда вы используете команду netplan generate и сталкиваетесь с ошибкой, указывающей, что gateway4 был устаревшим и что вместо него следует использовать маршруты по умолчанию, это связано с изменениями в конфигурации сетевого интерфейса через Netplan. В данном ответе мы рассмотрим, как правильно настроить конфигурационный файл Netplan, чтобы избежать данной ошибки, а также предоставим дополнительные советы по улучшению процесса работы с Netplan.

Понимание проблемы

Ваша текущая конфигурация, содержащая строку gateway4: 192.168.10.1, больше не поддерживается. Это связано с тем, что в более новых версиях Netplan была изменена структура, и для указания маршрутов теперь используется другой синтаксис.

Правильная конфигурация

Для исправления проблемы вам нужно изменить конфигурацию таким образом, чтобы вместо использования параметра gateway4 использовался секция routes. Вот пример, как это сделать:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
      addresses:
      - 192.168.10.10/24
      routes:
        - to: default
          via: 192.168.10.1
      nameservers:
        addresses: [192.168.10.1]

Объяснение конфигурации

  1. Указание маршрутов: Вместо gateway4 мы используем routes, что позволяет более гибко управлять маршрутизацией. В частности, ключи to и via указаны для задания маршрута по умолчанию.
  2. Секция addresses: Параметры IP-адреса и маски сети остаются без изменений.
  3. Работа с DNS: Секция nameservers также остается на месте для указания DNS-серверов.

Полезные инструменты

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

# Для Debian/Ubuntu
sudo apt install yamllint

# Для Fedora
sudo dnf install yamllint

# Для Arch Linux
sudo pacman -S yamllint

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

yamllint /etc/netplan/01-netplan.yaml

Применение конфигурации

Чтобы изменения вступили в силу, выполните следующие команды:

sudo netplan generate
sudo netplan --debug apply

Заключение

Следуя приведенным выше рекомендациям, вы сможете избежать ошибок, связанных с устаревшими ключами в конфигурациях Netplan и обеспечивать корректную настройку сетевых интерфейсов. Регулярная проверка конфигурационных файлов с помощью yamllint дополнительно поможет сохранить высокое качество ваших настроек. Надеюсь, этот материал будет полезен для успешного применения netplan generate и netplan apply в вашей работе.

Оцените материал
Добавить комментарий

Капча загружается...