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-адреса.
Оригинальный адрес:Вход по гиперссылке виден.
|