什麼是IP的rdns資訊?
過去很多人,將IP的rDNS資訊理解為解析到IP的反查域名資訊。IP的rDNS資訊和IP反查域名資訊完全是兩個不同的資訊。IP的rdns資訊被稱之為反向DNS解析(rDNS),即透過DNS解析系統來將IP地址解析為域名。根據RFC1912標準“每一個網際網路可以訪問的主機都應該有一個名字”,所以rDNS資訊更多是對應到一個IP地址的名字。IP的反查域名是指根據域名解析到IP的記錄來反查出哪些域名解析到這個IP地址上。下面以8.8.8.8來說明IP的反查資訊和rDNS資訊的區別。
透過命令nslookup可以直接獲取到8.8.8.8的rDNS資訊”dns.google.”,注意此處被標識為名稱(name),即表示為IP的名稱。
透過virustotal平臺查詢8.8.8.8的IP反查資訊,可以得到下圖紅框中10個域名是解析到8.8.8.8上的。IP反查的結果是域名A記錄指向該IP的域名資訊集合。
IP的rDNS是如何工作的?
PTR記錄
IP的rDNS資訊本質上是IP地址的一個name資訊。那這個資訊是由誰在哪裡設定的呢?在透過nslookup獲取一個IP的rDNS資訊請求時,本質上是發起了一個DNS請求,來獲取一個IP的PTR解析記錄。我們都知道DNS協議是域名解析協議,是用來解析協議的,那麼如何能用來解析IP呢?這裡要提到一個很牛的設計,為了能夠透過DNS協議來解析到IP的rDNS資訊,ICANN組織新增了一個tld(通用頂級域)“.arpa.”用來負責將IP對映為域名,支援rDNS協議和其他網路基礎構架的管理工作。
IP地址”4.3.2.1”對映轉換之後的域名為1.2.3.4.in-addr.arpa.,IP地址114.114.115.115對映轉換之後的域名為115.115.114.114.in-addr.arpa。然後透過DNS協議查詢該域名的PTR記錄就能夠獲得該IP的rDNS值,這個查詢出來的值和nslookup命令查詢出來的值是一樣的。
IP rDNS的權威DNS
我們都知道DNS協議中,每個域名都有對應的權威DNS伺服器,用來維護這個域名的A記錄、CNAME記錄值等。在IP rDNS記錄也是一樣存在著權威DNS伺服器。IP地址經過轉換之後就是一個特殊的域名。下面我們來分別看一下各級域名對應的權威DNS伺服器。
下面各圖就IP rDNS轉換域名之後的各級權威DNS伺服器進行了解析嘗試發現,114.114這樣的B段就配置了中國的DNS伺服器,前面114這樣的A段地址展示了全球五大RIR的權威DNS伺服器,再往前的特殊域arpa.和in-addr.arpa.都在icann手上進行維護。這裡可以做一個有趣的推論,全球的IP地址分配單位可能是按照B段來進行分配的。另外114.114.115這樣的C段是沒有查詢到權威NS伺服器的,由此也可以做一個有趣的推論,實際註冊了IP網段的單位設定的權威DNS伺服器可能不是嚴格按照C段來設定的。從方便的管理角度來看,按照C段更方便做 IP轉化為域名的對映的管理,但實際上並沒有這麼分配,也就是國內註冊IP的單位也不是嚴格按照C段來進行註冊的。
arpa.的權威DNS伺服器:
in-addr.arpa.的權威DNS伺服器:
114.in-addr.arpa.的權威DNS伺服器:
114.114.in-addr.arpa.的權威DNS伺服器:
114.114.115.in-addr.arpa.的權威DNS伺服器:
如何快速獲得所有IPv4的rDNS資料:
向公共DNS發起全網IP的PTR DNS解析
將所有的IP轉化為域名之後,對公共DNS發起PTR的解析記錄請求查詢,這樣的方法理論上是可行的。但是全球IPv4的地址大概有42億,去除掉保留地址和一些特殊的IP地址之後,應該還有35億左右,這個量可能會因為網路解析請求量過大,導致請求被拒絕,以致無法全面和準確的獲得IP的rDNS資訊。
向權威DNS發起PTR解析
由於公共DNS的數量和承載效能有限制,首先獲得一個IP地址的rDNS域名對應的權威DNS,然後在向這個權威DNS伺服器發起查詢請求,這樣能夠將請求分散到不同的權威DNS伺服器,降低併發太高的問題。但是仍然還會面臨實際的請求資料量過於龐大的問題。下圖展示了獲取114.114.114.114的權威DNS伺服器的過程:
上級域名“114.114.114.in-addr.arpa.”沒有配置權威DNS伺服器:
上上級域名“114.114.in-addr.arpa”配置了權威DNS伺服器:
向上上級域名的權威DNS伺服器發起PTR解析請求,注意看此處返回了授權區域(“AUTHORITY SECTION”)沒有返回具體的ANSWER。這規定了該域名的rDNS記錄應該去對應的權威DNS伺服器(ns100.114dns.net)上去查詢。
再次向該域名的權威DNS伺服器發起PTR記錄查詢請求,成功獲取到rDNS記錄:
根據上面這幾個步驟來看,向權威DNS發起請求,獲取rDNS記錄的過程比直接向公共dns發起解析請求慢很多,因為中間可能會多了一步或者多步。整體上來看也不能很好的解決快速獲取rDNS資料的問題。
按需積累IP的rDNS解析資料
無論哪種方式,要瞬間獲得42億IP的rdns資訊都會比較困難。所以按照實際的業務需求對出現的部分業務優先順序高的IP透過網路發包獲得rdns資訊,然後不斷的積累,預期能夠獲得更多的rdns資料。
使用開源的rDNS資料。
網路安全公司Rapid7下屬的一個sonar實驗室,會定期對全網進行IPv4 的rdns資訊探測收集。收集完成之後,會對外提供下載地址。這也是一個重要的資料來源通道。
情報生產應用
生產白名單
所有IP對映為域名之後的各級權威DNS伺服器,都是可以用來轉化為DNS伺服器、用來做白名單資料的;
識別IP用途
很多機構為了讓外部知道自己IP是做什麼用途的,會在IP的rDNS資訊上宣告相關的資訊。比如百度的爬蟲就是根據rDNS資訊來判斷是否為百度的爬蟲。
根據rDNS資訊判斷IP是否為家庭寬頻IP
判斷IP是否屬於動態IP
該IP屬於河南電信的動態IP:
該IP屬於上海電信IP:
參考連結:
https://opendata.rapid7.com/sonar.rdns_v2/
https://help.baidu.com/question?prod_id=99&class=476&id=2996