2010-08-25 15 views
38

Bu sabah iş başında büyük sorunlar vardı çünkü SNMP kapanı UDP üzerinden çalıştırıldığı için bir SNMP kapanı olmadı. Üniversitedeki ağ sınıfından, UDP'nin TCP/IP gibi teslim edilmesinin garanti edilmediğini hatırlıyorum. Ve Wikipedia, SNMP'nin TCP/IP üzerinden çalıştırılabileceğini, ancak UDP'nin daha yaygın olduğunu söylüyor.SNMP genellikle neden TCP/IP değil UDP üzerinden çalışıyor?

Ben TCP/IP üzerinde UDP avantajlarından bazıları hız, yayın ve çoklu yayın olduğunu olsun. Ancak bana göre, garantili teslimatın, ağ izleme için yayın yeteneğinden daha önemli olduğu görülüyor. Özellikle ciddi yüksek güvenlik ihtiyaçları olduğunda. İş arkadaşlarımdan biri, trafiğin yoğunlaştığı zaman UDP paketlerinin ilk indirileceğini söyledi. Bu, ağ izleme (IMO) için UDP üzerinden TCP/IP'yi tercih etmenin bir başka nedenidir.

SNMP neden UDP kullanıyor? Bunu anlayamıyorum ve Google'da da iyi bir neden bulamıyorum.

+9

-1. –

+3

"Wikipedia, SNMP'nin TCP/IP üzerinden çalıştırılabileceğini" söyler, eğer RFC3430'u dikkatlice okursanız, http://www.faqs.org/rfcs/rfc3430.html deneysel olduğunu görürsünüz. satıcı ürün bunu destekler. –

+6

+1 belirtilen pratik sorunlar için –

cevap

36

UDP aslında kayıplı ağları (veya sıkışmış ağlar) 'de TCP daha iyi çalışması beklenmektedir. TCP, büyük miktarda veriyi aktarmada çok daha iyidir, ancak ağ başarısız olduğunda UDP'nin geçmesi olasılığı daha yüksektir. (Aslında, bunu test eden bir çalışma yaptım ve UDP zaman aşımı düzgün bir şekilde ayarlandığında, UDP üzerinden SNMP'nin TCP üzerinden SNMP'den çok daha başarılı olduğunu gördü). Genellikle TCP,% 5'lik paket kaybında kötü davranmaya başlar ve% 33 (ish) 'da tamamen işe yaramaz hale gelir ve UDP hala (sonunda) başarılı olur.

Yani doğru şeyin, her zaman olduğu gibi, doğru iş için doğru aracı seçmek. Çok fazla veriyi düzenli olarak izliyorsanız, TCP'yi düşünebilirsiniz. Fakat sorunları çözmek için UDP'ye geri dönmeye hazırlıklı olun. Bu günlerde çoğu yığın aslında hem TCP hem de UDP kullanabilir. onlar kabul etmediklerinden tuzaklar gönderme gelince

, evet tuzaklar güvenilmez. Ancak, SNMP INFORM'leri bir SNMP TRAP'ın onaylanmış bir sürümüdür. Bu nedenle, bildirim alıcısının mesajı aldığını bilmek istiyorsanız, lütfen INFORM'leri kullanın. TCP'nin değil yapmamasına dikkat edin, yalnızca bu sorunun iletiyi aldığı katman 3 düzeyinde bildirim sağladığından sorun. Bildirim alıcısının gerçekten aldığına dair bir güvence yoktur. SNMP INFORM'lar uygulama düzeyinde onaylama yapar ve bir TCP ack'in aldıklarını gösterdiğinden daha güvenilirdir. SNMP üzerinde

4

SNMP'li tuzakların kullanılması güvenilmez olarak kabul edilir. Gerçekten tuzaklara güvenmemelisin. SNMP, istek/yanıt protokolü olarak kullanılmak üzere tasarlanmıştır. Protokol ayrıntıları basittir (bundan dolayı isim, "basit ağ yönetim protokolü"). Ve UDP çok basit bir ulaşımdır. TCP'yi temel aracınız üzerinde kullanmayı deneyin - UDP kullanılarak kodlanan basit bir aracıdan çok daha karmaşıktır.

SNMP get/GetNext operasyonları bir yeniden deneme mekanizmaya sahip - bir yanıt zaman aşımı süresi içinde alınmazsa daha sonra aynı istek denemede maksimum sayıya kadar gönderilir.

+0

Kuruluşunuzun ağ yönetim stratejisini düşünmediği açıkça görülmektedir. Bazı eğitim kurslarında personel alma zamanı! –

+3

Sadeliğin, UDP'nin çözemediğim TCP/IP üzerinden elde ettiği avantaj olduğunu düşünüyorum. Bunun için teşekkür ederim. Bununla birlikte, ortaya koyduğum yanlısı argümanları listeleme kararını anlama çabamdaki bozulmanın göz ardı edildiğini düşünüyorum. – EC0

+1

SNMP gerçekten harika bir protokoldür; bununla birlikte, protokolün uygulanmasının basit olması, kullanımı ve anlaşılması basit olduğu anlamına gelmez. Ve bir şirketin kendini tuzağa düşürdüğü için sıkıntı içinde bulunması, profesyonel olmayan bir şey değildir ve en temel ağ kavramlarının anlaşılmasında temel bir eksiklik gösterir. Söyleyebileceğim tek şey, inşaat mühendislerinin aslında insanların güvenebileceği altyapıyı inşa etmeden önce sertifikalandırılması gerektiğine sevindim. –

9

sistemleri TCP üzerinden SNMP tuzakları göndermişse onlar alıcıya trafik alıyor bir sorun varsa paketler ACKed edilecek bekliyor engelleyebilir. Çok sayıda tuzak oluşturulduysa, sistemdeki mevcut soketleri kullanabilir ve sistem kilitlenir. UDP ile bu bir sorun değil çünkü vatansız.Benzer bir sorun da, SNMP'den ziyade syslog protokolü olmasına rağmen, Ocak ayında BitBucket'i çıkardı - temelde, bir yapılandırma hatası nedeniyle TCP üzerinden syslog kullanıyorlardı, syslog sunucusu azaldı ve tüm sunucular syslog için beklemede kilitlendi. Sunucu paketlerini ACK. SNMP yakalamaları TCP üzerinden gönderilmişse, benzer bir sorun ortaya çıkabilir. İlk RFC okumadan bir protokol tasarım hor için

http://blog.bitbucket.org/2012/01/12/follow-up-on-our-downtime-last-week/

İlgili konular