AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 823822
Accepted
Ex Umbris
Ex Umbris
Asked: 2017-01-03 22:04:21 +0800 CST2017-01-03 22:04:21 +0800 CST 2017-01-03 22:04:21 +0800 CST

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

  • 772

TL;博士

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

在更新和强化之前,我获得了 90Mbps。

我检查了 CPU 和网络使用情况,这些似乎都不是限制因素。 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 系统的遗留物,之前它在以桥接模式运行的时代华纳电缆调制解调器后面充当路由器/防火墙。当我搬到康卡斯特的领地时,我打算将调制解调器切换到桥接模式,但从来没有解决过,而且双 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. 安装和配置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 路由器似乎人为地将吞吐量限制在 30Mbps?

router bandwidth throttling
  • 2 2 个回答
  • 923 Views

2 个回答

  • Voted
  1. Best Answer
    Ex Umbris
    2017-01-08T13:36:21+08:002017-01-08T13:36:21+08:00

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

    发现问题的故障排除步骤是实际查看电缆调制解调器背面的以太网端口灯。而不是绿色的“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。关闭 auto-neg 并尝试几条不同的 Cat6 电缆没有任何效果,另外两条根本无法建立连接。

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

    当然,这个故事的寓意是,尽管如今没有移动部件的设备中的硬件故障很少见,但它们仍然有可能发生,应该在归咎于软件之前将其消除。

    • 17
  2. user9517
    2017-01-03T22:24:42+08:002017-01-03T22:24:42+08:00

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

    • 7

相关问题

  • 用 D-LINK DFL-CPG310 防火墙替换 Cisco Pix 防火墙

  • 为 Cisco ASA 5510 上的端口 443/80 创建 NAT 规则和安全策略

  • Mac笔记本电脑无线路由器崩溃

  • 远程连接到局域网内的 Sql 服务器

  • 远程连接到 LAN 内的 SQL 服务器

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve