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