Маршрутизатор / брандмауэр 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
«Закаливание» состояло из
Удалены пакеты:
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 (базовый уровень), а затем примените каждое изменение индивидуально и запустите тест скорости после каждого изменения.