Ubuntu netplan настройка моста
Я недавно установил свой первый сервер Ubuntu, и я борюсь с Netplan.
Поскольку мне нужна Windows для запуска одного сервиса, который недоступен в Linux, я пытаюсь настроить KVM.
На сервере есть несколько статических ips, используемых для разных сервисов или контейнеров докеров, на которых запущены сервисы, поэтому моя конфигурация netplan выглядит следующим образом:
Теперь мне кажется, что мне нужно создать сетевой мост, чтобы сделать его доступным для гостевой машины, но я не смог найти решение, чтобы сделать это только для 1 адреса.
Есть ли способ достичь этого, или я делаю здесь концептуальную ошибку?
Любая помощь будет высоко оценен! Спасибо.
2 ответа
Настройки Ubuntu 18.04 по-прежнему зависят от Network Manager, а wifi/3G еще не поддерживается сетью. В следующем примере Network Manager используется для всех интерфейсов.
Шаги по добавлению моста в libvirt.
Создайте файл /tmp/br0.xml
Теперь попросите libvirt добавить новую сеть и запустить ее автоматически.
Файл br0.xml будет находиться в /etc/libvirt/qemu/networks. Сетевой файл NAT по умолчанию также будет здесь. Убедитесь, что br0 был успешно добавлен.
Все новые дополнения сетевого интерфейса будут иметь опцию моста br0.
Примеры на netplan.io, такие как Bridging with Libvirt, должны быть подходящим вариантом. Вы бы настроили мост на хосте, связанный с внешним интерфейсом - в вашем случае enp30s0. Затем скажите libvirt использовать этот мост, и ваш гость получит устройства на этом.
Затем вам нужно будет либо настроить libvirt/dnsmasq на хосте для предоставления IP-адресов гостям из диапазона, который вы хотите, либо статически настроить ваших гостей в гостях на адреса, которые вы хотите, чтобы они использовали.
И для сети libvirt использовать мост, предоставленный системой:
Многие детали зависят от ваших потребностей, но это должно наметить путь. Я уверен, что люди оценят, когда вы запустите его, если вы сможете обновить свой пост с помощью окончательного эффективного конфига, который заставил вас работать.
Начиная с релиза Ubuntu 17.10, для управления конфигурацией сети используется утилита Netplan. Раньше для этих целей применялся скрипт ifupdown, конфигурационные файлы которого находились в папке /etc/network/interfaces. Недостатком такого подхода было то, что файлы настройки сети были разбросаны по всей системе, частью настроек мог управлять NetworkManager, частью systemd-networkd, а часть вообще делалась с помощью ifupdown.
Новая система конфигурации позволяет таки сложить все яйца в одну корзину. Вы выполняете настройку в формате YAML, а Netplan автоматически преобразовывает её при запуске в конфигурацию той системы, которую вы выбрали. В этой статье мы рассмотрим, как выполняется настройка сети Netplan в Ubuntu 18.04.
Основы использования Netplan
Все конфигурационные файлы Netplan находятся в папке /etc/netplan/. Во время запуска службы, она преобразовывает свою конфигурацию в конфигурацию той службы, которая будет управлять сетью и помещает её в каталог /run/. По умолчанию в Ubuntu есть только один конфигурационный файл со следующим содержимым:
Это означает, что управление всей сетью передаётся утилите NetworkManager. Чтобы разобраться, что это означает, давайте рассмотрим синтаксис конфигурационного файла.
1. Синтаксис конфигурации Netplan
Новичкам синтаксис конфигурационного файла Netplan может показаться запутанным, но разобраться в нём вполне можно. Он чем-то напоминает JSON, но не имеет таких жёстких ограничений:
поле0 :
поле1 : значение
поле2 :
- элемент1
- элемент2
- элемент3
Имя поля и его значение разделяется двоеточием. В качестве значения поля можно передавать не только текстовое или числовое значение, но и другое поле, несколько полей или список значений. При передаче списка каждый новый элемент списка должен начинаться с дефиса. Табуляции использовать нельзя. Отступы используются для указания структуры. Например, из примера видно, что поле1 и поле2 относятся к полю0. Это всё, что касается общего синтаксиса, теперь про Netplan:
network :
version : 2
renderer : программа_бэкенд
вид_интерфейса :
имя_интерфейса :
параметр : значение
Первые две строчки конфигурации стандартны. Первая указывает, что мы будем иметь дело с сетью, а вторая указывает версию стандарта конфигурации, которая будет использоваться. Их лучше не трогать.
- renderer - указывает программу, для которой будут преобразоваться ваши настройки. На данный момент поддерживаются только network-manager и systemd-networkd;
- вид_интерфейса - вид сетевых интерфейсов, которые вы будете настраивать в этой секции. Они делятся на физические: ethernets (проводные), wifis (беспроводные) и виртуальные: vlans , bonds, bridges.
- имя_интерфейса - имя сетевого интерфейса в системе, например enp3s0 или eth0;
- параметры - настройки, с помощью которых указывается, как нужно подключаться к сети.
2. Параметры Netplan
Мы разобрались с основным синтаксисом, далее разберём команды, с помощью которых мы будем настраивать сеть:
- renderer - программа для обработки конфигурации;
- dhcp4 - получение IPv4 адреса по DHCP;
- dhcp6 - получение IPv6 адреса по DHCP;
- dhcp-identifier - если передать значение "mac", то будет использоваться MAC-адрес в качестве идентификатора DHCP;
- addresses - добавляет статические адреса к интерфейсу, можно несколько;
- gateway4 - указывает шлюз IPv4;
- gateway6 - указывает шлюз IPv6;
- nameservers - указывает DNS-серверы;
- macaddress - устанавливает новый MAC-адрес;
- routes - позволяет настроить маршруты таблицы маршрутизации;
- routing-policy - дополнительная настройка маршрутов, для IP или подсети;
- access-points - список точек доступа для Wi-Fi;
- password - пароль для точки доступа Wi-Fi;
- mode - режим работы сетевой карты Wi-Fi.
3. Команды Netplan
Синтаксис самой команды netplan очень прост:
netplan опции команда
В качестве команды можно передать одну из команд:
- try - попробовать применить конфигурацию с возможностью отмены;
- apply - применить конфигурацию;
- generate - проверка текущей конфигурации и запись на диск;
- config - записать текущую конфигурацию сети в YAML.
Как настроить сеть Netplan в Ubuntu
Сначала необходимо посмотреть, как называются сетевые интерфейсы в вашей системе. Для этого можно просто изучить содержимое папки /sys/class/net:
У меня есть только Wi-Fi-карта - wlp, у вас же может быть ещё и проводной интерфейс enp. Или устройства могут называться по старому - wlan и eth. Всё зависит от системы.
1. Настройка динамического IP в Netplan
Для настройки динамического IP- адреса для интерфейса enp3s0 создадим новый конфигурационный файл 02-networkd.yaml. Самая простая настройка Netplan для получения IP по DHCP будет выглядеть вот так:
sudo vi /etc/netplan/02-networkd.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: yes
В качестве программы для обработки конфигурации мы используем Networkd, далее мы указываем наш сетевой интерфейс и включаем получение IPv4 адреса по DHCP. Все остальные параметры тоже подтянутся по DHCP. Или мы можем вручную настроить DNS для этого интерфейса:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: yes
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Теперь осталось проверить эту конфигурацию. Для этого выполните:
sudo netplan generate
Если ошибок нет, программа ничего не выведет и запишет вашу конфигурацию на диск. Если есть ошибки, утилита о них сообщит.
2. Настройка статического IP в Netplan
Статический IP-адрес в Netplan настроить немного сложнее. Поскольку здесь нам нужно будет задать не только непосредственно сам адрес, но и кучу других параметров, которые система раньше получала по DHCP. Нам надо указать шлюз для доступа в интернет и DNS-серверы. Модифицируем тот же конфигурационный файл:
sudo vi /etc/netplan/02-networkd.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
addresses: [ 192.168.1.10/24 ]
gateway4: 192.168.1.1
nameservers:
addresses: [ 8.8.8.8, 8.8.4.4 ]
Рассмотрим подробнее, что за что отвечает в этом конфигурационном файле.
- dhcp4 - отключаем получение IP адреса по DHCP;
- addresses - параметр ожидает список IP-адресов, которые нужно присвоить нашей сетевой карте, у нас только один адрес, однако, передавать его надо тоже в формате списка, иначе будет ошибка. В конце адреса указывается префикс маски - /24, который отвечает маске сети 255.255.255.0. Вы можете указать и другую маску, но только с помощью префикса, отдельного параметра для этого нет.
- gateway4 - задаёт адрес роутера, через который наш компьютер сможет получить доступ в интернет;
Остальное вы знаете. Списки можно оформлять не только с помощью черточек, для каждого пункта с новой строки, но и с помощью квадратных скобок, тогда элементы записываются в одну строку через запятую.
3. Настройка Wi-Fi через Netplan на Ubuntu
Кроме проводного подключения, система конфигурации Netplan умеет управлять подключением к Wi-Fi. Это отличная новость, учитывая, насколько сложно всё это раньше настраивалось, если не было NetworkManager. Правда, для работы Wi-Fi через Networkd надо, чтобы в системе был установлен пакет wpasupplicant. Например, у нас есть точка доступа AccessPoint с паролем 12345678? и мы хотим к ней подключаться. Тогда настройка Netplan Ubuntu будет выглядеть так:
network:
version: 2
renderer: networkd
wifis:
wlp3s0b1:
dhcp4: yes
dhcp6: no
nameservers:
addresses: [ 8.8.8.8, 8.8.4.4 ]
access-points:
"AccessPoint":
password: "12345678"
Здесь мы указываем, что надо получить IP и другие параметры по DHCP, устанавливаем DNS-сервер вручную, хотя это не обязательно, а затем добавляем точку доступа и пароль к ней.
4. Применение конфигурации netplan
Естественно, что после смены настроек в конфигурационном файле ничего не меняется. Сначала нужно проверить конфигурационный файл на ошибки и создать файлы конфигурации программы-обработчика. Для этого выполните:
sudo netplan generate
Если вы хотите видеть более подробную информацию, используйте опцию --debug:
sudo netplan --debug generate
sudo netplan --debug apply
Если вы меняли программу-обработчик, например с NetworkManager на networkd, то надо ещё перезапустить компьютер. После этого сеть будет работать на новой конфигурации.
Выводы
В этой статье мы рассмотрели, как выполняется настройка сети Netplan в Ubuntu 18.04. Как видите, это не очень сложно, и даже удобно, по сравнению со старой конфигурацией. Конечно, есть некоторые недостатки - та же самая невозможность задать маску без префикса, но программа активно развивается, возможно, в будущем это будет исправлено.
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Сегодня рассмотрим пример по Настройки сетевого моста в Ubuntu Server 18.04/20.04 LTS при помощи утилиты Netplan.
Обновление системы
Для начала давайте обновим систему, для этого в терминале набираем:
После смотрим какие интерфейсы у нас присутствуют в системе:
У меня имеются три сетевых интерфейса: enp0s3, enp0s8 и enp0s9.
enp0s3 − смотрит в интернет;
enp0s8 и enp0s9 − смотрят в локальную сеть 1 и 2 соответственно
Настройка сетевого моста в Ubuntu Server
Открываем на редактирование файл 50-cloud-init.yaml расположенный в /etc/netplan
И вносим в него изменения. Вот пример моего файла.
Не забываем, что файл теперь чувствителен к лишним пробелам и табуляциям
IP адреса меняем на свои, а также названия интерфейсов
Также блок routes можете удалить, я привел его для общего понимания настройки сети в ubuntu server 18.04/20.04.
Он необходим для того, чтобы настроить маршрутизацию. Например: имеется сеть 10.5.7.0 на сервере, к которому подключается мой сервер через интерфейс enp0s3 или же у вас в локальной сети имеется дополнительные сервера, то прописав данную конфигурацию наш сервер будет знать о сети 10.5.7.0 и пакеты из сети 10.10.10.0 смогут попасть в сеть 10.5.7.0 через сервер с IP адресом 10.5.5.1
После внесения изменений ваш конфигурационные файл можно протестировать следующей командой:
Если все отлично, то через 120 секунд конфигурация применится автоматом. Убедимся, что все в порядке.
У меня вывод вот такой:
Как видим все не так уж и трудно :)
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
В этой статье мы узнаем, что такое Netplan и разберемся, как настроить сеть на Ubuntu Server 18.04 через файл конфигурации. Рассмотрим три варианта конфигураций: получение настроек по DHCP, указание статического IP-адреса и конфигурацию для двух сетевых интерфейсов.
Настраивать сеть будем c помощью утилиты Netplan. [Netplan - впервые появилась в Ubuntu 17.10 для облегчения управления сетевыми настройками. Netplan хранит параметры сетевых интерфейсов в формате YAML, конфигурация в формате YAML в свою очередь поддерживается сетевыми рендерами NetworkManager и systemd-networkd, нам предоставляется возможность выбрать, какой из рендеров использовать в качестве основного сетевого демона системы.]
Приступим!
Для того чтобы посмотреть все сетевые интерфейсы введите команду ifconfig -a.(Рис.1)
Рис.1 - Просматриваем все сетевые интерфейсы.
Видим интерфейс "ens160" с IP-адресом - 192.168.3.16. Если у вас другое название интерфейса, то в конфигурациях не забудьте поменять его.
Прописывать конфигурацию интерфейсов будем в файле /etc/netplan/50-cloud-init.yaml, с помощью редактора nano, я так понимаю файл может называться по разному у разных пользователей [К примеру 01-netcfg.yaml], но сразу же после установки файл с расширением .yaml в этой папке один. Поэтому для того чтобы приступить к редактированию файла лучше воспользоваться универсальной командой.(Рис.2)
Рис.2 - Приступаем к редактированию файла *.yaml
Сразу скажу что для того чтобы сохранить документ в nano надо нажать "Ctrl+o"->"Enter", а чтобы закрыть "Ctrl+x"->"Enter".
ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ! В конфигурациях представленных в этой статье количество пробелов правильное, считайте или копируйте:)
Если вы поставите отступы клавишей "TAB", то на этапе проверки конфигурации на ошибки, вылезет ошибка - " Error while loading /etc/netplan/50-cloud-init.yaml, aborting. / Ошибка при загрузке ".
Если же вы решите написать всё в столбик без отступов, получите ошибку - " An error occured: the configuration could not be generated / Произошла ошибка: конфигурация не может быть сгенерирована ".
Самые распространенные параметры в файле /etc/netplan/*.yaml
Для начала разберемся какие самые распространенные параметры в этом файле могут быть.
renderer: networkd - Выбор сетевого рендера. Выбран networkd
ethernets: - Блок с настройками сетевых интерфейсов.
ens160: - Имя первого сетевого интерфейса.
addresses: [192.168.3.13/24] - Статический IP-адрес сетевого интерфейса/Маска сети. На данный момент указан IPv4, можно также через запятую указать IPv6(пишется в кавычках) - [192.168.3.13/24,“2001:1::1/64”]
gateway4: 192.168.3.1 - Указание основного шлюза для IPv4.
gateway6: "2001:4::1"- Указание основного шлюза для IPv6.(пишется в кавычках)
dhcp4: yes/no - или true/false - включить/выключить получение сетевых настроек по DHCP для IPv4.
dhcp6: yes/no - или true/false - включить/выключить получение сетевых настроек по DHCP для IPv6.
macaddress: 52.54.00.6d.3c.59 - указание MAC-адреса.
nameservers: - Блок с настройками DNS.
addresses: [8.8.8.8,8.8.4.4] - IP-адреса DNS-серверов, можно несколько через запятую.
ens192: - Имя второго сетевого интерфейса.
addresses: [10.1.0.5/24]
Настройка сети на Ubuntu Server 18.04
Настройка динамического IP-адреса [по DHCP]
Так как при установке мы получили IP-адрес по DHCP, следовательно конфигурация рабочая.(Рис.3)
Конфигурация для получения IP-адреса по DHCP:
Рис.3 - Конфигурация для получения IP-адреса по DHCP.
Настройка статического IP-адреса [Указание настроек вручную]
Конфигурация для указания настроек сети вручную.(Рис.4)
Рис.4 - Конфигурация для указания настроек сети вручную.
Пример конфигурации для двух интерфейсов
Конфигурация для указания настроек сети для двух интерфейсов "ens160" и "ens192".(Рис.5)
Рис.5 - Пример конфигурации двух интерфейсов.
Применение изменений в конфигурации сети и проверка
Я для себя выбрал конфигурацию - "Настройка статического IP-адреса [Указание настроек вручную]"
Проверим конфигурацию на наличие ошибок и применим изменения.(Рис.6)
Рис.6 - Проверяем конфигурацию на ошибки. Применяем конфигурацию.
Лично у меня настройки применились в 2/3 случаев сразу же после ввода "sudo netplan try" на всякий случай введём команду специально предназначенную для применения изменений сделанных в файле конфигурации(Рис.7):
Проверим вступили ли изменения в силу:
Проверим доступен ли внешний ресурс.(Рис.8)
Рис.8 - Проверяем доступен ли внешний ресурс.
Всё отлично IP-адрес поменялся, сеть настроена, доступ в интернет есть!
Для более подробной настройки сети через Netplan читайте man.(Рис.9)
Рис.9 - Команда для открытия man Netplana.
Ещё раз повторюсь!
ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ! В конфигурациях представленных в этой статье количество пробелов правильное, считайте или копируйте:)
Если вы поставите отступы клавишей "TAB", то на этапе проверки конфигурации на ошибки, вылезет ошибка - "Error while loading /etc/netplan/50-cloud-init.yaml, aborting./Ошибка при загрузке".
Если же вы решите написать всё в столбик без отступов, получите ошибку - "An error occured: the configuration could not be generated/Произошла ошибка: конфигурация не может быть сгенерирована".
Читайте также: