Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 5217|Ответ: 3

Docker использует Macvlan для установки независимого IP-адреса для контейнеров

[Скопировать ссылку]
Опубликовано 19.11.2022 12:01:56 | | | |
Требования: Я хочу назначить независимый локальный IP-адрес Docker-контейнеру через DHCP-сервис маршрутизатора, чтобы разработанное ASP.NET Core приложение могло быть развернуто на нескольких серверах (приложение должно быть развернуто на нескольких серверах для достижения высокой доступности), а затем их можно было передавать друг другу.
Некоторые приложения, особенно устаревшие или те, что отслеживают сетевой трафик, ожидают прямого подключения к физической сети. В этом случае вы можете использовать драйвер сети macvlan, чтобы назначить MAC-адрес виртуальному сетевому интерфейсу каждого контейнера, чтобы он выглядел как физический сетевой интерфейс, который напрямую подключается к физической сети. В этом случае нужно указать физический интерфейс на вашем Docker-хосте для macvlan. И. подсети и шлюзы Macvlan. Вы даже можете изолировать свою сеть с помощью другого физического сетевого интерфейса.


Можно ли виртуализовать сетевую карту? Подробное объяснение технологии виртуализации сетевых карт Macvlan
https://www.itsvse.com/thread-10388-1-1.html
Сначала нужно установить физическую сетевую карту хост-машиныРазрешает режим «промискуитетного режима»Например, используя 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-адресами, попробуй проверить, работает ли это.

Результаты теста работают нормально, как показано на рисунке ниже:





Ресурсы

Вход по гиперссылке виден.




Предыдущий:Можно ли виртуализовать сетевую карту? Подробное объяснение технологии виртуализации сетевых карт Macvlan
Следующий:[Практика] Используйте проникновение внутрисети FRP для достижения удалённого подключения к рабочему столу
Опубликовано 28.11.2022 19:30:39 |
Научись учиться...
Опубликовано 12.03.2023 9:18:32 |
Учитесь учиться
Опубликовано 22.04.2023 15:45:19 |
Спасибо, что поделились.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com