Ubuntu 20.04 KVM, netplan с агрегацией, VLAN и мостами

Вопрос или проблема

Я готовлю миграцию сервера UBUNTU 16.04.7 с 5 сетевыми интерфейсами на 20.04.
Мой тестовый сервер имеет 4 сетевых интерфейса: 2 встроенных и 2 как Intel Pro NIC. Настроен в 00-installer-config.yaml. Первый интерфейс настроен как:

  version: 2
  renderer: networkd
  ethernets:
    enp65s0f0:
      addresses: [10.1.11.230/24]
      gateway4: 10.1.11.11
      nameservers:
        addresses: [10.1.11.11, 1.1.1.1]
    enp193s0f0:
      optional: true
    enp193s0f1:
      optional: true
    enp65s0f1:
      optional: true

Эта часть работает. Следующие 3 сетевых интерфейса будут объединены в bond0, с VLAN поверх и мостами:

  bonds:
    bond0:
      interfaces: [enp193s0f0, enp193s0f1, enp65s0f1]
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100
        min-links: 1
  vlans:
    vlan1:
      id: 1
      link: bond0
    vlan11:
      id: 11
      link: bond0
    vlan240:
      id: 240
      link: bond0
  bridges:
    br100:
      interfaces: [vlan1]
    br11:
      interfaces: [vlan11]
    br240:
      interfaces: [vlan240]

bond0 не работает. Я искал и пробовал всевозможные варианты с порядком интерфейсов, dhcp4: false, dhcp6: false, optional:true, используя только интерфейсы IntelPro для объединения. Я просмотрел ответы на этом и других форумах, но пока решения не нашел.

  • Что не так с моей конфигурацией? Что-то недостает?
  • Поддерживается ли архитектура, к которой я стремлюсь? Я хочу, чтобы мои KVM-гостевые системы использовали мост, чтобы они могли общаться друг с другом без необходимости в физическом коммутаторе и без настройки VLAN на гостях. Это прекрасно работало в Ub16.04.

Мой коммутатор – HP V1910-24G и имеет 4 других работающих магистральных соединения (LACP/802.3ad), с сервером Ub16.04 (4 NIC) и 3 QNAP NAS, каждый с двумя NIC.

Смотрите следующие выводы на моем Ubuntu 20.04 с указанной выше конфигурацией netplan:

networkctl list
IDX LINK       TYPE     OPERATIONAL SETUP     
  1 lo         loopback carrier     unmanaged 
  2 enp65s0f0  ether    routable    configured
  3 enp65s0f1  ether    enslaved    configured
  4 enp193s0f0 ether    enslaved    configured
  5 enp193s0f1 ether    enslaved    configured
  6 bond0      bond     degraded    configured
  7 br100      bridge   degraded    configured
  8 br11       bridge   degraded    configured
  9 br240      bridge   degraded    configured
 10 vlan.240   vlan     carrier     unmanaged 
 11 vlan.11    vlan     carrier     unmanaged 
 12 vlan.1     vlan     carrier     unmanaged 
 13 virbr0     bridge   no-carrier  unmanaged 
 14 virbr0-nic ether    off         unmanaged 
 17 vnet0      ether    degraded    unmanaged 

 ip link
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: enp65s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether d0:50:99:d4:bc:e3 brd ff:ff:ff:ff:ff:ff
3: enp65s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
4: enp193s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
5: enp193s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
7: br100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
8: br11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
9: br240: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
10: vlan.240@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br240 state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
11: vlan.11@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br11 state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
12: vlan.1@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br100 state UP mode DEFAULT group default qlen 1000
    link/ether 16:3d:9c:75:6b:c5 brd ff:ff:ff:ff:ff:ff
13: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:f4:49:5c brd ff:ff:ff:ff:ff:ff
14: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:f4:49:5c brd ff:ff:ff:ff:ff:ff
17: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br11 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether fe:54:00:d2:56:7d brd ff:ff:ff:ff:ff:ff

 netplan --debug apply
** (generate:11473): DEBUG: 13:54:31.627: Обработка входного файла /etc/netplan/00-installer-config.yaml..
** (generate:11473): DEBUG: 13:54:31.628: начинается новый процесс обработки
** (generate:11473): DEBUG: 13:54:31.628: У нас есть некоторые netdefs, пропустим их через окончательную проверку
** (generate:11473): DEBUG: 13:54:31.628: vlan240: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: bond0: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: br11: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: enp65s0f1: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: enp65s0f0: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: vlan11: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: enp193s0f1: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: br100: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: vlan1: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: enp193s0f0: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: br240: установка значения по умолчанию для бэкенда на 1
** (generate:11473): DEBUG: 13:54:31.628: Конфигурация корректна
** (generate:11473): DEBUG: 13:54:31.628: Генерация выходных файлов..
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение enp65s0f0 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение enp65s0f0 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение enp193s0f0 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение enp193s0f0 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение enp193s0f1 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение enp193s0f1 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение enp65s0f1 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение enp65s0f1 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение bond0 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение bond0 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение vlan1 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение vlan1 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение vlan11 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение vlan11 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение vlan240 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение vlan240 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение br100 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение br100 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение br11 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение br11 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: openvswitch: определение br240 нам не подходит (backend 1)
** (generate:11473): DEBUG: 13:54:31.629: NetworkManager: определение br240 нам не подходит (backend 1)
(generate:11473): GLib-DEBUG: 13:54:31.629: posix_spawn avoided (fd close requested) 
(generate:11473): GLib-DEBUG: 13:54:31.630: posix_spawn avoided (fd close requested) 
DEBUG:netplan сгенерировал изменение конфигурации networkd, перезапуск networkd
DEBUG:enp65s0f0 не найден в {}
DEBUG:enp193s0f0 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}}
DEBUG:enp193s0f1 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}, 'enp193s0f0': {'optional': True}}
DEBUG:enp65s0f1 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}, 'enp193s0f0': {'optional': True}, 'enp193s0f1': {'optional': True}}
DEBUG:br100 не найден в {}
DEBUG:br11 не найден в {'br100': {'interfaces': ['vlan1']}}
DEBUG:br240 не найден в {'br100': {'interfaces': ['vlan1']}, 'br11': {'interfaces': ['vlan11']}}
DEBUG:bond0 не найден в {}
DEBUG:vlan1 не найден в {}
DEBUG:vlan11 не найден в {'vlan1': {'id': 1, 'link': 'bond0'}}
DEBUG:vlan240 не найден в {'vlan1': {'id': 1, 'link': 'bond0'}, 'vlan11': {'id': 11, 'link': 'bond0'}}
DEBUG:Объединенная конфигурация:
network:
  bonds:
    bond0:
      interfaces:
      - enp193s0f0
      - enp193s0f1
      - enp65s0f1
      parameters:
        lacp-rate: fast
        mii-monitor-interval: 100
        min-links: 1
        mode: 802.3ad
  bridges:
    br100:
      interfaces:
      - vlan1
    br11:
      interfaces:
      - vlan11
    br240:
      interfaces:
      - vlan240
  ethernets:
    enp193s0f0:
      optional: true
    enp193s0f1:
      optional: true
    enp65s0f0:
      addresses:
      - 10.1.11.230/24
      gateway4: 10.1.11.11
      nameservers:
        addresses:
        - 10.1.11.11
        - 1.1.1.1
    enp65s0f1:
      optional: true
  ovs_ports: {}
  vlans:
    vlan1:
      id: 1
      link: bond0
    vlan11:
      id: 11
      link: bond0
    vlan240:
      id: 240
      link: bond0
  wifis: {}

DEBUG:Пропускаем не физический интерфейс: lo
DEBUG:статус устройства enp65s0f0 'up', не меняем
DEBUG:Пропускаем составной член enp65s0f1
DEBUG:Пропускаем составной член enp193s0f0
DEBUG:Пропускаем составной член enp193s0f1
DEBUG:Пропускаем не физический интерфейс: bond0
DEBUG:Пропускаем не физический интерфейс: br100
DEBUG:Пропускаем не физический интерфейс: br11
DEBUG:Пропускаем не физический интерфейс: br240
DEBUG:Пропускаем не физический интерфейс: vlan.240
DEBUG:Пропускаем не физический интерфейс: vlan.11
DEBUG:Пропускаем не физический интерфейс: vlan.1
DEBUG:Пропускаем не физический интерфейс: virbr0
DEBUG:Пропускаем не физический интерфейс: virbr0-nic
DEBUG:Пропускаем не физический интерфейс: vnet0
DEBUG:{}
DEBUG:netplan вызывает правила .link для lo
DEBUG:netplan вызывает правила .link для enp65s0f0
DEBUG:netplan вызывает правила .link для enp65s0f1
DEBUG:netplan вызывает правила .link для enp193s0f0
DEBUG:netplan вызывает правила .link для enp193s0f1
DEBUG:netplan вызывает правила .link для bond0
DEBUG:netplan вызывает правила .link для br100
DEBUG:netplan вызывает правила .link для br11
DEBUG:netplan вызывает правила .link для br240
DEBUG:netplan вызывает правила .link для vlan.240
DEBUG:netplan вызывает правила .link для vlan.11
DEBUG:netplan вызывает правила .link для vlan.1
DEBUG:netplan вызывает правила .link для virbr0
DEBUG:netplan вызывает правила .link для virbr0-nic
DEBUG:netplan вызывает правила .link для vnet0
DEBUG:enp65s0f0 не найден в {}
DEBUG:enp193s0f0 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}}
DEBUG:enp193s0f1 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}, 'enp193s0f0': {'optional': True}}
DEBUG:enp65s0f1 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}, 'enp193s0f0': {'optional': True}, 'enp193s0f1': {'optional': True}}
DEBUG:br100 не найден в {}
DEBUG:br11 не найден в {'br100': {'interfaces': ['vlan1']}}
DEBUG:br240 не найден в {'br100': {'interfaces': ['vlan1']}, 'br11': {'interfaces': ['vlan11']}}
DEBUG:bond0 не найден в {}
DEBUG:vlan1 не найден в {}
DEBUG:vlan11 не найден в {'vlan1': {'id': 1, 'link': 'bond0'}}
DEBUG:vlan240 не найден в {'vlan1': {'id': 1, 'link': 'bond0'}, 'vlan11': {'id': 11, 'link': 'bond0'}}
DEBUG:Объединенная конфигурация:
network:
  bonds:
    bond0:
      interfaces:
      - enp193s0f0
      - enp193s0f1
      - enp65s0f1
      parameters:
        lacp-rate: fast
        mii-monitor-interval: 100
        min-links: 1
        mode: 802.3ad
  bridges:
    br100:
      interfaces:
      - vlan1
    br11:
      interfaces:
      - vlan11
    br240:
      interfaces:
      - vlan240
  ethernets:
    enp193s0f0:
      optional: true
    enp193s0f1:
      optional: true
    enp65s0f0:
      addresses:
      - 10.1.11.230/24
      gateway4: 10.1.11.11
      nameservers:
        addresses:
        - 10.1.11.11
        - 1.1.1.1
    enp65s0f1:
      optional: true
  ovs_ports: {}
  vlans:
    vlan1:
      id: 1
      link: bond0
    vlan11:
      id: 11
      link: bond0
    vlan240:
      id: 240
      link: bond0
  wifis: {}

DEBUG:Пропускаем не физический интерфейс: lo
DEBUG:статус устройства enp65s0f0 'up', не меняем
DEBUG:Пропускаем составной член enp65s0f1
DEBUG:Пропускаем составной член enp193s0f0
DEBUG:Пропускаем составной член enp193s0f1
DEBUG:Пропускаем не физический интерфейс: bond0
DEBUG:Пропускаем не физический интерфейс: br100
DEBUG:Пропускаем не физический интерфейс: br11
DEBUG:Пропускаем не физический интерфейс: br240
DEBUG:Пропускаем не физический интерфейс: vlan.240
DEBUG:Пропускаем не физический интерфейс: vlan.11
DEBUG:Пропускаем не физический интерфейс: vlan.1
DEBUG:Пропускаем не физический интерфейс: virbr0
DEBUG:Пропускаем не физический интерфейс: virbr0-nic
DEBUG:Пропускаем не физический интерфейс: vnet0
DEBUG:{}
DEBUG:netplan вызывает правила .link для lo
DEBUG:netplan вызывает правила .link для enp65s0f0
DEBUG:netplan вызывает правила .link для enp65s0f1
DEBUG:netplan вызывает правила .link для enp193s0f0
DEBUG:netplan вызывает правила .link для enp193s0f1
DEBUG:netplan вызывает правила .link для bond0
DEBUG:netplan вызывает правила .link для br100
DEBUG:netplan вызывает правила .link для br11
DEBUG:netplan вызывает правила .link для br240
DEBUG:netplan вызывает правила .link для vlan.240
DEBUG:netplan вызывает правила .link для vlan.11
DEBUG:netplan вызывает правила .link для vlan.1
DEBUG:netplan вызывает правила .link для virbr0
DEBUG:netplan вызывает правила .link для virbr0-nic
DEBUG:netplan вызывает правила .link для vnet0
DEBUG:enp65s0f0 не найден в {}
DEBUG:enp193s0f0 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}}
DEBUG:enp193s0f1 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}, 'enp193s0f0': {'optional': True}}
DEBUG:enp65s0f1 не найден в {'enp65s0f0': {'addresses': ['10.1.11.230/24'], 'gateway4': '10.1.11.11', 'nameservers': {'addresses': ['10.1.11.11', '1.1.1.1']}}, 'enp193s0f0': {'optional': True}, 'enp193s0f1': {'optional': True}}
DEBUG:br100 не найден в {}
DEBUG:br11 не найден в {'br100': {'interfaces': ['vlan1']}}
DEBUG:br240 не найден в {'br100': {'interfaces': ['vlan1']}, 'br11': {'interfaces': ['vlan11']}}
DEBUG:bond0 не найден в {}
DEBUG:vlan1 не найден в {}
DEBUG:vlan11 не найден в {'vlan1': {'id': 1, 'link': 'bond0'}}
DEBUG:vlan240 не найден в {'vlan1': {'id': 1, 'link': 'bond0'}, 'vlan11': {'id': 11, 'link': 'bond0'}}
DEBUG:Объединенная конфигурация:
network:
  bonds:
    bond0:
      interfaces:
      - enp193s0f0
      - enp193s0f1
      - enp65s0f1
      parameters:
        lacp-rate: fast
        mii-monitor-interval: 100
        min-links: 1
        mode: 802.3ad
  bridges:
    br100:
      interfaces:
      - vlan1
    br11:
      interfaces:
      - vlan11
    br240:
      interfaces:
      - vlan240
  ethernets:
    enp193s0f0:
      optional: true
    enp193s0f1:
      optional: true
    enp65s0f0:
      addresses:
      - 10.1.11.230/24
      gateway4: 10.1.11.11
      nameservers:
        addresses:
        - 10.1.11.11
        - 1.1.1.1
    enp65s0f1:
      optional: true
  ovs_ports: {}
  vlans:
    vlan1:
      id: 1
      link: bond0
    vlan11:
      id: 11
      link: bond0
    vlan240:
      id: 240
      link: bond0
  wifis: {}

Я на исходе своих возможностей и готов удалить cloud-init/netplan и вернуть обратно к рабочей конфигурации, которую я имел в 16.04.
Спасибо, что прочитали до этого момента.

Фрэнк

Я думаю, ваши VLAN названы неправильно, они должны содержать имя интерфейса

  vlans:
    bond0.1:
      id: 1
      link: bond0
      ...

И я предполагаю, вы удалили адреса/dhcp специально из примера.

Обновление – извините, я сам себя запутал. Вам нужно указать номер VLAN в именах мостов, это именно то, что работает для меня (это виртуальный мост для внутренней связи, интерфейсы не подключены)

network:
  bridges:
    maasbr0:
      addresses: [ 10.244.40.1/21, ]
  vlans:
    maasbr0.2678:
      link: maasbr0
      id: 2678
      addresses: [ 10.244.8.1/24 ]
    maasbr0.2733:
      link: maasbr0
      id: 2733
      addresses: [ 192.168.33.1/25 ]
    maasbr0.2734:
      link: maasbr0
      id: 2734
      addresses: [ 10.244.32.1/21 ]
    maasbr0.2735:
      link: maasbr0
      id: 2735
      addresses: [ 192.168.35.1/26 ]
    maasbr0.2736:
      link: maasbr0
      id: 2736
      addresses: [ 192.168.36.1/26 ]

Ответ или решение

Настройка объединения, VLAN и мостов в Ubuntu 20.04 с использованием Netplan

Ваша задача состоит в том, чтобы перенести сервер с Ubuntu 16.04 на 20.04, используя связку сетевых интерфейсов (bonding), VLAN и мосты для работы с KVM-гостями. Давайте разберём вашу текущую конфигурацию и выявим ошибки.

Анализ проблемы

Ваша текущая конфигурация отображает неудачную попытку настроить объединённый интерфейс bond0, который на данный момент находится в состоянии "degraded". Это означает, что система не может правильно обработать bonding, что вызывает проблемы с VLAN и мостами.

  1. Соответствие VLAN и мостов: Вы используете обычные имена для VLAN-ов, такие как vlan1, vlan11 и vlan240. В некоторых случаях для упрощения настройки имеет смысл добавить в название VLAN ссылку на интерфейс, который он использует, например, bond0.1, bond0.11, и так далее. Это позволяет системе лучше идентифицировать конфигурацию и облегчить трафик.

  2. Атрибуты интерфейсов: Убедитесь, что атрибуты optional: true установлены для интерфейсов, которые не являются основными. Это важно, чтобы система загружалась, даже если некоторые интерфейсы временно недоступны при старте.

  3. Интерфейсы мостов: Мосты должны связываться непосредственно с VLAN, эти связи должны быть четко определены в конфигурации. Например, мост br100 может быть связан с интерфейсом vlan1, но в вашем случае это может быть неправильно указано.

Рекомендованная конфигурация

Вот пример того, как ваша конфигурация может выглядеть:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp65s0f0:
      addresses: [10.1.11.230/24]
      gateway4: 10.1.11.11
      nameservers:
        addresses: [10.1.11.11, 1.1.1.1]
    enp193s0f0:
      optional: true
    enp193s0f1:
      optional: true
    enp65s0f1:
      optional: true
  bonds:
    bond0:
      interfaces: [enp193s0f0, enp193s0f1, enp65s0f1]
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100
        min-links: 1
  vlans:
    bond0.1:
      id: 1
      link: bond0
    bond0.11:
      id: 11
      link: bond0
    bond0.240:
      id: 240
      link: bond0
  bridges:
    br100:
      interfaces: [bond0.1]
    br11:
      interfaces: [bond0.11]
    br240:
      interfaces: [bond0.240]

Проверка и отладка

После внесения изменений в конфигурацию выполните команду для её применения:

sudo netplan apply

Затем проверьте состояние ваших сетевых интерфейсов с помощью:

networkctl list
ip link

Обратите внимание на состояние bond0, мостов и VLAN. Если они все находятся в состоянии "UP", переходите к тестированию сетевого взаимодействия.

Заключение

Вы правильно выбрали архитектуру с использованием bonded интерфейсов и VLAN для изоляции трафика между KVM-гостями. Однако ошибки в конфигурации не позволили вам достичь цели. Предложенные исправления должны помочь устранить проблемы, позволяя вам настроить необходимую сетевую связь так же, как это было на Ubuntu 16.04.

Убедитесь, что использование объединенного интерфейса и VLAN поддерживается в вашей инфраструктуре сети, особенно если вы используете коммутаторы, которые требуют специфической конфигурации LACP.

Если у вас останутся вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться за поддержкой!

Оцените материал
Добавить комментарий

Капча загружается...