Het ERSPAN verleden en heden van Mylinking™-netwerkzichtbaarheid

Het meest gebruikte hulpmiddel voor netwerkmonitoring en probleemoplossing is Switch Port Analyzer (SPAN), ook wel poortspiegeling genoemd. Hiermee kunnen we netwerkverkeer in bypass-out-of-band-modus monitoren zonder de services op het live netwerk te verstoren, en wordt een kopie van het bewaakte verkeer naar lokale of externe apparaten verzonden, waaronder Sniffer, IDS of andere soorten netwerkanalysetools.

Enkele typische toepassingen zijn:

• Netwerkproblemen oplossen door controle-/dataframes te volgen;

• Analyseer latentie en jitter door VoIP-pakketten te monitoren;

• Analyseer de latentie door netwerkinteracties te monitoren;

• Detecteer afwijkingen door netwerkverkeer te monitoren.

SPAN-verkeer kan lokaal worden gespiegeld naar andere poorten op hetzelfde bronapparaat, of op afstand worden gespiegeld naar andere netwerkapparaten naast laag 2 van het bronapparaat (RSPAN).

Vandaag gaan we het hebben over de technologie voor het op afstand monitoren van internetverkeer, ERSPAN (Encapsulated Remote Switch Port Analyzer) genaamd, die over drie IP-lagen kan worden verzonden. Dit is een uitbreiding van SPAN naar Encapsulated Remote.

Basisprincipes van de werking van ERSPAN

Laten we eerst eens kijken naar de functies van ERSPAN:

• Een kopie van het pakket van de bronpoort wordt naar de doelserver gestuurd voor parsering via Generic Routing Encapsulation (GRE). De fysieke locatie van de server is niet beperkt.

• Met behulp van de User Defined Field (UDF)-functie van de chip wordt elke offset van 1 tot 126 bytes uitgevoerd op basis van het Base-domein via de uitgebreide lijst op expertniveau, en worden de sessiesleutelwoorden gematcht om de visualisatie te realiseren van de sessie, zoals de TCP-drieweghandshake en RDMA-sessie;

• Ondersteuning voor het instellen van de bemonsteringsfrequentie;

• Ondersteunt de lengte van pakketinterceptie (Packet Slicing), waardoor de druk op de doelserver wordt verminderd.

Met deze functies begrijpt u waarom ERSPAN tegenwoordig een essentieel hulpmiddel is voor het monitoren van netwerken in datacenters.

De belangrijkste functies van ERSPAN kunnen in twee aspecten worden samengevat:

• Sessiezichtbaarheid: gebruik ERSPAN om alle gemaakte nieuwe TCP- en Remote Direct Memory Access (RDMA)-sessies naar de back-endserver te verzamelen voor weergave;

• Netwerkprobleemoplossing: registreert netwerkverkeer voor foutanalyse wanneer zich een netwerkprobleem voordoet.

Om dit te doen, moet het bronnetwerkapparaat het verkeer dat voor de gebruiker interessant is, uit de enorme datastroom filteren, een kopie maken en elk kopieerframe inkapselen in een speciale "superframecontainer" die voldoende aanvullende informatie bevat zodat het kan correct naar het ontvangende apparaat worden geleid. Zorg er bovendien voor dat het ontvangende apparaat het oorspronkelijke bewaakte verkeer kan extraheren en volledig herstellen.

Het ontvangende apparaat kan een andere server zijn die het decapsuleren van ERSPAN-pakketten ondersteunt.

ERSPAN-pakketten inkapselen

De ERSPAN-type- en pakketformaatanalyse

ERSPAN-pakketten worden ingekapseld met behulp van GRE en via Ethernet doorgestuurd naar elke IP-adresseerbare bestemming. ERSPAN wordt momenteel vooral gebruikt op IPv4-netwerken en IPv6-ondersteuning zal in de toekomst een vereiste zijn.

Voor de algemene inkapselingsstructuur van ERSAPN is het volgende een spiegelpakketopname van ICMP-pakketten:

inkapselingsstructuur van ERSAPN

Het ERSPAN-protocol heeft zich gedurende een lange periode ontwikkeld en met de verbetering van de mogelijkheden zijn er verschillende versies gevormd, genaamd "ERSPAN Types". Verschillende typen hebben verschillende frameheaderformaten.

Het wordt gedefinieerd in het eerste versieveld van de ERSPAN-header:

ERSPAN-headerversie

Bovendien geeft het veld Protocoltype in de GRE-header ook het interne ERSPAN-type aan. Het veld Protocoltype 0x88BE geeft ERSPAN Type II aan, en 0x22EB geeft ERSPAN Type III aan.

1. Type I

Het ERSPAN-frame van Type I kapselt IP en GRE rechtstreeks in over de kop van het originele spiegelframe. Deze inkapseling voegt 38 bytes toe aan het originele frame: 14(MAC) + 20 (IP) + 4(GRE). Het voordeel van dit formaat is dat het een compact headerformaat heeft en de transmissiekosten verlaagt. Omdat het echter de GRE-vlag- en versievelden op 0 instelt, bevat het geen uitgebreide velden en wordt Type I niet veel gebruikt, dus er is geen noodzaak om verder uit te breiden.

Het GRE-headerformaat van Type I is als volgt:

GRE-headerformaat I

2. Type II

In Type II zijn de velden C, R, K, S, S, Recur, Flags en Version in de GRE-header allemaal 0, behalve het S-veld. Daarom wordt het veld Volgnummer weergegeven in de GRE-header van Type II. Dat wil zeggen dat Type II de volgorde van ontvangst van GRE-pakketten kan garanderen, zodat een groot aantal GRE-pakketten die niet in de juiste volgorde staan, niet kan worden gesorteerd vanwege een netwerkfout.

Het GRE-headerformaat van Type II is als volgt:

GRE-headerformaat II

Bovendien voegt het ERSPAN Type II-frameformaat een ERSPAN-header van 8 bytes toe tussen de GRE-header en het originele gespiegelde frame.

Het ERSPAN-headerformaat voor Type II is als volgt:

ERSPAN-headerformaat II

Ten slotte volgt onmiddellijk na het oorspronkelijke beeldframe de standaard 4-byte Ethernet Cyclic Redundancy Check (CRC)-code.

CRC

Het is vermeldenswaard dat bij de implementatie het spiegelframe niet het FCS-veld van het originele frame bevat, maar dat in plaats daarvan een nieuwe CRC-waarde opnieuw wordt berekend op basis van het gehele ERSPAN. Dit betekent dat het ontvangende apparaat de CRC-juistheid van het originele frame niet kan verifiëren, en we kunnen alleen maar aannemen dat alleen niet-corrupte frames worden gespiegeld.

3. Type III

Type III introduceert een grotere en flexibelere samengestelde header om steeds complexere en diversere scenario's voor netwerkmonitoring aan te pakken, inclusief maar niet beperkt tot netwerkbeheer, inbraakdetectie, prestatie- en vertragingsanalyse, en meer. Deze scènes moeten alle originele parameters van het spiegelframe kennen, inclusief de parameters die niet aanwezig zijn in het originele frame zelf.

De samengestelde ERSPAN Type III-header bevat een verplichte header van 12 bytes en een optionele platformspecifieke subheader van 8 bytes.

Het ERSPAN-headerformaat voor Type III is als volgt:

ERSPAN-headerformaat III

Nogmaals, na het originele spiegelframe bevindt zich een CRC van 4 bytes.

CRC

Zoals te zien is aan het headerformaat van Type III, zijn er naast het behouden van de velden Ver, VLAN, COS, T en Session ID op basis van Type II veel speciale velden toegevoegd, zoals:

• BSO: gebruikt om de laadintegriteit aan te geven van dataframes die via ERSPAN worden verzonden. 00 is een goed frame, 11 is een slecht frame, 01 is een kort frame, 11 is een groot frame;

• Tijdstempel: geëxporteerd vanaf de hardwareklok, gesynchroniseerd met de systeemtijd. Dit 32-bits veld ondersteunt ten minste 100 microseconden tijdstempelgranulariteit;

• Frametype (P) en Frametype (FT): het eerste wordt gebruikt om te specificeren of ERSPAN Ethernet-protocolframes (PDU-frames) vervoert, en het laatste wordt gebruikt om te specificeren of ERSPAN Ethernet-frames of IP-pakketten vervoert.

• HW ID: unieke identificatie van de ERSPAN-engine binnen het systeem;

• Gra (tijdstempelgranulariteit): specificeert de granulariteit van de tijdstempel. 00B vertegenwoordigt bijvoorbeeld een granulariteit van 100 microseconden, 01B een granulariteit van 100 nanoseconden, 10B IEEE 1588 granulariteit, en 11B vereist platformspecifieke subkoppen om een ​​hogere granulariteit te bereiken.

• Platf ID versus platformspecifieke informatie: Platf-specifieke informatievelden hebben verschillende formaten en inhoud, afhankelijk van de Platf ID-waarde.

Poort-ID-index

Opgemerkt moet worden dat de verschillende headervelden die hierboven worden ondersteund, kunnen worden gebruikt in reguliere ERSPAN-toepassingen, zelfs bij het spiegelen van foutframes of BPDU-frames, terwijl het originele Trunk-pakket en de VLAN-ID behouden blijven. Bovendien kunnen belangrijke tijdstempelinformatie en andere informatievelden tijdens het spiegelen aan elk ERSPAN-frame worden toegevoegd.

Met de eigen feature headers van ERSPAN kunnen we een meer verfijnde analyse van netwerkverkeer realiseren en vervolgens eenvoudigweg de corresponderende ACL in het ERSPAN-proces koppelen om overeen te komen met het netwerkverkeer waarin we geïnteresseerd zijn.

ERSPAN implementeert RDMA-sessiezichtbaarheid

Laten we een voorbeeld nemen van het gebruik van ERSPAN-technologie om RDMA-sessievisualisatie te realiseren in een RDMA-scenario:

RDMA: Remote Direct Memory Access stelt de netwerkadapter van server A in staat het geheugen van server B te lezen en te schrijven met behulp van intelligente netwerkinterfacekaarten (inics) en switches, waardoor een hoge bandbreedte, lage latentie en een laag bronnengebruik wordt bereikt. Het wordt veel gebruikt in big data en krachtige gedistribueerde opslagscenario's.

RoCEv2: RDMA over Converged Ethernet Versie 2. De RDMA-gegevens zijn ingekapseld in de UDP-header. Het bestemmingspoortnummer is 4791.

Voor de dagelijkse werking en het onderhoud van RDMA moeten veel gegevens worden verzameld, die worden gebruikt om de dagelijkse referentielijnen voor het waterpeil en abnormale alarmen te verzamelen, evenals de basis voor het lokaliseren van abnormale problemen. Gecombineerd met ERSPAN kunnen enorme hoeveelheden gegevens snel worden vastgelegd om gegevens van microseconden doorstuurkwaliteit en de protocolinteractiestatus van de schakelchip te verkrijgen. Door middel van datastatistieken en -analyse kunnen RDMA end-to-end kwaliteitsbeoordelingen en -voorspellingen voor het doorsturen worden verkregen.

Om RDAM-sessievisualisatie te bereiken, hebben we ERSPAN nodig om trefwoorden voor RDMA-interactiesessies te matchen bij het spiegelen van verkeer, en moeten we de uitgebreide lijst van experts gebruiken.

Uitgebreide lijst met overeenkomende velddefinities op expertniveau:

De UDF bestaat uit vijf velden: UDF-trefwoord, basisveld, offsetveld, waardeveld en maskerveld. Beperkt door de capaciteit van hardware-ingangen, kunnen er in totaal acht UDF's worden gebruikt. Eén UDF kan overeenkomen met maximaal twee bytes.

• UDF-trefwoord: UDF1... UDF8 Bevat acht trefwoorden van het UDF-matchingsdomein

• Basisveld: identificeert de startpositie van het UDF-matchingsveld. Het volgende

L4_header (van toepassing op RG-S6520-64CQ)

L5_header (voor RG-S6510-48VS8Cq)

• Offset: geeft de offset aan op basis van het basisveld. De waarde varieert van 0 tot 126

• Waardeveld: overeenkomende waarde. Het kan samen met het maskerveld worden gebruikt om de specifieke waarde te configureren die moet worden gekoppeld. Het geldige bit is twee bytes

• Maskerveld: masker, geldige bit is twee bytes

(Toevoegen: als er meerdere vermeldingen worden gebruikt in hetzelfde UDF-matchingsveld, moeten de basis- en offsetvelden hetzelfde zijn.)

De twee sleutelpakketten die verband houden met de RDMA-sessiestatus zijn Congestion Notification Packet (CNP) en Negative Acknowledgment (NAK):

De eerste wordt gegenereerd door de RDMA-ontvanger na ontvangst van het ECN-bericht dat door de switch is verzonden (wanneer de eout-buffer de drempel bereikt), dat informatie bevat over de stroom of QP die congestie veroorzaakt. Dit laatste wordt gebruikt om aan te geven dat de RDMA-transmissie een pakketverliesresponsbericht heeft.

Laten we eens kijken hoe we deze twee berichten kunnen matchen met behulp van de uitgebreide lijst op expertniveau:

RDMA CNP

experttoegangslijst uitgebreide rdma

udp toestaan ​​elke elke elke elke eq 4791udf 1 l4_header 8 0x8100 0xFF00(Overeenkomend met RG-S6520-64CQ)

udp toestaan ​​elke elke elke elke eq 4791udf 1 l5_header 0 0x8100 0xFF00(Overeenkomend met RG-S6510-48VS8CQ)

RDMA CNP 2

experttoegangslijst uitgebreide rdma

udp toestaan ​​elke elke elke elke eq 4791udf 1 l4_header 8 0x1100 0xFF00 udf 2 l4_header 20 0x6000 0xFF00(Overeenkomend met RG-S6520-64CQ)

udp toestaan ​​elke elke elke elke eq 4791udf 1 l5_header 0 0x1100 0xFF00 udf 2 l5_header 12 0x6000 0xFF00(Overeenkomend met RG-S6510-48VS8CQ)

Als laatste stap kunt u de RDMA-sessie visualiseren door de expertextensielijst in het juiste ERSPAN-proces te koppelen.

Schrijf in de laatste

ERSPAN is een van de onmisbare tools in de steeds grotere datacenternetwerken van vandaag, het steeds complexere netwerkverkeer en de steeds geavanceerdere vereisten voor netwerkbeheer en onderhoud.

Met de toenemende mate van O&M-automatisering zijn technologieën zoals Netconf, RESTconf en gRPC populair onder O&M-studenten in netwerkautomatische O&M. Het gebruik van gRPC als onderliggend protocol voor het terugsturen van spiegelverkeer heeft ook veel voordelen. Op basis van het HTTP/2-protocol kan het bijvoorbeeld het streaming-push-mechanisme onder dezelfde verbinding ondersteunen. Met ProtoBuf-codering wordt de omvang van de informatie gehalveerd in vergelijking met het JSON-formaat, waardoor de gegevensoverdracht sneller en efficiënter wordt. Stel je eens voor: als je ERSPAN gebruikt om geïnteresseerde streams te spiegelen en ze vervolgens naar de analyseserver op gRPC te sturen, zal dit dan de mogelijkheden en efficiëntie van de automatische werking en het onderhoud van het netwerk aanzienlijk verbeteren?


Posttijd: 10 mei 2022