Як налаштувати гість LXC, щоб він отримав dhcp адресу, щоб я мав доступ до нього у своїй мережі?


15

Я налаштовую LXC за допомогою:

lxc-create -t ubuntu -n lxcguest1

Але я не можу отримати доступ до будь-яких служб, що працюють на ньому, з моєї локальної мережі, схоже, це NATED. Як встановити його, щоб я мав доступ до нього (можливо, він повинен отримати адресу dhcp від мого маршрутизатора Linksys)?

Спасибі.


Можливий дублікат askubuntu.com/questions/256304/…
bekce

Відповіді:


5

Я щойно сам займався цим питанням. В основному вам потрібно встановити міст і прив’язати до нього свою мережеву карту та контейнер. Ось стаття, яку я слідував:

http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/

Схоже, як я, вам потрібне рішення «міст», а не рішення NAT. Я також вимкнув налаштування мосту LXC за замовчуванням (який є NAT'ed). Для цього просто відредагуйте файл: /etc/default/lxcта змініть USE_LXC_BRIDGE="TRUE"на USE_LXC_BRIDGE="FALSE"та перезавантажте.


1
Я трохи розгублений цим рішенням: він говорить, що йому потрібно встановити міст, а потім каже, що рішення полягає в тому, щоб вимкнути налаштування мосту за замовчуванням. Звичайно, він повинен увімкнути налаштування моста. Друге, що мені потрібна допомога - це те, що Користувач каже, що налаштування мосту є NATED. Безумовно, це або мостові (тому контейнери знаходяться в тій самій мережі, що і хост), або NATED (в іншій мережі та вимагає маршрутизації). Я розумію, що це взаємовиключні?
Джон Малий

1
Це все недійсне зараз із поточними версіями. / etc / default / lx * повністю втрачено.
шпидердіне

5

Моя установка на хости Ubuntu 14.04.1 LTS (Trusty Tahr)

Додати /etc/network/interfacesв хост

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 0.0.0.0

auto br0
iface br0 inet dhcp
    bridge_ports eth0

(перезавантажте після змін)

І на конфігураційні файли контейнера ( /var/lib/lxc/containername/config), які я встановивlxc.network.link = br0

З цим контейнер отримає загальнодоступні ip адреси від dhcp-сервера так само, як і хост.


@JonathanY. Br0 повинен з’явитися після додавання його до / etc / network / інтерфейсів, як зазначено у відповіді. Можливо, вам знадобиться перезавантаження.
Епелі

3
Спасибі. Те , що мені не вистачало було необхідності додавати <username> veth br0 2 до /etc/lxc/lxc-usernetдля того , щоб використовувати br0з непривілейованих контейнерами.
Джонатан Ю.

2

Я використовував параметри Ubuntu LXC за замовчуванням і налаштував свій маршрутизатор для надсилання всього трафіку на 10.0.3.xxx на машину Ubuntu. На маршрутизаторі з підтримкою DD-WRT налаштування виглядають приблизно як на скріншоті нижче. Замініть 192.168.1.137IP-адресу машини, на якій працює LXC. Інші маршрутизатори повинні мати подібні параметри для налаштування статичного маршруту (ось, наприклад, інструкції щодо статичного маршруту для Linksys , наприклад).

Налаштування DD-WRT для статичної маршрутизації до LXC

Це не пов'язано, але я також використовував службу DNSMasq, щоб вказати ім'я хоста на IP-адресу контейнера LXC. Таким чином я можу отримати доступ до контейнера в http://gitlab/будь-якій точці мережі. На мою думку, використовувати ім’я хоста для доступу до контейнера набагато простіше, ніж запам'ятати IP-адресу.

Налаштування DD-WRT DNSMasq


1
Гарний підхід - спробуйте. Пальці вгору! Додавання статичних маршрутів працює - і сам маршрутизатор може пінг-контейнери! Але з багатьма маршрутизаторами, що постачаються через Інтернет, переадресація портів не працюватиме через: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (маршрутизатор містить підмережу 192.168.xx, а LXD / LXC - в підмережі 10.0.xx)
stamster

1
Так, ваш маршрутизатор повинен прийняти маску підмережі, щоб моє рішення працювало. Мені подобається купувати маршрутизатор і додавати прошивку після продажу, щоб зробити шалені конфігурації можливими :-p
thirdender

1
Я використовую MikroTik як вдома, так і в офісі, але це було для однієї установки, де у них був звичайний маршрутизатор, що постачається провайдером. Тож ваша ідея дуже проста, але дуже ефективна - принцип KISS :) Мені це подобається і я буду використовувати її точно, тому що я не можу зрозуміти, як ті контейнери, у яких вони ще не мають рішення викласти їх у зовнішній світ.
stamster
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.