DNS以及抓包觀察


1:DNS的層次基礎

如果是一個絕對域名一般要有最后的根‘.’   頂級域名有三個部分,第一個是arpa,其余的是一些美國部們使用的,一共七個三字符的標志,現在也有別的地方使用,其他的是按照地方的

國家在分的頂級域之后,一般將第二級域改陳和頂級域的七個三字符相同的使用

頂級域的從左面的第一個用於IP地址得到域名

2:DNS報文格式

標識(用來請求DNS報文和應答DNS報文返回的標志是否匹配,一般是個數字,2字節)|標志(QR:0表示查詢報文,1表示響應報文|opcode:0標准查詢,1反向查詢,2服務器狀態請求|AA:表示“授權回答”,該名字服務器是授權於該域的|TC:表示“可截斷的”,使用UDP時,它表示當應答的總長度超過512字節時, 只返回前512個字節|RD:表示“期望遞歸”。這個表示告訴名字服務器必須處理這個查詢,也稱為一個遞歸查詢|RA:表示“可用遞歸”。如果名字服務器支持遞歸查詢,則在相應中將該比特設置為1|zero:3bit為0|rcode:返回碼字段。0為沒有差錯,3名字差錯   ,2個字節|問題數(有幾個問題,一般是1,占用兩個字節)|資源記錄數(一般針對域名請求IP地址,或者指針查詢,兩個字節)|授權資源記錄樹(有幾台服務器可以解答該域名)|額外資源記錄數(在授權資源記錄數的時候出現的時候出現)|查詢問題(看選下面的查詢問題格式)|回答(參照下面)|授權(參照下面)|額外(參照下面)

問題格式

查詢名(格式:6gemini3tuc4noao3edu0,不定長度,不需要填充為一個整數)|查詢類型(常用的查詢類型有CNAME:規范名稱|A IP地址|PTR指針記錄)|查詢類(基本是1,指互聯網地址)

回答報文格式RR格式

域名(不定長度,和上面的查詢名的格式是一直的,因為域名在一個DNS一般會有多個重復的,所以會用指針來代替,如果高兩位為11,則表示這是一個指針,剩下的14個字節,表示這個域名的位置,以DNS報文開始)|類型(和上面的一致)|類(和上面一致)|生存時間(一般為2天)|資源數據長度(一般是4,代表IP數據)|(資源數據

3:DNS報文查詢

    域名查詢 利用host -i A www.baidu.com

注意要是是主機名字,則首先應該與域名服務器取得聯系,得到對應的IP地址

代碼解釋,-i表示抓取指定接口的數據,n不顯示主機碼 t不顯示時間戳,port domain指定的是域名服務的數據包 


IP 172.30.94.138.17956 > 112.4.0.55.53: 40192+ A? www.baidu.com. (31)

IP 112.4.0.55.53 > 172.30.94.138.17956: 40192 3/0/0 CNAME www.a.shifen.com., A 111.13.100.92, A 111.13.100.91 (90)

IP 221.131.143.69.53 > 172.30.94.138.17956: 40192 3/0/0 CNAME www.a.shifen.com., A 111.13.100.91, A 111.13.100.92 (90)

IP 172.30.94.138.17956 > 112.4.0.55.53: 40192+ A? www.baidu.com. (31)

本條數據解析

1:17956代表的是客戶端口號,53代表的是域名服務器的端口號,在這里必須要讓tcpdump顯示IP地址,不能顯示域名,否則會產生錯誤

2:40192代表的是標志字段,而+表示RD字段,期望遞歸為1,在默認方式中,名字解析器要求地櫃查詢方式

3:A?表示查詢類型是A,我們需要的是一個IP地址,”?“表示的是查詢,代查名字是baidu.com.后面帶一個.是表示一個絕對的名字段

4:后面的數字31是指,在UDP數據報的用戶數據位31字節,包裹DNS請求報文的頭12字節,15字節的查詢名字,以及用於查詢類型和查詢類的4個字節,在DNS中的數據無需填充,因為在UDP中可以進行填充


IP 112.4.0.55.53 > 172.30.94.138.17956: 40192 3/0/0 CNAME www.a.shifen.com., A 111.13.100.92, A 111.13.100.91 (90)


第二個數據包中,“3/0/0”表示該報文中包含3個應答資源記錄,“CNAME www.a.shifen.com.,A 119.75.218.77,A 119.75.217.56”則表示3個應答資源記錄的內容。其中CNAME表示緊隨其后的記錄是機器的別名,A表示緊隨其后的記錄是IP地址,授權RR和附加信息RR都是0


為什么會有三個地址,利用host命令既可以查看此baidu具有三個接口,其中一個是機器別名

指針查詢

可以利用host來查看具體IP對應的域名 這里查看出是一個指針查詢,是一個域名

利用tcpdump查看有

看起來主機發送兩份DNS指針查詢報文

20917代表標識符,‘+’表示遞歸查詢,查詢類型是PTR,‘?’表示一個查詢 后面表示一個查詢名

查詢結果,第三條,表示的是應答付是20917,1/0/0   1代表一個資源應答記錄,后面的
PTR表示的是指針記錄,后面表示的域名

4:高速緩存

‘*’表示在該域中回答是授權的AA標志

當開啟了名字服務器的主機,則主機查找域名的時候首先在本機的緩存上面的尋找,如果未找到,並且沒有一個指定域名服務器,則應該與根服務器首先進行通訊(在這里不設置遞歸標志,‘-’表示未設置遞歸標志,遞歸標志只是在授權的名字服務器中設置的),找到可以獲得域名對應IP的名字服務器,

授權的名字服務器:既可以查找到指定域名的IP地址,在想這類服務器發送DNS報文查詢的時候會設置遞歸類型






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM