DNS yapılandırması nedeniyle bazı gönderenlerden posta almıyor


9

Google apps alan adımın tuhaf bir davranışını fark ettim. Postaların çoğu beklediğiniz gibi gelir, ancak belirli bir süre boyunca belirli gönderenlerden gelen postaların gelmediği sonucuna vardım . Postaları gelmeyecek böyle bir göndereni tanımladıktan sonra, bana bir e-posta göndermesini ve "teslim hatası" yanıtını göndermesini istemiştim.

Dağıtım hatası yanıtı aşağıdaki snippet'i içeriyordu:

----- Oturumun metni aşağıdaki gibidir -----
<myusername@GHS.L.GOOGLE.COM>... Ertelenmiş: Bağlantı ghs.l.google.com ile zaman aşımına uğradı.

Bu , Google Apps Yardım Forumu'nda beni bu sayfaya yönlendiren hızlı bir arama yaparak sorunu tanımlamama yardımcı oldu . Gerçekten de, alan @adımın DNS kaydını kontrol ettim ve ghs.google.com olarak ayarlandım. (CNAME) içermemelidir. Bunu @ 74.125.93.121 (A)* olarak değiştirmek sorunu çözdü.

Postanın gelmediği durumlarda, alan adımın myusername@ghs.l.google.comyerine CNAME araması yoluyla kanonik ad verildi, bu nedenle posta yerine gönderildi myusername@mydomain.com. Ama neden göndericilerin büyük çoğunluğu için çalıştı? Postası gelmeyen göndericiler, farklı türde bir posta protokolü, bazı garip DNS ayarları mı kullandı, yoksa ne olabilir?

Google'daki sorunu araştırarak görebildiğim kadarıyla, bu geniş yayılmış bir sorun gibi görünüyor (bir çok insan battle.net'ten gelen e-postalardan şikayetçi değil, popüler bir örnek olurdu), sadece insanlar görünmüyor sorunun gönderen tarafında değil kendi DNS ayarlarında olduğunu bilmek.

Peki bu nasıl açıklanabilir?

* Burada okuduğum için bu IP'yi kullandım , ancak herhangi bir IP'nin hile yapacağını düşünüyorum. Herkes bunu onaylayabilir mi? @Kaydın kaldırılması sorunu çözmediğini, değiştirilmesi gerektiğini unutmayın.

Yanıtlar:


12

RFC 2821 "Basit Posta Aktarım Protokolü", bölüm 5 "Adres Çözümleme ve Posta İşleme" bölümünden:

Arama ilk olarak adla ilişkili bir MX kaydını bulmaya çalışır. Bunun yerine bir CNAME kaydı bulunursa, ortaya çıkan ad, ilk admış gibi işlenir.

Genel olarak, CNAME'ler bu şekilde çalışır. Genellikle yanlış kullanılır, yanlış anlaşılır ve yanlış uygulanır. :-)

Alan adınız example.com ise, muhtemelen normal Google Apps ana bilgisayarlarını gösteren mevcut MX kayıtlarınız vardır.

example.com. MX 10 ASPMX.L.GOOGLE.COM.
example.com. MX 20 ALT1.ASPMX.L.GOOGLE.COM.
example.com. MX 20 ALT2.ASPMX.L.GOOGLE.COM.
example.com. MX 30 ASPMX2.GOOGLEMAIL.COM.
example.com. MX 30 ASPMX3.GOOGLMAILE.COM.
example.com. MX 30 ASPMX4.GOOGLEMAIL.COM.
example.com. MX 30 ASPMX5.GOOGLEMAIL.COM.

Ayrıca şu şekilde bir girişiniz var gibi görünüyor:

example.com. CNAME ghs.l.google.com.

RFC 1034 "Etki Alanı Kavramları ve Olanakları" bölüm 3.6.2 "Takma adlar ve kurallı adlar" bölümünde bu yapılandırmaya karşı önerilmektedir:

Bir düğümde CNAME RR varsa, başka hiçbir veri bulunmamalıdır; bu kurallı bir ad ve diğer adları için verilerin farklı olmamasını sağlar.

Yapıştırdığınız hata durumunda, gönderen uçtaki posta sunucusu ve / veya DNS sunucusu alan adınız için MX kayıtlarını aramaya çalıştı, example.com ve ghs.l.google'ı işaret eden bir CNAME buldu. com. Daha sonra ghs.l.google.com için MX kayıtlarını aramaya çalıştı. Bu alan adının şu anda MX kaydı yok, bu nedenle posta sunucusu ghs.l.google.com için A kaydına düşmüş olacaktı. Bu IP adresi SMTP bağlantı noktasını dinlemediğinden, sonuç "Bağlantı ghs.l.google.com ile zaman aşımına uğradı" hatasıdır.

CNAME kaydını kaldırarak posta sorunlarınızı çözdünüz. Yerinde tanımladığınız IP adresi Google'ın sonunda değiştirilirse sorunlarla karşılaşabilirsiniz.

Bunun yerine www.example.com için cname tanımlayabilirsiniz:

www.example.com. CNAME ghs.l.google.com.

Example.com'u işaret ettiğiniz IP'de küçük bir web sunucusu çalıştırın ve bu da http://www.example.com/ adresine bir HTTP yönlendirmesi yapar.

Çalıştığı gibi çalışması biraz şaşırtıcı. Postel yasasının orada bir miktar kredi aldığını düşünüyorum. :-)

Geri RFC 1034 2.6.2:

CNAME RR'ler DNS yazılımında özel eylemlere neden olur. Bir ad sunucusu, etki alanı adıyla ilişkili kaynak kümesinde istenen bir RR'yi bulamadığında, kaynak kümesinin eşleşen bir sınıfa sahip bir CNAME kaydından oluşup oluşmadığını denetler. Bu durumda, ad sunucusu yanıtta CNAME kaydını içerir ve sorguyu CNAME kaydının veri alanında belirtilen etki alanı adında yeniden başlatır. Bu kuralın tek istisnası, CNAME türüyle eşleşen sorguların yeniden başlatılmamasıdır.

Bu nedenle, bu durumda, bir MX kaydı bulunmadığı sürece DNS sunucusunun bir MX aramasında CNAME'yi takip edeceği / takip etmemesi gerektiği söylenebilir.

Posta gönderirken, Sendmail ve qmail (ve muhtemelen başkaları) varsayılan olarak bir e-posta adresinin sağ tarafında kullanılan herhangi bir CNAME'yi kurallı ada yeniden yazmayı dener.

Gerçekten de, bazı siteler bu davranışa güveniyordu. djb, "postadaki CNAME kayıtları" belgesinde insanların neden ona güvenmeyi bırakması gerektiğini düşündüğü konusunda biraz ayrıntı verir .


Bu kapsamlı cevap için teşekkürler! :) Özetlemek gerekirse, diğer gönderenler için değil, bazıları için çalışmasının nedeninin, MX kayıtlarının orada olmasına rağmen CNAME'yi takip eden farklı MTA'lar kullandıklarını söyleyebilirsiniz, RFC 1034 2.6.2'ye göre hatalı davranış olarak kabul edildi mi?
0sh

Davranışı "hatalı" olarak adlandıracağımdan emin değilim. CNAME'nin diğer kayıtlarla (MX, NS, vb.) Yapılandırılması bozulan / önerilmeyen bir şeydir ve farklı ana bilgisayarlar bunu farklı şekillerde yorumlamıştır.
jeff

Bu bir 'genel olarak evet'tir, ancak davranışı hatalı olarak adlandıracağınızdan emin değil misiniz yoksa konuyu tamamen özledim mi?
0sh

Ayrıntılar bir karışıklık, bu yüzden 'genellikle evet' :-)
jeff

Bir MTA, @MX kayıtları için e-posta adresinden sonra alan adını sorguluyor olmalı ve başka bir şey yapmamalıdır . Varsa, derhal en düşük MX kayıtlarından birine teslim etmeyi denemelidir. Tüm MX sunucuları bağlanamazsa veya hiç MX kaydı bulunamazsa, etki alanının kendisine bağlanmayı denemelidir. Söz konusu MTA, açık bir şekilde bilgilerin çözümlenmesinde çok ileri gidiyor veya hangi posta sunucusuna bağlanacağını belirleme kurallarına uymuyor. Alan adınızın bir CNAME'yi işaret etmesiyle ilgili yanlış bir şey olmamalıdır - ancak e-postanın çalışması için MX kayıtlarına ihtiyacınız vardır.
Eli Sand

1

@Bir BIND kaydındaki sembol alanını yazma sadece bir steno yoludur. İçin bir kayıt oluşturuyorsanız example.com, @yalnızca bir takma addır example.com. Söyleyen @kayıt IP gerekiyordu kritik bilgiler eksik bir ifadedir - Sen değildin kaydın ne tür bize vermedi.

Teslim raporundan, uzak posta sunucusunun alanınızı ghs.l.google.com'a yeniden yazmasına neden olmak için DNS'nizle bir şeyler yapmışsınız gibi görünüyor - çok garip (PS, A kaydı bir IP, CNAME kaydı olmalı IP veya başka bir CNAME kaydı olmamalıdır ).

Neden bu kişilerin posta sunucusu adresinizi yeniden yazıyor garip - bu kişi açıkça yeniden yazmasını söyleyecek bir şey yapmadıkça olmamalıdır. MX kayıtları, posta sunucularının postanın nereye gittiğini nasıl anlayacağından, MX kayıtları bulamadığı sürece alan adınızın IP'sinin ne olduğu da umursamamalıdır.

Sağlanan çok az bilgi göz önüne alındığında, DNS'inizi e-posta için düzgün bir şekilde nasıl yapılandıracağınıza ilişkin Google talimatlarını izlemediğiniz gibi geliyor. Muhtemelen bölge dosyanızda bazı hatalarınız bile var - bunları yetkili bir bölge yöneticisi tarafından kontrol ettirin.


İlk olarak, @kaydın CNAME türünden bahsetmiştim . İkincisi, kullandığım DNS, satın alma işleminde google tarafından sağlanan addır, bu nedenle bölge dosyasına erişimim bile yoktur. Google tarafından sağlanan varsayılan ayarları kullandım. Ve son fakat aynı derecede önemli olarak, "sağlanan çok az bilgi", yetkin birisinin yararlı, tatmin edici ve (kendinizin aksine) samimi bir cevap vermesi için yeterliydi.
0sh

DNS'yi açıkça anlamıyorsunuz ve aşağı oylama tamamen yetkisizdi. Ek bilgi ekleyerek cevabımı gönderdikten sonra da sorunuzu düzenlediniz. Ayrıca, değiştirdiğinizi açıkça belirtmenize rağmen, bölge dosyanıza erişiminiz olmadığını bir kez asla söylemezsiniz.
Eli Sand
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.