Вимоги: Я хочу призначити незалежну локальну IP-адресу контейнеру Docker через DHCP-сервіс маршрутизатора, щоб розроблений ASP.NET Core додаток міг бути розгорнутий на кількох серверах (додаток потрібно розгортати на кількох серверах для досягнення високої доступності), а потім їх можна було передавати між собою. Деякі додатки, особливо застарілі або ті, що відстежують мережевий трафік, очікують пряме підключення до фізичної мережі. У цьому випадку ви можете використати драйвер мережі macvlan, щоб призначити MAC-адресу віртуальному мережевому інтерфейсу кожного контейнера, щоб він виглядав як фізичний мережевий інтерфейс, який підключається безпосередньо до фізичної мережі. У цьому випадку потрібно вказати фізичний інтерфейс на вашому Docker-хості для macvlan. І. підмережі та шлюзи Macvlan. Ви навіть можете ізолювати свою мережу за допомогою іншого фізичного мережевого інтерфейсу.
Спочатку потрібно встановити фізичну мережеву карту хост-машиниДозволяє режим «розпусного режиму»Наприклад, взявши ESXI як приклад, налаштуйте віртуальний комутатор наступним чином:
Системне середовище виглядає так:
CentOS Linux реліз 7.9.2009 (Core) Docker версія 20.10.20, збірка 9fdeb9c
Встановіть сервіс Docker на хост CentOS 7. (опущено)
Створитиnet.ipv4.ip_forward = 1, ви можете переглянути поточну конфігурацію через sysctl -a, якщо це не 1, будь ласка, змініть її на 1, навчальний матеріал опущено. Головна мета — визначити, чи може інформація, отримана однією мережевою картою, передаватися на інші мережеві карти, якщо у Linux-хоста є кілька мережевих карт, і якщо встановлено на 1, можна виконувати переадресацію пакетів.
Коли сервіс Docker встановлено, створіть мережу macvlan за допомогою наступної команди:
--ip-range: Вирішено призначити підмножину Docker 192.168.50.192/27, що становить діапазон із 32 адрес, починаючи з 192.168.50.192 і закінчуючи на 192.168.50.223. --шлюз: Встановіть адресу шлюзу, зазвичай IP-адресу маршрутизатора, будь ласка, встановіть її відповідно до вашої реальної ситуації -o parent: Батьківський інтерфейс, тобто фізична NIC-карта хоста, може переглядатися через IP A залежно від реальної ситуації.
Після завершення створення ви можете переглянути його за допомогою наступної команди:
Спробуйте запустити контейнер busybox і налаштувати мережу з новоствореним macvlan за допомогою наступної команди:
Порада: якщо потрібно, дайте контейнерЩоб встановити IP-адресу, використовуйте параметр --ip, наприклад: --ip=192.168.50.210
Ви можете переглянути IP-адресу контейнера, використавши наступну команду:
Звісно, ви також можете зайти всередину контейнера, щоб переглянути його, виконавши таку команду:
МиВикористовуючи інші машини в локальній мережі, спробуйте пінгувати IP-адресу контейнера, ви можете знайти, що можете пінгувати, як показано на рисунку нижче:
Дивлячись на таблицю відображення IP та MAC роутера, можна побачити, що MAC/IP-адреса контейнера Docker збігається з адресою роутера, як показано на рисунку нижче:
Спробуйте знову запустити контейнер Redis і налаштувати нову мережу MacVLAN за допомогою наступної команди:
Сам хост CentOS також має запущений додаток Redis і також використовує порт 6379, а ми створюємо додаток Redis-контейнер, який також використовує порт 6379, тобтоОдин і той самий хост-порт 6379 слухається двома різними IP-адресами, спробуйте перевірити, чи це працює.
Результати тесту працюють нормально, як показано на рисунку нижче:
Ресурси
Вхід за гіперпосиланням видно.
|