2009-09-30 20 views
7

Bana göre, özellikle güvenlik sorunları olmak üzere, DNS ile ilgili pek çok problemin, UDP üzerinden DNS'nin temel nedenleri var; Mesela cevap veren kişi söylediği kişi olmak zorunda değildir.Neden mDNS (Bonjour, Avahi, vb) UDP kullanıyor?

mDNS protokolünün ayrıntılarını bilmiyorum (DNS'den çok daha yeni olduğunu varsayalım), belki de bu sorunları uygulama seviyesinde ele alır. Benim için biraz ışık tutabilir mi?

cevap

15

mDNS'deki 'm', "çok noktaya yayın" anlamına gelir. Bir mDNS sorgusu, yerel alt ağa oldukça düzenli bir DNS sorgu çok noktaya yayın (aka yayın). Alt ağdaki her ana bilgisayar tüm mDNS sorgu paketlerini alır ve ana bilgisayar adı için olanlara yanıt verir. TCP yayını yapmak mümkün olmadığından, TCP üzerinden mDNS uygulayamadınız.

Burada daha temel bir nokta var, mDNS zaten tamamen güvensiz. Gösterdiğiniz gibi, herhangi bir sorguya herkes cevap verebilir, böylece ağdaki tüm ana bilgisayarlara güvenmeniz gerekir. TCP'ye geçmek (eğer yapabilirseniz) bu sorunu düzeltmez.

+0

mDNS, kullanıcıların endişe duymadıkları bir ağda (örneğin, bir ev ağı) endişe etmeyecek şekilde tasarlanmıştır. Daha büyük, daha düşmanca bir ağ için, normal tek noktaya yayın DNS (muhtemelen TSIG kimlik doğrulamasıyla birlikte) kullanılmalıdır. Ardından, bir yönetici, müşterilerin hangi kayıtları güncelleyebileceği politikaları oluşturabilir. – Feuermurmel

+0

Ayrıca, 'UDP (Multicasts) için, birden çok uygulama aynı bağlantı noktasına abone olabilir. 'Http://stackoverflow.com/a/1694148/239247 –

5

Zeroconf güvenlikle ilgili değildir; Yukarıdaki katmanda güvenlik uygulanmalıdır. TCP çok fazla değişmeyecektir. Bu problemler kriptografik olarak çözülmelidir.