lxc 容器未获取默认路由

lxc 容器未获取默认路由

我正在运行 Ubuntu Precise。我知道我当前的 lxc 版本不支持网关/默认路由分配(lxc 0.7.5-3ubuntu67)。我一直在努力尝试执行几行代码,以便在容器中设置默认路由:

#!/bin/bash -x
touch /root/route.txt
netstat -rn 2>&1 >> /root/route.txt
export defaultroute=`ifconfig eth0|grep Bcast|awk '{print $3}'|cut -d: -f2|awk -F. '{print $1"."$2"."$3".254"}'`
/sbin/route add default gw $defaultroute 2>&1 >> /root/route.txt
netstat -rn 2>&1 >> /root/route.txt

理论上非常简单。如果我能弄清楚如何执行它,那真是太神奇了。我已将其插入到 rc.local 的末尾附近。我已将其放入 ssh init 脚本中。我已将其附加到其他 init 脚本中。什么都没有。如果我在启动容器后执行命令,它们会很好地设置默认路由。我的容器配置:

lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
lxc.network.ipv4 = 10.16.161.100/24
lxc.utsname = z100253

lxc.tty = 4
lxc.pts = 1024
lxc.rootfs = /var/lib/lxc/z100253/rootfs
lxc.mount  = /var/lib/lxc/z100253/fstab

lxc.cgroup.devices.deny = a
# /dev/null and zero
lxc.cgroup.devices.allow = c 1:3 rwm
lxc.cgroup.devices.allow = c 1:5 rwm
# consoles
lxc.cgroup.devices.allow = c 5:1 rwm
lxc.cgroup.devices.allow = c 5:0 rwm
#lxc.cgroup.devices.allow = c 4:0 rwm
#lxc.cgroup.devices.allow = c 4:1 rwm
# /dev/{,u}random
lxc.cgroup.devices.allow = c 1:9 rwm
lxc.cgroup.devices.allow = c 1:8 rwm
lxc.cgroup.devices.allow = c 136:* rwm
lxc.cgroup.devices.allow = c 5:2 rwm
# rtc
lxc.cgroup.devices.allow = c 254:0 rwm

从 lxc 主机我可以 ping 容器并 ssh 到它,没有任何问题。我只是无法路由到它或从它路由。这让我抓狂。

答案1

在 debian wheezy 中遇到了同样的问题。根据你的想法,我将一个硬编码脚本放入 /etc/init.d/networking

set_def_route() {
/sbin/route add default gw 192.168.1.1
}

并链接到下方的开始选项

case "$1" in
start)
       blah blab ...
       check_ifstate
       set_def_route

尽管看上去很笨拙,但它还是能起作用。

相关内容