web-dev-qa-db-ja.com

CentOS6ルーター/ファイアウォールがスループットを抑制しているようです

TL; DR

CentOS6 NAT 120Mbpsケーブルモデム接続の背後にあるルーター/ファイアウォールは、最近の更新とセキュリティの「強化」の後、スループットを30Mbpsに制限しているようです。

アップデートと強化の前に、90Mbpsを取得していました。

CPUとネットワークの使用状況を確認しましたが、どちらも制限要因ではないようです。 tcは、進行中のトラフィックシェーピングを示しておらず、これをさらにトラブルシューティングする方法がわかりません。

細部

NATルーター/ファイアウォール、Comcastケーブルモデムの背後にある、NATルーターとして実行されている

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

ダブルNATは、以前はブリッジモードで実行されていたTime-Warnerケーブルモデムの背後にあるルーター/ファイアウォールとして機能していたCentOSシステムからの遺産です。Comcastテリトリーに移動したとき、モデムをブリッジモードに切り替えましたが、回避できず、二重NATは問題を引き起こしませんでした。問題なく90Mbpsのスループットを得ていました。

Comcastモデムでブリッジモードに変換する準備をする際に、いくつかの不要なサービスを無効にし、しばらくしていない「yum update」を実行して、CentOSシステムを「強化」することにしました。強化後、速度テストを行ったところ、スループットが30Mbpsまで低下していることに驚きました。

プライマリデスクトップシステムをこのようにモデムに直接接続してみました

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

Speedtest.netを実行すると、Comcast接続が120Mbpsに対応していることが確認されたため、CentOSシステムで変更した結果、スループットが30Mbpsに制限されました。 LAN(CentOSシステムの背後)から速度テストを行うたびに、30Mbpsの1〜2%以内の値が得られるため、スループットが人工的に制限されているように感じられます。

どういうわけかトラフィックシェーピングが有効になったのではないかと思いましたが、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. sshの1つの非標準ポートを除くすべての着信トラフィックをフィルタリングするようにiptablesを設定する
  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 

私の質問は、CentOS6ルーターが30Mbpsでスループットを人為的に制限しているように見える理由を理解するために次に何をすべきですか?

12
Ex Umbris

したがって、ここでの問題はハードウェアの問題であることが判明しました。 1か月前は問題なく動作しており、故障したハードウェアが劣化モードでも「動作」するとは思われませんが、それが起こっていたのです。

問題を明らかにしたトラブルシューティングの手順は、ケーブルモデムの背面にあるイーサネットポートのライトを実際に確認することでした。緑色の「1Gbps」ライトの代わりに、「100Mbps」を表すオレンジ色でした。そのモードでは、モデムは最大​​30Mbps程度のスループットしかサポートしていないようです。

モデム(Arris TG-852G)にGBEthernetポートがあることを知っているので、何かがCentosが1Gbpsでモデムと通信するのを妨げていました。 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をサポートしていないため、代わりに100Mbpsで接続しています"

別のケーブルを使用する、オートネゴシエーションをオフにする、1GBの速度のみをアドバタイズする、手動で速度を1GBに設定するなど、いくつかのオンラインフォーラム(ここを含む)で提案されたさまざまな修正を試しました。自動否定をオフにして、いくつかの異なるCat6ケーブルを試しても効果はなく、他の2つは接続の確立をまったく妨げていました。

私はそれがアダプター自体でなければならないと結論し、新しいアダプターを注文しました。インストールするとすぐに1Gbpsで接続されました。問題が解決しました。

もちろん、この話の教訓は、可動部品のないデバイスでのハードウェア障害は最近ではまれですが、それでも可能であり、ソフトウェアを非難する前に排除する必要があるということです。

17
Ex Umbris

ここで私が行うことは、変更を個別に元に戻し、それぞれの後に速度テストを実行するか、すべての変更を元に戻すことです。変更されていないバージョンのCentOS(ベースライン)をベンチマークしてから、各変更を個別に適用し、各変更後に速度テストを実行します。

7
user9517