我正在运行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脚本。 没有。 如果我在启动容器后执行这些命令,他们设置默认路由就好了。 我的容器configuration:
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到它没有问题。 我只是无法路由或从它。 这真让我抓狂。
在debian喘息中也有同样的问题。 从你的想法开始,我把一个硬编码脚本放到/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
它的工作原理虽然很笨拙。