一、 DNS系統
1、DNS的授權:
網絡信息中心NIC負責分配頂極域和委派其他指定地區域的授權機構。一個獨立管理的DNS子樹稱為一個區域,許多二極域將他們的子域劃分為更小的區域。當一個系統加入到一個區域中時,該區域的DNS管理者為該新系統申請一個域名和一個IP地址,並將他們加入到名字服務器的數據庫中。
一個名字服務器負責一個或多個區域,一個區域的管理者必須為該區域提供一個主名字服務器和至少一個輔助名字服務器。
每個主名字服務器都必須知道根名字服務器的IP地址,根服務器必須知道所有二極域中每個授權名字服務器的名字和IP地址。
2、DNS報文格式:由12個字節首部和4個長度可變的字段組成。
標識標志問題數資源記錄數授權資源記錄數額外資源記錄數查詢問題問答(資源記錄數可變)授權(資源記錄數可變)額外信息(資源記錄數可變)
◆ 標識字段由客戶程序設置並由路由器返回結果。客戶程序通過它來確定響應與查詢是否匹配。
◆ 標志字段被劃分為若干子字段:
QRopcodeAATCRDRA(zero)rcode
QR-1位,0表示查詢,1表示響應報文。
Opcode-4位,0表示標准查詢,1表示反向查詢,2表示服務器狀態請求。
AA-1位,表示授權回答。
TC-1位,表示時可截斷的,使用UDP時,它表示應當的總長度超過512字節時,只返回前512個字節。
RD-1位,表示期望遞歸。該位能在一個查詢中設置,並在響應中返回。這個標志告訴名字服務器必須處理這個查詢。如果該位為0,且被請求的名字服務器沒有一個授權回答,它就返回一個能解答該查詢的其他名字服務器列表,這稱為疊代查詢。
RA-1位,表示可用遞歸。如果名字服務器支持遞歸查詢,則在響應中將該位置為1。
Rcode-4位返回碼,0表示沒有差錯,3表示名字差錯。名字差錯只有從一個授權服務器上返回,它表示在查詢中指定的域名不存在。
隨後的4個16位的字段說明最後4個變長字段中包含的條目數。對於查詢報文,問題數通常是1,而其他3項均為0。對於應答報文,問答數至少為1,剩下的2項可以是0或非0。
3、DNS查詢報文中的問題部分:
格式如下,通常只有一個問題。
查詢名查詢類型查詢類
查詢名是要查找的名字,它是一個或多個標識符的序列。每個標識符以首字節的計數值來說明隨後標識符的字節長度,每個名字以最後字節為0結束,長度為0的標識符是根標識符。計數字節的值必須為0-63,因為標識符的最大長度僅為63。該字段無需以整32為為邊界,即無需填充字節。
舉例:gemini.tuc.noao.edu的存儲:
6gemini3tuc4noao3edu0
每個問題有一個查詢類型,而每個響應(資源記錄)也一個類型。最常見的查詢類型是A類型(值為1),表示期望獲得查詢名的IP地址,一個PTR查詢(值為12)則請求獲得一個IP地址對應的域名。
查詢類一般是1,指互聯網地址。
4、DNS響應報文中的資源記錄部分:
DNS報文中的最後三個字段,回答字段、授權字段和附加信息字段,均采用一種稱為資源記錄(RR)的相同格式。RR格式如下:
域名類型類生存時間資源數據長度資源數據域名是記錄中資源數據對應的名字,它的格式和前面的查詢名字段格式一樣。