Error in network definition expected sequence addresses

no way to make the network works on the new ubuntu server. This is the netplan yaml file: # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-dis...

no way to make the network works on the new ubuntu server.
This is the netplan yaml file:

# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config:disabled}
network:
  version: 2
  ethernets:
    enp0s3:
       addresses: [192.168.0.183/24]
       gateway4: 192.168.0.250
       dhcp4: false
       nameservers: 
         addresses: [8.8.8.8,8.8.4.4]
       optional: true

running netplan —debug apply I get:

Error in network definition //etc/netplan/50-cloud-init.yaml line 1 column 1: expected mapping

I’m going crazy, it was so simple before! Why doesn’t work? what does it mean this error?

asked Oct 31, 2018 at 9:59

Giox's user avatar

1

removing dhcp4 setting fixed the issue…who knows!

maybe because if you enable the dhcp you have to set it to «true» and if you disable you have to set to «no»? I really hope not!!

debug info completely useless

answered Oct 31, 2018 at 10:07

Giox's user avatar

GioxGiox

2431 gold badge5 silver badges11 bronze badges

1

a netplan configuration is base on yaml, when looking your configuration. i think the indentation is error because its have 3 space. maybe you can try this

# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config:disabled}
network:
  version: 2
  ethernets:
    enp0s3:expected mapping
      addresses: [192.168.0.183/24]
      gateway4: 192.168.0.250
      dhcp4: false
      nameservers: 
        addresses: [8.8.8.8,8.8.4.4]
      optional: true

answered Oct 31, 2018 at 17:41

Zufar Dhiyaulhaq's user avatar

1

I always configure for a static ip the «dhcp» with the value of «no» like this
dhcp4: no

See an example below

network:
    ethernets:
        enp0s3:
            dhcp4: no
            dhcp6: no
            addresses: [10.4.1.174/21]
            gateway4: 10.5.1.6
            nameservers:
                addresses: [8.8.4.4,8.8.8.8]
            routes:
                - to: 192.168.0/24
                  via: 10.5.0.1
                  metric: 100
    version: 2

answered May 20, 2019 at 13:25

Luis Lopes's user avatar

My first time coming across this new way of networking and the «expected mapping» error. It’s a nice one.

I got a static IP working by editing etc/netplan/50-cloud-init.yaml but found that it was SUPER picky about the layout (spaces).

I used the examples given at

https://netplan.io/examples

By going to the line BEFORE the line mentioned in the error (given when it didn’t work) and pressing «return», a new line and the correct amount of indent was automatically inserted.

Restated… I had an error reported in line 12, so I went to the end of line 11 and pressed «return». A carriage return AND the (presumably) correct amount of indentation was automatically inserted.

If the error was at line 1 (as for the OP) I can only guess that the syntax is wrong.

answered Jul 28, 2019 at 6:11

DarkLord's user avatar

0

I learned that if the indents are not perfect, it does not work. Even though I went off another example, the example I found was incorrect. Here’s the contents of 00-installer-config.yaml that worked for me in case it helps someone else later:

network:
    ethernets:
        enol:
           dhcp4: no
           addresses: [192.168.0.45/24]
           gateway4: 192.168.0.1
           nameservers:
               addresses: [8.8.8.8, 8.8.8.4]
    version: 2

Here is a screenshot of 00-installer-config.yaml.

Nmath's user avatar

Nmath

11.4k8 gold badges23 silver badges52 bronze badges

answered Oct 27, 2020 at 23:25

Thomas Moran's user avatar

I tried several formats

Ubuntu 20 (netplan apply command) only accepted config after I configured exact spaces before each line:

# This is the network config written by 'subiquity'

network:
 version: 2
 renderer: networkd
 ethernets:
  ens18:
   addresses: [172.16.1.95/24]
   gateway4: 172.16.1.1
  nameservers:
   addresses: [8.8.8.8/32, 8.8.4.4/32]

After that, error went away and I was able to connect to 172.16.1.95 server via SSH

answered Mar 4, 2021 at 23:21

Tomasi's user avatar


Прочитано:
24 571

Как я понял, теперь в Ubuntu 18.04 за основную утилиту для настройки сетевых настроек из командной строки — это netplan. Настройка работы интерфейсов сводится к правильному конфигурированию через абстракцию YAML.

На заметку: При настройке конфигурационного файла netplan самое глачное не использовать символы табуляции, только символы пробела. Именно это и есть абстракция использования YAML (Yet Another Markup Language» — «Ещё один язык разметки»)

ekzorchik@srv-bionic:~$ sudo apt remove ifupdown -y

Отобразить все сетевые интерфейсы системы:

ekzorchik@srv-bionic:~$ ifconfig -a

  • интерфейс в выводе: epn0s3 → это сетевой интерфейс на который настроена система
  • интерфейс в выводе: lo → интерфейс обратной петли (loopback)

Если система установлена, а интерфейс не назначен системой или системе, то при просмотре конфигурационного файла утилиты netplan содержимое ничего не содержит, нужно его сформировать:

ekzorchik@srv-bionic:~$ sudo netplan generate

Чтобы установить статический IP-адрес:

ekzorchik@srv-bionic:~$ sudo nano /etc/netplan/01-netcfg.yaml

network:

version: 2

renderer: networkd

ethernets:

# имя сетевого интерфейса

enp0s3:

# активация или дезактивация получения настроек от DHCP-сервиса для IPv4

# можно указывать, как no/yes так и true/false

dhcp4: no

# активация или дезактивация получения настроек от DHCP-сервиса для IPv6

# можно указывать, как no/yes так и true/false

dhcp6: no

# установка статического адреса с указанием действующей маски подсети

addresses: 172.40.40.25/24

# установка шлюза для IPv4 (по умолчанию)

gateway4: 172.40.40.1

# установка DNS-серверов, если в доменной сети, то указываем IP адреса контроллеров домена, если без домена, то адрес Вашего маршрутизатора или же публичные DNS: 8.8.8.8, 8.8.4.4 или DNS провайдера.

nameservers:

addresses: [172.40.40.1,172.40.40.8]

Не забываем сохранить внесенные изменения и применить:

ekzorchik@srv-bionic:~$ sudo netplan apply

Error in network definition //etc/netplan/01-netcfg.yaml line 7 column 14: expected sequence

Если в файле конфигурации присутствует ошибка она будет выведена на консоль и ее нужно исправить т.к. изменения не будут применены. Подсказка: седьмая строка и четырнадцатый символ в моем случае.

Addresses: [172.40.40.25/24] → нужны квадратные скобки

Итоговый конфигурационный файл:

network:

version: 2

# Выбор сетевого рендера. Выбран networkd

renderer: networkd

# Блок с настройкой сетевых интерфейсов

ethernets:

enp0s3:

dhcp4: no

dhcp6: no

addresses: [172.40.40.25/24]

macaddress: 08.00.27.28.31.1f

gateway4: 172.40.40.1

nameservers:

addresses: [172.40.40.1]

Чтобы установить динамический IP-адрес:

ekzorchik@srv-bionic:~$ sudo nano /etc/netplan/01-netcfg.yaml

network:

version: 2

renderer: networkd

ethernets:

enp0s3:

dhcp4: yes

dhcp6: no

ekzorchik@srv-bionic:~$ sudo netplan apply

На заметку: как всегда расширенную информацию по использованию следует черпать в справочном файле: ekzorchik@srv-bionic:~$ man netplan

Чтобы установить несколько сетевых интерфейсов, то их можно либо разбить, как каждый конфигурационный файл с расширением yaml или все указать в едином. Просто начав с новой строки именованием второго или более сетевым интерфейсом:

ekzorchik@srv-bionic:~$ sudo nano /etc/netplan/01-netcfg.yaml

network:

version: 2

renderer: networkd

ethernets:

enp0s3:

dhcp4: yes

dhcp6: false

enp0s4:

dhcp4: no

addresses: [172.40.40.26/24]

gateway4: 172.40.40.1

nameservers:

addresses: [8.8.8.8]

dhcp6: no

ekzorchik@srv-bionic:~$ sudo netplan apply

Чтобы проверить правильность конфигурационного файла на ошибки:

ekzorchik@srv-bionic:~$ sudo netplan try

Warning: Stopping systemd-networkd.service, but it can still be activated by:

systemd-networkd.socket

Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration

Changes will revert in 118 seconds

Configuration accepted.

И если все правильно сказать системе нажатием клавиши Enter применить их.

А после проверяем, что интерфейс поднялся и получил или был назначен:

ekzorchik@srv-bionic:~$ sudo ifconfig -a

Установить сетевой интерфейс использую NetworkManager если настройка ведется через интерфейс wifi:

ekzorchik@navy:~$ sudo nano /etc/netplan/01-network-manager-all.yaml

network:

version: 2

renderer: NetworkManager

wifis:

wlp3s0:

dhcp4: no

addresses: [172.40.40.7/24]

gateway4: 172.40.40.1

nameservers:

addresses: [172.40.40.1,8.8.8.8]

access-points:

ekzorchik:

password: "Aa1234567"

ekzorchik@navy:~$ sudo netplan apply

ekzorchik@navy:~$ sudo ifconfig -a | egrep -E "wlp3s0|inet"

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10<host>

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 172.40.40.7 netmask 255.255.255.0 broadcast 172.40.40.255

inet6 fe80::96d1:8a4e:ed15:9be8 prefixlen 64 scopeid 0x20<link>

И если все правильно указано для подключения к точке доступа, то интерфейс поднимется и подключиться к Wi-Fi и в зависимости от настроек получит сетевой адрес, как у меня. Для справки Wi-Fi подключение работает на базе Mikrotik. Скорее всего у Вас также как у меня при подключении к Wi-Fi сетевой адрес выдает от DHCP-сервиса и тогда конфигурационный файл можно сократить до вида:

network:

version: 2

renderer: NetworkManager

wifis:

wlp3s0:

dhcp4: yes

access-points:

ekzorchik:

password: "Aa1234567"

Дабы не мудрить с правильность настройки конфигурационного файла под интерфейса за основу можно взять один из примеров прилагаемых вместе с утилитой netplan:

ekzorchik@navy:~$ ls /usr/share/doc/netplan.io/examples/

bonding_router.yaml direct_connect_gateway.yaml static.yaml

bonding.yaml loopback_interface.yaml vlan.yaml

bridge_vlan.yaml network_manager.yaml windows_dhcp_server.yaml

bridge.yaml source_routing.yaml wireless.yaml

dhcp.yaml static_multiaddress.yaml

ekzorchik@navy:~$ sudo cp /usr/share/doc/netplan.io/examples/wireless.yaml /etc/netplan/01-networkd.yaml

На заметку: любой настроечный файл в каталоге /etc/netplan будет обрабатываться утилитой netplan имеющий расширение yaml.

Вот мой рабочий конфиг с ноутбука Lenovo E555 системы Ubuntu 18.04 Desktop amd64, если нажать клавишу F8 то выключаем Wi-Fi, если подключен кабель ethernet, то настройки автоматически присваиваются и интернет и локальная сеть есть, если вытаскиваю кабель, а включаю Wi-Fi то также интернет есть, если оба интерфейса включены то интернет также есть:

ekzorchik@navy:~$ sudo nano /etc/netplan/01-networkd.yaml

network:

version: 2

renderer: NetworkManager

ethernets:

enp0s3:

dhcp4: yes

wifis:

wlp3s0:

dhcp4: yes

access-points:

ekzorchik:

password: "Aa1234567"

ekzorchik@navy:/etc/netplan$ sudo netplan apply

На заметку: в файле ekzorchik@navy:~$ cat /etc/network/interfaces все закомментировано, за исключением:

auto lo

iface lo inet loopback

Итого, я для себя разобрал, как настраивается сетевой интерфейс(ы) через утилиту netplan в системе Ubuntu 18.04 независимо от используемой редакции, как Server или Desktop. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.


  • Печать

Страницы: [1]   Вниз

Тема: Ошибка при сохранении конфигурации  (Прочитано 619 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
iiwanc

Здравствуйте!
Заранее прошу прощения, если задаю глупые вопросы.
С Ubuntu впервые работаю.

Установил Ubuntu Server 18.04.4 LTS 64-bit
Нужно поменять IP, сделать его статичным.
При сохранении конфигурации появляется ошибка:

/etc/netplan/50-cloud-init.yaml:1:9: error in network definition expected mapping (check indentation)
network:
Пишу в файл:

network:
  ethernets:
    ens160:
      addresses:
        - 198.0.0.174/24
      dhcp4: false
      gateway4: "198.0.0.100"
      nameservers:
        addresses:
          - "8.8.8.8"
          - "8.8.4.4"
  renderer: networkd
  version: 2

Буду благодарен помощи.
Переход на новую строку начинал с помощью стрелки, не через Enter.
Поставил отступы пробелами. Но ошибку не победил.
Помогите, пожалуйста, понять, что делаю не так.


ТС не появлялся на Форуме более трех месяцев по состоянию на 19/03/2021 (последняя явка: 07/04/2020). Модератором раздела принято решение закрыть тему.
—zg_nico

« Последнее редактирование: 19 Марта 2021, 14:06:39 от zg_nico »


Онлайн
andytux

Нетплан не прощает вольностей. Что-то мне кажется, что кавычки лишние.


Оффлайн
iiwanc

На самом деле там нет ковычек. Стоят квадратные скобки.
Не пойму как прикрепить скрин здесь.
Даю на него ссылку с Я. Диска https://yadi.sk/i/HInBrFNrEctvzQ

Изображения оформляются в виде превью, а не просто гиперссылкой, ведущей неведомо куда. Отправлено уведомление в ЛС о допущенном нарушении. Стоковый тег пользователя пассивизирован, зачеркнут. Изображение перезалито, и оформлено в соответствии с предписаниями Руководства.
 —zg_nico

« Последнее редактирование: 31 Марта 2020, 00:05:28 от zg_nico »


Онлайн
ALiEN175

yaml:1:9

первая строка, девятый символ (судя по приведённому тексту — это пробел). Yaml очень чувствителен к пробелам. Уберите лишние.

ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE


Оффлайн
iiwanc

Записал видео, на котором видно, что удаляю двоеточие после network.
Потом пишу двоеточие и курсор мигает возле него, но клавишу пробела или какую другую не нажимал.
Видео https://youtu.be/2tho0kJsUNE


Пользователь добавил сообщение 30 Марта 2020, 20:16:23:


Нет вариантов?
Думаю переустанавливать ОС

« Последнее редактирование: 30 Марта 2020, 20:16:23 от iiwanc »


Оффлайн
Usermaster

Смущает тот факт что на скриншоте файл 99-disable-network-config.cfg
Маска подсети у Вас походу не указана.

Здесь [ссылка] почитайте.

Кстати при отсутствии нужного фалйа .yml, его можно сгенерировать.

sudo netplan generate

« Последнее редактирование: 31 Марта 2020, 09:51:08 от Usermaster »


  • Печать

Страницы: [1]   Вверх

Содержание

  1. Error in network definition: expected mapping (check indentation) #58
  2. Comments
  3. Checks & detection
  4. Main deployment steps:
  5. Installation
  6. Let NetworkManager manage all devices on this system
  7. add configuration for bridge interface
  8. Netplan error in network definition expected mapping
  9. 6 Answers 6
  10. Настройка сети через netplan в Ubuntu 18.04
  11. Настройка сети Netplan в Ubuntu
  12. Основы использования Netplan
  13. 1. Синтаксис конфигурации Netplan
  14. 2. Параметры Netplan
  15. 3. Команды Netplan
  16. Как настроить сеть Netplan в Ubuntu
  17. 1. Настройка динамического IP в Netplan
  18. 2. Настройка статического IP в Netplan
  19. 3. Настройка Wi-Fi через Netplan на Ubuntu
  20. 4. Применение конфигурации netplan
  21. Выводы

Error in network definition: expected mapping (check indentation) #58

tried to install opennebula on ubuntu 20 :

root@ziomario-I5:/home/ziomario/Scrivania# sudo bash minione

Checks & detection

Checking augeas is installed SKIP will try to install
Checking AppArmor SKIP will try to modify
Checking for present ssh key SKIP
Checking (iptables|netfilter)-persistent are installed SKIP will try to install

Main deployment steps:

Install OpenNebula frontend version 5.12
Configure bridge minionebr with IP 172.16.100.1/24
Enable NAT over enp3s0
Modify AppArmor
Install OpenNebula KVM node
Export appliance and update VM template
Install augeas-tools iptables-persistent netfilter-persistent

Do you agree? [yes/no]:
yes

Installation

Updating APT cache OK
Install augeas-tools iptables-persistent netfilter-persistent OK
Creating bridge interface minionebr OK
Bring bridge interfaces up FAILED

— STDERR —
/etc/netplan/01-network-manager-all.yaml:2:9: Error in network definition: expected mapping (check indentation)
network:
^

this is my 01-network-manager-all.yaml file :

Let NetworkManager manage all devices on this system

network:
version: 2
renderer: NetworkManager

#ethernets:
#eno1:
#dhcp4: no
#disable existing configuration for ethernet
#addresses: [10.0.0.30/24]
#gateway4: 10.0.0.1
#nameservers:
#addresses: [10.0.0.10]
#dhcp6: no

add configuration for bridge interface

#bridges:
#br0:
#interfaces: [eno1]
#dhcp4: no
#addresses: [10.0.0.30/24]
#gateway4: 10.0.0.1
#nameservers:
#addresses: [10.0.0.10]
#parameters:
#stp: false
#dhcp6: no

The text was updated successfully, but these errors were encountered:

Источник

Netplan error in network definition expected mapping

no way to make the network works on the new ubuntu server. This is the netplan yaml file:

running netplan —debug apply I get:

Error in network definition //etc/netplan/50-cloud-init.yaml line 1 column 1: expected mapping

I’m going crazy, it was so simple before! Why doesn’t work? what does it mean this error?

6 Answers 6

removing dhcp4 setting fixed the issue. who knows!

maybe because if you enable the dhcp you have to set it to «true» and if you disable you have to set to «no»? I really hope not!!

debug info completely useless

a netplan configuration is base on yaml, when looking your configuration. i think the indentation is error because its have 3 space. maybe you can try this

I always configure for a static ip the «dhcp» with the value of «no» like this dhcp4: no

See an example below

My first time coming across this new way of networking and the «expected mapping» error. It’s a nice one.

I got a static IP working by editing etc/netplan/50-cloud-init.yaml but found that it was SUPER picky about the layout (spaces).

I used the examples given at

By going to the line BEFORE the line mentioned in the error (given when it didn’t work) and pressing «return», a new line and the correct amount of indent was automatically inserted.

Restated. I had an error reported in line 12, so I went to the end of line 11 and pressed «return». A carriage return AND the (presumably) correct amount of indentation was automatically inserted.

If the error was at line 1 (as for the OP) I can only guess that the syntax is wrong.

Источник

Настройка сети через netplan в Ubuntu 18.04

Как я понял, теперь в Ubuntu 18.04 за основную утилиту для настройки сетевых настроек из командной строки — это netplan. Настройка работы интерфейсов сводится к правильному конфигурированию через абстракцию YAML.

На заметку: При настройке конфигурационного файла netplan самое глачное не использовать символы табуляции, только символы пробела. Именно это и есть абстракция использования YAML (Yet Another Markup Language» — «Ещё один язык разметки»)

$ sudo apt remove ifupdown -y

Отобразить все сетевые интерфейсы системы:

  • интерфейс в выводе: epn0s3 → это сетевой интерфейс на который настроена система
  • интерфейс в выводе: lo → интерфейс обратной петли (loopback)

Если система установлена, а интерфейс не назначен системой или системе, то при просмотре конфигурационного файла утилиты netplan содержимое ничего не содержит, нужно его сформировать:

$ sudo netplan generate

Чтобы установить статический IP-адрес:

$ sudo nano /etc/netplan/01-netcfg.yaml

# имя сетевого интерфейса

# активация или дезактивация получения настроек от DHCP-сервиса для IPv4

# можно указывать, как no/yes так и true/false

# активация или дезактивация получения настроек от DHCP-сервиса для IPv6

# можно указывать, как no/yes так и true/false

# установка статического адреса с указанием действующей маски подсети

# установка шлюза для IPv4 (по умолчанию)

# установка DNS-серверов, если в доменной сети, то указываем IP адреса контроллеров домена, если без домена, то адрес Вашего маршрутизатора или же публичные DNS: 8.8.8.8, 8.8.4.4 или DNS провайдера.

Не забываем сохранить внесенные изменения и применить:

$ sudo netplan apply

Error in network definition //etc/netplan/01-netcfg.yaml line 7 column 14: expected sequence

Если в файле конфигурации присутствует ошибка она будет выведена на консоль и ее нужно исправить т.к. изменения не будут применены. Подсказка: седьмая строка и четырнадцатый символ в моем случае.

Addresses: [172.40.40.25/24] → нужны квадратные скобки

Итоговый конфигурационный файл:

# Выбор сетевого рендера. Выбран networkd

# Блок с настройкой сетевых интерфейсов

Чтобы установить динамический IP-адрес:

$ sudo nano /etc/netplan/01-netcfg.yaml

$ sudo netplan apply

На заметку: как всегда расширенную информацию по использованию следует черпать в справочном файле: ekzorchik@srv-bionic:

Чтобы установить несколько сетевых интерфейсов, то их можно либо разбить, как каждый конфигурационный файл с расширением yaml или все указать в едином. Просто начав с новой строки именованием второго или более сетевым интерфейсом:

$ sudo nano /etc/netplan/01-netcfg.yaml

$ sudo netplan apply

Чтобы проверить правильность конфигурационного файла на ошибки:

$ sudo netplan try

Warning: Stopping systemd-networkd.service, but it can still be activated by:

Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration

Changes will revert in 118 seconds

И если все правильно сказать системе нажатием клавиши Enter применить их.

А после проверяем, что интерфейс поднялся и получил или был назначен:

Установить сетевой интерфейс использую NetworkManager если настройка ведется через интерфейс wifi:

$ sudo nano /etc/netplan/01-network-manager-all.yaml

$ sudo netplan apply

$ sudo ifconfig -a | egrep -E «wlp3s0|inet»

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

wlp3s0: flags=4163 mtu 1500

inet 172.40.40.7 netmask 255.255.255.0 broadcast 172.40.40.255

inet6 fe80::96d1:8a4e:ed15:9be8 prefixlen 64 scopeid 0x20

И если все правильно указано для подключения к точке доступа, то интерфейс поднимется и подключиться к Wi-Fi и в зависимости от настроек получит сетевой адрес, как у меня. Для справки Wi-Fi подключение работает на базе Mikrotik. Скорее всего у Вас также как у меня при подключении к Wi-Fi сетевой адрес выдает от DHCP-сервиса и тогда конфигурационный файл можно сократить до вида:

Дабы не мудрить с правильность настройки конфигурационного файла под интерфейса за основу можно взять один из примеров прилагаемых вместе с утилитой netplan:

bonding_router.yaml direct_connect_gateway.yaml static.yaml

bonding.yaml loopback_interface.yaml vlan.yaml

bridge_vlan.yaml network_manager.yaml windows_dhcp_server.yaml

bridge.yaml source_routing.yaml wireless.yaml

$ sudo cp /usr/share/doc/netplan.io/examples/wireless.yaml /etc/netplan/01-networkd.yaml

На заметку: любой настроечный файл в каталоге /etc/netplan будет обрабатываться утилитой netplan имеющий расширение yaml.

Вот мой рабочий конфиг с ноутбука Lenovo E555 системы Ubuntu 18.04 Desktop amd64, если нажать клавишу F8 то выключаем Wi-Fi, если подключен кабель ethernet, то настройки автоматически присваиваются и интернет и локальная сеть есть, если вытаскиваю кабель, а включаю Wi-Fi то также интернет есть, если оба интерфейса включены то интернет также есть:

$ sudo nano /etc/netplan/01-networkd.yaml

ekzorchik@navy:/etc/netplan$ sudo netplan apply

На заметку: в файле ekzorchik@navy:

$ cat /etc/network/interfaces все закомментировано, за исключением:

iface lo inet loopback

Итого, я для себя разобрал, как настраивается сетевой интерфейс(ы) через утилиту netplan в системе Ubuntu 18.04 независимо от используемой редакции, как Server или Desktop. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432 7300 0040 4626

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Источник

Настройка сети Netplan в Ubuntu

Начиная с релиза 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. Как видите, это не очень сложно, и даже удобно, по сравнению со старой конфигурацией. Конечно, есть некоторые недостатки — та же самая невозможность задать маску без префикса, но программа активно развивается, возможно, в будущем это будет исправлено.

Источник

Настройка сети в Linux с помощью netplan

Начиная с Ubuntu 18.04 конфигурирование сети выполняется с помощью утилиты netplan. В других системах на базе deb, например, Debian, она может быть установлена командой:

apt install netplan

В данной статье рассмотрим принцип и примеры настройки сети с помощью netplan.

Конфигурационный файл

Файл для настройки сети находится в каталоге /etc/netplan/. Имя файла может быть любым, на конце должно быть расширение yaml, например:

* чаще всего, это файл 50-cloud-init.yaml или 01-netcfg.yaml.

YAML представляет из себя текстовый формат файла. Вложенные параметры должны иметь отступы табуляциями или пробелами, количество которых имеет важное значение (если поставить лишний пробел у одного из нескольких параметров, мы получим сообщение об ошибке «expected mapping»).

Простая настройка сети

Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP.

Приводим файл к следующему виду:

network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
ens7:
dhcp4: no
addresses: [192.168.122.195/24]
routes:
— to: default
via: 192.168.122.1
mtu: 1500
nameservers:
addresses: [8.8.8.8, 77.88.8.8]
search: [ dmosk.local ]
ens9:
dhcp4: no
addresses: [192.168.1.10/24, 192.168.1.20/24]
nameservers:
addresses:
— 8.8.8.8
— 77.88.8.8
search: [ dmosk.local, dmosk.ru ]

  • version — версия YAML. На момент обновления статьи, была 2.
  • renderer — менеджер сети (networkd или NetworkManager).
  • ethernets — настройка сетевых адаптеров ethernet.
  • ens3, ens7, ens9 — настройки для соответствующих сетевых адаптеров. В данном примере мы настраиваем 3 сетевых адаптера.
  • dhcp4 — будет ли получать сетевой адаптер IP-адрес автоматически. Возможны варианты yes/true — получать адрес автоматически; no/false — адрес должен быть назначен вручную.
  • addresses — задает IP-адреса через запятую.
  • routes — настройка маршрутов. Для шлюза по умолчанию используем опцию и значение to: default. Ранее использовалась директива gateway4, но теперь она считается устаревшей (при применении настройки с ней система вернет предупреждение gateway4 has been deprecated, use default routes instead).
  • mtu — при желании, можно задать значение MTU.
  • nameservers — настройка серверов имен (DNS).
  • nameservers addresses — указываем серверы DNS. Обратите внимание на разный формат записи для ens7 и ens9. Приемлемы оба варианта.
  • nameservers search — дописывает окончание домена, если мы обращаемся к узлу сети только по его имени. Стоит обратить внимание, что мы можем указать несколько доменов через запятую.

Применение настроек

Для применения настроек необходимо запустить команду netplan. Ее синтаксис:

Для проверки нашего конфигурационного файла вводим:

Источник

Настройка сети через netplan в Ubuntu 18.04

Как я понял, теперь в Ubuntu 18.04 за основную утилиту для настройки сетевых настроек из командной строки — это netplan. Настройка работы интерфейсов сводится к правильному конфигурированию через абстракцию YAML.

На заметку: При настройке конфигурационного файла netplan самое глачное не использовать символы табуляции, только символы пробела. Именно это и есть абстракция использования YAML (Yet Another Markup Language» — «Ещё один язык разметки»)

$ sudo apt remove ifupdown -y

Отобразить все сетевые интерфейсы системы:

  • интерфейс в выводе: epn0s3 → это сетевой интерфейс на который настроена система
  • интерфейс в выводе: lo → интерфейс обратной петли (loopback)

Если система установлена, а интерфейс не назначен системой или системе, то при просмотре конфигурационного файла утилиты netplan содержимое ничего не содержит, нужно его сформировать:

$ sudo netplan generate

Чтобы установить статический IP-адрес:

$ sudo nano /etc/netplan/01-netcfg.yaml

# имя сетевого интерфейса

# активация или дезактивация получения настроек от DHCP-сервиса для IPv4

# можно указывать, как no/yes так и true/false

# активация или дезактивация получения настроек от DHCP-сервиса для IPv6

# можно указывать, как no/yes так и true/false

# установка статического адреса с указанием действующей маски подсети

# установка шлюза для IPv4 (по умолчанию)

# установка DNS-серверов, если в доменной сети, то указываем IP адреса контроллеров домена, если без домена, то адрес Вашего маршрутизатора или же публичные DNS: 8.8.8.8, 8.8.4.4 или DNS провайдера.

Не забываем сохранить внесенные изменения и применить:

$ sudo netplan apply

Error in network definition //etc/netplan/01-netcfg.yaml line 7 column 14: expected sequence

Если в файле конфигурации присутствует ошибка она будет выведена на консоль и ее нужно исправить т.к. изменения не будут применены. Подсказка: седьмая строка и четырнадцатый символ в моем случае.

Addresses: [172.40.40.25/24] → нужны квадратные скобки

Итоговый конфигурационный файл:

# Выбор сетевого рендера. Выбран networkd

# Блок с настройкой сетевых интерфейсов

Чтобы установить динамический IP-адрес:

$ sudo nano /etc/netplan/01-netcfg.yaml

$ sudo netplan apply

На заметку: как всегда расширенную информацию по использованию следует черпать в справочном файле: ekzorchik@srv-bionic:

Чтобы установить несколько сетевых интерфейсов, то их можно либо разбить, как каждый конфигурационный файл с расширением yaml или все указать в едином. Просто начав с новой строки именованием второго или более сетевым интерфейсом:

$ sudo nano /etc/netplan/01-netcfg.yaml

$ sudo netplan apply

Чтобы проверить правильность конфигурационного файла на ошибки:

$ sudo netplan try

Warning: Stopping systemd-networkd.service, but it can still be activated by:

Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration

Changes will revert in 118 seconds

И если все правильно сказать системе нажатием клавиши Enter применить их.

А после проверяем, что интерфейс поднялся и получил или был назначен:

Установить сетевой интерфейс использую NetworkManager если настройка ведется через интерфейс wifi:

$ sudo nano /etc/netplan/01-network-manager-all.yaml

$ sudo netplan apply

$ sudo ifconfig -a | egrep -E «wlp3s0|inet»

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

wlp3s0: flags=4163 mtu 1500

inet 172.40.40.7 netmask 255.255.255.0 broadcast 172.40.40.255

inet6 fe80::96d1:8a4e:ed15:9be8 prefixlen 64 scopeid 0x20

И если все правильно указано для подключения к точке доступа, то интерфейс поднимется и подключиться к Wi-Fi и в зависимости от настроек получит сетевой адрес, как у меня. Для справки Wi-Fi подключение работает на базе Mikrotik. Скорее всего у Вас также как у меня при подключении к Wi-Fi сетевой адрес выдает от DHCP-сервиса и тогда конфигурационный файл можно сократить до вида:

Дабы не мудрить с правильность настройки конфигурационного файла под интерфейса за основу можно взять один из примеров прилагаемых вместе с утилитой netplan:

bonding_router.yaml direct_connect_gateway.yaml static.yaml

bonding.yaml loopback_interface.yaml vlan.yaml

bridge_vlan.yaml network_manager.yaml windows_dhcp_server.yaml

bridge.yaml source_routing.yaml wireless.yaml

$ sudo cp /usr/share/doc/netplan.io/examples/wireless.yaml /etc/netplan/01-networkd.yaml

На заметку: любой настроечный файл в каталоге /etc/netplan будет обрабатываться утилитой netplan имеющий расширение yaml.

Вот мой рабочий конфиг с ноутбука Lenovo E555 системы Ubuntu 18.04 Desktop amd64, если нажать клавишу F8 то выключаем Wi-Fi, если подключен кабель ethernet, то настройки автоматически присваиваются и интернет и локальная сеть есть, если вытаскиваю кабель, а включаю Wi-Fi то также интернет есть, если оба интерфейса включены то интернет также есть:

$ sudo nano /etc/netplan/01-networkd.yaml

ekzorchik@navy:/etc/netplan$ sudo netplan apply

На заметку: в файле ekzorchik@navy:

$ cat /etc/network/interfaces все закомментировано, за исключением:

iface lo inet loopback

Итого, я для себя разобрал, как настраивается сетевой интерфейс(ы) через утилиту netplan в системе Ubuntu 18.04 независимо от используемой редакции, как Server или Desktop. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432 7300 0040 4626

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Источник

Error in network definition expected sequence

So I’m fighting with a new server that is up to date (just ran the commands in the past hour) and I’m trying to add a static persistent route to force all UDP traffic to a single interface.

in the past the command was simple:
sudo ip route -p add 239.0.0.0/8 dev eth1

But now, the -p doesn’t work. Everything that google brings us says «just use -p to make it persistent» and there are Thousands of web sites and forum posts echoing the same thing, but now with the new improved NETPLAN none of that works, and I’ve spend 2 hours trying to find the commands on how to get this pig to oink.

Yeah I’ve read https://netplan.io/faq/ and I can’t disagree more with what’s written there. It has NOT made it easier, it’s made it much more difficult. I think I’ve found what’s needed, but everytime I try to apply it I get more errors. Why was this deployed with so little good documentation?

yaml file:
GNU nano 4.8 00-installer-config.yaml
# This is the network config written by ‘subiquity’
network:
ethernets:
eno1:
dhcp4: true
eno2:
dhcp4: true
enp193s0f0:
addresses:
— 10.199.200.100/24
gateway4: 10.199.200.1
nameservers:
addresses:
— 8.8.8.8
— 1.1.1.1
search: []
enp193s0f1:
dhcp4: true
enp193s0f2:
dhcp4: true
enp193s0f3:
addresses:
— 10.199.199.100/24
nameservers:
addresses: []
search: []
routes:
-to: 239.0.0.0/8
via: dev enp193s0f3
version: 2

And the output when I try to apply it:

support@cameras:/etc/netplan$ sudo netplan apply
/etc/netplan/00-installer-config.yaml:27:14: Error in network definition: expected sequence
routes:
^

How is this better?

Yaml syntax is rather hard to get used to. I’m guessing, but I think your indenting for the route is wrong, and missing a space before the ‘to’. Try this:

network:
ethernets:
eno1:
dhcp4: true
eno2:
dhcp4: true
enp193s0f0:
addresses:
— 10.199.200.100/24
gateway4: 10.199.200.1
nameservers:
addresses:
— 8.8.8.8
— 1.1.1.1
search: []
enp193s0f1:
dhcp4: true
enp193s0f2:
dhcp4: true
enp193s0f3:
addresses:
— 10.199.199.100/24
nameservers:
addresses: []
search: []
routes:
— to: 239.0.0.0/8
via: dev enp193s0f3
version: 2

Or you may find this easier to read:
network:
ethernets:
eno1:
eno2:
enp193s0f0:
addresses: [10.199.200.100/24]
gateway4: 10.199.200.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
search: []
enp193s0f1:
enp193s0f2:
enp193s0f3:
addresses: [10.199.199.100/24]
nameservers:
addresses: []
search: []
routes:

version: 2

Источник

Netplan error in network definition expected mapping

no way to make the network works on the new ubuntu server. This is the netplan yaml file:

running netplan —debug apply I get:

Error in network definition //etc/netplan/50-cloud-init.yaml line 1 column 1: expected mapping

I’m going crazy, it was so simple before! Why doesn’t work? what does it mean this error?

6 Answers 6

removing dhcp4 setting fixed the issue. who knows!

maybe because if you enable the dhcp you have to set it to «true» and if you disable you have to set to «no»? I really hope not!!

debug info completely useless

a netplan configuration is base on yaml, when looking your configuration. i think the indentation is error because its have 3 space. maybe you can try this

I always configure for a static ip the «dhcp» with the value of «no» like this dhcp4: no

See an example below

My first time coming across this new way of networking and the «expected mapping» error. It’s a nice one.

I got a static IP working by editing etc/netplan/50-cloud-init.yaml but found that it was SUPER picky about the layout (spaces).

I used the examples given at

By going to the line BEFORE the line mentioned in the error (given when it didn’t work) and pressing «return», a new line and the correct amount of indent was automatically inserted.

Restated. I had an error reported in line 12, so I went to the end of line 11 and pressed «return». A carriage return AND the (presumably) correct amount of indentation was automatically inserted.

If the error was at line 1 (as for the OP) I can only guess that the syntax is wrong.

Источник

Обновлено Обновлено: 16.05.2022
Опубликовано Опубликовано: 31.10.2019

Начиная с Ubuntu 18.04 конфигурирование сети выполняется с помощью утилиты netplan. В других системах на базе deb, например, Debian, она может быть установлена командой:

apt install netplan

В данной статье рассмотрим принцип и примеры настройки сети с помощью netplan.

Немного о файле конфигурации
Настройка сети
Как применить настройки
Добавить маршрут
Объединение интерфейсов
Сетевой мост
Настройка vlans
Настройка WiFi
Удаление netplan
Решение возможных проблем

Конфигурационный файл

Файл для настройки сети находится в каталоге /etc/netplan/. Имя файла может быть любым, на конце должно быть расширение yaml, например:

vi /etc/netplan/01-netcfg.yaml

* чаще всего, это файл 50-cloud-init.yaml или 01-netcfg.yaml.

YAML представляет из себя текстовый формат файла. Вложенные параметры должны иметь отступы табуляциями или пробелами, количество которых имеет важное значение (если поставить лишний пробел у одного из нескольких параметров, мы получим сообщение об ошибке «expected mapping»).

Простая настройка сети

Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP.

Приводим файл к следующему виду:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens3:
            dhcp4: true
        ens7:
            dhcp4: no
            addresses: [192.168.122.195/24]
            routes:
              — to: default
                via: 192.168.122.1
            mtu: 1500
            nameservers:
                addresses: [8.8.8.8, 77.88.8.8]
                search: [ dmosk.local ]
        ens9:
            dhcp4: no
            addresses: [192.168.1.10/24, 192.168.1.20/24]
            nameservers:
                addresses:
                    — 8.8.8.8
                    — 77.88.8.8
                search: [ dmosk.local, dmosk.ru ]

* где:

  • version — версия YAML. На момент обновления статьи, была 2.
  • renderer — менеджер сети (networkd или NetworkManager).
  • ethernets — настройка сетевых адаптеров ethernet.
  • ens3, ens7, ens9 — настройки для соответствующих сетевых адаптеров. В данном примере мы настраиваем 3 сетевых адаптера.
  • dhcp4 — будет ли получать сетевой адаптер IP-адрес автоматически. Возможны варианты yes/true — получать адрес автоматически; no/false — адрес должен быть назначен вручную.
  • addresses — задает IP-адреса через запятую.
  • routes — настройка маршрутов. Для шлюза по умолчанию используем опцию и значение to: default. Ранее использовалась директива gateway4, но теперь она считается устаревшей (при применении настройки с ней система вернет предупреждение gateway4 has been deprecated, use default routes instead).
  • mtu  — при желании, можно задать значение MTU.
  • nameservers — настройка серверов имен (DNS).
  • nameservers addresses — указываем серверы DNS. Обратите внимание на разный формат записи для ens7 и ens9. Приемлемы оба варианта.
  • nameservers search — дописывает окончание домена, если мы обращаемся к узлу сети только по его имени. Стоит обратить внимание, что мы можем указать несколько доменов через запятую.

Применение настроек

Для применения настроек необходимо запустить команду netplan. Ее синтаксис:

netplan <опции> <команда>

Для проверки нашего конфигурационного файла вводим:

netplan —debug generate

 Для применения настроек вводим:

netplan apply

* данную команду мы вводим также для перечитывания настроек и перезапуска сети (вместо привычных restart и reload).

Статический маршрут

Статический маршрут задается для конкретного интерфейса, также в конфигурационном файле netplan, например:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens9:
            dhcp4: no
            addresses: 192.168.1.10/24
            nameservers:
                addresses:
                    — 8.8.8.8
                    — 77.88.8.8
            routes:
              — to: 192.168.0.0/24
                via: 192.168.1.1
                on-link: true

* в данном примере мы настроили маршрут для сетевого интерфейса ens9. Данная настройка задается параметром routes:

  • to — направление маршрута (в какую сеть мы должны попадать). В данном примере, 192.168.0.0/24.
  • via — через какой шлюз мы попадаем в сеть to.
  • on-link — активация маршрута при поднятии линка на сетевом интерфейсе.

Объединение интерфейсов (bonds)

С помощью bonds мы можем объединить интерфейсы с целью обеспечения отказоустойчивости и/или повышения пропускной способности.

Пример настройки:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens2f0: {}
        ens2f1: {}
    bonds:
        bond0:
            dhcp4: no
            interfaces:
            — ens2f0
            — ens2f1
            parameters:
                mode: active-backup
            addresses:
                — 192.168.122.195/24
            gateway4: 192.168.122.1
            mtu: 1500
            nameservers:
                addresses:
                    — 8.8.8.8
                    — 77.88.8.8

* в данном примере мы объединяем физические интерфейсы ens2f0 и ens2f1; настройка parameters mode указываем на тип объединения — доступны варианты:

  • balance-rr (задействуются оба интерфейса по очереди, распределение пакетов по принципу Round Robin).
  • active-backup (используется только один интерфейс, второй активируется в случае неработоспособности первого).
  • balance-xor (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy).
  • broadcast (задействуются оба интерфейса одновременно, пакеты передаются все интерфейсы).
  • 802.3ad (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy)
  • balance-tlb (задействуются оба интерфейса по очереди, пакеты распределяются в соответствии с текущей нагрузкой)

Сетевой мост (bridge)

Сетевой мост позволяет пропускать сетевой трафик через другой сетевой адаптер. Это можно применить, например, для организации хоста виртуальных машин (для трансфера трафика к виртуальным машинам KVM через единственный сетевой интерфейс сервера).

Пример настройки:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens2f0: {}
    bridges:
        br0:
            macaddress: ce:ce:ce:45:45:45
            interfaces:
                — ens2f0
            addresses:
                — 192.168.1.15/24
            gateway4: 
            nameservers:
                addresses:
                    — 77.88.8.8
                    — 8.8.8.8
            mtu: 1500
            parameters:
                stp: true
                forward-delay: 4
            dhcp4: false
            dhcp6: false

* где:

  • bridges — настройки для интерфейсов bridge.
  • bridges br0 — настройка интерфейса br0.
  • macaddress — физический адрес (MAC) интерфейса. Настройка важна для некоторых провайдеров VPS — без нее бридж может не заработать.
  • interfaces — перечисление интерфейсов, из которых собираем мост. В данном примере ens2f0.
  • addresses, gateway4, nameservers — сетевые настройки (IP-адрес, шлюз, сервер имен).
  • mtu — одноименный параметр. Для сетей ethernet обычно равен 1500.
  • parameters stp — включает или отключает устранение петель в сети. В данном примере включено.
  • parameters forward-delay — время в секундах в течение которого мост будет оставаться в состояниях «Listening» и «Learning».
  • dhcp4, dhcp6 — включает или отключает автоматическое получение IP-адреса. В нашем случае, отключает.

Подробнее про настройку сетвого моста для KVM в инструкции Настройка KVM на Ubuntu Server.

Vlan

Также мы можем настроить тегированный интерфейс vlan:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens3: {}
    vlans: 
        vlan5:
            id: 5
            link: ens3
            dhcp4: no
            addresses: [10.0.0.15/24]
            gateway: 10.0.0.1

* в данном примере мы настроили интерфейс с тегом 5 на физическом адаптере ens3.

WiFi

Для подключения к беспроводной сети задаем следующие настройки:

network:
    version: 2
    renderer: networkd
    wifis:
        wlp2s0b1:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.2.10/24]
            gateway4: 192.168.2.1
            nameservers:
                addresses: [192.168.2.1, 77.88.8.8]
            access-points:
                <имя WiFi сети (SSID)>:
                    password: wifi_password

* где:

  • wifis — определяет настойки для WiFi.
  • wlp2s0b1 — настройка для беспроводного сетевого адаптера.
  • dhcp4, dhcp6 — включает или отключает автоматическое получение IP-адреса.
  • addresses, gateway4, nameservers — настройка сети (IP-адрес, шлюз, сервер DNS).
  • access-points — настройка для подключения к беспроводной сети.
  • <имя WiFi сети (SSID)> — имя беспроводной сети, к которой будем подключаться.
  • password — пароль для подключения к беспроводной сети.

Отключение netplan и возврат к interfaces

При желании, мы можем вернуть привычный принцип настройки сети. Для этого выполним несколько шагов.

1. Открываем настройку grub:

vi /etc/default/grub

2. Находим опцию GRUB_CMDLINE_LINUX и дописываем в нее параметр:

GRUB_CMDLINE_LINUX=»netcfg/do_not_use_netplan=true»

* если GRUB_CMDLINE_LINUX содержит другие настройки, то наш параметр добавляем через пробел.

3. Устанавливаем пакет ifupdown:

apt install ifupdown

4. Настраиваем сеть в файле:

vi /etc/network/interfaces

… например:

auto lo
iface lo inet loopback

auto ens5
iface ens5 inet dhcp

* в данном примере мы настраиваем сетевой интерфейс ens5 на автоматическое получение IP-адреса.

5. Применяем настройки загрузчика:

update-grub

И перезагружаем систему:

shutdown -r now

Возможные ошибки

1. Error in network definition *.yaml line xxx column yyy: expected mapping 

Ошибка появляется при проверке (generate) или применении (apply) настроек сети.

Причина: ошибка синтаксиса YAML.

Решение: внимательно смотрим на количество отступов, которое сделано для строки xxx. Количество пробелов должно точно соответствовать количеству в других строках. Если параметр вложенный, он также должен отделяться от родителя нужным количеством пробелов. Пример неправильной настройки:

network:
    version: 2
  renderer: networkd

* обратите внимание, что version имеет 4 пробела для отступа, а renderer — 2. Так как version и renderer равнозначные параметры для родителя network, они должны иметь одинаковое количество пробелов.

Ser8191

0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

1

11.11.2021, 15:18. Показов 6300. Ответов 29

Метки нет (Все метки)


Здравствуйте.
Установил Ubuntu Server 20.04.3
Нужно назначить статический IP адрес 192.168.1.35
В каталоге /etc/netplan три файла:

00-installer-config-wifi.yaml
01-installer-config.yaml
01-netcfg.yaml

Команда

PowerShell
1
ip a

выдаёт следующее:

Код

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 28:d2:44:b0:b4:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.39/24 brd 192.168.1.255 scope global dynamic enp3s0
       valid_lft 24006sec preferred_lft 24006sec
    inet6 fe80::2ad2:44ff:feb0:b4fe/64 scope link
       valid_lft forever preferred_lft forever
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 18:cf:5e:e7:34:c9 brd ff:ff:ff:ff:ff:ff

Меняю содержимое файла 01-installer-config.yaml

Код

network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.35/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]

Выполняю команду:

PowerShell
1
sudo netplan apply

Получаю ошибку:

PowerShell
1
2
/etc/netplan/01-installer-config.yaml:1:9: Error in network definition: expected mapping (check indentation)
network:

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



4732 / 3937 / 997

Регистрация: 29.08.2013

Сообщений: 25,248

Записей в блоге: 3

11.11.2021, 16:42

2

а точно нужно прописывать 192.168.1.35/24?
может быть отдельно IP и отдельно маску?



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 16:46

 [ТС]

3

Без понятия. Что нашёл, то м попробовал.
Уровень знаний минимальный.



0



4732 / 3937 / 997

Регистрация: 29.08.2013

Сообщений: 25,248

Записей в блоге: 3

11.11.2021, 16:47

4

проверяй по разному
попробуй и без /24 и без []



1



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 18:36

 [ТС]

5

Как я понял дело в табуляции, нужно соблюдать пробелы

Код

/etc/netplan/00-installer-config.yaml:4:1: Invalid YAML: tabs are not allowed for indent:
        enp3s0:

Добавлено через 9 минут

Код

sudo nano /etc/netplan/00-installer-config.yaml

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      dhcp6: no
      addresses: [10.0.2.15/24]
      gateway4: 10.0.2.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]


sudo netplan apply

После данных манипуляций связь по ssh пропадает.
На сервере следующая информация

Миниатюры

Статический IP Ubuntu Server 20.04.3
 



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 19:08

 [ТС]

6

Валидатор YAML пишет что файл валидный, даже если использую табуляцию



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 19:38

 [ТС]

7

С ошибкой разобрался, использовал пробелы.
Но адрес не меняется.

Миниатюры

Статический IP Ubuntu Server 20.04.3
 



0



Эксперт NIX

2658 / 777 / 173

Регистрация: 14.01.2013

Сообщений: 3,585

11.11.2021, 19:43

8

Вот вариант с рабочего сервера

Код

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      dhcp4: no
      dhcp6: no
      addresses: [ 172.16.0.88/24 ]
      gateway4: 172.16.0.81
      nameservers:
        addresses: [ 172.16.0.81, 77.88.8.1 ]



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 19:46

 [ТС]

9

Да в принципе у меня тоже самое, но ip a показывает туже информацию из верхнего скрина, и нет связи по указанному адресу



0



_sg2

594 / 204 / 40

Регистрация: 30.08.2017

Сообщений: 1,339

11.11.2021, 20:03

10

renderer: networkd
а может и NetworkManager. У Вас там что?
Вообще проверьте все пробелы. рекомендую ВЕЗДЕ отступы в 2 пробела. Ну или по стандарту python 4. Но ВЕЗДЕ одинаково, будет лишний где/не хватать, парсер YAML может заругаться. Я пару раз мимоходом этот netplan курил, сложностей не вызывало кроме необходимости очередную ересь изучить и попробовать запомнить (не удалось ).
Проверить что накалякали (если память не подводит):

Bash
1
netplan --debug generate

Почитать ошибки, устранить и

Bash
1
netplan apply

Кажеться так. Ну и у уважаемого Kubuntovod, рабочий вариант как шпаргалка.



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 20:09

 [ТС]

11

Миниатюры

Статический IP Ubuntu Server 20.04.3
 



0



594 / 204 / 40

Регистрация: 30.08.2017

Сообщений: 1,339

11.11.2021, 20:10

12

доступ запрещён написано
значит sudo
и неужели нельзя скопировать с терминала, зачем мутные фото?



0



Эксперт по компьютерным сетямЭксперт NIX

12384 / 7223 / 758

Регистрация: 09.09.2009

Сообщений: 28,185

11.11.2021, 20:11

13

в роутере назначить айпишник «серверу» — не?



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 20:16

 [ТС]

14

и неужели нельзя скопировать с терминала, зачем мутные фото?

Скопировать можно было бы, если бы работал по ssh, но ip адрес то не выставляется, и рабочий ПК не видит сервер.

в роутере назначить айпишник «серверу» — не?

Связь будет без роутера, в этом и проблема (с роутером всё работало)

доступ запрещён написано
значит sudo

Про sudo забыл…

Миниатюры

Статический IP Ubuntu Server 20.04.3
 



0



594 / 204 / 40

Регистрация: 30.08.2017

Сообщений: 1,339

11.11.2021, 20:22

15

А. Это отдельная физическая машина…
А чё там такое намешано? OpenVSwitch, NetworkManager. Ужасы какие-то, вот не помню
Ну кажись не инвалид конфиг.. и что netplan apply выдал?



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 20:25

 [ТС]

16

А чё там такое намешано? OpenVSwitch, NetworkManager. Ужасы какие-то, вот не помню

Ubuntu Server 20.04.3 (64-bit)

и что netplan apply выдал?

Ответа нет, переход к вводу новой команды.



0



594 / 204 / 40

Регистрация: 30.08.2017

Сообщений: 1,339

11.11.2021, 20:28

17

Ну и ip a?
systemctl status networkd?
Мы тут мысли читать не умеем, уж извините



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 20:34

 [ТС]

18

Попробовал на других соединениях и вернулся к своему, адрес поменялся, но не пингуется.

Миниатюры

Статический IP Ubuntu Server 20.04.3
 



0



0 / 0 / 0

Регистрация: 17.01.2017

Сообщений: 179

11.11.2021, 20:49

 [ТС]

19

Перезагрузил сервер полностью обесточив.
Выполнил те-же действия, IP стал виден.
Перезагрузил.
Такая же ерунда.
Выполнил netplan apply, заработало.
Переустанавливаю сервер. Отпишусь.



0



594 / 204 / 40

Регистрация: 30.08.2017

Сообщений: 1,339

11.11.2021, 20:59

20

меня смущает какой-то ip на loopback



0



tried to install opennebula on ubuntu 20 :

root@ziomario-I5:/home/ziomario/Scrivania# sudo bash minione

Checks & detection

Checking augeas is installed SKIP will try to install
Checking AppArmor SKIP will try to modify
Checking for present ssh key SKIP
Checking (iptables|netfilter)-persistent are installed SKIP will try to install

Main deployment steps:

Install OpenNebula frontend version 5.12
Configure bridge minionebr with IP 172.16.100.1/24
Enable NAT over enp3s0
Modify AppArmor
Install OpenNebula KVM node
Export appliance and update VM template
Install augeas-tools iptables-persistent netfilter-persistent

Do you agree? [yes/no]:
yes

Installation

Updating APT cache OK
Install augeas-tools iptables-persistent netfilter-persistent OK
Creating bridge interface minionebr OK
Bring bridge interfaces up FAILED

— STDERR —
/etc/netplan/01-network-manager-all.yaml:2:9: Error in network definition: expected mapping (check indentation)
network:
^

this is my 01-network-manager-all.yaml file :

Let NetworkManager manage all devices on this system

network:
version: 2
renderer: NetworkManager

#ethernets:
#eno1:
#dhcp4: no
#disable existing configuration for ethernet
#addresses: [10.0.0.30/24]
#gateway4: 10.0.0.1
#nameservers:
#addresses: [10.0.0.10]
#dhcp6: no

add configuration for bridge interface

#bridges:
#br0:
#interfaces: [eno1]
#dhcp4: no
#addresses: [10.0.0.30/24]
#gateway4: 10.0.0.1
#nameservers:
#addresses: [10.0.0.10]
#parameters:
#stp: false
#dhcp6: no

Понравилась статья? Поделить с друзьями:
  • Error in network definition expected mapping check indentation nameservers
  • Error in network definition address is missing prefixlength
  • Error in na fail default
  • Error in module unit 1 declaration of class tform1 is missing or incorrect
  • Error in modmanager beamng drive invalid zip file