Saat ini saya sedang mengerjakan solusi pembentukan lalu lintas untuk perusahaan tingkat ISP, dan sampai pada masalah (jenis filosofis) yang menarik.
Melihat jumlah titik akhir yang harus ditangani oleh sistem (yaitu sekitar ~ 20k), saya sedikit khawatir apa yang akan terjadi ketika saya perlu membuat kebijakan / membentuk lalu lintas lebih banyak pengguna. Karena saya saat ini menggunakan HFSC shaping tree (lihat tc-hfsc, kebanyakan hal yang sama tapi lebih keren dari HTB yang lebih dikenal) untuk seluruh jaringan, saya harus menggunakan lebih banyak ClassIDs (jelas setidaknya satu untuk setiap pengguna pada jaringan). Masalah yang saya temukan adalah bahwa TC ClassID's agak terbatas - mereka adalah angka 16-bit, yang memberi saya kemungkinan maksimum 64k pengguna dibentuk oleh solusi ini.
Demikian pula, jika saya ingin mengelola filter TC secara efisien (mis. Tidak menggunakan 'teknik flush all'), saya harus dapat menghapus atau memodifikasi entri filter individual. (Saya menggunakan sesuatu yang mirip dengan tabel hash dari LARTC [1]). Sekali lagi, satu-satunya metode yang tampaknya berhasil adalah menghitung semua filter menggunakan prioritas individual (tc filter add dev ... prio 1). Tidak ada parameter lain yang dapat digunakan untuk tujuan ini, dan, sayangnya, prio hanya 16-bit-saja.
Pertanyaan saya adalah sebagai berikut: Apakah ada beberapa metode yang baik untuk memperbesar "ruang pengenal" yang tersedia, seperti perintah clsid 32-bit untuk 'kelas tc', dan prioritas 32-bit (atau pegangan modifikasi lainnya) untuk 'filter tc' perintah?
Terima kasih banyak,
-mk
(btw saya harap ini tidak akan masuk ke skenario "64k pengguna harus cukup untuk semua orang" ...)
Jawaban:
saya pikir Anda tidak boleh menempatkan pengguna 64k dengan kelas hulu dan hilir dan filter untuk masing-masing dari mereka pada antarmuka yang sama. Anda dapat mengulangi penangan untuk setiap antarmuka yang Anda miliki, jadi tambahkan lebih banyak antarmuka. Anda akan membutuhkan pekerjaan / server / NIC yang luar biasa untuk memiliki hal-hal ini. Jika server macet, Anda akan memiliki 64 ribu pengguna offline (dan itu akan macet dengan mudah dengan jumlah lalu lintas itu). Jangan lupa bahwa paket SETIAP yang melewati kartu jaringan Anda akan diperiksa dan diklasifikasikan oleh filter dan dikirim ke kelas yang akan diantrekan. Ini banyak pekerjaan untuk NIC gateway ISP dengan pelanggan 64k. Terutama dengan semua aliran video yang kita miliki saat ini (yang sulit untuk antri dengan benar).
sumber
Anda dapat membagi penanganan lalu lintas menjadi dua mesin (menggunakan yang ketiga) alih-alih menangani semua lalu lintas pada satu mesin. Lalu lintas dapat dialihkan hanya berdasarkan alamat IP sumber. Jadi, Anda akan memiliki pengguna 10k secara optimal jika Anda dapat membagi rentang IP secara merata.
Tentu saja, Anda dapat menggunakan lebih dari dua mesin jika diperlukan. Saya pikir ini mungkin lebih baik daripada menambal kernel Linux dan melakukan beberapa peretasan lainnya. Singkatnya, traffic shaping akan didistribusikan pada beberapa mesin. Node pusat hanya akan meneruskan lalu lintas ke node pemrosesan yang tepat.
sumber