LXC

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

Конфігурація мережі LXC
Коли ви запускаєте контейнер Linux, можливо, ви захочете використовувати мережеві функції. Виникає запитання: «Ви намагаєтесь встановити зв’язок із хостом, широким Інтернетом, іншим контейнером або, можливо, усіма локальними контейнерами?”Добре, що для них є рішення!

Профілі

Щоб зробити це правильно, вам потрібно налаштувати контейнер. Базова конфігурація вже є у вашій системі, якщо ви використовували звичайний дистрибутив. Ви можете додатково налаштувати це за допомогою команд, але більшість людей використовуватимуть файли YAML. Зазвичай основа виглядає як наведена нижче. Файл знаходиться в / etc / lxc / default.конф.

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 Маршрут> Маршрут.yml

Щоб використовувати це для нового контейнера, використовуйте встановлені значення. Зазвичай ви встановлюєте значення за раз, але у вас вже є файл для цього.

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

Ви бачите, що ви повинні помістити значення в користувач простору імен.мережі.конфігурація. Це важливо знати, коли ви хочете додати інші значення, не пов’язані з мережею.

Висновок

Мережа з вашими контейнерами має безліч варіантів, що може заплутати, але, провевши самостійні дослідження та тестування, ви зможете змусити її працювати так, як вам заманеться. Найкраще те, що ви можете спробувати одну річ за раз, використовуючи профілі. Ви ніколи не зіпсуєте свій поточний контейнер, просто видаліть той, який не працював, і додайте старий. Ця техніка працює для всього, що знаходиться в контейнері.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...