かなり簡単なはずのことをやろうとしていたのですが、どういうわけかうまくいきませんでした。
2つの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
2つのコンテナの同じサブネット内の2つのIPアドレスを割り当てますが、tcpdumpを使用してpingを実行しようとすると、2つのホストの一方がARP要求を受信して応答を送信し、もう一方は受信しないことがわかります。返信。
なにか提案を?
この写真は私のテストベッドを表しています
+-------------------------+ +-------------------------+
| Host1 | | Host2 |
|-------------------------| |-------------------------|
| | | |
| +---------+ +----------+ +----------+ +----------+ |
| | ens2.2 +-------> |ens2 <---+ ens2 | <----+ ens2.2 | |
| +----^----+ +----------+ +----------+ +------^---+ |
| | | | | |
| +----+----+ | | +------+---+ |
| | vnet2 | | | | vnet2 | |
| +---^-----+ | | +------^---+ |
| | | | | |
| | | | | |
| +-----+-------------+ | | +------------+-----+ |
| | LXD Container | | | | LXD Container | |
| +-------------------+ | | +------------------+ |
| | | |
+-------------------------+ +-------------------------+
実際には、LXDとブリッジの構成は問題ありませんでした。何らかの理由で、スイッチはVLANを管理できませんでした。