Я реалізую рішення для моніторингу мережі для дуже великої мережі (приблизно 5000 мережевих пристроїв). Ми хотіли б, щоб усі пристрої в нашій мережі надсилали SNMP-пастки в один ящик (технічно це, ймовірно, буде пара короб HA), а потім передати цю пастку SNMP-пастки в реальні ящики обробки. Це дозволить нам мати декілька задніх коробок, що обробляють пастки, і розподіляти навантаження між цими задніми ящиками.
Однією з ключових особливостей, яка нам потрібна, є можливість переадресації пасток до певного вікна залежно від адреси джерела пастки. Будь-які пропозиції щодо найкращого способу вирішити це?
Ми розглянули:
- Використовуючи snmptrapd, щоб прийняти пастки, і дозволити їх передати їх у власноруч написаний скрипт обробника Perl, щоб переписати пастку та відправити її у відповідне поле обробки
- Використовуючи якесь програмне забезпечення для балансування навантаження, що працює на вікні Linux для вирішення цього питання (виникають певні труднощі з пошуку багатьох програм з балансування навантаження, які будуть обробляти UDP)
- Використання приладу балансування навантаження (F5 тощо)
- Використання IPTables на панелі Linux для маршрутизації пасток SNMP з NATing
В даний час ми реалізували і тестуємо останнє рішення, з полем Linux з IPTables, налаштованим на отримання пасток, а потім, залежно від вихідної адреси пастки, перепишіть її з адресою призначення nat (DNAT), щоб пакет надсилався до належний сервер. Наприклад:
# 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
Це повинно працювати з чудовою ефективністю для основної маршрутизації пасток, але це залишає нас повністю обмеженими тим, що ми можемо обробляти та фільтрувати за допомогою IPTables, тому ми стурбовані гнучкістю в майбутньому.
Ще одна особливість, яка нам дуже сподобалася, але не зовсім «повинна бути» - це можливість копіювати або дзеркально відображати пакети UDP. Бути в змозі взяти одну вхідну пастку і направити її на кілька напрямків було б дуже корисно.
Хто-небудь пробував будь-яке з можливих рішень для пасток SNMP (або Netflow, загальний UDP тощо), балансування навантаження? Або хтось може придумати якісь інші альтернативи для вирішення цього питання?