Het ERSPAN verleden en heden van Mylinking™ netwerkzichtbaarheid

De meest gebruikte tool voor netwerkbewaking en probleemoplossing is tegenwoordig Switch Port Analyzer (SPAN), ook wel bekend als poortspiegeling. Hiermee kunnen we netwerkverkeer monitoren in de out-of-band-modus zonder de services op het actieve netwerk te verstoren. Bovendien wordt een kopie van het gemonitorde verkeer verzonden naar lokale of externe apparaten, zoals Sniffer, IDS of andere netwerkanalysetools.

Enkele typische toepassingen zijn:

• Problemen met het netwerk oplossen door controle-/dataframes te volgen;

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

• Analyseer latentie door netwerkinteracties te monitoren;

• Anomalieën detecteren door het netwerkverkeer te bewaken.

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

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

Basisprincipes van ERSPAN

Laten we eerst eens kijken naar de kenmerken van ERSPAN:

• Een kopie van het pakket van de bronpoort wordt naar de doelserver gestuurd voor parsing 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 basisdomein via de uitgebreide lijst op expertniveau, en worden de sessiesleutelwoorden afgestemd om de visualisatie van de sessie te realiseren, zoals de TCP three-way handshake en RDMA-sessie;

• Ondersteuning voor het instellen van de bemonsteringsfrequentie;

• Ondersteunt pakket-onderscheppingslengte (Packet Slicing), waardoor de druk op de doelserver wordt verlaagd.

Met deze functies begrijpt u waarom ERSPAN tegenwoordig een onmisbaar hulpmiddel is voor het bewaken van netwerken binnen datacenters.

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

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

• Probleemoplossing netwerk: legt netwerkverkeer vast voor foutanalyse wanneer er een netwerkprobleem optreedt.

Om dit te doen, moet het bronnetwerkapparaat het verkeer dat voor de gebruiker van belang is uit de enorme datastroom filteren, een kopie maken en elk gekopieerd frame in een speciale "superframecontainer" inkapselen. Deze container bevat voldoende aanvullende informatie om correct naar het ontvangende apparaat te kunnen worden gerouteerd. Bovendien moet het ontvangende apparaat in staat zijn om het oorspronkelijke gemonitorde verkeer te extraheren en volledig te herstellen.

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

Het inkapselen van ERSPAN-pakketten

De ERSPAN-type- en pakketformaatanalyse

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

Voor de algemene encapsulatiestructuur van ERSAPN is het volgende een spiegelpakketvastlegging van ICMP-pakketten:

inkapselingsstructuur van ERSAPN

Het ERSPAN-protocol heeft zich in de loop van de tijd ontwikkeld en met de verbetering van de mogelijkheden ervan zijn er verschillende versies ontstaan, de zogenaamde "ERSPAN-typen". Verschillende typen hebben verschillende frameheaderformaten.

Het is gedefinieerd in het eerste Versie-veld 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 encapsuleert IP en GRE direct over de header van het oorspronkelijke mirrorframe. Deze encapsulatie voegt 38 bytes toe aan het oorspronkelijke frame: 14 (MAC) + 20 (IP) + 4 (GRE). Het voordeel van dit formaat is dat het een compacte headergrootte heeft en de transmissiekosten verlaagt. Omdat de velden GRE Flag en Version echter op 0 worden gezet, bevat het geen uitgebreide velden en wordt Type I niet veel gebruikt, dus is er geen noodzaak om meer uit te breiden.

De GRE-headeropmaak van Type I is als volgt:

GRE-headerformaat I

2. Type II

Bij Type II zijn de velden C, R, K, S, S, Recur, Flags en Version in de GRE-header allemaal 0, behalve veld S. Daarom wordt het veld Sequence Number weergegeven in de GRE-header van Type II. Dit betekent dat Type II de volgorde van ontvangen GRE-pakketten kan garanderen, zodat een groot aantal GRE-pakketten die niet in de juiste volgorde staan, niet gesorteerd kunnen worden vanwege een netwerkstoring.

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 oorspronkelijke gespiegelde frame.

Het ERSPAN-headerformaat voor Type II is als volgt:

ERSPAN-headerformaat II

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

CRC

Het is belangrijk om op te merken dat het spiegelframe in de implementatie niet het FCS-veld van het oorspronkelijke frame bevat; in plaats daarvan wordt een nieuwe CRC-waarde berekend op basis van de volledige ERSPAN. Dit betekent dat het ontvangende apparaat de CRC-correctheid van het oorspronkelijke frame niet kan verifiëren en we kunnen er alleen van uitgaan dat alleen onbeschadigde frames worden gespiegeld.

3. Type III

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

De ERSPAN Type III-samengestelde 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

Na het originele spiegelframe volgt opnieuw een CRC van 4 bytes.

CRC

Zoals blijkt uit de headeropmaak van Type III worden naast het behoud van de velden Ver, VLAN, COS, T en Session ID op basis van Type II, veel speciale velden toegevoegd, zoals:

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

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

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

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

• Gra (Timestamp Granularity): specificeert de granulariteit van het tijdstempel. 00B staat bijvoorbeeld voor 100 microseconden granulariteit, 01B voor 100 nanoseconden granulariteit, 10B voor IEEE 1588 granulariteit en 11B vereist platformspecifieke subheaders om een ​​hogere granulariteit te bereiken.

• Platform-ID versus platformspecifieke info: Platformspecifieke infovelden hebben verschillende formaten en inhoud, afhankelijk van de Platf-ID-waarde.

Poort-ID-index

De verschillende headervelden die hierboven worden ondersteund, kunnen worden gebruikt in reguliere ERSPAN-toepassingen, zelfs voor het spiegelen van foutframes of BPDU-frames, met behoud van het oorspronkelijke Trunk-pakket en de VLAN-ID. Bovendien kunnen tijdens het spiegelen sleuteltijdstempelinformatie en andere informatievelden aan elk ERSPAN-frame worden toegevoegd.

Met de eigen feature headers van ERSPAN kunnen we een meer verfijnde analyse van het netwerkverkeer uitvoeren en vervolgens eenvoudig de bijbehorende ACL in het ERSPAN-proces koppelen, zodat deze overeenkomt 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 bereiken in een RDMA-scenario:

RDMA: Remote Direct Memory Access stelt de netwerkadapter van server A in staat om het geheugen van server B te lezen en te beschrijven met behulp van intelligente netwerkinterfacekaarten (INICS) en switches. Dit zorgt voor een hoge bandbreedte, lage latentie en een laag resourcegebruik. Het wordt veel gebruikt in scenario's met big data en gedistribueerde opslag met hoge prestaties.

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

De dagelijkse werking en het onderhoud van RDMA vereisen het verzamelen van grote hoeveelheden gegevens. Deze gegevens worden gebruikt om dagelijkse waterpeilreferentielijnen en abnormale alarmen te verzamelen, en vormen tevens de basis voor het lokaliseren van abnormale problemen. In combinatie met ERSPAN kunnen snel enorme hoeveelheden gegevens worden verzameld om microseconden data over de doorstuurkwaliteit en de protocolinteractiestatus van de schakelchip te verkrijgen. Door middel van datastatistieken en -analyse kan de end-to-end doorstuurkwaliteit van RDMA worden beoordeeld en voorspeld.

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

Definitie van een uitgebreide lijst met overeenkomende velden op expertniveau:

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

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

• Basisveld: identificeert de startpositie van het UDF-matchingveld. 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. Dit kan samen met het maskerveld worden gebruikt om de specifieke waarde te configureren die moet worden gekoppeld. De geldige bit is twee bytes.

• Maskerveld: masker, geldige bit is twee bytes

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

De twee belangrijkste pakketten die aan de RDMA-sessiestatus zijn gekoppeld, 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 drempelwaarde bereikt), dat informatie bevat over de stroom of QP die congestie veroorzaakt. De laatste wordt gebruikt om aan te geven dat de RDMA-transmissie een bericht over pakketverlies bevat.

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

RDMA CNP

expert access-list uitgebreide rdma

permit udp any any any any eq 4791udf 1 l4_header 8 0x8100 0xFF00(passend bij RG-S6520-64CQ)

permit udp any any any any eq 4791udf 1 l5_header 0 0x8100 0xFF00(Bijpassend bij RG-S6510-48VS8CQ)

RDMA CNP 2

expert access-list uitgebreide rdma

permit udp any any any any eq 4791udf 1 l4_header 8 0x1100 0xFF00 udf 2 l4_header 20 0x6000 0xFF00(passend bij RG-S6520-64CQ)

permit udp any any any any eq 4791udf 1 l5_header 0 0x1100 0xFF00 udf 2 l5_header 12 0x6000 0xFF00(Bijpassend bij RG-S6510-48VS8CQ)

Als laatste stap kunt u de RDMA-sessie visualiseren door de lijst met experts te koppelen aan het juiste ERSPAN-proces.

Schrijf in de laatste

ERSPAN is een van de onmisbare hulpmiddelen in de hedendaagse, steeds grotere datacenternetwerken, 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 netwerkgestuurde O&M. Het gebruik van gRPC als onderliggend protocol voor het terugsturen van spiegelverkeer heeft ook vele voordelen. Zo kan het, gebaseerd op het HTTP/2-protocol, het streaming push-mechanisme onder dezelfde verbinding ondersteunen. Met ProtoBuf-codering wordt de informatiegrootte gehalveerd ten opzichte van het JSON-formaat, waardoor de gegevensoverdracht sneller en efficiënter verloopt. Stel je voor dat je ERSPAN gebruikt om geïnteresseerde streams te spiegelen en deze vervolgens naar de analyseserver op gRPC te sturen. Zou dit de mogelijkheden en efficiëntie van de automatische werking en het onderhoud van het netwerk aanzienlijk verbeteren?


Geplaatst op: 10 mei 2022