什么是SPF,SPF技術淺析
作者:域名頻道來源:域名頻道發布時間:2010-10-12瀏覽:
什么是SPF記錄?
這里的SPF是指Sender Policy Framework。翻譯過來就是發信者策略架構,比較拗口,通常都直接稱為SPF。在域名管理系統中對域名做一條以SPF格式為準的txt記錄即為SPF記錄。
這里的SPF是指Sender Policy Framework。翻譯過來就是發信者策略架構,比較拗口,通常都直接稱為SPF。在域名管理系統中對域名做一條以SPF格式為準的txt記錄即為SPF記錄。
SPF記錄有什么用?
SPF是為了防范垃圾郵件而提出來的一種DNS記錄類型,它是一種TXT類型的記錄,它用于登記某個域名擁有的用來外發郵件的所有IP地址。例如: dig TXT domain.com
domain.com. 27970 IN TXT "v=spf1 ip4:218.16.118.186 -all"
按照SPF的格式在DNS記錄中增加一條TXT類型的記錄,將提高該域名的信譽度,同時可以防止垃圾郵件偽造該域的發件人發送垃圾郵件。
SPF是跟DNS相關的一項技術,它的內容寫在DNS的txt類型的記錄里面。mx記錄的作用是給寄信者指明某個域名的郵件服務器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些郵件服務器是經過某個域名認可會發送郵件的。
由定義可以看出,SPF的作用主要是反垃圾郵件,主要針對那些發信人偽造域名的垃圾郵件。
SPF是為了防范垃圾郵件而提出來的一種DNS記錄類型,它是一種TXT類型的記錄,它用于登記某個域名擁有的用來外發郵件的所有IP地址。例如: dig TXT domain.com
domain.com. 27970 IN TXT "v=spf1 ip4:218.16.118.186 -all"
按照SPF的格式在DNS記錄中增加一條TXT類型的記錄,將提高該域名的信譽度,同時可以防止垃圾郵件偽造該域的發件人發送垃圾郵件。
SPF是跟DNS相關的一項技術,它的內容寫在DNS的txt類型的記錄里面。mx記錄的作用是給寄信者指明某個域名的郵件
由定義可以看出,SPF的作用主要是反垃圾郵件,主要針對那些發信人偽造域名的垃圾郵件。
如何查詢SPF記錄?
當前市場上很多郵件系統和供應商都已經開始支持SPF,比如163.com,那么該如何得到163.com的SPF值呢?在CMD環境中,鍵入:
nslookup
set type=txt
163.com
就會得到以下的結果:
163.com text =
"v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"
163.com nameserver = ns3.nease.net
163.com nameserver = ns.nease.net
ns.nease.net internet address = 202.106.185.75
ns3.nease.net internet address = 220.181.28.3
其中: "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"就是163.com的SPF值。
這個數據中說明了163.com有效合法服務器都有哪些!
當前市場上很多郵件系統和供應商都已經開始支持SPF,比如163.com,那么該如何得到163.com的SPF值呢?在CMD環境中,鍵入:
nslookup
set type=txt
163.com
就會得到以下的結果:
163.com text =
"v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"
163.com nameserver = ns3.nease.net
163.com nameserver = ns.nease.net
ns.nease.net internet address = 202.106.185.75
ns3.nease.net internet address = 220.181.28.3
其中: "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"就是163.com的SPF值。
這個數據中說明了163.com有效合法
如何設置SPF記錄?
進入域名解析創建一條TXT記錄填寫正確的SPF數據就可以生效了。
格式如下:
v=spf1 [[pre] type [ext] ] ... [mod]
每個參數的含義如下表所示: 參數 描述
v=spf1 SPF 的版本。如果使用 Sender ID 的話,這個字段就應該是 v=spf2
pre 定義匹配時的返回值。
可能的返回值包括: 返回值 描述
+ 缺省值。在測試完成的時候表示通過。
- 表示測試失敗。這個值通常是 -all,表示沒有其他任何匹配發生。
~ 表示軟失敗,通常表示測試沒有完成。
? 表示不置可否。這個值也通常在測試沒有完成的時候使用。
type 定義使用的確認測試的類型。
可能的值包括: 候選值 描述
include 包含一個給定的域名的測試
以 include:domain 的形式書寫。
all 終止測試序列。
比如,如果選項是 -all,那么到達這條記錄也就意味著測試失敗了。但是如果無法確定,可以使用 "?all"來表示,這樣,測試將被接受。
ip4 使用 IPv4 進行驗證。
這個可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建議使用這個參數,以減少域名服務器的負荷。
ip6 使用 IPv6 進行驗證。
a 使用一個域名進行驗證。
這將引起對域名服務器進行一次 A RR 查詢。
可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式來使用。
mx 使用 DNS MX RR 進行驗證。
MX RR 定義了收信的 MTA,這可能和發信的 MTA 是不同的,這種情況基于 mx 的測試將會失敗。
可以用 mx:domain, mx:domain/cidr 或 mx/cidr 這些形式進行 mx 驗證。
ptr 使用域名服務器的 PTR RR 進行驗證。
這時,SPF 使用 PTR RR 和反向圖進行查詢。如果返回的主機名位于同一個域名之內,就驗證通過了。
這個參數的寫法是 ptr:domain
exist 驗證域名的存在性。
可以寫成 exist:domain 的形式。
ext 定義對 type 的可選擴展。如果沒有這個字段,那么僅使用單個記錄進行問詢。
mod 這是最后的類型指示,作為記錄的一個修正值。
修正值 描述
redirect 重定向查詢,使用給出的域名的 SPF 記錄。
以 redirect=domain 的方式使用。
exp 這條記錄必須是最后一條,允許給出一條定制的失敗消息。
IN TXT "v=spf1 mx -all exp=getlost.example.com"
getlost IN TXT "You are not authorized to send mail for the domain"
進入域名解析創建一條TXT記錄填寫正確的SPF數據就可以生效了。
格式如下:
v=spf1 [[pre] type [ext] ] ... [mod]
每個參數的含義如下表所示: 參數 描述
v=spf1 SPF 的版本。如果使用 Sender ID 的話,這個字段就應該是 v=spf2
pre 定義匹配時的返回值。
可能的返回值包括: 返回值 描述
+ 缺省值。在測試完成的時候表示通過。
- 表示測試失敗。這個值通常是 -all,表示沒有其他任何匹配發生。
~ 表示軟失敗,通常表示測試沒有完成。
? 表示不置可否。這個值也通常在測試沒有完成的時候使用。
type 定義使用的確認測試的類型。
可能的值包括: 候選值 描述
include 包含一個給定的域名的測試
以 include:domain 的形式書寫。
all 終止測試序列。
比如,如果選項是 -all,那么到達這條記錄也就意味著測試失敗了。但是如果無法確定,可以使用 "?all"來表示,這樣,測試將被接受。
ip4 使用 IPv4 進行驗證。
這個可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建議使用這個參數,以減少域名
ip6 使用 IPv6 進行驗證。
a 使用一個域名進行驗證。
這將引起對域名
可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式來使用。
mx 使用 DNS MX RR 進行驗證。
MX RR 定義了收信的 MTA,這可能和發信的 MTA 是不同的,這種情況基于 mx 的測試將會失敗。
可以用 mx:domain, mx:domain/cidr 或 mx/cidr 這些形式進行 mx 驗證。
ptr 使用域名
這時,SPF 使用 PTR RR 和反向圖進行查詢。如果返回的主機名位于同一個域名之內,就驗證通過了。
這個參數的寫法是 ptr:domain
exist 驗證域名的存在性。
可以寫成 exist:domain 的形式。
ext 定義對 type 的可選擴展。如果沒有這個字段,那么僅使用單個記錄進行問詢。
mod 這是最后的類型指示,作為記錄的一個修正值。
修正值 描述
redirect 重定向查詢,使用給出的域名的 SPF 記錄。
以 redirect=domain 的方式使用。
exp 這條記錄必須是最后一條,允許給出一條定制的失敗消息。
IN TXT "v=spf1 mx -all exp=getlost.example.com"
getlost IN TXT "You are not authorized to send mail for the domain"