簡體   English   中英

SPF記錄中的DNS查找過多

[英]Too many DNS lookups in an SPF record

我的網站需要使用Google Apps,SendGrid和MailChimp服務發送電子郵件。 Google Apps用於接收和閱讀我的域中的傳入電子郵件。

我需要為我的域設置SPF記錄。 以下語法正確(不確定A和MX標記):

“v = spf1 a mx include: _spf.google.com include: servers.mcsv.net include: sendgrid.net ~all”

但如果我用http://www.kitterman.com/getspf2.py進行測試,我會得到

PermError SPF永久錯誤:DNS查找太多

http://www.onlineaspect.com/2009/03/20/too-many-dns-lookups-in-an-spf-record/類似的問題

如何優化/重寫我的SPF記錄?

所以,我以前從來沒有這么做過,但根據你發來的文章,這就是我想出來的。

我們開始:

v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all

在我們拋出Too many DNS lookups錯誤之前,我們總共獲得10次查找:

  2 (Initial TXT & SPF Lookups)
  2 (a & mx Lookups)
  1 (_spf.google.com)
  1 (servers.mcsv.net)
 +1 (sendgrid.net)
 -----------------
  7 Lookups

因此,即使沒有遵循包含的SPF記錄,我們也有7次查找。


現在,讓我們深入了解一個級別。

1. _spf.google.com

Google SPF記錄的評估結果為:

v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all

每個都解析為以下值:

# _netblocks.google.com
v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 ?all

# _netblocks6.google.com
v=spf1 ip6:2607:f8b0:4000::/36 ip6:2a00:1450:4000::/36 ?all

所以谷歌給了我們2次查找,總共最多9次查詢

2. servers.mcsv.net

Mailchimp有點愚蠢,因為它增加了3個額外的查找:

v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all

我想,根據您通過Mailchimp發送的內容,您可以刪除其中一條或兩條記錄(但您必須自己評估)。

無論如何,這些決心解決了以下問題:

# spf1.mcsv.net
v=spf1 ip4:207.97.237.194/31 ip4:207.97.238.88/29 ip4:207.97.240.168/29 ip4:69.20.10.80/29 ip4:69.20.41.72/27 ip4:74.205.22.1/27 ip4:69.20.90.0/26 ?all

# spf2.mcsv.net
v=spf1 ip4:204.232.163.0/24 ip4:72.26.195.64/27 ip4:74.63.47.96/27 ip4:173.231.138.192/27 ip4:173.231.139.0/24 ip4:173.231.176.0/20 ip4:205.201.128.0/24 ?all

# spf.mandrillapp.com
v=spf1 ip4:205.201.136.0/24 ip4:205.201.137.0/24 ?all

這給我們帶來了總共12個Lookup (已超過限制的兩個)。

2. sendgrid.net

SendGrid最終成為我們最少的額外查找次數。

v=spf1 ip4:208.115.214.0/24 ip4:74.63.202.0/24 ip4:75.126.200.128/27 ip4:75.126.253.0/24 ip4:67.228.50.32/27 ip4:174.36.80.208/28 ip4:174.36.92.96/27 ip4:69.162.98.0/24 ip4:74.63.194.0/24 ip4:74.63.234.0/24 ip4:74.63.235.0/24 include:sendgrid.biz ~all

所以這里唯一的額外查找是sendgrid.biz ,其評估結果為:

v=spf1 ip4:208.115.235.0/24 ip4:74.63.231.0/24 ip4:74.63.247.0/24 ip4:74.63.236.0/24 ip4:208.115.239.0/24 ip4:173.193.132.0/24 ip4:173.193.133.0/24 ip4:208.117.48.0/20 ip4:50.31.32.0/19 ip4:198.37.144.0/20 ~all

這使我們的總計最多14次查找。


所以我們的總計是14個Lookups 我們需要將其降低到10.我已經在下面列出了幾個選項,您可能需要使用其中的一個來降低它。

  1. 直接包含一些重定向的spf記錄。 現在我們知道spf記錄重定向到哪些服務器,你可以刪除中間人並直接包含它們。 注意:如果任何服務最終更改其SPF記錄,您將必須手動更新您的SPF記錄。

  2. 刪除您正在使用的一些服務。 不確定您擁有所有這些服務的用例,但肯定會有一些重疊您可以使用。 例如,SendGrid支持(1)交易外發郵件,(2)時事通訊/營銷電子郵件,以及(3)傳入郵件。 因此可能存在一些可簡化的冗余。

  3. 如果MX記錄是多余的,請將其刪除。 根據您的設置,MX查找可能是多余的。

希望這可以幫助!

斯威夫特的答案很棒。

上面沒有提到的技術是查看具有自己的SPF記錄的單獨子域是否可以用於通過這些不同路由發送郵件的系統。

例如,如果域名是example.com ,請從user@gapps.example.com地址發送谷歌應用程序。 然后,可以為gapps.example.com提供包含_spf.google.com的SPF記錄,並且可以從主example.com SPF記錄中刪除_spf.google.com ,從而將查找減少3。

看一下SPF工具 *,它有助於將SPF記錄從原來使用包含的包含到僅包含ip4ip6字段的靜態記錄重新組裝。 它可以通過本地運行的DNS服務器或使用其API的托管DNS服務輕松地耦合在一起,以使所有內容與上游包含保持同步。

*我是作者(現在與其他貢獻者一起),它是Apache 2.0許可下的開源。

我們探索了將SPF記錄扁平化為IP以及創建子域。 所有這些似乎都是很多工作。 我們從spfproxy.org找到了一項服務,這需要幾分鍾的時間來設置。 它們基本上使用SPF宏掩蓋它們背后的DNS查找。 不確定為什么更多的公司不提供此服務。

幾年前,我寫了hydrate-spf ,一個查找工具包括並將結果合並到一個巨大的記錄中。 正如自述文件中所提到的,這種方法並不理想 - 它使您所包含的域無法更新其記錄。 但是,當您遇到允許的限制時,它將解決當前的問題,並且可以通過定期更新保持一定程度。

10查找限制是DNS查找的限制。 將SPF記錄展平以包括較少的DNS查找並將其替換為IP(展平)是一種繞過極限的方法。

您可以手動執行此操作,但每次其中一個提供程序更改其IP(經常發生)時,您必須更新SPF記錄。

理想的解決方案是使用SPF展平服務 這個是免費的低容量,或便宜超過500個電子郵件/月。 它會定期輪詢您要包含更新IP的SPF記錄。

Fraudmarc.com

披露:我與該公司無關,這不是推薦鏈接

SPF實施強制實施此10-DNS查找限制,以防止針對DNS基礎結構的DDoS攻擊。

使用DMARCLY的安全SPF功能,您可以在不重寫SPF記錄的情況下解除限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM