Вопрос или проблема
При использовании 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]
Объяснение конфигурации
- Указание маршрутов: Вместо
gateway4
мы используемroutes
, что позволяет более гибко управлять маршрутизацией. В частности, ключиto
иvia
указаны для задания маршрута по умолчанию. - Секция
addresses
: Параметры IP-адреса и маски сети остаются без изменений. - Работа с 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
в вашей работе.