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

Вид: 4273|Ответ: 0

[Источник] Можно ли виртуализовать сетевую карту? Подробное объяснение технологии виртуализации сетевых карт Macvlan

[Скопировать ссылку]
Опубликовано 19.11.2022 11:01:57 | | | |
01 Введение в Macvlan

В предыдущей статье рассматривались несколько типов виртуальных сетевых устройств Linux: tap/tun, veth-pair, bridge — это, по сути, решения для виртуализации сети, предоставляемые системами Linux, и macvlan также является одним из них, если быть точным, это решение для виртуализации сетевых карт. Потому что технология MacVlan можетФизический сетевой интерфейс фактически преобразуется в несколько виртуальных сетевых карт, что эквивалентно физической сетевой карте, выполняющей технику нескольких теневых клонов от одного до многих.

02 Как работает MacVLAN

MacVLAN — это новая функция, поддерживаемая ядром Linux, поддерживаемые версии включают версии 3.9-3.19 и 4.0+, а для более стабильной версии рекомендуется 4.0+. Обычно он существует в виде модулей ядра, и мы можем оценить, поддерживает ли его текущая система, следующим образом:

Если первая команда даёт ошибку, или вторая команда не возвращается, это означает, что текущая система не поддерживает MacVLAN, и ядро нужно обновить.

Технология MacVLAN звучит немного похоже на VLAN, но их механизм реализации совершенно иной. Подинтерфейс macVLAN полностью независим от исходного основного интерфейса и может быть настроен отдельно с MAC-адресом и IP-адресом, тогда как подинтерфейс VLAN и основной интерфейс используют один и тот же MAC-адрес. VLAN используются для разделения доменов вещания, тогда как macvlan используют один и тот же домен вещания.

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


03 Четыре режима

В зависимости от режима связи между подинтерфейсами MacVLAN существует четыре сетевых режима для MACVLAN:

  • Приватный режим
  • Режим VEPA (Виртуальный агрегатор портов Ethernet)
  • Режим моста
  • Режим Passthru


По умолчанию используется режим VEPA.

3.1 Частный

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




3.2 VEPA

В этом режиме трафик между подинтерфейсами должен направляться на внешний коммутатор, поддерживающий 802.1Qbg/VPEA (физический или виртуальный), пересылать через внешний коммутатор и затем обратно.

Примечание: функция 802.1Qbg/VPEA просто означает, что коммутатор должен поддерживать функцию шпильки, то есть пакет данных может быть получен с интерфейса и затем вернуться обратно.



3.3 Мост

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



3.4 Passthru

Этот режим позволяет подключаться к основному интерфейсу только одному подинтерфейсу и должен быть настроен в режим promiscuityous, который обычно используется для мостового соединения подинтерфейсов и создания VLAN-подинтерфейсов.



3.5 Mactap

Ещё одна технология, похожая на MacVLAN, — MacTap. В отличие от macvlan, mactap получает пакет и передаёт его в стек протоколов, но в файл tapX, через который осуществляет прямую связь с пользователем.



04 Тренировка

В Linux команда создания macvlan следующая:

В целом, использовать только macVLAN бессмысленно, и для построения сети обычно используется комбинация виртуальных машин и контейнеров. Давайте используем пространство имён, чтобы посмотреть, как Linux использует macvlan.

Экспериментальная топология выглядит следующим образом:




В моей системе, используя интерфейс enp0s8 в качестве примера, я создал два подинтерфейса macvlan (в режиме моста), настроил IP и разместил его в двух пространствах имён для проверки связности.

Примечание: IP-адрес enp0s8 — 192.168.56.110/24, и IP-адрес настроенного подинтерфейса также должен быть из того же сегмента CIDR.

После двух подинтерфейсов пингуйте его:


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

Кроме того, в Docker MacVLAN является более важной моделью кросс-хостовой сети, о которой будет рассмотрено в следующей статье.

Краткое содержание 05

MACVLAN — это технология виртуализации сетевых карт, которая может виртуализировать сетевую карту на несколько сетевых карт.

В четырёх режимах связи MacVLAN наиболее распространённым является Bridge.

Подумайте об этом:

Сходства и различия между мостом Маквлан и мостом
Существует похожая технология, при которой несколько виртуальных сетевых карт имеют один и тот же MAC-адрес, но имеют независимые IP-адреса.


Оригинальный адрес:Вход по гиперссылке виден.




Предыдущий:Практическая эксплуатация: использовать BundleTransformer вместо System.Web.Optimization
Следующий:Docker использует Macvlan для установки независимого IP-адреса для контейнеров
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com