Настройка сети в Ubuntu Server 18.04 [Netplan]

В этой статье мы узнаем, что такое Netplan и разберемся, как настроить сеть на Ubuntu Server 18.04 через файл конфигурации. Рассмотрим три варианта конфигураций: получение настроек по DHCP, указание статического IP-адреса и конфигурацию для двух сетевых интерфейсов.


Настраивать сеть будем c помощью утилиты Netplan. [Netplan - впервые появилась в Ubuntu 17.10 для облегчения управления сетевыми настройками. Netplan хранит параметры сетевых интерфейсов в формате YAML, конфигурация в формате YAML в свою очередь поддерживается  сетевыми рендерами NetworkManager и systemd-networkd, нам предоставляется возможность выбрать, какой из рендеров использовать в качестве основного сетевого демона системы.]

Приступим!

Для того чтобы посмотреть все сетевые интерфейсы введите команду ifconfig -a.(Рис.1)

ifconfig -a
Просматриваем все сетевые интерфейсы.
Рис.1 - Просматриваем все сетевые интерфейсы.

Видим интерфейс "ens160" с IP-адресом - 192.168.3.16. Если у вас другое название интерфейса, то в конфигурациях не забудьте поменять его.

Прописывать конфигурацию интерфейсов будем в файле /etc/netplan/50-cloud-init.yaml, с помощью редактора nano, я так понимаю файл может называться по разному у разных пользователей [К примеру 01-netcfg.yaml], но сразу же после установки файл с расширением .yaml в этой папке один. Поэтому для того чтобы приступить к редактированию файла лучше воспользоваться универсальной командой.(Рис.2)

sudo nano /etc/netplan/*.yaml
Приступаем к редактированию файла *.yaml
Рис.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

Для начала разберемся какие самые распространенные параметры в этом файле могут быть.

network:

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]

version: 2


Настройка сети на Ubuntu Server 18.04

Настройка динамического IP-адреса [по DHCP]

Так как при установке мы получили IP-адрес по DHCP, следовательно конфигурация рабочая.(Рис.3)

Конфигурация для получения IP-адреса по DHCP:

network:
  ethernets:
    ens160:
      addresses: []
      dhcp4: true
  version: 2
Конфигурация для получения IP-адреса по DHCP.
Рис.3 - Конфигурация для получения IP-адреса по DHCP.

Настройка статического IP-адреса [Указание настроек вручную]

Конфигурация для указания настроек сети вручную.(Рис.4)

network:
  renderer: networkd
  ethernets:
    ens160:
      addresses: [192.168.3.13/24]
      gateway4: 192.168.3.1
      dhcp4: no
      dhcp6: no
      nameservers:
       addresses: [8.8.8.8,8.8.4.4]
  version: 2
Конфигурация для указания настроек сети вручную.
Рис.4 - Конфигурация для указания настроек сети вручную.

Пример конфигурации для двух интерфейсов

Конфигурация для указания настроек сети для двух интерфейсов "ens160" и "ens192".(Рис.5)

network:
    renderer: networkd
    ethernets:
        ens160:
            addresses: []
            dhcp4: true
        ens192:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.1.220/24]
            gateway4: 192.168.1.1
            nameservers:
             addresses: [8.8.8.8,8.8.4.4]
    version: 2
Пример конфигурации двух интерфейсов.
Рис.5 - Пример конфигурации двух интерфейсов.

Применение изменений в конфигурации сети и проверка

Я для себя выбрал конфигурацию - "Настройка статического IP-адреса [Указание настроек вручную]"

Проверим конфигурацию на наличие ошибок и применим изменения.(Рис.6)

sudo netplan try

Если ошибок нет, то вы получите сообщение: "Вы хотите сохранить эти настройки?" Нажмите ENTER. 

Проверяем конфигурацию на ошибки. Применяем конфигурацию.
Рис.6 - Проверяем конфигурацию на ошибки. Применяем конфигурацию.

Лично у меня настройки применились в 2/3 случаев сразу же после ввода "sudo netplan try" на всякий случай введём команду специально предназначенную для применения изменений сделанных в файле конфигурации(Рис.7):

sudo netplan apply

Проверим вступили ли изменения в силу:

ifconfig
Применяем изменения и проверяем вступили ли они в силу.
Рис.7 - Применяем изменения и проверяем вступили ли они в силу.

Проверим доступен ли внешний ресурс.(Рис.8)

ping itdeer.ru
Проверяем доступен ли внешний ресурс
Рис.8 - Проверяем доступен ли внешний ресурс.

Всё отлично IP-адрес поменялся, сеть настроена, доступ в интернет есть!


Для более подробной настройки сети через Netplan читайте man.(Рис.9)

man netplan
Команда для открытия man Netplana.
Рис.9 - Команда для открытия man Netplana.

Ещё раз повторюсь!

ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ! В конфигурациях представленных в этой статье количество пробелов правильное, считайте или копируйте:)

Если вы поставите отступы клавишей "TAB", то на этапе проверки конфигурации на ошибки, вылезет ошибка - "Error while loading /etc/netplan/50-cloud-init.yaml, aborting./Ошибка при загрузке".

Если же вы решите написать всё в столбик без отступов, получите ошибку - "An error occured: the configuration could not be generated/Произошла ошибка: конфигурация не может быть сгенерирована".

Поделиться публикацией

Была ли вам полезна статья? Есть возможность поддержать проект.

15
Комментарии

avatar
4 Количество основных комментариев
11 Количество ответов
3 Подписчики комментариев
 
Комментарий с большинством ответов
Горячая тема
6 Количество авторов комментариев
adamstIvanfirst deer Последние авторы комментариев
  Подписаться на комментарии  
Сначала новые Сначала старые По рейтингу
Уведомление о
Участник
Dimitry Donchenko

На последних этапах, после изменения настроек, прописал ping itdeer.ru выдалo: ping: itdeer.ru Temporary failure in name resolution.. Что делать?

Участник
Dimitry Donchenko

от роутера. ping 8.8.8.8: PING 8.8.8.8 56(84) bytes of data, FROM 192.168.1.160 icmp_seq=1 Destination host unreachable Когда отменил, скзало что 100% пакетов потеряно. 50-cloud-init.yaml: network: renderer: networkd ethernets: enp1s0: addresses: [192.168.1.160/24] gateway4: 192.168.1.10 dhcp4: no (но в роутере он ключен) dhcp6: no nameservers: addresses: [8.8.8.8,8.8.4.4] version: 2 когда ввожу ifconfig… Читать далее »

Участник
Dimitry Donchenko

Прошу прощения.. Не правильно понял, что такое gateway4.. вводил не то, а потом по тому что у вас 3.1 понял что это роутер)) Все работает. Спасибо)
С DHCP все хорошо, без него уже работает)

Участник
Алексей

У меня 2 сетевых
1. доступ в интернет *.*.82.35
2. локальная сеть *.*.57.1
проблема не пускает в интернет Temporary failure in name resolution
пингую dns
From *.*.57.1 icmp_seq=7 Destination Net Unreachable
ТОбишь он шлет пакеты во вторую сеть.
в конфиге enp1s0: *.*.82.35 nameservers: 8.8.8.8 - рабочие днс, проверено
enp3s0: *.*.57.1
ПОМОГИТЕ!!!

Участник
Алексей

Дополняю.. ранее создавал два файла *.ymal работало, но переодически пропадал интернет. Вопрос какая сеть должна идти первая в настройках? или без разницы..!! ВОТ ifconfig -a enp1s0: flags=4163 mtu 1500 inet *.*.82.35 netmask 255.255.255.0 broadcast 10.152.82.255 inet6 fe80::214:5eff:fe6b:adf4 prefixlen 64 scopeid 0x20 ether 00:14:5e:6b:ad:f4 txqueuelen 1000 (Ethernet) RX packets 7314 bytes… Читать далее »

Гость
Анатолий

Такая же ошибка... при двух интерфейсах только пропадает интернет+у меня виртуалка

Гость
Анатолий

А можно по вотсап с тобой связаться?

Участник
Анатолий

Только скажи можно по вотсап?просто я бы скрины скину так было бы удобнее.

Ivan
Гость
Ivan

Добрый день.
Только начал разбираться с ubuntu. Нужна помощь:
на ПК установлено 2 сетевые карты, первая смотрит в сеть 192.168.1.0.24 и имеет IP 192.168.1.5, вторая смотрит в сеть 172.31.0.0/16 и имеет IP 172.31.0.108, как прописать маршруты в netplan, чтобы машины разных подсетей видели друг друга?

adamst
Гость
adamst

лютая херня! пока въедешь что нужно два пробела ставить на каждую следующую строчку следующего раздела, ошибаться в символе нельзя, потом много моментов. Хотя наверно в целом неплохая штука, упращаяет администрирование все в одном месте.... но я замучался....