| Получение адресов на сетевых интерфейсах по DHCP недопустимо! |
Сетевые настройки необходимо выполнять с помощью netplan.
Затем netplan преобразует, написанную нами конфигурацию, в вид понятный для systemd-network.
По умолчанию в Ubuntu 18.X для управления сетевыми настройками используется сервис networking.
Его нужно отключить:
sudo systemctl disable networking.service |
Конфигурационный файл /etc/network/interfaces необходимо удалить:
sudo rm /etc/network/interfaces |
Предположим, что система имеет следующие сетевые интерфейсы, которые требуется объединить в модуль bonding:
sasha@ecss1:~$ lshw -c network
WARNING: you should run this program as super-user.
*-network
description: Ethernet interface
product: 82566DM-2 Gigabit Network Connection
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: enp0s25
version: 02
serial: e6:ba:27:44:78:35
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=1.3-0 latency=0 link=yes multicast=yes port=twisted pair slave=yes speed=1Gbit/s
resources: irq:24 memory:fe940000-fe95ffff memory:fe979000-fe979fff ioport:bc00(size=32)
*-network
description: Ethernet interface
product: DGE-530T Gigabit Ethernet Adapter (rev 11)
vendor: D-Link System Inc
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 11
serial: e6:ba:27:44:78:35
capacity: 1Gbit/s
width: 32 bits
clock: 66MHz
capabilities: bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=skge driverversion=1.14 latency=64 link=no maxlatency=31 mingnt=23 multicast=yes port=twisted pair slave=yes
resources: irq:16 memory:febfc000-febfffff ioport:e800(size=256) memory:febc0000-febdffff |
Настройка bonding-интерфейса состоит из следующих этапов:
Для того чтобы определить bond-интерфейс в системе, необходимо создать следующий конфигурационный файл:
/etc/netplan/ecss.netplan Внести в него свои параметры сети: |
# netplan for ecss1 biysk-work
network:
version: 2
renderer: networkd
ethernets:
enp0s25: # Intel 82566DM-2 Gigabit Network Connection (MB)
dhcp4: no
enp3s0: # D-Link DGE-530T Gigabit Ethernet Adapter (rev 11) PCI
dhcp4: no
bonds:
bond1:
interfaces:
- enp0s25
- enp3s0
parameters:
mode: active-backup
mii-monitor-interval: 100
primary: enp0s25
optional: false
vlans:
bond1.2: # Voip internal vlan 2
id: 2
link: bond1
addresses: [192.168.2.21/24]
bond1.3: # mgm internal vlan 3
id: 3
link: bond1
addresses: [192.168.1.21/24]
gateway4: 192.168.1.203
nameservers:
addresses: [192.168.1.203]
bond1.476:
id: 476 # mgm techology net vlan 476
link: bond1
addresses: [10.16.33.5/24]
routes:
- to: 10.16.0.0/16
via: 10.16.33.254
on-link: true
- to: 10.136.16.0/24
via: 10.16.33.254
on-link: true
|
| В качестве имени интерфейса нельзя использовать bond0. |
Доменное имя хоста ecss1 должно резолвиться в адрес 127.0.1.1. Также нужно прописать адрес хоста ecss2. Для этого в файле /etc/hosts необходимо прописать:
127.0.0.1 ecss1 127.0.1.1 ecss1 192.168.1.22 ecss2 |
Для ecss2 тоже:
127.0.0.1 ecss2 127.0.1.1 ecss2 192.168.1.21 ecss1 |
Netplan обеспечивает хранение параметров в формате YAML и предоставляет бэкенды, абстрагирующие доступ к конфигурации для NetworkManager и systemd-networkd.
Конфигурация может происходить в /{etc|run|lib}/netplan/*.yaml.
Netplan подгружает все данные файлы и применяет их.
Команды для управления netplan:
Для конфигурации netplan применяется yaml - формат сериализации данных. Ниже приведен пример автоматической настройки сетевых интерфейсов.
| Очень важно соблюдать табуляцию и не смешивать табуляцию и пробелы |
Пример конфигурации:
# /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp3s0:
addresses: []
dhcp4: true
optional: true |
В начале идёт секция network, с которой начинается конфигурация. Далее следует указать version, который объявляет версию yaml, на котором представлена конфигурация.
renderer - указывает netplan в какой backend транслировать, доступные: networkd (systemd-network) и NetworkdManager (Network Manager)
После определения какой backend использовать, идёт поле ethernets, которое декларирует физические проводные интерфейсы, в нём определяются сетевые интерфейсы, которые реально подключены, например, enp3s0. Для данного интерфейса указывается список статических адресов addresses, включается dhcp4 для dhcp клиента IPv4, а также optional, что означает следующее: Данный интерфейс не обязателен для загрузки системы. Поле optional: по умолчанию false, поддерживается только networkd.
network:
version: 2
ethernets:
id0:
match:
macaddress: 00:11:22:33:44:55
wakeonlan: true
dhcp4: true
addresses:
- 192.168.14.2/24
- 2001:1::1/64
gateway4: 192.168.14.1
gateway6: 2001:1::2
nameservers:
search: [foo.local, bar.local]
addresses: [8.8.8.8]
lom:
match:
driver: ixgbe
set-name: lom1
dhcp6: true
switchports:
match:
name: enp2*
mtu: 1280
wifis:
all-wlans:
match: {}
access-points:
"Joe's home":
password: "s3kr1t"
wlp1s0:
access-points:
"guest":
mode: ap
channel: 11
bridges:
br0:
interfaces: [wlp1s0, switchports]
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 11.0.0.1
metric: 3 vlans:
vlan10: |
Настройка бондов, агрегирование физических каналов, в логический происходит следующим образом:
bonds:
bond0:
interfaces: [enp1s0f0, en01s0f1]
addresses: [10.110.1.253/24]
gateway4: 10.1.1.1
parameters:
mode: 802.3ad
nameservers:
addresses: [10.110.10.22] |
Основные параметры это:
network:
version: 2
renderer: networkd
ethernets:
enp0s3
dhcp4: no
enp0s8:
dhcp4: no
bonds:
bond-ssw:
dhcp4: yes
interfaces:
- enp0s3
- enp0s8
parameters:
mode: 802.3ad
optional: true
|
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
|
Настройка виртуальных интерфейсов мало чем отличается от настройки физического
vlans:
vdev:
id: 101
link: net1
addresses:
- 10.0.1.10/24
vprod:
id: 102
link: net2
addresses:
- 10.0.2.10/24
vtest:
id: 103
link: net3
addresses:
- 10.0.3.10/24
vmgmt:
id: 104
link: net4
addresses:
- 10.0.4.10/24
|
Для определения vlan служит секция `vlans`, в ней определяются имена новых vlan'ов. У vlan есть 2 обязательных аргумента: `id` и `link`.
|