Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 4273|Odpowiedź: 0

[Źródło] Czy karta sieciowa również może być zwirtualizowana? Szczegółowe wyjaśnienie technologii wirtualizacji kart sieciowych Macvlan

[Skopiuj link]
Opublikowano 19.11.2022 11:01:57 | | | |
01 Wprowadzenie do Macvlan

Poprzedni artykuł mówił o kilku typach urządzeń sieci wirtualnej Linuksa: tap/tun, veth-pair, bridge, które są w zasadzie rozwiązaniami wirtualizującymi sieci dostarczanymi przez systemy Linux, a macvlan jest również jednym z nich, precyzyjnie mówiąc – jest to rozwiązanie wirtualizujące karty sieciowe. Bo technologia MacVlan możeFizyczna karta sieciowa jest wirtualnie przekształcana w wiele wirtualnych kart sieciowych, co jest równoważne fizycznej karcie sieciowej wykonującej technikę wielu klonów cieni, od jednego do wielu.

02 Jak działa MacVLAN

macvlan to nowa funkcja obsługiwana przez jądro Linuksa, obsługiwane wersje to v3.9-3.19 i 4.0+, a wersja 4.0+ jest zalecana dla bardziej stabilnej wersji. Zazwyczaj występuje w formie modułów jądrowych i możemy ocenić, czy obecny system go wspiera w następujący sposób:

Jeśli pierwsze polecenie wywoła błąd lub drugie polecenie nie wróci, oznacza to, że obecny system nie obsługuje MacVLAN i jądro wymaga aktualizacji.

Technologia macvlan brzmi trochę jak VLAN, ale ich mechanizm implementacji jest zupełnie inny. Podinterfejs macVLAN jest całkowicie niezależny od oryginalnego głównego interfejsu i może być konfigurowany osobno z adresem MAC i IP, podczas gdy podinterfejs VLAN i główny interfejs dzielą ten sam adres MAC. VLAN-y służą do dzielenia domen rozgłoszeniowych, natomiast macVLAN-y dzielą tę samą domenę rozgłoszeniową.

Dzięki różnym podinterfejsom MacVLAN może również osiągnąć izolację ruchu. MacVLAN określa, do której wirtualnej karty sieciowej pakiet należy przekazać pakiet na podstawie adresu MAC docelowego pakietu, a następnie wirtualna karta przekazuje pakiet do wyższego stosu protokołów warstwy do przetwarzania.


03 Cztery tryby

W zależności od trybu komunikacji między podinterfejsami MacVLAN, istnieją cztery tryby sieciowe dla MACVLAN:

  • Tryb prywatny
  • Tryb VEPA (Virtual Ethernet Port Aggregator)
  • Tryb mostka
  • Tryb passthru


Domyślnie używany jest tryb VEPA.

3.1 Prywatny

W tym trybie podinterfejsy pod tym samym głównym interfejsem są od siebie odizolowane i nie mogą się komunikować. Nawet jeśli zostanie przekierowany z zewnętrznego fizycznego przełącznika, zostanie bezlitośnie odrzucony.




3.2 VEPA

W tym trybie ruch między podinterfejsami musi być kierowany do zewnętrznego przełącznika obsługującego 802.1Qbg/VPEA (fizycznego lub wirtualnego), przekazywany przez zewnętrzny przełącznik, a następnie z powrotem.

Uwaga: Funkcja 802.1Qbg/VPEA oznacza po prostu, że przełącznik musi obsługiwać funkcję hairpin, czyli pakiet danych może być odebrany z interfejsu, a następnie odrzucany.



3.3 Most

W tym trybie funkcjonalność mostu Linuksa jest symulowana, ale lepszą cechą mostu jest to, że adres MAC każdego interfejsu jest znany i nie trzeba go uczyć. Dlatego w tym trybie podinterfejsy mogą komunikować się bezpośrednio.



3.4 Passthru

Tryb ten pozwala na połączenie tylko jednego podinterfejsu z głównym interfejsem i musi być ustawiony na tryb promiskuitetny, który jest zazwyczaj używany do łączenia podinterfejsów i tworzenia podinterfejsów VLAN.



3.5 MacTap

Inną technologią podobną do MacVLAN jest MacTap. W przeciwieństwie do macvlan, mactap odbiera pakiet i przekazuje go stosowi protokołów, ale do pliku tapX, przez który kończy bezpośrednią komunikację z użytkownikiem.



04 Trening

Na Linuksie polecenie do utworzenia macvlan wygląda następująco:

Ogólnie rzecz biorąc, używanie samego macVLAN jest bezcelowe, a do budowy sieci jest to zazwyczaj kombinacja maszyn wirtualnych i kontenerów. Skorzystajmy z namespace, aby zobaczyć, jak Linux korzysta z macvlan.

Topologia eksperymentalna wygląda następująco:




W moim systemie, używając interfejsu enp0s8 jako przykładu, stworzyłem dwa podinterfejsy macvlan (w trybie bridge), skonfigurowałem IP i połączyłem je z dwoma przestrzeniami nazw, aby przetestować łączność.

Uwaga: Adres IP enp0s8 to 192.168.56.110/24, a adres IP skonfigurowanego podinterfejsu musi również pochodzić z tego samego segmentu CIDR.

Po dwóch podinterfejsach pinguj to:


Widać, że można go pingować, ale jeśli zmienisz powyższy tryb na inny, nie zadziała, więc zostawiam to wszystkim do eksperymentowania (domyślnie jest to VePa).

Ponadto w Dockerze MacVLAN jest ważniejszym modelem sieci międzyhostowskiej, który zostanie omówiony w kolejnym artykule.

Podsumowanie 05

MACVLAN to technologia wirtualizacji kart sieciowych, która pozwala wirtualizować kartę sieciową na wiele kart sieciowych.

Cztery tryby komunikacji MacVLAN, najczęściej spotykanym trybem jest Bridge.

Pomyśl o tym:

Podobieństwa i różnice między mostem Macvlan a mostem
Istnieje podobna technologia, gdzie wiele wirtualnych kart sieciowych dzieli ten sam adres MAC, ale ma niezależne adresy IP.


Oryginalny adres:Logowanie do linku jest widoczne.




Poprzedni:Praktyczne działanie: Użyj BundleTransformer do zastąpienia System.Web.Optimization
Następny:Docker używa Macvlan do ustawiania niezależnego adresu IP dla kontenerów
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com