CodingBox Q&A Ask question

Circa il 15% di perdita di pacchetti attraverso un S+RJ10 SFP+ in rame su un CRS518-16XS-2XQ mentre il percorso diretto a 100G è pulito

Asked Active Viewed 150 AI translation from English
8

Mandiamo traffico da un server di laboratorio in un CRS518-16XS-2XQ tramite un uplink 100G QSFP28, ed esce dallo switch attraverso un S+RJ10 in rame MikroTik verso un host con un normale RJ45 1G. Il lato ricevente perde una fetta grossa dei pacchetti e non riesco ad appenderlo a niente di evidente.

Setup:

  • MikroTik CRS518-16XS-2XQ, uplink 100G QSFP28 dalla sorgente di traffico
  • S+RJ10 in rame MikroTik in una delle cage, dispositivo RJ45 1G all'altro capo
  • cattura in corso sull'host ricevente

Cosa dice la cattura:

100G QSFP28 uplink -> CRS518-16XS-2XQ -> S+RJ10 -> 1G RJ45 host
capture on the 1G host: ~15% of the packets never arrive
same source, direct 100G connection: nothing missing
switch CPU load: 1%

Provato finora:

  • collegata la stessa sorgente direttamente a 100G, zero perdite, quindi il mittente di per sé va bene
  • abbassato il carico CPU dello switch, ora sta all'1% e la perdita continua comunque
  • reinserito l'S+RJ10 e cambiato il patch cord verso il dispositivo 1G

Il modulo in rame è il mio sospettato principale a questo punto, ma il link è pulito e l'interfaccia non mostra nessun errore. È noto che l'S+RJ10 mangi traffico così, o dovrei guardare da qualche altra parte dentro lo switch?

Comments 5

Accepted answer

400-500 Mbps di media con un mittente a raffiche è tutta la storia. Il tuo traffico non è distribuito in modo uniforme: raffiche brevi lasciano la sorgente più veloci di 1 Gbps, e tutto quello che sta sopra quella soglia deve stare nel buffer di uscita della porta finché il lato 1G non lo svuota. Quando il buffer è pieno, lo switch scarta. È esattamente quello che ti sta dicendo il movimento di rx-overflow, ed è per questo che la connessione diretta a 100G non mostra nulla: lì non c'è nessun salto di velocità contro cui fare da buffer.

Il transceiver è innocente. Qualsiasi cosa in quella cage, rame o fibra, si comporterebbe allo stesso modo, perché la perdita avviene nel salto da 100G a 1G e non dentro il modulo.

Due cose da fare. La vera soluzione è sul mittente: ritmalo in modo che i pacchetti siano distribuiti uniformemente invece di essere scritti a raffiche. Una volta che la sorgente smette di produrre raffiche sopra il rate di uscita, la perdita sparisce.

Sullo switch puoi rendere la situazione del buffer meno ostile:

/interface ethernet switch set 0 qos-hw-offloading=yes
/interface ethernet switch qos settings set shared-buffers=90%

Questo guadagna margine e lascia che una raffica duri più a lungo, ma non rimuove la causa: se il mittente fa raffiche abbastanza forti e abbastanza a lungo, nessuna dimensione di buffer ti salva. Continua a guardare le statistiche QoS dello switch e i contatori rx-overflow dopo il cambiamento, così vedi se stai ancora toccando il soffitto o solo sfiorandolo ogni tanto.

Vale la pena tenere a mente la lezione generale: una porta con link pulito, nessun errore e un modulo sano può comunque perdere una quota a due cifre di traffico puramente per un salto di velocità tra porte.

4 Türkiyelinknerd83TR Show original (English) AI translation

Prima di dare la colpa al modulo, guarda cosa dicono davvero i contatori di porta. Esegui

/interface ethernet print stats

sulla porta di ingresso 100G e sulla cage con l'S+RJ10, e vai a guardare in particolare la riga rx-overflow invece dei soliti contatori di errore rx/tx. Un SFP+ in rame davvero rotto si annuncia con errori FCS o un link che sbatte su e giù, non con un ordinato taglio del 15% su uno stream altrimenti sano.

Seconda domanda: qual è il rate medio su quel percorso, e hai idea dei picchi? Perdere un pacchetto su sette con la CPU all'1% puzza molto più di una porta di uscita che finisce il buffer che di un guasto al transceiver.

0 Franceedgenode83FR Show original (English) AI translation

Prima i contatori: nessun errore su nessuna delle due porte, il link resta su tutto il tempo e il modulo non riporta niente di insolito. rx-overflow è l'unico punto dove i numeri si muovono.

Sul rate, il percorso fa in media 400-500 Mbps, quindi sulla carta non è nemmeno vicino a saturare il lato 1G. Non ho una misura dei picchi, ma il traffico è a raffiche per natura: il mittente scrive un blocco e poi sta zitto per un po'. La CPU resta all'1% mentre i pacchetti spariscono.

0 Netherlandsopticguru22NL Show original (English) AI translation

Guasto diverso, stessa lezione sul fidarsi dei contatori più che dell'intuito. Avevo un CRS354-48G-4S+2Q+RM su SwOS 2.18 con Rx FCS Errors in crescita costante su entrambe le porte QSFP+, e Rx MAC Errors a un ritmo più basso. Entrambe le porte stavano a 40G full duplex con MTU 1500, e dall'altra parte c'erano host ESXi con schede Mellanox ConnectX-3 Pro CX324A.

La parte interessante: il lato NIC non riportava assolutamente nulla.

esxcli network nic stats get -n vmnic4

Pulito. Cavi di bontà nota non cambiavano niente, e le porte 10G SFP+ della stessa scatola sono rimaste senza errori per tutto il tempo. Non ho mai avuto una diagnosi vera: spostare lo switch da SwOS a RouterOS ha fatto sparire i contatori, cosa che conto come nascondere il problema piuttosto che risolverlo.

Il metodo che ha retto: azzera i contatori, rileggili a intervallo fisso e guarda se gli errori seguono il volume di traffico. Nel tuo caso seguiranno le raffiche, nel mio non seguivano nulla di utile, e quella differenza da sola ti dice da che parte continuare a scavare.

1 United Statesphotonrunner70US Show original (English) AI translation

Una cosa da tenere a mente mentre sperimenti su quella porta: non ricorrere a velocità e duplex forzati come via d'uscita. Il comportamento documentato dei moduli in rame MikroTik, S-RJ01 e S+RJ10 allo stesso modo, è che funzionano solo con l'auto-negoziazione attiva: fissa il rate staticamente e il link non sale per niente. La pratica in parte lo contraddice, visto che alcuni possessori di RB5009 e RB4011 riportano il contrario e sono riusciti a stabilizzare un S-RJ01 solo forzando 1G full duplex, quindi è una cosa da "prova entrambe sul tuo hardware" piuttosto che una regola. In ogni caso è una deviazione dal tuo vero problema, che sta sul lato buffer.

L'altro dettaglio sull'S+RJ10 utile da sapere per dopo: assorbe notevolmente più potenza di un'ottica normale e scalda, quindi non è raccomandato in un dispositivo raffreddato passivamente senza aria extra. Se quel modulo mai inizia a comportarsi male in uno chassis caldo, la temperatura è la prima cosa che controllerei.

2 Kazakhstanlanbyte59KZ Show original (English) AI translation
Log in to comment. Log in