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 ще определи на кой виртуален NIC трябва да бъде предаден пакетът въз основа на MAC адреса на дестинацията на пакета, а след това виртуалният NIC предава пакета на протоколния стек от горния слой за обработка.
03 Четири режима
В зависимост от режима на комуникация между подинтерфейсите на MacVLAN, има четири мрежови режима за MACVLAN:
- Личен режим
- Режим VEPA (Virtual Ethernet Port Aggregator)
- Мостов режим
- Passthru режим
По подразбиране се използва VEPA режим.
3.1 Частен
В този режим подинтерфейсите под един и същ първичен интерфейс са изолирани един от друг и не могат да комуникират. Дори и да бъде пренасочен от външен физически превключвател, той ще бъде безмилостно изхвърлен.
3.2 VEPA
В този режим трафикът между подинтерфейсите трябва да бъде насочен към външен суич, който поддържа 802.1Qbg/VPEA (физически или виртуален), препратен през външния комутатор и след това обратно.
Забележка: Функцията 802.1Qbg/VPEA просто означава, че превключвателят трябва да поддържа функцията на hairpin, тоест пакетът от данни може да бъде получен от интерфейс и след това върнат обратно.
3.3 Мост
В този режим функционалността на Linux моста се симулира, но по-доброто при моста е, че MAC адресът на всеки интерфейс е известен и не е необходимо да се учи. Затова в този режим подинтерфейсите могат да комуникират директно.
3.4 Passthru
Този режим позволява само един подинтерфейс да се свърже с основния интерфейс и трябва да бъде настроен на промискуитетен режим, който обикновено се използва за свързване на подинтерфейси и създаване на VLAN подинтерфейси.
3.5 Mactap
Друга технология, подобна на MacVLAN, е MacTap. За разлика от macvlan, mactap получава пакета и го предава на протоколния стек, но на tapX файл, чрез който осъществява директна комуникация с потребителя.
04 Тренировка
В Linux командата за създаване на macvlan е следната:
Общо взето, използването само на macVLAN е безсмислено и обикновено е комбинация от виртуални машини и контейнери за изграждане на мрежа. Нека използваме пространството от имена, за да видим как Linux използва macvlan.
Експерименталната топология е следната:
В моята система, използвайки интерфейса enp0s8 като пример, създадох два macvlan подинтерфейса (използвайки bridge mode), конфигурирах IP адреса и го закачих в две пространства от имена, за да тествам свързаността.
Забележка: IP адресът на enp0s8 е 192.168.56.110/24, а IP адресът на конфигурирания подинтерфейс също трябва да е от същия CIDR сегмент.
След два подинтерфейса го пингнете:
Виждате, че може да се пингва, но ако промените горния режим с друг, няма да работи, затова оставям това на всички да експериментират (по подразбиране е vepa режим).
Освен това, в Docker, MacVLAN е по-важен модел на мрежа между хостове, който ще бъде обсъден в следващата статия.
05 Резюме
MACVLAN е технология за виртуализация на мрежови карти, която може да виртуализира мрежова карта към няколко мрежови карти.
Четирите комуникационни режима на MacVLAN, най-често срещаният режим е Bridge.
Помисли са за това:
Прилики и разлики между моста и моста Маквлан Съществува подобна технология, при която няколко виртуални мрежови карти споделят един и същ MAC адрес, но имат независими IP адреси.
Оригинален адрес:Входът към хиперлинк е видим.
|