01 Inleiding tot Macvlan
Het vorige artikel sprak over verschillende soorten Linux virtuele netwerkapparaten: tap/tun, veth-pair, bridge, het zijn in wezen netwerkvirtualisatieoplossingen die door Linux-systemen worden geleverd, en macvlan is er ook een van; om precies te zijn, dit is een netwerkkaartvirtualisatieoplossing. Omdat MacVlan-technologie dat wel kanEen fysiek netwerkkort wordt virtueel omgezet in meerdere virtuele netwerkkaarten, wat gelijkstaat aan de fysieke netwerkkaart die de techniek uitvoert van meerdere schaduwklonen, van één naar veel.
02 Hoe MacVLAN werkt
macvlan is een nieuwe functie die wordt ondersteund door de Linux-kernel; ondersteunde versies zijn onder andere v3.9-3.19 en 4.0+, en 4.0+ wordt aanbevolen voor de stabielere versie. Het bestaat meestal in de vorm van kernelmodules, en we kunnen beoordelen of het huidige systeem het ondersteunt op de volgende manieren:
Als het eerste commando een foutmelding geeft of het tweede commando niet terugkeert, betekent dit dat het huidige systeem MacVLAN niet ondersteunt en de kernel moet worden geüpgraded.
MacVLAN-technologie klinkt een beetje als VLAN, maar hun implementatiemechanisme is totaal anders. De macVLAN-subinterface is volledig onafhankelijk van de oorspronkelijke hoofdinterface en kan afzonderlijk worden geconfigureerd met MAC-adres en IP-adres, terwijl de VLAN-subinterface en de hoofdinterface hetzelfde MAC-adres delen. VLANs worden gebruikt om broadcastdomeinen te verdelen, terwijl macvlans hetzelfde broadcastdomein delen.
Via verschillende subinterfaces kan MacVLAN ook verkeersisolatie bereiken. MacVLAN bepaalt aan welke virtuele NIC het pakket moet worden overgedragen op basis van het MAC-adres van de bestemming van het pakket, waarna de virtuele NIC het pakket overdraagt aan de bovenste laag protocolstack voor verwerking.
03 Vier modi
Afhankelijk van de communicatiemodus tussen MacVLAN-subinterfaces zijn er vier netwerkmodi voor MACVLAN:
- Privémodus
- VEPA (Virtual Ethernet Port Aggregator) modus
- Brugmodus
- Passthru-modus
Standaard wordt de VEPA-modus gebruikt.
3.1 Privé
In deze modus zijn de sub-interfaces onder dezelfde primaire interface van elkaar geïsoleerd en kunnen ze niet communiceren. Zelfs als het wordt omgeleid van een externe fysieke schakelaar, wordt het genadeloos weggegooid.
3.2 vepa
In deze modus moet het verkeer tussen sub-interfaces worden doorgestuurd naar een externe switch die 802.1Qbg/VPEA ondersteunt (fysiek of virtueel), via de externe switch worden doorgestuurd en vervolgens terug.
Opmerking: De 802.1Qbg/VPEA-functie betekent simpelweg dat de schakelaar de haarspeldfunctie moet ondersteunen, dat wil zeggen dat het datapakket van een interface kan worden ontvangen en vervolgens teruggegooid kan worden.
3.3 Brug
In deze modus wordt de functionaliteit van de Linux-brug gesimuleerd, maar het beste aan de brug is dat het MAC-adres van elke interface bekend is en niet geleerd hoeft te worden. Daarom kunnen de sub-interfaces in deze modus direct communiceren.
3.4 passthru
Deze modus laat slechts één subinterface verbinding maken met de hoofdinterface en moet worden ingesteld op promiscue modus, die doorgaans wordt gebruikt voor het bruggen van subinterfaces en het creëren van VLAN-subinterfaces.
3.5 Mactap
Een andere technologie die vergelijkbaar is met MacVLAN is MacTap. In tegenstelling tot macvlan ontvangt mactap het pakket en geeft het over aan de protocolstack, maar dan aan een tapX-bestand, waarmee directe communicatie met de gebruiker wordt voltooid.
04 Praktijk
Op Linux is het commando om een macvlan aan te maken als volgt:
Over het algemeen is het gebruik van macVLAN alleen zinloos, en het is meestal een combinatie van VM's en containers om een netwerk te bouwen. Laten we namespace gebruiken om te zien hoe Linux Macvlan gebruikt.
De experimentele topologie is als volgt:
In mijn systeem, met interface enp0s8 als voorbeeld, heb ik twee macvlan-subinterfaces gemaakt (met bridge-modus), het IP geconfigureerd en het in twee namespaces opgehangen om de connectiviteit te testen.
Opmerking: Het IP-adres van enp0s8 is 192.168.56.110/24, en het IP-adres van de geconfigureerde subinterface moet ook van hetzelfde CIDR-segment afkomstig zijn.
Na twee sub-interfaces, ping je het:
Je ziet dat het gepingd kan worden, maar als je bovenstaande modus naar een andere modus zet, werkt het niet, dus laat ik dit aan iedereen over om te experimenteren (de standaard is vepa-modus).
Daarnaast is MacVLAN in Docker een belangrijker cross-host netwerkmodel, dat in het volgende artikel besproken zal worden.
05 Samenvatting
MACVLAN is een netwerkkaartvirtualisatietechnologie die een netwerkkaart kan virtualiseren naar meerdere netwerkkaarten.
De vier communicatiemodi van MacVLAN hebben de meest voorkomende modus Bridge.
Denk er eens over na:
Overeenkomsten en verschillen tussen Macvlan Bridge en Bridge Er is een vergelijkbare technologie waarbij meerdere virtuele netwerkkaarten hetzelfde MAC-adres delen, maar onafhankelijke IP-adressen hebben.
Origineel adres:De hyperlink-login is zichtbaar.
|