Вопрос или проблема
Я начал экспериментировать с 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.
-
Создайте файл Netplan: Он расположен в
/etc/netplan/
. Хорошо создать файл с расширением.yaml
, например01-netcfg.yaml
. -
Добавьте новую конфигурацию: Теперь давайте настроим ваш сетевой интерфейс. Вот дружелюбный пример, чтобы начать:
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 по ссылке локальной сети, а удаление одного из них отключает адресацию локальной сети для него.
-
Применение наших изменений: После того как мы сохранили нашу конфигурацию, просто выполните эту команду, чтобы все вступило в силу:
sudo netplan apply
Вот и все! Ваш сетевой интерфейс теперь должен использовать адрес ссылки локальной сети IPv4 (обычно начинающийся с 169.254.x.y). Наслаждайтесь вашей сетью!
Ответ или решение
Настройка Link-local адресации в Ubuntu Server 18.04 с использованием netplan
Если вы начали экспериментировать с 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 18.04
Для достижения цели настройки link-local адреса в Ubuntu Server 18.04 вы можете воспользоваться следующими шагами:
-
Создание файла конфигурации netplan
Конфигурационные файлы netplan находятся в каталоге/etc/netplan/
. Рекомендуется создать файл с расширением.yaml
, например01-netcfg.yaml
. -
Добавление новой конфигурации
Ниже приведён пример конфигурации, который создаёт сетевой интерфейс и позволяет получить 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
, чтобы явно назначить его.
-
Применение изменений
После сохранения файла конфигурации выполните команду для применения всех изменений:sudo netplan apply
И это всё! Теперь ваш сетевой интерфейс должен использовать link-local IPv4 адрес (обычно начинающийся с 169.254.x.y). Примечание: указание статического адреса в диапазоне link-local не является обязательным, так как устройства обычно назначают эти адреса автоматически.
Заключение
Управление сетевыми интерфейсами в Ubuntu Server 18.04 через netplan может потребовать некоторого привыкания, особенно если вы привыкли к более графическим инструментам. Однако, изучив основную концепцию и структуру YAML конфигурации, вы сможете настроить сеть так, как вам необходимо. Если у вас возникли дополнительные вопросы по настройке сетевой конфигурации или использованию других возможностей netplan, не стесняйтесь обращаться за дополнительной информацией.