Краткое описание: Настройка Netplan в Ubuntu Server 18.04. Настройка сети KVM, bonding, bridge. Группировка сетевых карт(LACP), балансировка нагрузки.
Поддержи автора статьи, просмотри рекламу ↓↓↓
Обзор сетевых настроек по умолчанию ifconfig
После успешного тестирования нового сервера под следующий шаг отводится настройка сети, а именно группировка сетевых интерфейсов(агрегирование каналов, балансировка нагрузки, bonding, LACP). На сервере имеются два сетевых интерфейса. Для их определения нужно воспользоваться командой :
ifconfig -a
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.57 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::224:81ff:fefa:a932 prefixlen 64 scopeid 0x20<link> ether 00:24:81:fa:a9:32 txqueuelen 1000 (Ethernet) RX packets 235 bytes 24015 (24.0 KB) RX errors 0 dropped 15 overruns 0 frame 0 TX packets 81 bytes 10434 (10.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 00:24:81:fa:a9:3e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 88 bytes 6488 (6.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 88 bytes 6488 (6.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Поддержи автора статьи, просмотри рекламу ↓↓↓
Линки от сетевых карт подключаются к разным свичам(для увеличения отказоустойчивости) и с этого момента нужно:
- инициализировать второй интерфейс(enp5s0);
- установить новый виртуальный интерфейс bond0 под управление модуля bonding.
Настройка Netplan, установка статического ip адреса в Ubuntu
Для исключения конфликтов по правам доступа запущен режим суперпользователя
sudo -i
По старой привычке использования Ubuntu Server 16.04 TLS был открыт файл
nano /etc/network/interfaces
имеющий записи
# ifupdown has been replaced by netplan(5) on this system. See # /etc/netplan for current configuration.
Как выяснилось, для определения сетевых настроек в Ubuntu Server 18.04 нужно настроить Netplan, утилита-приёмник Network Manager.
cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.backup nano /etc/netplan/50-cloud-init.yaml
Поддержи автора статьи, просмотри рекламу ↓↓↓
добавляется выделенный блок
network: ethernets: enp3s0: addresses: - 192.168.1.57/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 search: [] optional: true enp5s0: addresses: - 192.168.1.58/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 search: [] optional: true version: 2
Ctrl+O, Ctrl+X
Определение виртуального интерфейса bond0
nano /etc/netplan/bond0.yaml
network: bonds: bond0: addresses: [192.168.1.59/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4] interfaces: [enp3s0, enp5s0]
Ctrl+O, Ctrl+X
netplan apply
Поддержи автора статьи, просмотри рекламу ↓↓↓
Исполнение последней команды примет в работу все изменения и заодно протестирует конфигурации на наличие ошибок.
Тестирование балансировки нагрузки(bonding)
Команда ifconfig — a теперь содержит два физических(enp3s0 и enp5s0) и один виртуальный(bond0) интерфейсы
ifconfig -a
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 192.168.1.59 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::600e:f8ff:feea:e59b prefixlen 64 scopeid 0x20<link> ether 62:0e:f8:ea:e5:9b txqueuelen 1000 (Ethernet) RX packets 687879 bytes 153481174 (153.4 MB) RX errors 0 dropped 54537 overruns 0 frame 0 TX packets 42105 bytes 3154748 (3.1 MB) TX errors 0 dropped 3 overruns 0 carrier 0 collisions 0 enp3s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 inet 192.168.1.57 netmask 255.255.255.0 broadcast 192.168.1.255 ether 62:0e:f8:ea:e5:9b txqueuelen 1000 (Ethernet) RX packets 343650 bytes 76307974 (76.3 MB) RX errors 0 dropped 28247 overruns 0 frame 0 TX packets 21053 bytes 1574674 (1.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp5s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 inet 192.168.1.58 netmask 255.255.255.0 broadcast 192.168.1.255 ether 62:0e:f8:ea:e5:9b txqueuelen 1000 (Ethernet) RX packets 344229 bytes 77173200 (77.1 MB) RX errors 0 dropped 27265 overruns 0 frame 0 TX packets 21052 bytes 1580074 (1.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 289 bytes 24040 (24.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 289 bytes 24040 (24.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Поддержи автора статьи, просмотри рекламу ↓↓↓
Через виртуальный интерфейс будет пропущен основной трафик. Балансировка на примере команды ping отработает следующим образом.
Оба физических интерфейса доступны
Поддержи автора статьи, просмотри рекламу ↓↓↓
Когда один из физических интерфейсов в состоянии down
Поддержи автора статьи, просмотри рекламу ↓↓↓
Поведение системы в такой ситуации происходит по сценарию: сетевой трафик проходит через действующий сетевой интерфейс(enp5s0), несмотря на отключение смежного интерфейса(enp3s0). Сервер подготавливается под установки роли Гипервизора, поэтому данный этап будет иметь важный характер для сохранения отказоустойчивости.
Настройка bridge и bonding для KVM
Данный пример будет содержать общую конфигурацию в одном YAML-файл. Возвращаясь к заданию: имеется сервер с двумя сетевыми картами, на которые нужно»повесить» балансировку нагрузки, а также все это объединить в bridge, для работы гостевых ОС гипервизора KVM(статья по настройке KVM)
nano /etc/netplan/50-cloud-init.yaml
network: bridges: br0: addresses: - 192.168.1.59/24 dhcp4: no dhcp6: no gateway4: 192.168.1.1 nameservers: addresses: - 192.168.1.1 search: [] interfaces: - bond0 bonds: bond0: interfaces: - enp3s0 - enp5s0 ethernets: enp3s0: addresses: [192.168.1.57/24] dhcp4: no dhcp6: no enp5s0: addresses: [192.168.1.58/24] dhcp4: no dhcp6: no