CentOS 6路由器/防火墙似乎限制了吞吐量


12

TL; DR

经过最近的更新和安全性“强化”之后,位于120Mbps电缆调制解调器连接后面的CentOS6 NAT路由器/防火墙似乎将吞吐量限制为30Mbps。

在进行更新和强化之前,我的速度为90Mbps。

我已经检查了CPU和网络使用情况,但似乎都不是限制因素。 tc没有显示任何流量整形的情况,而且我不知道如何进一步解决此问题。

细节

我有一个CentOS 6系统,作为Comcast电缆调制解调器后面的NAT路由器/防火墙运行,它也作为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从未引起问题。我获得了90Mbps的吞吐量,没有任何问题。

在准备在Comcast调制解调器上转换为桥接模式时,我决定通过禁用一些不需要的服务并执行“ yum更新”来“强化” 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. 设置iptables来过滤除ssh的一个非标准端口外的所有传入流量
  4. 安装和配置绊线

删除的软件包:

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路由器似乎人为地将吞吐量限制在30Mbps?


科学方法...您做了什么“加固”系统?使用什么硬件?健康吗
ewwhite '17

@ewwhite看到帖子的更新。
Ex Umbris

如果禁用iptables检查会怎样?
ewwhite

我在所有三个链(输入,转发,输出)上将默认策略设置为ACCEPT,并刷新了所有规则...保持不变,仍为30Mbps
Ex Umbris

唐纳德关心评论?
Ex Umbris'1

Answers:


17

因此,这里的问题原来是硬件问题。一个月前,一切运行良好,并且人们并不认为发生故障的硬件仍可以在降级模式下“正常工作”,但这就是发生的事情。

揭示问题的故障排除步骤实际上是查看电缆调制解调器背面的以太网端口指示灯。而不是绿色的“ 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电缆无效,而另外两条则根本无法建立连接。

我得出结论,它必须是适配器本身,并订购了一个新适配器。安装后,它立即以1Gbps的速度连接。问题解决了。

当然,这个故事的寓意是,即使如今在没有移动部件的设备中发生硬件故障的情况很少见,但仍然有可能发生这种情况,应在责怪软件之前予以消除。


1
根据此输出,对等方实际上甚至没有提供GBE,因此您的配置数量都不会覆盖它。例如,如果电缆质量不好,您会看到较低的协商链接速度,但仍然可以在对等方公布的速度中看到GBE。由于它是通过改变解决您的网卡,这意味着什么,在一个非常低的水平内或附近的[G] MII行为不端。这已经足够深入到“怪异”的领域了,就像数千名net.engs在我之前所做的那样,我会说:“我责怪固件”。
BMDan

7

我在这里要做的是分别还原更改,并在每次更改后进行速度测试,或还原所有更改。对未修改版本的CentOS(基准)进行基准测试,然后分别应用每个更改并在每个更改后运行速度测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.