Вопрос или проблема
Я установил Ubuntu 18.04, я пытаюсь настроить интерфейс bond
network:
bonds:
bond0:
addresses: [10.11.6.119/24]
gateway4: 10.11.6.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
interfaces:
- ens192
- ens160
parameters:
lacp-rate: fast
mode: 802.3ad
transmit-hash-policy: layer2
ethernets:
ens160:
addresses: []
dhcp4: false
dhcp6: false
ens192:
addresses: []
dhcp4: false
dhcp6: false
version: 2
Я вижу следующую ошибку после применения настроек
root@admin:~# netplan apply
Ошибка в определении сети /etc/netplan/50-cloud-init.yaml строка 8 колонка 13: bond0: интерфейс ens192 не определен
Но ens192 существует:
root@admin:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:50:56:94:b5:21 brd ff:ff:ff:ff:ff:ff
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:50:56:94:c0:d2 brd ff:ff:ff:ff:ff:ff
Пожалуйста, скажите мне, что я делаю неправильно. Я новичок.
Комментарии не позволяют мне хорошо форматировать это, поэтому я представляю это как предварительный ответ. Я сдвинул (переместил вправо) две строки с названиями интерфейсов. Также, я думаю, что последняя строка version: 2
должна быть с отступом.
network:
bonds:
bond0:
addresses: [10.11.6.119/24]
gateway4: 10.11.6.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
interfaces:
- ens192 <--- изменено
- ens160 <--- изменено
parameters:
lacp-rate: fast
mode: 802.3ad
transmit-hash-policy: layer2
ethernets:
ens160:
addresses: []
dhcp4: false
dhcp6: false
ens192:
addresses: []
dhcp4: false
dhcp6: false
version: 2 <--- изменено
Ваш файл Netplan YAML настроен неправильно. Блоки bonds
и ethernets
должны быть на одном уровне.
Также я не вижу тега renderer
в вашем файле. Вы не указываете, является ли ваша система серверной или настольной установкой. Если это серверная установка, то вы добавите renderer: networkd
как показано ниже. В противном случае, если это настольная установка, вы измените строку на renderer: NetworkManager
.
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: false
dhcp6: false
ens192:
dhcp4: false
dhcp6: false
bonds:
bond0:
addresses: [10.11.6.119/24]
nameservers:
addresses: [8.8.8.8,8.8.4.4]
gateway4: 10.11.6.1
interfaces:
- ens160
- ens192
parameters:
lacp-rate: fast
mode: 802.3ad
transmit-hash-policy: layer2
ПРИМЕЧАНИЕ В Ubuntu 18.04
gateway4
все еще правильный. Но в более поздних версиях Ubuntugateway4
устарел, поэтому вам нужно использоватьroutes
вместо этого. См. Конфигурация Netplan YAML для получения информации.
После настройки примените изменения:
sudo netplan try
Кроме того, вам нужно установить драйвер объединения:
sudo modprobe bonding
Проверьте установку драйвера:
sudo lsmod | grep bonding
Введите следующее, чтобы загрузить драйвер автоматически при загрузке:
echo 'bonding' | sudo tee -a /etc/modules
Ответ или решение
Ошибка настройки интерфейса bond0 на Ubuntu 18.04
При конфигурации объединенного интерфейса (bonding) в Ubuntu 18.04 вы столкнулись с ошибкой: Error in network definition /etc/netplan/50-cloud-init.yaml line 8 column 13: bond0: interface ens192 is not defined
. Давайте рассмотрим возможные причины данной ошибки и пути их устранения.
1. Неправильная структура YAML файла
Основная проблема заключается в неправильной структуре файла /etc/netplan/50-cloud-init.yaml
. В YAML очень важна правильная индентация, так как она определяет иерархию данных. В вашем случае блоки bonds
и ethernets
должны находиться на одном уровне. Исправленный вариант конфигурации будет выглядеть следующим образом:
network:
version: 2
renderer: networkd # Для серверной установки
ethernets:
ens160:
dhcp4: false
dhcp6: false
ens192:
dhcp4: false
dhcp6: false
bonds:
bond0:
addresses: [10.11.6.119/24]
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
gateway4: 10.11.6.1
interfaces:
- ens160
- ens192
parameters:
lacp-rate: fast
mode: 802.3ad
transmit-hash-policy: layer2
2. Убедитесь, что интерфейсы определены
Вы уже подтвердили, что интерфейсы ens160
и ens192
существуют, используя команду ip link show
. Тем не менее, если вы будете вносить изменения в конфигурацию сети, убедитесь, что интерфейсы действительно находятся в состоянии UP
.
3. Рендерер сети
Если вы используете серверную установку, добавьте строчку renderer: networkd
. Если это десктопная версия, используйте renderer: NetworkManager
. Это важно для правильного функционирования Netplan.
4. Применение изменений
После внесения изменений в конфигурационный файл, примените настройки:
sudo netplan try
Это позволит вам протестировать изменения, не теряя доступ к сети в случае ошибки. Если все работает корректно, примените настройки окончательно:
sudo netplan apply
5. Установка модуля для объединения интерфейсов
Для работы объединенного интерфейса необходимо убедиться, что модуль bonding
загружен. Введите следующую команду:
sudo modprobe bonding
Проверьте, загружен ли он:
sudo lsmod | grep bonding
Чтобы модуль загружался при старте системы, добавьте его в файл /etc/modules
:
echo 'bonding' | sudo tee -a /etc/modules
Заключение
Следуя этим рекомендациям, вы сможете исправить возникшую проблему с конфигурацией объединённого интерфейса в Ubuntu 18.04. Важно следить за корректностью структуры файлы YAML и правильно использовать команды для применений изменений. Если ошибки продолжат возникать, проверьте системные журналы (например, с помощью journalctl -xe
), чтобы получить дополнительную информацию о возможных проблемах с сетью.