DNS原理及正反向解析

DNS原理

現有的網絡通訊大部分是基於TCP/IP的,而TCP/IP是基於IP地址的,所以計算機在網絡上進行通訊時只能識別如“202.96.134.133”之類的IP地址,而不能認識域名。我們很難記住10個以上IP地址的網站,所以我們訪問網站時,更多的是在瀏覽器地址欄中輸入域名,就能看到所需要的頁面,這是因爲有一個叫“DNS服務器”的計算機自動把我們的域名“翻譯”成了相應的IP地址,然後調出IP地址所對應的網頁。

DNS and BIND

什麼是DNS

DNS(Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網絡服務命名系統,它用於TCP/IP網絡,DNS基於C/S(Client/Server,客戶機/服務器)模式,因而分爲Client和Server兩種角色。使用53/udp(現在正在使用), DNS: 53/tcp ;Client扮演詢問的角色,也就是向Server詢問一個Domain Name,而Server必須要回答此Domain Name所對應的真正IP地址。

BIND:BekerleyInternat Name Domain ;ISC (www.isc.org)

DNS

TCP: 面向連接的協議;

UDP: User Datagram Protocol,無連接協議

本地名稱解析配置文件:hosts

        /etc/hosts

        %WINDOWS%/system32/drivers/etc/hosts

格式如下:

        1.1.1.1www.magedu.com

        1.2.2.2www.apple.com

DNS名稱空間

Internet 上的DNS域名稱採用層次結構,如同一棵倒置的樹。

根域爲,一個名爲 InterNIC 的機構既負責劃分全世界的IP地址範圍,又負責分配Internet 上的域名稱結構。根域DNS服務器只負責處理一些頂級域名DNS服務器的解析請求。

頂級域,常見的三類頂級域:1, 組織域(com,edu, mil, gov, net, org, int)、2, 國家域(.cn, .iq, .hk, .tw)、3, 反向域

二級域; 是在頂級域下劃分的(用於公司或個人申請使用)

子域;子域下面可以繼續劃分子域,或者接主機。

                             wKioL1U9a-PyO17tAAEJ3QmO7jQ394.jpg

DNS查詢過程

如訪問www.123.com

wKiom1U9ao6SZDZBAAGLksTUXQI698.jpg

Dns查詢類型

        遞歸查詢:一般客戶機和服務器之間屬遞歸查詢,即當客戶機向DNS服務器發出請求後,若DNS服務器本身不能解析,則會向另外的DNS服務器發出查詢請求,得到結果後轉交給客戶機;(客戶端只需要發出一次查詢請求就能得到最終答案的插敘)

 

        迭代查詢:一般DNS服務器之間屬迭代查詢,如:若DNS2不能響應DNS1的請求,則它會將DNS3的IP給DNS2,以便其再向DNS3發出請求; (服務器在發出一個查詢請求時,有可能得到一個最終答案;也有可能得到一個參考答案,通常得到一個結果需要多次發起的查詢)

名稱服務器:域內負責解析本域內的名稱的主機;

dns解析類型:

正向解析: Name --> IP ;又主機名解析爲IP地址

反向解析: IP --> Name : 又IP地址解析爲主機名

注意:正反向解析是兩個不同的名稱空間,是兩棵不同的解析樹;

    DNS服務器的類型:

        主DNS服務器

        輔助DNS服務器

        緩存DNS服務器

        轉發器

 

        主DNS服務器:維護所負責解析的域內解析庫服務器,是該域的權威服務器;解析庫由管理Y員維護;

        從DNS服務器:從主DNS服務器或其它的從DNS服務器那裏“複製”(區域傳遞)一份解析庫;


BIND的安裝配置:

dns服務,程序包名bind,程序名named

1 . bind相關程序包:

bind: 提供域名服務的主程序和相關文件

bind-libs: 提供bind和bind-utils所需公共的共享庫

bind-utils: 提供dns的測試工具 如:dig,host,nslookup  

bind-chroot: 使bind可以在一個chroot的模式下運行.也就是說,bind運行時的/(根)目錄,並不是系統真正的/

例如 : bind-chroot:/var/named/chroot/

2 . bind相關配置文件:

服務腳本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf,/etc/named.rfc1912.zones, /etc/rndc.key

解析庫文件:/var/named/ZONE_NAME.ZONE

注意:

(1)一臺物理服務器可同時爲多個區域提供解析;

(2) 必須要有根區域文件;named.ca

(3)應該有兩個(如果包括ipv6的,應該更多)實現localhost和本地迴環地址的解析庫;

rndc: remote name domain controller,默認與bind安裝在同一主機,且只能通過127.0.0.1來連接named進程;提供輔助性的管理功能;

默認使用 953/tcp ;/etc/rndc.key

用於連接主機的預共享密鑰   

3 . 安裝bind

[root@dns1 ~]# yum installbind –y

4 . 查詢bind軟件包版本

[root@dns1 ~]# rpm -q bind

bind-9.8.2-0.30.rc1.el6.x86_64

5. . 主配置文件/etc/named.conf

全局配置:options{ }

日誌子系統配置:logging{ }

區域定義:本機能夠爲哪些zone進行解析,就要定義哪些zone;

示例 : zone "ZONE_NAME" IN { }

注意:任何服務程序如果期望其能夠通過網絡被其它主機訪問,至少應該監聽在一個能與外部主機通信的IP地址上;

默認啓動named 只會監聽在tcp和udp的127.0.0.1的53端口

6. 啓動named

[root@dns1 ~]#/etc/init.d/named start

7. 查看bind監聽的套接字 (默認情況下named會監聽在127.0.0.1 的tcpupd 53端口)

[root@dns1 ~]# ss -ltunp|grep 53

udp    UNCONN    0      0              127.0.0.1:53                    *:*

users:(("named",3444,512))

udp    UNCONN    0      0                    ::1:53                   :::*

users:(("named",3444,513))

tcp    LISTEN    0      3                    ::1:53                   :::*

users:(("named",3444,21))

tcp    LISTEN    0      3              127.0.0.1:53                    *:*

users:(("named",3444,20))

tcp    LISTEN    0      128                  ::1:953                  :::*

users:(("named",3444,23))

tcp    LISTEN    0      128            127.0.0.1:953                   *:*

users:(("named",3444,22))






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章