Соединение контейнеров 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-адреса в одной подсети для двух контейнеров, но если я пытаюсь пропинговать, используя tcpdump, я вижу, что один из двух хостов получает запросы ARP и отправляет ответы, а другой не получает ответы.
Любое предложение?
Эта картина представляет мой стенд
+-------------------------+ +-------------------------+
| Host1 | | Host2 |
|-------------------------| |-------------------------|
| | | |
| +---------+ +----------+ +----------+ +----------+ |
| | ens2.2 +-------> |ens2 <---+ ens2 | <----+ ens2.2 | |
| +----^----+ +----------+ +----------+ +------^---+ |
| | | | | |
| +----+----+ | | +------+---+ |
| | vnet2 | | | | vnet2 | |
| +---^-----+ | | +------^---+ |
| | | | | |
| | | | | |
| +-----+-------------+ | | +------------+-----+ |
| | LXD Container | | | | LXD Container | |
| +-------------------+ | | +------------------+ |
| | | |
+-------------------------+ +-------------------------+
1 ответ
На самом деле конфигурация LXD и Bridge была в порядке, по какой-то причине коммутатор не смог управлять VLAN