TL; DR
El enrutador / firewall CentOS6 NAT detrás de una conexión de módem por cable de 120Mbps parece limitar el rendimiento a 30Mbps después de las actualizaciones recientes y el "endurecimiento" de la seguridad.
Antes de las actualizaciones y el endurecimiento, obtenía 90 Mbps.
He verificado el uso de la CPU y la red y ninguno de ellos parece ser un factor limitante. tc
no muestra que se esté formando ningún tráfico y no sé cómo solucionarlo aún más.
Detalles
Tengo un sistema CentOS 6 ejecutándose como un enrutador / firewall NAT detrás de un módem de cable Comcast, que también funciona como un enrutador NAT
1000 100
eth1 eth0
Internet-------Modem-------------CentOS6-----------------LAN
10.0.0.0/24 192.168.10.0/24
El doble NAT es un legado del sistema CentOS que anteriormente sirvió como enrutador / firewall detrás de un cable módem Time-Warner que se ejecutaba en modo puente. Cuando me mudé al territorio de Comcast, tenía la intención de cambiar el módem al modo puente, pero nunca lo conseguí, y el doble NAT nunca causó un problema. Estaba obteniendo un rendimiento de 90 Mbps sin problemas.
Al preparar la conversión al modo puente en el módem Comcast, decidí "fortalecer" el sistema CentOS deshabilitando algunos servicios innecesarios y haciendo "yum update", lo que no había hecho en mucho tiempo. Después de endurecer hice una prueba de velocidad y me sorprendió encontrar un rendimiento de hasta 30Mbps.
Traté de conectar mi sistema de escritorio primario directamente al módem como este
eth1 eth0
Internet---Modem-------------CentOS6-----------------LAN
| 10.0.0.0/24 192.168.10.0/24
|
+--------------Desktop(Win7)
La ejecución de speedtest.net verificó que mi conexión de Comcast es capaz de 120Mbps, por lo que algo que cambié en el sistema CentOS resultó en un rendimiento de límite a 30Mbps. Cada vez que hago una prueba de velocidad desde la LAN (detrás del sistema CentOS) obtengo un valor dentro del 1-2% de 30Mbps, por lo que casi parece que algo está limitando artificialmente el rendimiento.
Pensé que tal vez la configuración del tráfico se habilitó de alguna manera, pero tc
parece indicar que no está activa
[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
El "endurecimiento" consistió en
- eliminar algunos paquetes innecesarios
- cerrar servicios innecesarios
- configurar iptables para filtrar todo el tráfico entrante, excepto un puerto no estándar para ssh
- instalar y configurar tripwire
Paquetes eliminados:
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
Servicios habilitados actualmente:
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
Mi pregunta es: ¿qué debo hacer a continuación para descubrir por qué mi enrutador CentOS 6 parece limitar artificialmente el rendimiento a 30 Mbps?
fuente
Respuestas:
Entonces, el problema aquí resultó ser un problema de hardware. Las cosas funcionaban bien hace un mes, y uno no espera que el hardware fallido siga "funcionando" en un modo degradado, pero eso es lo que estaba sucediendo.
El paso de resolución de problemas que reveló el problema fue mirar realmente las luces del puerto ethernet en la parte posterior del módem por cable. En lugar de la luz verde "1Gbps", era naranja, lo que significa "100Mbps". En ese modo, parece que el módem solo admite un rendimiento de hasta 30 Mbps.
Sé que el módem (Arris TG-852G) tiene puertos GBEthernet, por lo que algo impedía que los Centos hablaran con el módem a 1 Gbps. Usando
ethtool
vi esto:que esencialmente decía (desde el punto de vista del adaptador Centos) "Puedo soportar GBEthernet, y estoy anunciando GBEthernet, pero el par no es compatible con GBEthernet, así que estoy conectado a 100Mbps" .
Intenté varias soluciones sugeridas en varios foros en línea (incluido aquí), como usar un cable diferente, desactivar la negociación automática, anunciar solo 1 GB de velocidad o establecer la velocidad en 1 GB manualmente. Desactivar el autoneg y probar varios cables Cat6 diferentes no tuvo ningún efecto, y los otros dos impidieron que se estableciera una conexión.
Llegué a la conclusión de que tenía que ser el adaptador en sí y pedí un nuevo adaptador. Cuando se instaló, se conectó inmediatamente a 1 Gbps. Problema resuelto.
La moraleja de la historia es, por supuesto, que aunque las fallas de hardware en dispositivos sin partes móviles son raras en estos días, aún son posibles y deberían eliminarse antes de culpar al software.
fuente
Lo que haría aquí es revertir los cambios individualmente y ejecutar una prueba de velocidad después de cada uno o revertir todos los cambios. Compare una versión no modificada de CentOS (línea de base) y luego aplique cada cambio individualmente y ejecute la prueba de velocidad después de cada cambio.
fuente