Router / firewall CentOS tampaknya melambatkan throughput

12

TL; DR

Router / firewall CentOS6 NAT di belakang koneksi modem kabel 120Mbps tampaknya membatasi throughput pada 30Mbps setelah pembaruan terbaru dan keamanan "pengerasan".

Sebelum pembaruan dan pengerasan saya mendapatkan 90Mbps.

Saya telah memeriksa penggunaan CPU dan jaringan dan keduanya tidak menjadi faktor pembatas. tctidak menunjukkan pembentukan traffic yang terjadi dan saya tidak tahu bagaimana memecahkan masalah ini lebih lanjut.

Detail

Saya memiliki sistem CentOS 6 yang berjalan sebagai router NAT / firewall di belakang modem kabel Comcast, yang juga berjalan sebagai router NAT

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

NAT ganda adalah warisan dari sistem CentOS yang sebelumnya berfungsi sebagai router / firewall di belakang modem kabel Time-Warner yang berjalan dalam mode jembatan. Ketika saya pindah ke wilayah Comcast saya bermaksud untuk mengganti modem ke mode bridge tetapi tidak pernah berhasil, dan NAT ganda tidak pernah menyebabkan masalah. Saya mendapatkan throughput 90Mbps tanpa masalah.

Dalam mempersiapkan untuk mengkonversi ke mode bridged pada modem Comcast saya memutuskan untuk "mengeraskan" sistem CentOS dengan menonaktifkan beberapa layanan yang tidak dibutuhkan dan melakukan "pembaruan yum", yang tidak saya lakukan dalam beberapa saat. Setelah pengerasan saya melakukan tes kecepatan dan terkejut menemukan throughput ke 30Mbps.

Saya mencoba menghubungkan sistem desktop utama saya langsung ke modem seperti ini

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

Menjalankan speedtest.net memverifikasi bahwa koneksi Comcast saya mampu 120Mbps, jadi sesuatu yang saya ubah pada sistem CentOS telah menghasilkan pembatasan throughput pada 30Mbps. Setiap kali saya melakukan tes kecepatan dari LAN (di belakang sistem CentOS) saya mendapatkan nilai dalam 1-2% dari 30Mbps, sehingga hampir terasa seperti ada sesuatu yang membatasi throughput buatan.

Saya pikir mungkin traffic traffic diaktifkan entah bagaimana, tetapi tcsepertinya mengindikasikan itu tidak aktif

[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

"Pengerasan" terdiri dari

  1. menghapus beberapa paket yang tidak dibutuhkan
  2. mematikan layanan yang tidak dibutuhkan
  3. mengatur iptables untuk memfilter semua lalu lintas masuk kecuali untuk satu port non-standar untuk ssh
  4. menginstal dan mengkonfigurasi tripwire

Paket yang dihapus:

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

Layanan yang saat ini diaktifkan:

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 

Pertanyaan saya adalah: Apa yang harus saya lakukan selanjutnya untuk mencari tahu mengapa router CentOS 6 saya tampaknya secara buatan membatasi throughput pada 30Mbps?

Ex Umbris
sumber
Metode ilmiah ... Apa yang Anda lakukan untuk "mengeraskan" sistem? Perangkat keras apa yang digunakan? Apakah ini sehat?
ewwhite
@ewwhite melihat pembaruan posting.
Ex Umbris
Apa yang terjadi jika Anda menonaktifkan inspeksi iptables?
ewwhite
Saya menetapkan kebijakan default untuk MENERIMA ketiga rantai (input, forward, output) dan memerah semua aturan ... tidak ada perubahan, masih 30Mbps
Ex Umbris
Downvoter mau berkomentar?
Ex Umbris

Jawaban:

17

Jadi, masalah di sini ternyata adalah masalah perangkat keras. Segalanya bekerja dengan baik sebulan yang lalu, dan orang tidak berharap perangkat keras yang gagal masih "bekerja" dalam mode terdegradasi, tetapi itulah yang terjadi.

Langkah pemecahan masalah yang mengungkapkan masalah ini adalah untuk benar-benar melihat lampu port ethernet di bagian belakang modem kabel. Alih-alih lampu hijau "1Gbps" berwarna oranye, menandakan "100Mbps". Dalam mode itu, tampaknya modem hanya mendukung throughput hingga 30Mbps.

Saya tahu modem (Arris TG-852G) memiliki port GBEthernet, jadi ada sesuatu yang mencegah Centos untuk berbicara dengan modem pada 1Gbps. Menggunakan ethtoolsaya melihat ini:

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

yang pada dasarnya mengatakan (dari sudut pandang adaptor Centos) "Saya dapat mendukung GBEthernet, dan saya mengiklankan GBEthernet, tetapi rekan tidak mendukung GBEthernet - jadi saya terhubung pada 100Mbps sebagai gantinya" .

Saya mencoba berbagai perbaikan yang disarankan dalam beberapa forum online (termasuk di sini) seperti menggunakan kabel yang berbeda, mematikan negosiasi otomatis, hanya mengiklankan kecepatan 1GB, atau mengatur kecepatan ke 1GB secara manual. Mematikan auto-neg dan mencoba beberapa kabel Cat6 yang berbeda tidak berpengaruh, dan dua lainnya mencegah koneksi dibuat sama sekali.

Saya menyimpulkan itu harus menjadi adaptor itu sendiri dan memesan adaptor baru. Ketika diinstal, segera terhubung pada 1Gbps. Masalah terpecahkan.

Moral dari cerita ini adalah, tentu saja, bahwa meskipun kegagalan perangkat keras pada perangkat tanpa bagian yang langka saat ini, mereka masih mungkin dan harus dihilangkan sebelum menyalahkan perangkat lunak.

Ex Umbris
sumber
1
Menurut hasil ini, peer secara harfiah bahkan tidak menawarkan GBE, jadi tidak ada jumlah konfigurasi Anda yang akan menimpanya. Jika itu mis. Kabel yang buruk, Anda akan melihat kecepatan tautan yang dinegosiasikan lebih rendah, tetapi Anda masih melihat GBE dalam kecepatan yang diiklankan dari rekan Anda. Mengingat bahwa itu diselesaikan dengan mengubah kartu jaringan Anda , itu berarti sesuatu pada tingkat yang sangat rendah di dalam atau di dekat [G] MII mengalami kesalahan. Ini cukup dalam ke wilayah "aneh" yang akan saya lakukan sebagai ribuan jaring. Banyak yang telah dilakukan sebelum saya dan berkata, "Saya menyalahkan firmware."
BMDan
7

Apa yang akan saya lakukan di sini adalah mengembalikan perubahan secara individual dan menjalankan tes kecepatan setelah masing-masing atau mengembalikan semua perubahan. Benchmark versi CentOS yang tidak dimodifikasi (baseline) dan kemudian terapkan setiap perubahan satu per satu dan jalankan tes kecepatan setelah setiap perubahan.

user9517
sumber