2013-03-11 2 views
-1

Я использую утилиту lxc-start-ephemeral в Ubuntu 12.10. Я заметил, что эфемерный контейнер запускается довольно быстро, но это занимает много времени (~ 20 с), прежде чем ifconfig показывает ip-адрес для своего интерфейса eth0. Я бы хотел уменьшить эту задержку как можно больше.Как запустить эфемерный lxc со статическим IP-адресом таким образом, чтобы он мог подключаться к Интернету?

Согласно this post, задержка связана с dhcp. Я последовал за предложение в посте и написал сценарий, который модифицирует/и т.д./файл контейнера сети/интерфейсы, чтобы выглядеть следующим образом:

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 [email protected]$LXC_ADDRESS работает отлично. Однако контейнер не может подключиться к Интернету, например, ping www.google.com не работает.

Какую дополнительную конфигурацию мне нужно сделать, чтобы исправить эту проблему?

В случае помогает, вот текущий интерфейс контейнера eth0 из IFCONFIG (с 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) 

ответ

2

Вы действительно можете (я предполагаю) подключиться к Интернету, у вас просто нет службы имен, потому что вы не используете dhcp, чтобы не получить resolv.conf.

Просто поместите

сервера имен 10.0.3.1

в /etc/resolv.conf в контейнере (или просто скопировать resolv.conf от хоста).

(Если ваш контейнер работает Resolvconf, возможно, потребуется также поместить эту строку в /etc/resolvconf/resolv.conf.d/head в контейнере)

+0

От автономного общения с Serge, решением является 'doroute add -host dev eth0', а затем' route add default gw 'в эфемерном контейнере. –