概念
DNS 是一種用於TCP/IP應用程序的__分佈式數據庫__,提供了主機名字和IP地址之間的轉換和有關電子郵件的選路信息。
DNS基礎
層次結構, 每個節點有一個至多63個字符長的標識, 不區分大小寫。域名書中的每個節點都有一個唯一的域名,但不同節點可使用相同的標識。
以‘.’結尾的域名成爲絕對域名, sun.tuc.noao.edu.。
-
頂級域名:
- arpa
- 7個普通三字符長的普通域, 或是組織域
- 國家碼, 國家域或地理域
-
DNS中域名的授權:網絡信息中心NIC負責分配頂級域和委派其他指定地區域的授權機構,
-
DNS使用超高速緩存.
DNS報文格式
- DNS報文由12字節長的首部和4個長度可變字段組成。
- 標識字段:客戶程序設置,並由服務器返回結果。客戶程序用來確定響應和查詢是否匹配。
QR | opcode | AA | TC | RD | RA | (zero) | rcode |
---|---|---|---|---|---|---|---|
1 | 4 | 1 | 1 | 1 | 1 | 3 | 4 |
0查詢報文, 1響應報文 | 0標準查詢, 爲1(反向查詢), 2(服務器狀態請求) | 授權回答 | 可截斷 | 期望遞歸 | 可用遞歸 | 必須爲0 | 返回碼, 0沒差錯, 3名字差錯 |
查詢問題部分
- 存儲域名的方式:
|計數|域|計數|域|…|
如gemini.tuc.noao.edu:
6gemini3tuc4noao3edu0
因爲標識符的最大長度僅爲 6 3,所以計數字節的值爲0到63的數。
- 查詢類型有:
常見類型時A類型,期望獲得查詢名的IP地址。
PTR查詢是請求獲得一個IP地址對應的域名。
- 查詢類通常是1, 互聯網地址。
DNS響應報文中的資源記錄部分
- 數據格式
DNS舉例:
指針查詢
使用tcpdump 查看指針查詢信息
$ host 140.252.13.34
34.13.252.140.in-addr.arpa domain name pointer pipen14.tuc.noao.edu.
10:38:59.999340 IP xxxxx.60763 > google-public-dns-a.google.com.domain: 22773+ PTR? 34.13.252.140.in-addr.arpa. (44)
10:39:00.003093 IP google-public-dns-a.google.com.domain > xxxxx.60763: 22773 1/0/0 PTR pipen14.tuc.noao.edu. (78)
- 從以上信息可以看出,指針查詢會對查詢數據進行反轉,在機上in-addr.arpa,這是自動的。
PTR?
表示查詢PTR
例子:
- 普通的
host baidu.com
10:46:42.346766 IP xxxx.62785 > google-public-dns-a.google.com.domain: 41812+ A? baidu.com. (27)
10:46:42.350305 IP google-public-dns-a.google.com.domain > xxxxx.62785: 41812 2/0/0 A 123.125.115.110, A 220.181.57.216 (59)
10:46:42.350643 IP xxxxx.62363 > google-public-dns-a.google.com.domain: 30592+ AAAA? baidu.com. (27)
10:46:42.393192 IP google-public-dns-a.google.com.domain > xxxx.62363: 30592 0/1/0 (70)
10:46:42.393847 IP xxxx.65123 > google-public-dns-a.google.com.domain: 46136+ MX? baidu.com. (27)
10:46:42.409846 IP google-public-dns-a.google.com.domain > xxxxx.65123: 46136 5/0/0 MX jpmx.baidu.com. 20, MX mx50.baidu.com. 20, MX mx.maillb.baidu.com. 10, MX mx.n.shifen.com. 15, MX mx1.baidu.com. 20 (143)
- rlogin: