LXC

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

Конфигурация на мрежата LXC
Когато стартирате Linux контейнер, може да искате да използвате мрежови функции. Въпросът става: „Опитвате ли се да се свържете с хоста, широкия интернет, друг контейнер или може би всички локални контейнери?„Добре, че има решения за всички тях!

Профили

За да направите това правилно, трябва да конфигурирате контейнера си. Базовата конфигурация вече е във вашата система, ако сте използвали редовно разпространение. Можете допълнително да конфигурирате това с команди, но повечето хора ще използват YAML файлове. Основата обикновено изглежда като тази по-долу. Файлът се намира в / etc / lxc / по подразбиране.конф.

lxc.нето.0.тип = veth
lxc.нето.0.връзка = lxcbr0
lxc.нето.0.знамена = нагоре
lxc.нето.0.hwaddr = 00: 16: 3e: xx: xx: xx

Всеки контейнер следва настройките според профила по подразбиране и файла, споменат по-горе. Можете да отпечатате файла по подразбиране, както е показано по-долу. За повече конфигурация е най-добре да направите нови профили. Всеки профил ще съдържа някои подробности за конфигурацията, в нашия случай работа в мрежа. Можете да промените всяка настройка в контейнера си с профил и това има още по-голям смисъл, когато искате да го стартирате както локално, така и на платформа.

$ lxc профил показва конфигурация по подразбиране:
описание: По подразбиране LXD профил
устройства:
eth0:
име: eth0
мрежа: lxdbr0
тип: ник
корен:
път: /
басейн: рос
тип: диск
име: по подразбиране
използван от:
- / 1.0 / instances / guiapps
- / 1.0 / instances / 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.

Когато сте се уверили, че имате мрежова връзка на вашия хост, можете да го свържете с вашия контейнер. Променете думата родител и задайте своя nictype на macvlan.

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

Ще трябва да се уверите, че родителската стойност съвпада с вашата конфигурация, така че не забравяйте да я създадете динамично. След като направите това, можете да стартирате контейнера си и да го намерите в списъка на хост дестинациите на вашия рутер. Е, те са интерфейси, за да бъдем технически по отношение на това.

Фигура 1: Контейнерът вече се показва във вашия рутер

Мобилни профили

Интересна част от Linux контейнерите е, че можете да вземете вашите конфигурации и да ги изхвърлите в YAML файлове. За да създадете файловете за това, стартирате опцията show в LXC, след което прехвърляте във файл. Изходът следва стандарта YAML и след това можете да използвате тези файлове, за да ги конфигурирате другаде.

$ lxc профил показва Route> Route.yml

За да използвате това за нов контейнер, използвайте зададените стойности. Обикновено бихте задавали стойност в даден момент, но вече имате файл за това.

$ lxc profile create newroute $ lxc profile set newroute user.мрежа.конфиг - < Route.yml

Можете да видите, че трябва да поставите стойностите в потребителското пространство на имената.мрежа.конфигуриране. Това е важно да знаете, когато искате да добавите други стойности, несвързани с работата в мрежа.

Заключение

Мрежата с вашите контейнери има много опции, които могат да объркат, но с някои изследвания и тестове сами, можете да го накарате да работи така, както искате. Най-хубавото е, че можете да опитате едно по едно с помощта на профили. Никога няма да объркате текущия си контейнер, просто премахнете този, който не работи, и добавете стария. Тази техника работи за всичко в контейнер.

Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...