01 Introducere în Macvlan
Articolul anterior a vorbit despre mai multe tipuri de dispozitive virtuale de rețea Linux: tap/tun, veth-pair, bridge, acestea sunt practic soluții de virtualizare a rețelei oferite de sistemele Linux, iar macvlan este și una dintre ele, mai exact, aceasta este o soluție de virtualizare a plăcilor de rețea. Pentru că tehnologia MacVlan poateO rețea fizică de rețea este transformată virtual în mai multe plăci virtuale, care este echivalent cu placa fizică de rețea care execută tehnica mai multor clone de umbră, de la una la mai multe.
02 Cum funcționează MacVLAN
macvlan este o funcție nouă susținută de nucleul Linux, versiunile suportate includ v3.9-3.19 și 4.0+, iar 4.0+ este recomandată pentru versiunea mai stabilă. De obicei există sub forma modulelor de kernel, iar noi putem judeca dacă sistemul actual îl suportă în următoarele moduri:
Dacă prima comandă dă o eroare sau a doua comandă nu revine, înseamnă că sistemul curent nu suportă MacVLAN și nucleul trebuie actualizat.
Tehnologia MacVLAN sună puțin ca VLAN, dar mecanismul lor de implementare este complet diferit. Subinterfața macVLAN este complet independentă de interfața principală originală și poate fi configurată separat cu adresa MAC și adresa IP, în timp ce subinterfața VLAN și interfața principală împart aceeași adresă MAC. VLAN-urile sunt folosite pentru a împărți domeniile de broadcast, în timp ce macvlan-urile împart același domeniu de broadcast.
Prin diferite sub-interfețe, MacVLAN poate realiza și izolarea traficului. MacVLAN va determina cărei NIC virtuale trebuie predat pachetul pe baza adresei MAC a destinației pachetului, iar apoi NIC-ul virtuală va preda pachetul către stiva de protocoale de nivel superior pentru procesare.
03 Patru moduri
În funcție de modul de comunicare dintre subinterfețele MacVLAN, există patru moduri de rețea pentru MACVLAN:
- Mod privat
- Modul VEPA (Virtual Ethernet Port Aggregator)
- Modul bridge
- Mod Passthru
Implicit, se folosește modul VEPA.
3.1 Soldat
În acest mod, sub-interfețele din aceeași interfață primară sunt izolate una de cealaltă și nu pot comunica. Chiar dacă este deviat de la un întrerupător fizic extern, va fi aruncat fără milă.
3.2 Vepa
În acest mod, traficul dintre sub-interfețe trebuie direcționat către un switch extern care suportă 802.1Qbg/VPEA (fie fizic, fie virtual), redirecționat prin switch-ul extern și apoi înapoi.
Notă: Funcția 802.1Qbg/VPEA înseamnă pur și simplu că switch-ul trebuie să suporte funcția hairpin, adică pachetul de date poate fi recepționat de la o interfață și apoi trimis înapoi.
3.3 Podul
În acest mod, funcționalitatea bridge-ului Linux este simulată, dar partea mai bună la bridge este că adresa MAC a fiecărei interfețe este cunoscută și nu trebuie învățată. Prin urmare, în acest mod, sub-interfețele pot comunica direct.
3.4 Trecerea prin trecere
Acest mod permite conectarea unei singure sub-interfețe la interfața principală și trebuie setat pe modul promiscuu, care este folosit în general pentru a face legătura între sub-interfețe și a crea sub-interfețe VLAN.
3.5 Mactap
O altă tehnologie similară cu MacVLAN este MacTap. Spre deosebire de macvlan, mactap primește pachetul și îl predă stivei de protocoale, dar către un fișier tapX, prin care completează comunicarea directă cu utilizatorul.
04 Antrenament
Pe Linux, comanda pentru a crea un macvlan este următoarea:
În general, folosirea doar a macVLAN este inutilă și, în general, este o combinație între mașini virtuale și containere pentru a construi o rețea. Să folosim namespace pentru a vedea cum folosește Linux macvlan.
Topologia experimentală este următoarea:
În sistemul meu, folosind interfața enp0s8 ca exemplu, am creat două subinterfețe macvlan (folosind modul bridge), am configurat IP-ul și l-am legat în două spații de nume pentru a testa conectivitatea.
Notă: Adresa IP a enp0s8 este 192.168.56.110/24, iar adresa IP a subinterfeței configurate trebuie să fie de asemenea din același segment CIDR.
După două sub-interfețe, trimiteți-l:
Poți vedea că poate fi pingat, dar dacă schimbi modul de mai sus în alt mod, nu va funcționa, așa că las pe toată lumea să experimenteze (implicit este modul vepa).
În plus, în Docker, MacVLAN este un model de rețea cross-host mai important, care va fi discutat în articolul următor.
Rezumatul 05
MACVLAN este o tehnologie de virtualizare a plăcilor de rețea care poate virtualiza o placă de rețea în mai multe plăci de rețea.
Cele patru moduri de comunicare ale MacVLAN, cel mai comun fiind Bridge.
Gândește-te puțin:
Asemănări și diferențe între Podul Macvlan și Podul Există o tehnologie similară în care mai multe plăci virtuale de rețea împart aceeași adresă MAC, dar au adrese IP independente.
Adresa originală:Autentificarea cu hyperlink este vizibilă.
|