Saya menerapkan solusi pemantauan jaringan untuk jaringan yang sangat besar (sekitar 5000 perangkat jaringan). Kami ingin semua perangkat di jaringan kami mengirim perangkap SNMP ke satu kotak (secara teknis ini mungkin akan menjadi sepasang HA kotak) dan kemudian memiliki kotak yang meneruskan perangkap SNMP ke kotak pemrosesan nyata. Ini akan memungkinkan kami untuk memiliki beberapa kotak back-end yang menangani jebakan, dan untuk mendistribusikan beban di antara kotak-kotak ujung itu.
Salah satu fitur utama yang kita butuhkan adalah kemampuan untuk meneruskan jebakan ke kotak tertentu tergantung pada alamat sumber perangkap. Ada saran untuk cara terbaik untuk menangani ini?
Di antara hal-hal yang kami pertimbangkan adalah:
- Menggunakan snmptrapd untuk menerima jebakan, dan membuatnya meneruskannya ke skrip perl handler yang ditulis khusus untuk menulis ulang jebakan dan mengirimkannya ke kotak pemrosesan yang tepat
- Menggunakan beberapa jenis perangkat lunak load balancing yang berjalan pada kotak Linux untuk menangani ini (mengalami kesulitan menemukan banyak program load balancing yang akan menangani UDP)
- Menggunakan Load Balancing Appliance (F5, dll)
- Menggunakan IPTables pada kotak Linux untuk merutekan perangkap SNMP dengan NATing
Kami saat ini telah mengimplementasikan dan sedang menguji solusi terakhir, dengan kotak Linux dengan IPTable yang dikonfigurasikan untuk menerima jebakan, dan kemudian tergantung pada alamat sumber jebakan, tulis ulang dengan tujuan nat (DNAT) sehingga paket dikirim ke server yang tepat. Sebagai contoh:
# Range: 10.0.0.0/19 Site: abc01 Destination: foo01
iptables -t nat -A PREROUTING -p udp --dport 162 -s 10.0.0.0/19 -j DNAT --to-destination 10.1.2.3
# Range: 10.0.33.0/21 Site: abc01 Destination: foo01
iptables -t nat -A PREROUTING -p udp --dport 162 -s 10.0.33.0/21 -j DNAT --to-destination 10.1.2.3
# Range: 10.1.0.0/16 Site: xyz01 Destination: bar01
iptables -t nat -A PREROUTING -p udp --dport 162 -s 10.1.0.0/16 -j DNAT --to-destination 10.3.2.1
Ini harus bekerja dengan efisiensi yang sangat baik untuk routing perangkap dasar, tetapi membuat kita benar-benar terbatas pada apa yang kita bisa mach dan filter dengan IPTable, jadi kami khawatir tentang fleksibilitas untuk masa depan.
Fitur lain yang benar - benar kita sukai, tetapi bukan "harus dimiliki" adalah kemampuan untuk menduplikasi atau mencerminkan paket UDP. Mampu mengambil satu jebakan masuk dan mengarahkannya ke berbagai tujuan akan sangat berguna.
Adakah yang pernah mencoba salah satu solusi yang mungkin di atas untuk perangkap SNMP (atau Netflow, UDP umum, dll) penyeimbangan beban? Atau adakah yang bisa memikirkan alternatif lain untuk menyelesaikan ini?