Il router / firewall CentOS 6 sembra limitare la velocità effettiva


12

TL; DR

Il router / firewall NAT CentOS6 dietro una connessione modem via cavo da 120 Mbps sembra limitare il throughput a 30 Mbps dopo i recenti aggiornamenti e il "rafforzamento" della sicurezza.

Prima degli aggiornamenti e dell'indurimento stavo ottenendo 90 Mbps.

Ho verificato l'utilizzo della CPU e della rete e nessuno di questi sembra essere un fattore limitante. tcnon mostra alcun modellamento del traffico in corso e non so come risolvere ulteriormente questo problema.

Dettagli

Ho un sistema CentOS 6 in esecuzione come router / firewall NAT dietro un modem via cavo Comcast, che funziona anche come router NAT

                              1000     100
                              eth1     eth0
Internet-------Modem-------------CentOS6-----------------LAN
                     10.0.0.0/24         192.168.10.0/24

Il doppio NAT è un'eredità del sistema CentOS che in precedenza aveva funzionato come router / firewall dietro un modem via cavo Time-Warner che funzionava in modalità bridge. Quando mi sono trasferito nel territorio di Comcast, intendevo passare il modem in modalità bridge, ma non ci sono mai riuscito e il doppio NAT non ha mai causato problemi. Stavo ottenendo una velocità di trasmissione di 90 Mbps senza problemi.

Durante la preparazione alla conversione in modalità bridge sul modem Comcast ho deciso di "rafforzare" il sistema CentOS disabilitando alcuni servizi non necessari e facendo "aggiornamento yum", cosa che non avevo fatto da un po 'di tempo. Dopo l'indurimento ho fatto un test di velocità e sono stato sorpreso di trovare un throughput fino a 30 Mbps.

Ho provato a collegare il mio sistema desktop primario direttamente al modem in questo modo

                          eth1     eth0
Internet---Modem-------------CentOS6-----------------LAN
              |  10.0.0.0/24         192.168.10.0/24
              |
              +--------------Desktop(Win7)

L'esecuzione di speedtest.net ha verificato che la mia connessione Comcast è in grado di 120 Mbps, quindi qualcosa che ho cambiato sul sistema CentOS ha portato a limitare il throughput a 30 Mbps. Ogni volta che eseguo un test di velocità dalla LAN (dietro il sistema CentOS) ottengo un valore compreso tra l'1-2% di 30 Mbps, quindi mi sembra quasi che qualcosa stia ostacolando artificialmente il throughput.

Ho pensato che forse il traffic shaping fosse abilitato in qualche modo, ma tcsembra indicare che non è attivo

[jhg@perseus ~]$ sudo tc -s qdisc
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 64159459406 bytes 44745482 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 2871293442 bytes 26151570 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0

L '"indurimento" consisteva in

  1. rimuovendo alcuni pacchetti non necessari
  2. chiusura di servizi non necessari
  3. configurare iptables per filtrare tutto il traffico in entrata tranne una porta non standard per ssh
  4. installazione e configurazione di tripwire

Pacchetti rimossi:

redis                    dovecot
redhat-lsb-compat        ipa-client
redhat-lsb               nfs-utils-lib
redhat-lsb-printing      nfs-utils
foomatic                 subversion
foomatic-db              spamassassin
foomatic-db-ppds         certmonger
cups                     yp-tools
mysql-server             ypbind
mysql                    rpcbind

Servizi attualmente abilitati:

abrt-ccpp            cpuspeed               kdump            nmb       
abrt-oops            crond                  lvm2-monitor     ntpd      
abrtd                dhcpd                  mcelogd          postfix   
acpid                dkms_autoinstaller     mdmonitor        rsyslog   
atd                  haldaemon              messagebus       smb       
auditd               ip6tables              named            sshd      
autofs               iptables               netfs            sysstat   
blk-availability     irqbalance             network          udev-post 

La mia domanda è: cosa devo fare accanto per capire perché il mio router CentOS 6 sembra limitare artificialmente la velocità di trasmissione a 30 Mbps?


Metodo scientifico ... Cosa hai fatto per "indurire" il sistema? Quale hardware è in uso? È salutare?
ewwhite,

@ewwhite vedi gli aggiornamenti al post.
Ex Umbris,

Cosa succede se si disabilita l'ispezione di iptables?
ewwhite

Ho impostato i criteri predefiniti su ACCETTA su tutte e tre le catene (input, forward, output) e ho scaricato tutte le regole ... nessuna modifica, sempre 30 Mbps
Ex Umbris

Downvoter ti interessa commentare?
Ex Umbris,

Risposte:


17

Quindi, il problema qui si è rivelato essere un problema hardware. Le cose funzionavano bene un mese fa e non ci si aspetta che l'hardware guasto "funzioni" ancora in modo degradato, ma è quello che stava succedendo.

Il passaggio per la risoluzione dei problemi che ha rivelato il problema è stato quello di esaminare effettivamente le luci della porta Ethernet sul retro del modem via cavo. Invece della luce verde "1Gbps" era arancione, indicando "100 Mbps". In quella modalità, sembra che il modem supporti throughput solo fino a 30 Mbps o giù di lì.

So che il modem (Arris TG-852G) ha porte GBEthernet, quindi qualcosa impediva a Centos di comunicare con il modem a 1 Gbps. Usando ethtoolho visto questo:

Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

che essenzialmente diceva (dal punto di vista dell'adattatore Centos) "Sono in grado di supportare GBEthernet e pubblicizzo GBEthernet, ma il peer non supporta GBEthernet - quindi sono invece connesso a 100 Mbps" .

Ho provato varie correzioni suggerite in diversi forum online (incluso qui) come l'utilizzo di un cavo diverso, la disattivazione della negoziazione automatica, la pubblicità della sola velocità di 1 GB o l'impostazione manuale della velocità su 1 GB. Disattivare la negazione automatica e provare diversi cavi Cat6 diversi non ha avuto alcun effetto e gli altri due hanno impedito di stabilire una connessione.

Ho concluso che doveva essere l'adattatore stesso e ho ordinato un nuovo adattatore. Quando è stato installato, si è collegato immediatamente a 1 Gbps. Problema risolto.

La morale della storia è, ovviamente, che anche se i guasti hardware nei dispositivi senza parti mobili sono rari in questi giorni, sono ancora possibili e dovrebbero essere eliminati prima di incolpare il software.


1
Secondo questo output, il peer non offre letteralmente nemmeno GBE, quindi nessuna parte della tua configurazione avrebbe la precedenza. Se fosse, ad esempio, un cavo difettoso, vedresti una velocità di collegamento negoziata inferiore, ma vedresti comunque GBE nelle velocità pubblicizzate dal tuo peer. Dato che è stato risolto cambiando la scheda di rete, ciò significa che qualcosa a un livello molto basso all'interno o vicino al [G] MII si stava comportando male. Questo è abbastanza profondo in un territorio "strano" che farò come migliaia di net.engs hanno fatto prima di me e dire: "Incolpo il firmware".
BMDan,

7

Quello che vorrei fare qui è ripristinare le modifiche singolarmente ed eseguire un test di velocità dopo ciascuna o ripristinare tutte le modifiche. Effettuare il benchmark di una versione non modificata di CentOS (baseline) e quindi applicare ogni modifica singolarmente ed eseguire il test di velocità dopo ogni modifica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.