Контейнеры LXD и хост на DHCP

Я работаю над контейнерами в данный момент и испытываю затруднения настроить их для использования DHCP сети, так, чтобы к ним можно было получить доступ через имя хоста (контейнерное имя) непосредственно. Это будет означать, что приложения на других устройствах могут получить доступ к сервисам на контейнер, и если я хочу к SSH к контейнеру, я не нуждаюсь к во-первых SSH к хосту и использую lxc должностное лицо [containername] удар.

Мне удалось успешно создать контейнер Ubuntu 16.04, и он хорошо работает. Это работает в диапазоне IP, первоначально настроенном, когда я использовал lxd init хотя (10.0.1.*), однако, я хотел бы заставить их использовать диапазон IP основной сети и DHCP.

Мне удалось сделать это путем добавления к моему/etc/network/interfaces файлу следующего:

auto br0
iface br0 inet static
    address 192.168.1.64
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.0.255
    gateway 192.168.1.1
    dns-nameservers 192.168.1.254

bridge_ports enp3s0  
iface enp3s0 inet manual

После перезагрузки сетевого сервиса это хорошо работало, и контейнеры были видны в сети, и наоборот. Однако хост вместо этого потерял доступ к Интернету и не мог дольше видеть другие устройства в сети и наоборот.

Возвращение изменения предоставило доступ хост-машины к сети снова, однако, контейнеры, затем возвращенные к их исходному диапазону IP, и без видимости сети.

У меня было дальнейшее лужение, но ни к какому успеху, таким образом, я вернулся к хосту, имеющему Интернет и контейнеры, не видимые в данный момент; это не то, что я хочу.

Кто-либо может обеспечить дальнейшее понимание на то, где я, возможно, пошел не так, как надо? Я должен делать что-то совершенно другое?

Заранее спасибо.

2
задан 29 October 2017 в 13:28

2 ответа

Ну, в конце единственной вещью, которая, казалось, зафиксировала его, была новая установка ОС. Я теперь запускаю Ubuntu 17.10. Вместо обновления, я установил новый (но сделал изображение из моей старой установки, должен я нуждаться в нем).

Что касается/etc/network/interfaces файла, это было столь же просто как:

auto br0
iface br0 inet dhcp

bridge_ports enp3s0
iface enp3s0 inet manual

Что касается профиля lxd, это настроено как:

config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: br0
    type: nic
name: default

Действительно не уверенный, почему это отказалось работать над 16.04.3 LTS, но по крайней мере это работает над 17,10.

Спасибо за справку так или иначе!

1
ответ дан 2 December 2019 в 03:36

Именно так это все записано вместе, в моей установке все контейнеры и их хост-машина получают свой IP от того же сервера DHCP (мой маршрутизатор) и все доступны по LAN.

На Сервере Ubuntu 16,04 хостов, мой /etc/network/interfaces чтения:

iface br0 inet dhcp
  bridge_ports eth0
iface eth0 inet manual

Как я сказал в комментариях после перезапуска и когда сеть хоста работает, как предназначено, я думаю, что можно реконфигурировать сеть LXD (среди прочего) с sudo dpkg-reconfigure -p medium lxd.

Когда я сделал lxd init, Я ответил yes кому: Do you want to configure the LXD bridge (yes/no)?, затем сказанный его <No> когда это попросило устанавливать сетевой мост, <Yes> Я хотел бы использовать существующий, и br0 как имя моста.

Наконец, я полагаюсь на MAC для присвоения статического IP любой машине (включая хост и несколько контейнеров) в моем сервере DHCP (мой маршрутизатор) настройки. Это упрощает настройки в контейнерах и хосте.

1
ответ дан 2 December 2019 в 03:36

Другие вопросы по тегам:

Похожие вопросы: