Linux
將 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 ping 通,我可以看到兩台主機中的一台正在接收 ARP 請求並發送回复,而另一台沒有收到答复。
有什麼建議嗎?
這張圖片代表我的測試台
+-------------------------+ +-------------------------+ | Host1 | | Host2 | |-------------------------| |-------------------------| | | | | | +---------+ +----------+ +----------+ +----------+ | | | ens2.2 +-------> |ens2 <---+ ens2 | <----+ ens2.2 | | | +----^----+ +----------+ +----------+ +------^---+ | | | | | | | | +----+----+ | | +------+---+ | | | vnet2 | | | | vnet2 | | | +---^-----+ | | +------^---+ | | | | | | | | | | | | | | +-----+-------------+ | | +------------+-----+ | | | LXD Container | | | | LXD Container | | | +-------------------+ | | +------------------+ | | | | | +-------------------------+ +-------------------------+
實際上 LXD 和網橋配置沒問題,由於某種原因交換機無法管理 VLAN