Сервер 18.04: netplan и локальная адресация

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

Я начал экспериментировать с Ubuntu Server 18.04 и столкнулся с проблемой настройки сети. У меня есть ПК с двумя сетевыми портами, и один из этих портов должен получить IPv4 адрес ссылки локальной сети. В настольной версии я могу достичь этого, зайдя в NetworkManager и выбрав опцию ссылки локальной сети. Но с сервером мне нужно использовать новую программу netplan. Тем не менее, руководство и другие онлайн-ресурсы совсем неясны в том, как это сделать. Есть материалы о настройке DHCP и статических адресов, но ничего о использовании Avahi (который использует настольная версия) или других способах получения адреса 169.254.x.y.

Итак: как я могу написать конфигурационный файл yaml, который указывает netplan настроить ссылки локальной сети на интерфейсе?

Вы бы использовали общее свойство netplan для интерфейса:

link-local: [ ipv4 ]

Однако, это свойство не существует в вашей версии netplan.io (0.36), оно было добавлено в netplan.io 0.39. В данный момент я получаю эту ошибку на ubuntu 18.04:

unknown key link-local

Документация здесь:
https://git.launchpad.net/netplan/tree/doc/netplan.md

Вам нужно будет получить более свежую сборку netplan.io, чтобы использовать это.

Настройка адреса ссылки локальной сети на последнем Ubuntu Server, начиная с 18.04, с использованием Netplan.

  1. Создайте файл Netplan: Он расположен в /etc/netplan/. Хорошо создать файл с расширением .yaml, например 01-netcfg.yaml.

  2. Добавьте новую конфигурацию: Теперь давайте настроим ваш сетевой интерфейс. Вот дружелюбный пример, чтобы начать:

    network:
      renderer: networkd
      version: 2
      ethernets:
        enp0s3:
          dhcp4: true
          dhcp6: false
          link-local: [ ipv4, ipv6 ]
    
    • version: 2 просто указывает Netplan, какую версию вы используете.
    • ethernets — это то место, где вы определяете свои Ethernet интерфейсы.
    • Убедитесь, что вы заменили enp0s3 на фактическое имя вашего сетевого интерфейса.
      • Вы можете узнать имя сетевой карты, используя ip -br a s
    • Настройка dhcp4: true означает, что вы хотите использовать DHCP для этого интерфейса, а установка dhcp6: false отключает DHCP для IPv6.
    • Наконец, строка link-local: [ ipv4, ipv6 ] включает адресацию IPv4 по ссылке локальной сети, а удаление одного из них отключает адресацию локальной сети для него.
  3. Применение наших изменений: После того как мы сохранили нашу конфигурацию, просто выполните эту команду, чтобы все вступило в силу:

    sudo netplan apply
    

Вот и все! Ваш сетевой интерфейс теперь должен использовать адрес ссылки локальной сети IPv4 (обычно начинающийся с 169.254.x.y). Наслаждайтесь вашей сетью!

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

Если вы начали экспериментировать с Ubuntu Server 18.04 и столкнулись с проблемой настройки сети, в частности с получением IPv4 link-local адреса на одном из сетевых интерфейсов, то вы не одиноки. В отличие от графической среды рабочего стола, где использование NetworkManager позволяет легко настроить link-local адреса, в серверной версии вам необходимо использовать инструмент netplan, который был введён в последующих версиях Ubuntu.

Проблема с версиями netplan

На данный момент в Ubuntu 18.04 используется версия netplan.io 0.36, которая не поддерживает настройку link-local адресов через YAML конфигурацию, так как свойство link-local было добавлено только в версии 0.39. Поэтому, если вы попытаетесь использовать эту конфигурацию в вашей версии, система выдаст ошибку:

unknown key link-local

Это означает, что вам нужно либо обновить вашу версию netplan (что может потребовать обновления всей операционной системы на более свежую версию Ubuntu), либо использовать альтернативные подходы.

Для достижения цели настройки link-local адреса в Ubuntu Server 18.04 вы можете воспользоваться следующими шагами:

  1. Создание файла конфигурации netplan
    Конфигурационные файлы netplan находятся в каталоге /etc/netplan/. Рекомендуется создать файл с расширением .yaml, например 01-netcfg.yaml.

  2. Добавление новой конфигурации
    Ниже приведён пример конфигурации, который создаёт сетевой интерфейс и позволяет получить link-local адрес:

    network:
     version: 2
     renderer: networkd
     ethernets:
       enp0s3:
         dhcp4: false
         dhcp6: false
         addresses: [169.254.1.1/16]

    В данном примере:

    • version: 2 указывает версию netplan.
    • renderer: networkd настраивает использование systemd-networkd для управления сетью.
    • ethernets — это секция, где вы определяете интерфейсы Ethernet. Не забудьте заменить enp0s3 на название вашего сетевого интерфейса, которое можно узнать с помощью команды ip -br a s.
    • Установка dhcp4: false и dhcp6: false отключает DHCP для IPv4 и IPv6.
    • Под addresses можно указать статический link-local адрес, например, 169.254.1.1/16, чтобы явно назначить его.
  3. Применение изменений
    После сохранения файла конфигурации выполните команду для применения всех изменений:

    sudo netplan apply

И это всё! Теперь ваш сетевой интерфейс должен использовать link-local IPv4 адрес (обычно начинающийся с 169.254.x.y). Примечание: указание статического адреса в диапазоне link-local не является обязательным, так как устройства обычно назначают эти адреса автоматически.

Заключение

Управление сетевыми интерфейсами в Ubuntu Server 18.04 через netplan может потребовать некоторого привыкания, особенно если вы привыкли к более графическим инструментам. Однако, изучив основную концепцию и структуру YAML конфигурации, вы сможете настроить сеть так, как вам необходимо. Если у вас возникли дополнительные вопросы по настройке сетевой конфигурации или использованию других возможностей netplan, не стесняйтесь обращаться за дополнительной информацией.

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

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