Обзорная статья по установке Ubuntu Server 18.04 TLS
Обзор сетевых настроек по умолчанию ifconfig
После успешного тестирования нового сервера под следующий шаг отводится настройка сети, а именно группировка сетевых интерфейсов(агрегирование каналов, балансировка нагрузки, bonding, LACP). На сервере имеются два сетевых интерфейса. Для их определения нужно воспользоваться командой :
ifconfig -a
enp3s0: flags=4163 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
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 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 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
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
По старой привычке использования Ubuntu Server 16.04 TLS был открыт файл
sudo nano /etc/network/interfaces
имеющий записи
Как выяснилось, для определения сетевых настроек в 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:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
ens7:
dhcp4: false
addresses:
- 192.168.1.195/24
routes:
- to: default
via: 192.168.1.1
mtu: 1500
nameservers:
addresses:
- 8.8.8.8
- 77.88.8.8
search: [ lan1 ]
ens9:
dhcp4: false
addresses:
- 192.168.100.10/24
- 192.168.100.20/24
nameservers:
addresses:
- 8.8.8.8
- 77.88.8.8
search: [ lan2 ]
Ctrl+O, Ctrl+X
Важно! Сохранять правильно расставляемые пробелы, любое отклонение от правил может привести к некорректной работе…
Определение виртуального интерфейса bond0
nano /etc/netplan/bond0.yaml
network:
bonds:
bond0:
addresses: [192.168.1.59/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
interfaces: [enp3s0, enp5s0]
sudo netplan try
sudo netplan apply
Исполнение последней команды примет в работу все изменения и заодно протестирует конфигурации на наличие ошибок.
Тестирование балансировки нагрузки(bonding)
Команда ifconfig — a теперь содержит два физических(enp3s0 и enp5s0) и один виртуальный(bond0) интерфейсы
ifconfig -a
bond0: flags=5187 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
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 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 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 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
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 отработает следующим образом.
Оба физических интерфейса доступны
Поведение системы в такой ситуации происходит по сценарию: сетевой трафик проходит через действующий сетевой интерфейс(enp5s0), несмотря на отключение смежного интерфейса(enp3s0). Сервер подготавливается под установки роли Гипервизора, поэтому данный этап будет иметь важный характер для сохранения отказоустойчивости.
Данный пример будет содержать общую конфигурацию в одном YAML-файл. Возвращаясь к заданию: имеется сервер с двумя сетевыми картами, на которые нужно»повесить» балансировку нагрузки, а также все это объединить в bridge, для работы гостевых ОС гипервизора KVM(статья по настройке KVM)
nano /etc/netplan/50-cloud-init.yaml
network:
bridges:
br0:
addresses:
- 192.168.1.59/24
dhcp4: no
dhcp6: no
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 192.168.1.1
search: [lan]
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