CentOS 6 เราเตอร์ / ไฟร์วอลล์ดูเหมือนจะควบคุมปริมาณงานได้


12

TL; DR

CentOS6 NAT เราเตอร์ / ไฟร์วอลล์ที่อยู่ด้านหลังการเชื่อมต่อเคเบิลโมเด็ม 120Mbps ดูเหมือนว่าจะได้รับความเร็วสูงสุดที่ 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 ที่เคยทำหน้าที่เป็นเราเตอร์ / ไฟร์วอลล์หลังเคเบิลโมเด็ม Time-Warner ที่วิ่งในโหมดบริดจ์ เมื่อฉันย้ายไปอยู่ในดินแดน Comcast ฉันตั้งใจจะเปลี่ยนโมเด็มเป็นโหมดบริดจ์ แต่ไม่เคยเข้าใกล้มันและ NAT สองเท่าไม่เคยทำให้เกิดปัญหา ฉันได้รับความเร็ว 90Mbps โดยไม่มีปัญหา

ในการเตรียมที่จะแปลงเป็นโหมด bridged บนโมเด็ม Comcast ฉันตัดสินใจที่จะ "แข็ง" ระบบ CentOS โดยปิดการใช้งานบริการที่ไม่จำเป็นและทำ "yum update" ซึ่งฉันไม่ได้ทำในขณะที่ หลังจากการชุบแข็งฉันทำการทดสอบความเร็วและรู้สึกประหลาดใจที่พบว่าปริมาณงานลดลงถึง 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) ฉันจะได้รับค่าภายใน 1-2% ของ 30Mbps ดังนั้นมันเกือบจะรู้สึกว่ามีบางสิ่งบางอย่างกำลังส่งผ่านค่าสูงสุด

ฉันคิดว่าอาจมีการเปิดใช้งานรูปร่างอย่างใดอย่างหนึ่ง แต่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


วิธีการทางวิทยาศาสตร์ ... คุณทำอะไรเพื่อ "ทำให้ระบบแข็ง"? ฮาร์ดแวร์ใดที่ใช้งานอยู่ มันมีสุขภาพดีหรือไม่?
ewwhite

@ ขาวขาวเห็นการอัปเดตของโพสต์
อดีต Umbris

จะเกิดอะไรขึ้นถ้าคุณปิดใช้งานการตรวจสอบ iptables
ewwhite

ฉันตั้งค่านโยบายเริ่มต้นเป็น ACCEPT ทั้งสามกลุ่ม (อินพุต, ส่งต่อ, ส่งออก) และล้างกฎทั้งหมด ... ไม่มีการเปลี่ยนแปลงยังคง 30Mbps
อดีต Umbris

Downvoter สนใจที่จะแสดงความคิดเห็น?
อดีต Umbris

คำตอบ:


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 ด้วยตนเอง การปิด auto-neg และลองใช้สายเคเบิล Cat6 ที่แตกต่างกันหลายอย่างนั้นไม่มีผลกระทบและอีกสองสายจะป้องกันไม่ให้มีการสร้างการเชื่อมต่อเลย

ฉันสรุปว่ามันต้องเป็นอะแดปเตอร์และสั่งซื้ออะแดปเตอร์ใหม่ เมื่อติดตั้งแล้วมันจะเชื่อมต่อทันทีที่ 1Gbps แก้ไขปัญหา.

แน่นอนว่าเรื่องราวในเรื่องศีลธรรมนั้นแม้ว่าความล้มเหลวของฮาร์ดแวร์ในอุปกรณ์ที่ไม่มีชิ้นส่วนที่เคลื่อนไหวจะหายาก แต่ก็ยังคงเป็นไปได้และควรถูกกำจัดก่อนที่จะโทษซอฟต์แวร์


1
ตามผลลัพธ์นี้เพียร์ไม่ได้เสนอ GBE ดังนั้นจำนวนการกำหนดค่าของคุณจะแทนที่สิ่งนั้น หากเป็นเช่นสายเคเบิลที่ไม่ดีคุณจะเห็นความเร็วลิงค์ที่ลดลง แต่คุณยังคงเห็น GBE ในความเร็วที่โฆษณาจากเพียร์ของคุณ เนื่องจากมันได้รับการแก้ไขโดยการเปลี่ยนการ์ดเครือข่ายของคุณนั่นหมายความว่าบางสิ่งในระดับต่ำมากภายในหรือใกล้ [G] MII กำลังทำงานผิดปกติ นี่ลึกพอที่จะเป็นดินแดน "แปลกประหลาด" ที่ฉันจะทำตามที่ชาวเน็ตหลายพันคนทำมาก่อนฉันแล้วพูดว่า
BMDan

7

สิ่งที่ฉันจะทำที่นี่คือย้อนกลับการเปลี่ยนแปลงทีละรายการและรันการทดสอบความเร็วหลังจากการเปลี่ยนแปลงแต่ละครั้งหรือย้อนกลับ เกณฑ์มาตรฐาน CentOS (พื้นฐาน) ที่ไม่มีการแก้ไขจากนั้นใช้การเปลี่ยนแปลงแต่ละอย่างแยกกันและรันการทดสอบความเร็วหลังจากการเปลี่ยนแปลงแต่ละครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.