如何创建LXC的多个桥梁?

时间:2014-12-26 05:32:08

标签: lxc

现在,在安装LXC之后,您只有一个默认桥接器" lxcbr0"用于将容器连接到主机。因此,通过这种方式,我们可以创建多个容器并将它们全部连接到桥接器" lxcbr0"。我的问题是: 我可以创建两个桥梁" lxcbr0"和" lxcbr1"这样我就可以将多个容器分成两个子网,其中一个连接到" lxcbr0"另一个连接到" lxcbr1"?

节日快乐! 谢谢。 Deryk

1 个答案:

答案 0 :(得分:1)

这是将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容器连接到lxcbr1作为eth11

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