【发布时间】:2015-02-23 12:45:34
【问题描述】:
现在,安装 LXC 后,您只有一个默认网桥“lxcbr0”,用于将容器连接到主机。所以通过这种方式,我们可以创建多个容器,并将它们全部连接到网桥“lxcbr0”。我的问题是: 我可以创建两个网桥“lxcbr0”和“lxcbr1”,这样我就可以将多个容器分成两个子网,一个连接到“lxcbr0”,另一个连接到“lxcbr1”?
节日快乐! 谢谢。 德里克
【问题讨论】:
标签: lxc
现在,安装 LXC 后,您只有一个默认网桥“lxcbr0”,用于将容器连接到主机。所以通过这种方式,我们可以创建多个容器,并将它们全部连接到网桥“lxcbr0”。我的问题是: 我可以创建两个网桥“lxcbr0”和“lxcbr1”,这样我就可以将多个容器分成两个子网,一个连接到“lxcbr0”,另一个连接到“lxcbr1”?
节日快乐! 谢谢。 德里克
【问题讨论】:
标签: lxc
这是将 lxcbr1 添加到 eth2 的 bash 代码
main.sh:
#!/bin/bash
BRCTL_BIN="/sbin/brctl"
IP_BIN="/sbin/ip"
# variable
brName=lxcbr1
brDev=eth2
# function: add bridge
#
function addBr() {
local brName=$1
local brDev=$2 || ""
if [ -d /sys/class/net/${brName} ]; then
# bridge exists
return
else
${BRCTL_BIN} addbr ${brName}
${BRCTL_BIN} setfd ${brName} 0
${BRCTL_BIN} sethello ${brName} 5
${IP_BIN} link set dev ${brName} up
if [ "${brDev}x" != "x" ]; then
${BRCTL_BIN} addif ${brName} ${brDev}
${IP_BIN} link set dev ${brDev} up
fi
fi
}
# add lxcbr1
addBr ${brName} ${brDev}
# it's simple example
# without bash variable
# add lxcbr1 and lxcbr3
addBr lxcbr1 eth1
addBr lxcbr3 eth3
现在您可以将 lxc 容器作为 eth11 连接到 lxcbr1
lxc.network.type = veth
lxc.network.flags = up
lxc.network.mtu = 1500
lxc.network.link = lxcbr1
lxc.network.ipv4 = 192.168.0.11/24
lxc.network.name = eth11
lxc.network.veth.pair = veth11.1
【讨论】: