Netplan apply предупреждает, что “gateway4 устарел, но .yaml не содержит строки gateway4”.

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

Я видел несколько других постов о предупреждении «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, предупреждение может возникать по ряду причин:

  1. Кэшированное значение: При выполнении netplan apply, возможно, что система загружает информацию из ранее сгенерированных файлов или временных файлов конфигурации, где могло быть установлено значение gateway4.

  2. Несоответствие формата: В вашем файле могут быть не единообразные записи. Например, использование двухстрочного формата для адресов может вызвать проблемы с интерпретацией.

  3. Ошибка в других конфигурационных файлах: Иногда конфликтующие или неверные настройки в других конфигурационных файлах могут привести к подобным предупреждениям.

Шаги для устранения проблемы

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.

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

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