TL; DR
O roteador / firewall NAT CentOS6 atrás de uma conexão de modem a cabo de 120 Mbps parece estar limitando a taxa de transferência a 30 Mbps após atualizações recentes e "fortalecimento" da segurança.
Antes das atualizações e do reforço, eu estava recebendo 90 Mbps.
Eu verifiquei o uso da CPU e da rede e nenhum deles parece ser um fator limitante. tc
não mostra nenhuma forma de tráfego acontecendo e não sei mais como solucionar isso.
Detalhes
Eu tenho um sistema CentOS 6 executando como roteador / firewall NAT atrás de um modem a cabo Comcast, que também está sendo executado como roteador NAT
1000 100
eth1 eth0
Internet-------Modem-------------CentOS6-----------------LAN
10.0.0.0/24 192.168.10.0/24
O NAT duplo é um legado do sistema CentOS, que anteriormente servia como roteador / firewall atrás de um modem a cabo Time-Warner que era executado no modo bridge. Quando mudei para o território da Comcast, pretendia mudar o modem para o modo bridge, mas nunca cheguei a ele, e o NAT duplo nunca causou um problema. Eu estava obtendo uma taxa de transferência de 90 Mbps sem problemas.
Ao preparar a conversão para o modo de ponte no modem Comcast, decidi "proteger" o sistema CentOS desativando alguns serviços desnecessários e fazendo a "atualização yum", o que não fazia há algum tempo. Após o endurecimento, fiz um teste de velocidade e fiquei surpreso ao encontrar uma taxa de transferência de até 30 Mbps.
Tentei conectar meu sistema de desktop principal diretamente ao modem como este
eth1 eth0
Internet---Modem-------------CentOS6-----------------LAN
| 10.0.0.0/24 192.168.10.0/24
|
+--------------Desktop(Win7)
A execução do speedtest.net verificou que minha conexão Comcast é capaz de 120 Mbps, então algo que eu mudei no sistema CentOS resultou em limitar a taxa de transferência a 30 Mbps. Toda vez que faço um teste de velocidade na LAN (atrás do sistema CentOS), obtenho um valor entre 1-2% e 30 Mbps, então parece que algo está limitando artificialmente a taxa de transferência.
Eu pensei que talvez a modelagem de tráfego tenha sido ativada de alguma forma, mas tc
parece indicar que não está ativa
[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
O "endurecimento" consistiu em
- removendo alguns pacotes desnecessários
- desligando serviços desnecessários
- configurando o iptables para filtrar todo o tráfego recebido, exceto uma porta não padrão para ssh
- instalando e configurando tripwire
Pacotes removidos:
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
Serviços atualmente ativados:
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
Minha pergunta é: O que devo fazer a seguir para descobrir por que meu roteador CentOS 6 parece limitar artificialmente a taxa de transferência a 30 Mbps?
fonte
Respostas:
Portanto, o problema aqui acabou sendo um problema de hardware. As coisas estavam funcionando bem há um mês, e não se espera que o hardware com falha ainda "funcione" em um modo degradado, mas é isso que estava acontecendo.
A etapa de solução de problemas que revelou o problema foi observar as luzes da porta Ethernet na parte traseira do modem a cabo. Em vez da luz verde de "1 Gbps", era laranja, significando "100 Mbps". Nesse modo, parece que o modem suporta taxa de transferência apenas até 30 Mbps.
Eu sei que o modem (Arris TG-852G) tem portas GBEthernet, então algo estava impedindo o Centos de falar com o modem a 1Gbps. Usando
ethtool
vi isso:que basicamente dizia (do ponto de vista do adaptador Centos) "Eu posso suportar o GBEthernet e estou anunciando o GBEthernet, mas o ponto não suporta o GBEthernet - por isso, estou conectado a 100 Mbps" .
Tentei várias correções sugeridas em vários fóruns on-line (inclusive aqui), como usar um cabo diferente, desativar a negociação automática, anunciar apenas 1 GB de velocidade ou definir a velocidade para 1 GB manualmente. Desligar o auto-neg e tentar vários cabos Cat6 diferentes não teve efeito, e os outros dois impediram que uma conexão fosse estabelecida.
Concluí que tinha que ser o próprio adaptador e pedi um novo adaptador. Quando foi instalado, ele se conectou imediatamente a 1Gbps. Problema resolvido.
A moral da história é, é claro, que, embora as falhas de hardware em dispositivos sem partes móveis sejam raras hoje em dia, elas ainda são possíveis e devem ser eliminadas antes de culpar o software.
fonte
O que eu faria aqui é reverter as alterações individualmente e executar um teste de velocidade após cada uma ou reverter todas as alterações. Faça o benchmark de uma versão não modificada do CentOS (linha de base) e aplique cada alteração individualmente e execute o teste de velocidade após cada alteração.
fonte