Lo strumento più comune per il monitoraggio e la risoluzione dei problemi di rete oggi è lo Switch Port Analyzer (SPAN), noto anche come Port Mirroring. Permette di monitorare il traffico di rete in modalità bypass out-of-band senza interferire con i servizi sulla rete attiva e invia una copia del traffico monitorato a dispositivi locali o remoti, inclusi sniffer, IDS o altri tipi di strumenti di analisi di rete.
Alcuni utilizzi tipici sono:
• Risolvere i problemi di rete monitorando i frame di controllo/dati;
• Analizzare la latenza e il jitter monitorando i pacchetti VoIP;
• Analizzare la latenza monitorando le interazioni di rete;
• Rilevare anomalie monitorando il traffico di rete.
Il traffico SPAN può essere replicato localmente su altre porte sullo stesso dispositivo sorgente oppure replicato in remoto su altri dispositivi di rete adiacenti al Livello 2 del dispositivo sorgente (RSPAN).
Oggi parleremo della tecnologia di monitoraggio remoto del traffico Internet chiamata ERSPAN (Encapsulated Remote Switch Port Analyzer), che può essere trasmessa su tre livelli IP. Si tratta di un'estensione di SPAN, ovvero Encapsulated Remote.
Principi di funzionamento di base di ERSPAN
Per prima cosa, diamo un'occhiata alle caratteristiche di ERSPAN:
• Una copia del pacchetto dalla porta sorgente viene inviata al server di destinazione per l'analisi tramite Generic Routing Encapsulation (GRE). La posizione fisica del server non è soggetta a restrizioni.
• Con l'ausilio della funzionalità User Defined Field (UDF) del chip, qualsiasi offset da 1 a 126 byte viene eseguito in base al dominio di base tramite l'elenco esteso di livello esperto e le parole chiave della sessione vengono abbinate per realizzare la visualizzazione della sessione, come l'handshake a tre vie TCP e la sessione RDMA;
• Supporta l'impostazione della frequenza di campionamento;
• Supporta la lunghezza dell'intercettazione dei pacchetti (Packet Slicing), riducendo la pressione sul server di destinazione.
Grazie a queste caratteristiche, è facile capire perché ERSPAN è uno strumento essenziale per il monitoraggio delle reti all'interno dei data center odierni.
Le funzioni principali di ERSPAN possono essere riassunte in due aspetti:
• Visibilità della sessione: utilizzare ERSPAN per raccogliere tutte le nuove sessioni TCP e RDMA (Remote Direct Memory Access) create sul server back-end per la visualizzazione;
• Risoluzione dei problemi di rete: cattura il traffico di rete per l'analisi degli errori quando si verifica un problema di rete.
Per fare ciò, il dispositivo di rete sorgente deve filtrare il traffico di interesse per l'utente dall'enorme flusso di dati, crearne una copia e incapsulare ogni frame di copia in uno speciale "contenitore superframe" che contenga informazioni aggiuntive sufficienti per poter essere correttamente instradato al dispositivo ricevente. Inoltre, deve consentire al dispositivo ricevente di estrarre e recuperare completamente il traffico originale monitorato.
Il dispositivo ricevente può essere un altro server che supporta la decapsulazione dei pacchetti ERSPAN.
Analisi del tipo e del formato del pacchetto ERSPAN
I pacchetti ERSPAN vengono incapsulati utilizzando GRE e inoltrati a qualsiasi destinazione con indirizzo IP tramite Ethernet. ERSPAN è attualmente utilizzato principalmente su reti IPv4 e il supporto per IPv6 sarà un requisito in futuro.
Per la struttura di incapsulamento generale di ERSAPN, di seguito è riportata una cattura speculare dei pacchetti ICMP:
Il protocollo ERSPAN si è sviluppato nel corso di un lungo periodo di tempo e, con il miglioramento delle sue capacità, sono state create diverse versioni, chiamate "Tipi ERSPAN". Tipi diversi hanno formati di intestazione dei frame diversi.
È definito nel primo campo Versione dell'intestazione ERSPAN:
Inoltre, il campo "Tipo di protocollo" nell'intestazione GRE indica anche il tipo ERSPAN interno. Il campo "Tipo di protocollo" 0x88BE indica il tipo ERSPAN II, mentre 0x22EB indica il tipo ERSPAN III.
1. Tipo I
Il frame ERSPAN di Tipo I incapsula IP e GRE direttamente sull'intestazione del frame mirror originale. Questa incapsulazione aggiunge 38 byte al frame originale: 14 (MAC) + 20 (IP) + 4 (GRE). Il vantaggio di questo formato è la dimensione compatta dell'intestazione e la riduzione dei costi di trasmissione. Tuttavia, poiché imposta i campi Flag e Versione GRE a 0, non supporta campi estesi e il Tipo I non è ampiamente utilizzato, quindi non è necessario espanderlo ulteriormente.
Il formato dell'intestazione GRE di Tipo I è il seguente:
2. Tipo II
Nel Tipo II, i campi C, R, K, S, S, Recur, Flags e Version nell'intestazione GRE sono tutti a 0, tranne il campo S. Pertanto, il campo Numero di sequenza viene visualizzato nell'intestazione GRE del Tipo II. In altre parole, il Tipo II può garantire l'ordine di ricezione dei pacchetti GRE, in modo che un gran numero di pacchetti GRE fuori ordine non possa essere ordinato a causa di un errore di rete.
Il formato dell'intestazione GRE di Tipo II è il seguente:
Inoltre, il formato frame ERSPAN di tipo II aggiunge un'intestazione ERSPAN da 8 byte tra l'intestazione GRE e il frame mirror originale.
Il formato dell'intestazione ERSPAN per il Tipo II è il seguente:
Infine, subito dopo il frame dell'immagine originale, si trova il codice standard Ethernet CRC (Cyclic Redundancy Check) a 4 byte.
È importante notare che nell'implementazione, il frame mirror non contiene il campo FCS del frame originale, ma viene ricalcolato un nuovo valore CRC basato sull'intero ERSPAN. Ciò significa che il dispositivo ricevente non può verificare la correttezza del CRC del frame originale e possiamo solo supporre che vengano replicati solo frame non corrotti.
3. Tipo III
Il Tipo III introduce un'intestazione composita più ampia e flessibile per affrontare scenari di monitoraggio di rete sempre più complessi e diversificati, inclusi, a titolo esemplificativo ma non esaustivo, la gestione della rete, il rilevamento delle intrusioni, l'analisi delle prestazioni e dei ritardi e altro ancora. Queste scene devono conoscere tutti i parametri originali del frame mirror, inclusi quelli non presenti nel frame originale.
L'intestazione composita ERSPAN di tipo III include un'intestazione obbligatoria da 12 byte e una sottointestazione opzionale da 8 byte specifica della piattaforma.
Il formato dell'intestazione ERSPAN per il Tipo III è il seguente:
Di nuovo, dopo il fotogramma dello specchio originale c'è un CRC a 4 byte.
Come si può vedere dal formato dell'intestazione del Tipo III, oltre a mantenere i campi Ver, VLAN, COS, T e Session ID sulla base del Tipo II, vengono aggiunti molti campi speciali, come:
• BSO: utilizzato per indicare l'integrità del carico dei frame di dati trasportati tramite ERSPAN. 00 è un frame buono, 11 è un frame cattivo, 01 è un frame corto, 11 è un frame lungo;
• Timestamp: esportato dall'orologio hardware sincronizzato con l'ora di sistema. Questo campo a 32 bit supporta una granularità di timestamp di almeno 100 microsecondi;
• Tipo di frame (P) e Tipo di frame (FT): il primo viene utilizzato per specificare se ERSPAN trasporta frame del protocollo Ethernet (frame PDU), mentre il secondo viene utilizzato per specificare se ERSPAN trasporta frame Ethernet o pacchetti IP.
• HW ID: identificatore univoco del motore ERSPAN all'interno del sistema;
• Gra (Granularità del Timestamp): specifica la granularità del Timestamp. Ad esempio, 00B rappresenta una granularità di 100 microsecondi, 01B una granularità di 100 nanosecondi, 10B una granularità IEEE 1588 e 11B richiede sottointestazioni specifiche della piattaforma per ottenere una granularità maggiore.
• ID piattaforma vs. Informazioni specifiche della piattaforma: i campi Informazioni specifiche della piattaforma hanno formati e contenuti diversi a seconda del valore dell'ID piattaforma.
È importante notare che i vari campi di intestazione supportati sopra possono essere utilizzati nelle normali applicazioni ERSPAN, anche per il mirroring di frame di errore o frame BPDU, mantenendo il pacchetto Trunk originale e l'ID VLAN. Inoltre, durante il mirroring, è possibile aggiungere informazioni sulla marca temporale della chiave e altri campi informativi a ciascun frame ERSPAN.
Grazie alle intestazioni delle funzionalità di ERSPAN, possiamo ottenere un'analisi più precisa del traffico di rete e quindi montare semplicemente l'ACL corrispondente nel processo ERSPAN in modo che corrisponda al traffico di rete a cui siamo interessati.
ERSPAN implementa la visibilità della sessione RDMA
Prendiamo un esempio di utilizzo della tecnologia ERSPAN per ottenere la visualizzazione della sessione RDMA in uno scenario RDMA:
RDMA: L'accesso diretto alla memoria remota consente alla scheda di rete del server A di leggere e scrivere nella memoria del server B utilizzando schede di interfaccia di rete (inic) e switch intelligenti, ottenendo elevata larghezza di banda, bassa latenza e basso utilizzo delle risorse. È ampiamente utilizzato in scenari di big data e storage distribuito ad alte prestazioni.
RoCEv2: RDMA su Ethernet convergente versione 2. I dati RDMA sono incapsulati nell'intestazione UDP. La porta di destinazione è 4791.
Il funzionamento e la manutenzione quotidiani dell'RDMA richiedono la raccolta di una grande quantità di dati, che vengono utilizzati per definire le linee di riferimento giornaliere del livello dell'acqua e gli allarmi anomali, nonché come base per l'individuazione di problemi anomali. In combinazione con ERSPAN, è possibile acquisire rapidamente enormi quantità di dati per ottenere dati sulla qualità dell'inoltro nell'ordine dei microsecondi e sullo stato di interazione del protocollo del chip di commutazione. Attraverso statistiche e analisi dei dati, è possibile ottenere una valutazione e una previsione della qualità dell'inoltro end-to-end dell'RDMA.
Per ottenere la visualizzazione della sessione RDAM, abbiamo bisogno che ERSPAN corrisponda alle parole chiave per le sessioni di interazione RDMA durante il mirroring del traffico e dobbiamo utilizzare l'elenco esteso degli esperti.
Definizione del campo corrispondente all'elenco esteso a livello esperto:
L'UDF è composta da cinque campi: parola chiave UDF, campo base, campo offset, campo valore e campo maschera. Limitato dalla capacità delle voci hardware, è possibile utilizzare un totale di otto UDF. Un'UDF può corrispondere a un massimo di due byte.
• Parola chiave UDF: UDF1... UDF8 Contiene otto parole chiave del dominio corrispondente UDF
• Campo base: identifica la posizione iniziale del campo corrispondente UDF. Il seguente
L4_header (applicabile a RG-S6520-64CQ)
L5_header (per RG-S6510-48VS8Cq)
• Offset: indica l'offset rispetto al campo base. Il valore varia da 0 a 126
• Campo Valore: valore corrispondente. Può essere utilizzato insieme al campo Maschera per configurare il valore specifico da abbinare. Il bit valido è di due byte.
• Campo maschera: maschera, il bit valido è due byte
(Aggiungi: se vengono utilizzate più voci nello stesso campo corrispondente UDF, i campi base e offset devono essere uguali.)
I due pacchetti chiave associati allo stato della sessione RDMA sono il Congestion Notification Packet (CNP) e il Negative Acknowledgment (NAK):
Il primo viene generato dal ricevitore RDMA dopo aver ricevuto il messaggio ECN inviato dallo switch (quando il buffer di uscita raggiunge la soglia), che contiene informazioni sul flusso o sul QP che causa la congestione. Il secondo viene utilizzato per indicare che la trasmissione RDMA ha un messaggio di risposta per perdita di pacchetti.
Vediamo come abbinare questi due messaggi utilizzando l'elenco esteso di livello esperto:
elenco di accesso esperto esteso rdma
consentire udp qualsiasi qualsiasi qualsiasi qualsiasi eq 4791udf 1 l4_header 8 0x8100 0xFF00(Corrispondente a RG-S6520-64CQ)
consentire udp qualsiasi qualsiasi qualsiasi qualsiasi eq 4791udf 1 l5_header 0 0x8100 0xFF00(Corrispondente a RG-S6510-48VS8CQ)
elenco di accesso esperto esteso rdma
consentire udp qualsiasi qualsiasi qualsiasi qualsiasi eq 4791udf 1 l4_header 8 0x1100 0xFF00 udf 2 l4_header 20 0x6000 0xFF00(Corrispondente a RG-S6520-64CQ)
consentire udp qualsiasi qualsiasi qualsiasi qualsiasi eq 4791udf 1 l5_header 0 0x1100 0xFF00 udf 2 l5_header 12 0x6000 0xFF00(Corrispondente a RG-S6510-48VS8CQ)
Come passaggio finale, è possibile visualizzare la sessione RDMA montando l'elenco delle estensioni degli esperti nel processo ERSPAN appropriato.
Scrivi nell'ultimo
ERSPAN è uno degli strumenti indispensabili nelle reti di data center sempre più grandi, nel traffico di rete sempre più complesso e nei requisiti di gestione e manutenzione della rete sempre più sofisticati.
Con il crescente livello di automazione di O&M, tecnologie come Netconf, RESTconf e gRPC stanno diventando sempre più diffuse tra gli studenti di O&M nell'ambito dell'O&M automatico di rete. L'utilizzo di gRPC come protocollo di base per l'invio del traffico mirror offre inoltre numerosi vantaggi. Ad esempio, basandosi sul protocollo HTTP/2, può supportare il meccanismo di streaming push sulla stessa connessione. Con la codifica ProtoBuf, la dimensione delle informazioni si riduce della metà rispetto al formato JSON, rendendo la trasmissione dei dati più rapida ed efficiente. Immaginate, se si utilizzasse ERSPAN per eseguire il mirroring dei flussi interessati e quindi inviarli al server di analisi su gRPC, migliorerebbe notevolmente la capacità e l'efficienza del funzionamento e della manutenzione automatica della rete?
Data di pubblicazione: 10 maggio 2022