Сконфигурируйте связанную сеть 802.3ad, используя netplan в Ubuntu 18.04
Я сталкиваюсь с некоторыми проблемами при настройке netplan на сервере Ubuntu 18.04, чтобы связать мои четыре аппаратных порта Ethernet с именем eno1, eno2, eno3, eno4
используя протокол 802.3ad. Я сверился с man-страницей netplan и собрал следующий конфигурационный файл /etc/netplan/50-cloud-init.yaml
:
network:
version: 2
renderer: networkd
ethernets:
eports:
match:
name: eno*
bonds:
bond0:
interfaces: [eports]
addresses: [192.168.1.101/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
После запуска команды sudo netplan --debug apply
Я получаю следующую информацию:
** (generate:6473): DEBUG: 00:39:14.911: Processing input file //etc/netplan/50-cloud-init.yaml..
** (generate:6473): DEBUG: 00:39:14.911: starting new processing pass
** (generate:6473): DEBUG: 00:39:14.911: eports: setting default backend to 1
** (generate:6473): DEBUG: 00:39:14.911: bond0: setting default backend to 1
** (generate:6473): DEBUG: 00:39:14.912: Generating output files..
** (generate:6473): DEBUG: 00:39:14.912: NetworkManager: definition eports is not for us (backend 1)
** (generate:6473): DEBUG: 00:39:14.912: NetworkManager: definition bond0 is not for us (backend 1)
DEBUG:netplan generated networkd configuration exists, restarting networkd
DEBUG:no netplan generated NM configuration exists
DEBUG:device eno2 operstate is up, not replugging
DEBUG:netplan triggering .link rules for eno2
DEBUG:device lo operstate is unknown, not replugging
DEBUG:netplan triggering .link rules for lo
DEBUG:replug eno3: unbinding 0000:03:00.0 from /sys/bus/pci/drivers/igb
DEBUG:replug eno3: rebinding 0000:03:00.0 to /sys/bus/pci/drivers/igb
DEBUG:replug eno1: unbinding 0000:01:00.0 from /sys/bus/pci/drivers/igb
DEBUG:replug eno1: rebinding 0000:01:00.0 to /sys/bus/pci/drivers/igb
DEBUG:Cannot replug bond0: cannot read link /sys/class/net/bond0/device: [Errno 2] No such file or directory: '/sys/class/net/bond0/device'
DEBUG:netplan triggering .link rules for bond0
DEBUG:replug eno4: unbinding 0000:04:00.0 from /sys/bus/pci/drivers/igb
DEBUG:replug eno4: rebinding 0000:04:00.0 to /sys/bus/pci/drivers/igb
Я не уверен, что делать с заявлением
Cannot replug bond0: cannot read link /sys/class/net/bond0/device: [Errno 2] No such file or directory: '/sys/class/net/bond0/device'
так как каталог /sys/class/net/bond0
был создан netplan apply
команда.
Я проверил мой ifconfig
вывод и мои сетевые устройства настроены правильно, за исключением того, что для bond0
:
bond0: flags=5123<UP,BROADCAST,MASTER,MULTICAST> mtu 1500
ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 112768 bytes 7785014 (7.7 MB)
RX errors 0 dropped 54 overruns 0 frame 0
TX packets 18854 bytes 2337896 (2.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 290 bytes 19322 (19.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 55 bytes 6820 (6.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xdf400000-df47ffff
eno2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 73991 bytes 29824155 (29.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20848 bytes 2110417 (2.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xdf300000-df37ffff
eno3: flags=6147<UP,BROADCAST,SLAVE,MULTICAST> mtu 1500
ether XX:XX:XX:XX:XX:XX 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
device memory 0xdf200000-df27ffff
eno4: flags=6147<UP,BROADCAST,SLAVE,MULTICAST> mtu 1500
ether XX:XX:XX:XX:XX:XX 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
device memory 0xdf100000-df17ffff
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 2923 bytes 184477 (184.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2923 bytes 184477 (184.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ether XX:XX:XX:XX:XX:XX
операторы вместо mac-адреса каждого интерфейса. В исходном выводе все адреса одинаковы.
Чего мне не хватает, чтобы успешно настроить мою систему?
1 ответ
После некоторых копаний я обнаружил, что Ubuntu 18.04 использует утилиту под названием cloud-init
для обработки конфигурации и инициализации сети во время загрузки. Файл /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg
и другие .cfg
файлы используются для перенастройки cloud-init
Настройки. Мои настройки файла конфигурации следующие:
network:
version: 2
ethernets:
eports:
match:
name: eno*
optional: true
bonds:
bond0:
interfaces: [eports]
addresses: [192.168.1.101/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
optional: true
Этот параметр предотвращает ожидание действительного сетевого подключения во время загрузки, что избавит вас от необходимости ждать 2 минуты, пока ваша машина загрузится. После обновления файла конфигурации выполните следующую команду, чтобы обновить конфигурацию.
cloud-init clean -reboot
В качестве альтернативы запуск следующего позволяет получить некоторую отладочную информацию без перезагрузки вашего компьютера; однако для фиксации изменений на ранних этапах загрузки потребуется перезагрузка.
cloud-init clean
cloud-init init
cloud-init status
Сайт netplan.io, кажется, указывает, что cloud-init - это одна из нескольких утилит, настроенных netplan. Проблема с netplan может заключаться в том, что вам нужно указать dhcp4 = false, когда вы указываете физические интерфейсы для последующего соединения. Если вы этого не сделаете, адреса могут быть подключены к отдельным интерфейсам через DHCP, прежде чем они будут связаны. Таким образом, во время соединения возникают конфликты с существующей логикой IP.
Я подозреваю, что ваш cloud-init (ранее в последовательности загрузки?) Обходной путь может работать, связывая интерфейсы до того, как произойдет процесс DHCP. Или с помощью последовательности clean/init сбрасывает адрес DHCP, а затем связывается до повторного применения процесса DHCP. Однако это может означать, что обходной путь может перестать работать, если сопровождающие вносят даже незначительные изменения в логику / последовательность загрузки.