如何使用静态IP地址启动短暂的lxc,以便它可以连接到互联网?

时间:2013-03-11 19:22:08

标签: networking ubuntu virtualization lxc

我在Ubuntu 12.10中使用了lxc-start-ephemeral实用程序。我注意到短暂的容器启动很快,但是在ifconfig显示其eth0接口的ip地址之前需要很长时间(~20s)。我想尽可能地减少这种延迟。

根据this post,延迟是由于dhcp。我按照帖子中的建议编写了一个脚本,修改了容器的/ etc / network / interfaces文件,如下所示:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.0.3.$LXC_ADDRESS
  netmask 255.255.255.0

现在,容器的ip地址已经准备就绪,ssh ubuntu@10.0.3.$LXC_ADDRESS正常工作。但是,容器无法连接到Internet,例如ping www.google.com无效。

我需要采取哪些其他配置才能解决此问题?

如果它有帮助,这里是ifconfig的容器当前eth0接口(带LXC_ADDRESS=131):

eth0      Link encap:Ethernet  HWaddr 00:16:3e:ed:ec:50  
          inet addr:10.0.3.131  Bcast:10.0.3.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:feed:ec50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:42 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6363 (6.3 KB)  TX bytes:5035 (5.0 KB)

这是主机上似乎对应容器的veth接口:

vethdzOk4n Link encap:Ethernet  HWaddr fe:dd:37:41:f2:06  
          inet6 addr: fe80::fcdd:37ff:fe41:f206/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:54 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8179 (8.1 KB)  TX bytes:8067 (8.0 KB)

1 个答案:

答案 0 :(得分:2)

你实际上可以(我假设)连接到互联网,你只是没有名称服务,因为你没有运行dhcp所以你没有得到resolv.conf。

刚刚放

nameserver 10.0.3.1

进入容器中的/etc/resolv.conf,(或者只是从主机复制resolv.conf)。

(如果您的容器正在运行resolvconf,您可能还需要将该行放入容器中的/etc/resolvconf/resolv.conf.d/head)