Назад | Перейти на главную страницу

Подключение контейнеров LXD к VLAN

Я пытался сделать что-то, что должно было быть довольно простым, но по какой-то причине это не сработало.

Я хочу соединить два контейнера LXD с одной и той же VLAN.

Для этого я создаю интерфейс VLAN поверх физического, а затем назначаю его тому же виртуальному мосту, который используется контейнером LXD.

Это сценарий, который я использую для создания интерфейса и моста.

#!/usr/bin/env bash

sudo ip link add link $1 name $1.$2 type vlan id $2
sudo ifconfig $1.$2 $3 # this is useless I think

sudo ip link add vnet$2 type bridge

sudo ip link set vnet$2 up
sudo ip link set $1.$2 up

sudo ip link set dev $1.$2 master vnet$2

read -n 1 -s -r -p "Press any key to destroy..."

sudo ip link del vnet$2
sudo ip link del $1.$2

И это профиль, используемый контейнерами

lxc profile show vlan
config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: vnet2
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: vlan
used_by:
- /1.0/containers/lxd1

Я назначаю два IP-адреса в одной подсети для двух контейнеров, но если я попытаюсь выполнить ping с помощью tcpdump, я вижу, что один из двух хостов получает запросы ARP и отправляет ответы, а другой не получает ответы.

Любое предложение?

Это изображение представляет мою испытательную площадку

   +-------------------------+                 +-------------------------+
   |      Host1              |                 |     Host2               |
   |-------------------------|                 |-------------------------|
   |                         |                 |                         |
   |   +---------+       +----------+   +----------+    +----------+     |
   |   |  ens2.2 +------->   |ens2  <---+ ens2 |   <----+ ens2.2   |     |
   |   +----^----+       +----------+   +----------+    +------^---+     |
   |        |                |                 |               |         |
   |   +----+----+           |                 |        +------+---+     |
   |   | vnet2   |           |                 |        | vnet2    |     |
   |   +---^-----+           |                 |        +------^---+     |
   |       |                 |                 |               |         |
   |       |                 |                 |               |         |
   | +-----+-------------+   |                 |  +------------+-----+   |
   | |  LXD Container    |   |                 |  |  LXD Container   |   |
   | +-------------------+   |                 |  +------------------+   |
   |                         |                 |                         |
   +-------------------------+                 +-------------------------+

На самом деле конфигурация LXD и моста была в порядке, по какой-то причине коммутатор не мог управлять VLAN