DNS学习实践心得
在看書理解DNS報文等內容后,首先通過抓包來實踐理解DNS報文。
????? 上圖是我nslookup? baidu.com,抓包得到的結果,這是一個詢問包,可以看到我向DNS服務器詢問了baidu.com的A類型(IPV4)地址。
上圖是詢問包的flags,可以看到Rd置為1表示這個詢問包要求遞歸查詢結果。
這是從DNS服務器得到的返回包,可以看到服務器返回了兩條baidu.com的A類型的IP地址
?
上圖是返回包的Flags,根據Flags可以看到這是一個回應,是遞歸查詢得到的,服務器可以執行遞歸查詢。
之后,我想用虛擬機進行郵件交換,從而獲得MX類型的DNS查詢報文,但是又到了一些障礙問題,具體是這樣的。
首先我安裝了一個sendmail程序,用來在linux上用命令行發郵件,并且配置了自己的qq郵箱作為發件人,上圖為配置圖。
之后我在虛擬機里發郵件,但是一直發送不出去
通過抓包分析,我發現當我在虛擬機里發郵件的時候,本機與ip為14.17.57.241和14.18.245.164的服務器25端口的TCP建立鏈接請求包一直處于重傳狀態,說明這個服務器沒有理我,
?
這兩個IP就是qq郵箱smtp的ip地址,25端口為郵件使用的端口,這說明我想他請求郵件服務,他們有理我。思索查詢了一些解決方案后,發現qq郵箱用第三方登陸比較麻煩,需要授權,
但是在qq郵箱設置中開啟smtp服務后,在虛擬機里發郵件仍然出現上面的情況,之后發件郵箱又設置了其他的幾個,但是結果還是不行,對此比較困惑,最終也沒有抓到DNS的MX查詢類型包。(問題一)
?
之后我用公司的DNS服務器試了一下反向解析baidu.com,但是沒有成功
抓包分析后,可以看到這是一個PTR類型返回包,發現返回的包里flgas錯誤信息顯示No such name,也就是說服務器沒有得到這個ip的域名。
之后我反向解析了一下自己的默認DNS,可以解析成功,可以看到這個一個公司lab的主機。
這是我困惑的第二點,為什么不能反向解析外網IP地址(問題二)
?
?
之后我試著用BIND在自己的虛擬機上搭建DNS,通過簡單的修改配置文件named.conf和zone文件后,自己添加的域名基本可以解析,如下圖:
192.168.70.237是我虛擬機的ip。但是我還是想抓到MX類型的DNS包,所以在zone里有加入了MX地址,但是添加后,幾次checkzone都不成功,如下,
又仔細學習zone文件的格式和表達內容并理解了之后,終于了解在MX和CNAME等類型記錄之后一條都要加上A類型的地址,以表明這個類型的IP,之后設置zone如下
這樣配置之后,CNAME類型也可以被查詢到,如下
但是MX類型的DNS包依然沒有抓到,當我nslookup郵箱地址的時候,抓包出現的是下面這樣的情況:
抓到的都是本機ip和虛擬機ip通訊的SSH包以及22端口的TCP建立連接請求包,百度了一下,SSH是一種加密算法,22端口就是SSH應用的端口,我抓包的時候寫的是shark -i ens160 -nn host 192.168.70.237,ens160是虛擬機網卡,70.237是虛擬機ip,這樣抓到的都是本機和虛擬機通訊的包,我們用Putty連接虛擬機的時候都走的SSH和加密通訊,抓到這樣的包就理所當然了。
請教了一下宏遠以后,把ens160改成了lo即本機回環,這樣抓到的就如下,只有本虛擬機和本虛擬機通訊的包:
但是抓完后發現,nslookup郵箱地址,返回的任然是A類型記錄,斌不是MX類型,這也不難理解,就是我之前在zone里寫在MX記錄之后的A類型地址,看來要抓MX類型的包,只有在進行郵件通訊的時候才可以了。
如上圖是nslookup郵箱地址的詳細返回包,可以看到,這個地址mx1.lym.com是域服務器ns lym.com下的一個地址。
?
之后,在自己的DNS服務器里添加了arpa zone,配置了參數,也成功進行了反向查詢如下圖:
?
接著,我嘗試在別的虛擬機上,用我配置的DNS進行域名解析,可是一開始并沒有成功,在客戶端和服務器端抓包后,都顯示如下結果:
70.237是DNS服務器,可以看到服務器返回了一個ICMP包告訴客戶端這個查詢被禁止了。我認為這是服務器端防火墻的原因,看了一下iptables,果然發現INPUT里有條配置,如下:
刪除這條配置后,再在別的虛擬機上用我的DNS服務果然就好用了,如下
?
可是孫宏遠的iptables里也有這一條,他的DNS服務在別的機器上就能用,為此我們探討了一會,最后發現他的iptables INPUT里在最上面比我多四條,如下圖:
我們覺得他的機器做服務器的時候DNS請求就直接從上面四條中走了,最后一條REJECT就沒有用,果然他把上面幾條刪了以后,服務也不好用了。
但是我們對iptables里每一條accept,drop和reject的具體含義,對象還是很模糊。
?
之后想用自己建的DNS訪問外網,一直不能成功,用dig +trace看了一下,如下圖
驗證了清波培訓所說的,公司把根服務器屏蔽了,做遞歸查詢的時候,連接不到根服務器,也就不能進行接下來的往下一級域名服務器的遞歸查詢。
?
SRV學習
關于SRV的中文資料基本找不到,google了一下,自己的理解,SRV可以用于在SIP電話VoIP上使用的域名系統,通過域名解析到自己的hostnames,一個域名可以對應多個hostnames,網上講了個例子,但是在公司用nslookup或者dig并不能查詢到SRV,結果如下
?
之后自己在自己架設的DNS服務器上的zone里加入SRV類型域名,但是也不成功,如下
Dig后如下,并不能得到
SRV中權重,優先級等參數也還沒有理解其具體含義。
以上就是這兩天DNS方面的一些學習實踐大致內容。
總結
- 上一篇: 《超新星纪元》阅读笔记
- 下一篇: 欧阳小奇