Вопрос или проблема
Я видел несколько других постов о предупреждении «gateway4 был устаревшим», которое некоторые получают при вводе sudo netplan apply
. Моя проблема немного отличается: я получаю это предупреждение, хотя в моем .yaml конфигурационном файле нет строки ‘gateway4’.
Использую Ubuntu 22.04.1 на сервере без графического интерфейса.
Вот .yaml файл:
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6:
addresses:
- [ipv4 адрес]/32
- [ipv6 адрес]/64
routes:
- to: default
via: [gateway ipv4 адрес здесь]
metric: 100
on-link: true
- to: ::/0
via: fe80::1
nameservers:
addresses:
- 1.1.1.1
- 2606:4700:4700::1111
- 1.0.0.1
- 2606:4700:4700::1001
Почему я получаю предупреждения о том, что gateway4 был устаревшим?
Проблема:
При взаимодействии с netplan вывод командной строки может жаловаться на: устаревшие заявления ‘gateway4’, конфликты маршрутизации или даже сообщения, призывающие настроить ‘routing-policy’. Сообщения такие как:
** (generate:13032): WARNING **: 14:00:00.100: 'gateway4' был устаревшим, используйте маршруты по умолчанию вместо этого. См. раздел 'Маршруты по умолчанию' документации для получения дополнительной информации.
.
** (process:4389): WARNING **: 14:00:00.200: gateway4 был устаревшим, используйте маршруты по умолчанию вместо этого. **
.
** (process:13030): WARNING **: 14:00:00.300: Проблема обнаружена при проверке согласованности маршрута по умолчанию. Пожалуйста, настройте несколько маршрутизирующих таблиц и используйте `routing-policy` вместо этого.
Ошибка: Конфликтующие декларации маршрута по умолчанию для IPv4 (table: main, metric: default), сначала объявленный в eno1, но также и в eno1
Исправление: Настройте netplan так, как ожидалось, в двух шагах.
Во-первых, перейдите в /etc/netplan/00-installer-config.yaml
(или аналогично) и, если это еще не изменено, измените синтаксис для поля ‘addresses’ с двухстрочного формата на однострочный — как показано ниже:
Поле Addresses; двухстрочный формат
[...]
addresses:
- i.p.v.4/24
[...]
Поле Addresses; однострочный формат — измените на это
[...]
addresses: [ "i.p.v.4/24" ]
[...]
Предыдущий /etc/netplan/00-installer-config.yaml
Двухстрочное поле ‘addresses’
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- i.p.v.4/24
nameservers:
search: [sub.domain.tld, domain.tld]
addresses: [d.n.s.a, d.n.s.b, d.n.s.c]
routes:
- to: 0.0.0.0/0
via: i.p.v.4
on-link: true
Обновленный /etc/netplan/00-installer-config.yaml
Однострочное поле ‘addresses’
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses: [ "i.p.v.4/24" ]
nameservers:
search: [sub.domain.tld, domain.tld]
addresses: [d.n.s.a, d.n.s.b, d.n.s.c]
routes:
- to: 0.0.0.0/0
via: i.p.v.4
on-link: true
Далее, перейдите в /run/netplan/eno1.yaml
(или аналогично), где также необходимо изменить формат поля ‘addresses’ с двухстрочного на однострочный, как объяснялось выше. Кроме того, вы можете найти пример ‘gateway4’ в этом местоположении. Убедитесь, что вы удалили или закомментировали это.
Предыдущий /run/netplan/eno1.yaml
Двухстрочное поле ‘addresses’ + gateway4
network:
version: 2
ethernets:
eno1:
addresses:
- i.p.v.4/24
gateway4: "i.p.v.4"
Обновленный /run/netplan/eno1.yaml
Однострочное поле ‘addresses’ + без gateway4
network:
version: 2
ethernets:
eno1:
addresses: [ "i.p.v.4/24" ]
Теперь выполните команду: sudo netplan apply и ошибок не должно быть.
Операцию можно подтвердить, просматривая работающую конфигурацию по адресу: /run/systemd/network/10-netplan-eno1.network
(или аналогично).
[Match]
Name=eno1
[Network]
LinkLocalAddressing=ipv6
Address=i.p.v.4/24
DNS=d.n.s.a
DNS=d.n.s.b
DNS=d.n.s.c
Domains=sub.domain.tld domain.tld
[Route]
Destination=0.0.0.0/0
Gateway=i.p.v.4
GatewayOnLink=true
Ответ или решение
Решение предупреждения "gateway4 has been deprecated" в Netplan на Ubuntu 22.04.1
При использовании команды sudo netplan apply
вы можете столкнуться с предупреждением о том, что "gateway4 has been deprecated" даже в случае отсутствия строки gateway4
в вашем конфигурационном файле YAML. Давайте разберем возможные причины этого предупреждения и шаги по его устранению.
Причина возникновения предупреждения
Хотя в вашем YAML-файле нет строки gateway4
, предупреждение может возникать по ряду причин:
-
Кэшированное значение: При выполнении
netplan apply
, возможно, что система загружает информацию из ранее сгенерированных файлов или временных файлов конфигурации, где могло быть установлено значениеgateway4
. -
Несоответствие формата: В вашем файле могут быть не единообразные записи. Например, использование двухстрочного формата для адресов может вызвать проблемы с интерпретацией.
-
Ошибка в других конфигурационных файлах: Иногда конфликтующие или неверные настройки в других конфигурационных файлах могут привести к подобным предупреждениям.
Шаги для устранения проблемы
1. Проверьте конфигурационный файл
Убедитесь, что ваш основной конфигурационный файл (например, /etc/netplan/00-installer-config.yaml
) корректен и не содержит никаких устаревших или конфликтующих настроек.
Откройте файл и убедитесь, что блок addresses
записан в одной строке:
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6:
addresses: [ "[ipv4 address]/32", "[ipv6 address]/64" ]
routes:
- to: default
via: [gateway ipv4 address here]
metric: 100
on-link: true
- to: ::/0
via: fe80::1
nameservers:
addresses:
- 1.1.1.1
- 2606:4700:4700::1111
- 1.0.0.1
- 2606:4700:4700::1001
Убедитесь, что параметр gateway4
отсутствует, и заметьте использование однострочного формата для адресов.
2. Удалите или прокомментируйте устаревшие записи
Проверьте временные конфигурационные файлы, такие как /run/netplan/*.yaml
, и убедитесь, что там нет устаревших записей gateway4
. Удалите или прокомментируйте их, если они присутствуют:
# gateway4: "[ipv4 address]" # закомментируйте или удалите эту строку
3. Обновите систему и перезагрузите Netplan
После внесения изменений выполните команду:
sudo netplan apply
Это применит новые настройки и, надеюсь, предупреждение исчезнет.
4. Проверьте текущее состояние конфигурации
Вы можете проверить текущие сетевые настройки, используя команду:
cat /run/systemd/network/10-netplan-*.network
Эта команда покажет активные настройки и поможет удостовериться, что ничего не осталось из устаревших записей.
Заключение
Предупреждение о gateway4
может быть вызвано разными факторами, но чаще всего являются результатом конфликта настроек или ошибки в формате. Следуя предложенным шагам, вы сможете разрешить это предупреждение и обеспечить корректную работу сетевой конфигурации вашей системы на Ubuntu 22.04.1.