Назад | Перейти на главную страницу

Маршрутизатор / брандмауэр CentOS 6, похоже, снижает пропускную способность

TL; DR

Маршрутизатор / брандмауэр CentOS6 NAT за кабельным модемом со скоростью 120 Мбит / с, похоже, ограничивает пропускную способность на уровне 30 Мбит / с после недавних обновлений и «усиления безопасности».

До обновлений и усиления я получал 90 Мбит / с.

Я проверил использование ЦП и сети, и ни один из них не является ограничивающим фактором. tc не показывает никакого формирования трафика, и я не знаю, как это исправить.

подробности

У меня есть система CentOS 6, работающая как NAT-маршрутизатор / брандмауэр за кабельным модемом Comcast, который также работает как NAT-маршрутизатор.

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

Двойной NAT является наследием системы CentOS, которая ранее служила маршрутизатором / межсетевым экраном за кабельным модемом Time-Warner, работающим в режиме моста. Когда я переехал на территорию Comcast, я намеревался переключить модем в режим моста, но так и не дошел до этого, и двойной NAT никогда не вызывал проблем. Я без проблем получал пропускную способность 90 Мбит / с.

Готовясь к переходу в мостовой режим на модеме Comcast, я решил «укрепить» систему CentOS, отключив некоторые ненужные службы и выполнив «yum update», чего я давно не делал. После закаливания я провел тест скорости и был удивлен, обнаружив, что пропускная способность упала до 30 Мбит / с.

Я попытался подключить свою основную настольную систему напрямую к модему вот так

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

Запуск speedtest.net подтвердил, что мое соединение Comcast поддерживает скорость 120 Мбит / с, поэтому кое-что, что я изменил в системе CentOS, привело к ограничению пропускной способности на уровне 30 Мбит / с. Каждый раз, когда я провожу тест скорости из локальной сети (за системой CentOS), я получаю значение в пределах 1-2% от 30 Мбит / с, так что кажется, будто что-то искусственно ограничивает пропускную способность.

Я подумал, может быть, как-то включили формирование трафика, но tc похоже, указывает, что он не активен

[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

«Закаливание» состояло из

  1. удаление некоторых ненужных пакетов
  2. отключение ненужных сервисов
  3. настройка iptables для фильтрации всего входящего трафика, кроме одного нестандартного порта для ssh
  4. установка и настройка tripwire

Удалены пакеты:

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

В настоящее время включены службы:

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 

У меня вопрос: что мне делать дальше, чтобы выяснить, почему мой маршрутизатор CentOS 6, похоже, искусственно ограничивает пропускную способность на уровне 30 Мбит / с?

Итак, проблема здесь оказалась аппаратной. Месяц назад все работало нормально, и нельзя ожидать, что вышедшее из строя оборудование будет по-прежнему «работать» в ухудшенном режиме, но именно это и происходило.

Шаг устранения неполадок, который выявил проблему, заключался в том, чтобы на самом деле взглянуть на индикаторы порта Ethernet на задней панели кабельного модема. Вместо зеленого индикатора «1 Гбит / с» он был оранжевым, что означало «100 Мбит / с». В этом режиме, похоже, модем поддерживает пропускную способность только до 30 Мбит / с или около того.

Я знаю, что модем (Arris TG-852G) имеет порты GBEthernet, поэтому что-то мешало Centos разговаривать с модемом на скорости 1 Гбит / с. С помощью ethtool Я видел это:

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

который, по сути, сказал (с точки зрения адаптера Centos) «Я могу поддерживать GBEthernet и рекламирую GBEthernet, но одноранговый узел не поддерживает GBEthernet, поэтому вместо этого я подключаюсь на скорости 100 Мбит / с».

Я пробовал различные исправления, предложенные на нескольких онлайн-форумах (в том числе здесь), такие как использование другого кабеля, отключение автосогласования, объявление скорости только 1 ГБ или установка скорости на 1 ГБ вручную. Отключение auto-neg и попытки использовать несколько разных кабелей Cat6 не дало никакого эффекта, а два других вообще не позволили установить соединение.

Я пришел к выводу, что это должен быть сам адаптер, и заказал новый адаптер. Когда он был установлен, он сразу же подключился на скорости 1 Гбит / с. Задача решена.

Мораль этой истории, конечно, заключается в том, что, хотя сбои оборудования в устройствах без движущихся частей в наши дни редки, они все еще возможны и должны быть устранены, прежде чем обвинять программное обеспечение.

Что я бы сделал здесь, так это отменил бы изменения по отдельности и запустил тест скорости после каждого или отменил бы все изменения. Выполните сравнительный анализ немодифицированной версии CentOS (базовый уровень), а затем примените каждое изменение индивидуально и запустите тест скорости после каждого изменения.