LXC

Конфигурация сети LXC

Конфигурация сети LXC
Когда вы запускаете контейнер Linux, вы можете захотеть использовать сетевые функции. Возникает вопрос: «Вы пытаетесь подключиться к хосту, широкому Интернету, другому контейнеру или, возможно, всем локальным контейнерам?»?”Хорошо, что есть решения для всех!

Профили

Чтобы сделать это правильно, вам необходимо настроить свой контейнер. Базовая конфигурация уже есть в вашей системе, если вы использовали обычный дистрибутив. Вы можете дополнительно настроить это с помощью команд, но большинство людей будут использовать файлы YAML. Основание обычно выглядит так, как показано ниже. Файл находится в / и т.д. / lxc / по умолчанию.conf.

lxc.сеть.0.type = veth
lxc.сеть.0.ссылка = lxcbr0
lxc.сеть.0.flags = вверх
lxc.сеть.0.hwaddr = 00: 16: 3e: xx: xx: xx

Каждый контейнер следует настройкам в соответствии с профилем по умолчанию и файлом, указанным выше. Вы можете распечатать файл по умолчанию, как показано ниже. Для большей настройки лучше всего создать новые профили. Каждый профиль будет содержать некоторые детали конфигурации, в нашем случае сеть. Вы можете изменить любой параметр в своем контейнере с помощью профиля, и это имеет еще больший смысл, если вы хотите запускать его как локально, так и на платформе.

Профиль $ lxc показывает конфигурацию по умолчанию:
описание: Профиль LXD по умолчанию
устройства:
eth0:
имя: eth0
сеть: lxdbr0
тип: nic
корень:
дорожка: /
бассейн: ros
тип: диск
имя: по умолчанию
использован:
- / 1.0 / экземпляры / guiapps
- / 1.0 / экземпляров / ff

В результате получается файл YAML. Все ваши профили будут в одном формате. С помощью самого LXC вы можете создавать, удалять и редактировать свой профиль. Вы можете видеть в файле, что по умолчанию используется сеть lxdbr0 и введите nic. Теперь создайте новый профиль, используя следующее:

Профиль $ lxc создать nicnet

Перед запуском любого контейнера отредактируйте профиль:

$ lxc профиль редактировать nicnet

Вы используете формат YAML в файлах, которые создают эти профили. Обратите внимание, что имя «eth0» - это внутреннее имя контейнера. «Родитель» - это то, что есть в вашей системе, и вы проверяете это самостоятельно, используя:

$ ip a

Распечатка будет отличаться в зависимости от того, что у вас было раньше. Вы также должны знать, что вы можете выполнить соединение извне контейнера с помощью инструментов brctl.

Используя его в своем контейнере

После того, как вы создали профиль, вы хотите добавить его в свой контейнер. Это делается с помощью того же набора программ lxc. Во-первых, убедитесь, что у вас есть контейнер, в этом примере контейнер называется 'ff':

Профиль $ lxc добавить ff nicnet

Изменение вступает в силу при перезапуске сети в контейнере. Самый простой и безопасный - всегда добавлять профили только в остановленные контейнеры.

Маршрутизировано

Мостовое соединение - это соединение, при котором ваш контейнер получает MAC-адрес на том же интерфейсе Ethernet, что и ваш хост. Это то, что вы сделали ранее в этом посте. С помощью еще нескольких приемов вы можете настроить маршрутизатор для присвоения контейнеру отдельного IP-адреса, и вы можете установить это в своем контейнере. Хотя при использовании macvlan могут возникнуть проблемы с использованием Wi-Fi. WPA / WPA2 не примет два адреса, поэтому ваш Wi-Fi сломается, так как ваш хост не будет использовать Wi-Fi.

В предыдущем примере используются инструменты brctl, поскольку lxc создал свои собственные. Он получает адрес от хоста, а не от маршрутизатора. При желании вы можете получить адрес на роутере. Опять же, только если вы используете проводное соединение или небезопасный Wi-Fi.

Когда вы убедились, что у вас есть сетевое соединение на вашем хосте, вы можете подключить его к своему контейнеру. Измените слово parent и установите свой nictype на macvlan.

config:
описание: Настройка сетевого интерфейса
устройства:
eth0:
имя: eth0
nictype: macvlan
родитель: enp3s0
тип: nic
имя: Маршрут
использован:
- / 1.0 / экземпляры / guiapps
- / 1.0 / экземпляров / ff

Вам нужно будет убедиться, что родительское значение соответствует вашей конфигурации, поэтому убедитесь, что вы создаете его динамически. После этого вы можете запустить свой контейнер и найти его в списке назначений хоста вашего маршрутизатора. Ну, это интерфейсы, если говорить технически.

Рисунок 1. Контейнер теперь отображается в вашем маршрутизаторе

Мобильные профили

Интересной частью контейнеров Linux является то, что вы можете получить свои конфигурации и выгружать их в файлы YAML. Чтобы создать файлы для этого, вы запускаете опцию show в LXC, а затем перенаправляете в файл. Вывод соответствует стандарту YAML, и вы можете затем использовать эти файлы для их настройки в другом месте.

Профиль $ lxc показать Маршрут> Маршрут.yml

Чтобы использовать это для нового контейнера, используйте заданные значения. Обычно вы устанавливаете значение за раз, но у вас уже есть файл для этого.

$ lxc profile create newroute $ lxc profile set newroute user.сеть.config - < Route.yml

Вы можете видеть, что вы должны поместить значения в пользовательское пространство имен.сеть.config '. Это важно знать, если вы хотите добавить другие значения, не связанные с сетью.

Заключение

Сеть с вашими контейнерами имеет множество опций, которые могут сбивать с толку, но, проведя небольшое исследование и тестирование самостоятельно, вы можете заставить его работать так, как вы хотите. Самое приятное то, что вы можете попробовать что-то одно, используя профили. Вы никогда не испортите свой текущий контейнер, просто удалите тот, который не работал, и добавьте старый. Этот метод работает для всего в контейнере.

Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...
Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...