DNS服務:是一種工作在應用層的特定應用,也是.c/s架構模式的,DNS的是一種應用層協議,他的端口是UPD協議的53號端口,()根據應用場景不同也會用到tcp協議)這就意味著DNS是默認通過UDP協議進行通信的
我們訪問任何一個網站都是通過主機名的方式進行訪問的;例如www.baidu.com,這是個主機名.稱之為FQDN(完全限定域名)
常見的頂級域中的組織域有:.com,.net,.org,.gov,.edu,.mil
常見的頂級域中的國家域有:.iq,.tw,.jp,.cn…
DNS查詢類型:
遞歸查詢: 迭代查詢:
DNS名稱解析方式:
名稱 --> IP:正向解析 IP --> 名稱:單向解析 注意:二者的名稱空間,非為同一個空間;即非為同一顆樹,因此,也不是同一個解析庫
DNS服務器類型:
負責解析至少一個域: 主名稱服務器 輔助名稱服務器 不負責域解析: 緩存名稱服務器
一次完整的查詢請求經過的流程:
client --> hosts文件 --> DNS Loscal Cache --> DNS Server(recursion,遞歸) --> 自己負責解析的域:直接查詢數據庫并返回答案; 不是自己負責域:server cache --> iteration(迭代) 解析答案: 肯定答案: 否定答案:不存在查詢的鍵,因此,不存在與其查詢對應的值 權威答案:由直接負責的DNS服務器返回的答案 非權威答案:
主-輔DNS服務器
主DSN服務器:維護所負責解析的域的數據庫的那臺服務器,讀寫操作均可進行 從DNS服務器:從主DNS服務器那里或其他的從服務器那里"復制"一份解析庫,但只能進行讀操作 "復制"操作的實施方式 序列號:也即是數據庫的版本號,主服務器數據庫內容發生變化時,其版本號遞增 刷新時間間隔:從服務器每多久到主服務器檢查序列號更新狀況 重試時間間隔:從服務器從主服務器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔 過期時長:從服務器始終聯系不到主服務器時,多久之后放棄從主服務器同步數據,停止提供服務 否定答案的緩存時長: 注意:主服務器數據發送更新以后,主服務器會"通知"從服務器隨時更新數據,忽略刷新時間間隔機制進行 同步方式: 區域傳送: 全量傳送:傳送整個數據庫; 增量傳送:僅傳送變化的數據 區域和域的區別: 以magedu.com域為例 FQDN --> IP 正向解析庫:正向解析區域 IP --> FQDN 反向解析庫:反向解析區域
區域數據庫文件:
資源記錄:簡稱rr 記錄有類型:A,AAA,PTR,SOA,NS,CHAME,MX SOA:起始授權記錄,一個區域解析庫有且只能有一個SOA記錄;而且只能放在第一條 NS:域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主 A:地址記錄,從FQDN解析為IPV4地址記錄 AAAA:地址記錄,從FQDN解析為IPV6地址記錄 CNAME:別名記錄 PTR:把IP地址解析成FQDN,所以PTR記錄是用來反向解析的記錄 MX:郵件交換器 優先級:0-99,數字越小優先級越高 資源記錄的定義格式: 語法: name [ttl] IN RR_TYPE value 多種不同的資源記錄他們的名稱和值的特點要求,如下; SOA: name:當前區域的名字;例如"magedu.com",或者"2.3.4.in-addr.arpa" value:有多部分組成 1)當前區域的區域名稱(也可以使用主DNS服務器名稱) 2)當前區域的管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代 3)(朱從的服務協調屬性的定義以及否定答案的TTL) 例如: magedu.com. 86400 IN SOA magedu.com. admin.magedu.com. ( 2017010801 ;serial 2H ;refresh 10m ;retry 1w ;expire 1D ;negative answer ttl ) NS: name:當前區域的區域名稱 value:當前區域的某DNS服務器的名字,例如ns.magedu.com 注意:一個區域可以用多個ns記錄 例如: magedu.com. 86400 IN NS ns1.magedu.com. magedu.com. 86400 IN NS ns2.magedu.com. MX: name:當前區域的區域名稱 value:當前區域某郵件交換器的主機名 注意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先級 例如: magedu.com. 86400 IN MX 10 mx1.magedu.com. magedu.com. 86400 IN MX 20 mx2.magedu.com. A: name:某FQDN,例如www.magedu.com. value:某IPV4地址 例如: www.magedu.com. IN A 1.1.1.1 www.magedu.com. IN A 1.1.1.2 bbs.magedu.com. IN A 1.1.1.1 AAAA: name:FQDN value:IPV6 PTR: name:IP地址,有特點格式:IP反過來寫,而且加特別后綴; 例如:1.2.3.4的記錄應該寫為4.3.2.1.in-addr.arpa. value:FQDN 例如: 4.3.2.1.in-addr.arpa. IN PTR www.magedu.com CNAME: name:FQDN格式的別名 value:FQDN格式的正式名字 例如: web.magedu.com. IN CNAME www.magedu.com 注意: 1)TTL值可以全局繼承;不用每個都定義 2)@表示當前區域的名稱 3)相鄰的兩條記錄其name相同時,后面的可省略 4)對于正向區域來說,各MX,NS等 類型的記錄的value為FQDN,此FQDN應該有一個A記錄
DNS and Bind
如何安裝配置使用DNS服務
BIND:伯克利互聯網域名,BIN是DNS協議的一種實現,BIND這個程序運行起來的進程名叫named.
dns:協議 bind:dns協議的一種實現 named:bind程序的運行的進程名
BIND的安裝配置:
bind-libs:被bind和bind-utils包中的程序共同用到的庫文件 bind-utils:bind客戶端程序集,例如dig,host,nslookup等 bind:提供的dns server程序,以及幾個常用的測試程序 bind-chroot:選裝程序,讓named運行于jail(監獄)模式下
主配置文件
/etc/named.conf 或包含其他文件; /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key
解析庫文件;
/var/named/目錄下; 一般名字為:ZONE_NAME.zone 注意:1)一臺DNS服務器可同時為多個區域提供解析; 2)必須要有根區域解析庫文件:named.ca 3)還應該有兩個區域解析庫文件:localhost和127.0.0.1正反向解析庫 正向:named.localhost 反向:named.loopback
rndc:遠程名稱域控制器
rndc默認情況下工作在tcp的953端口,但默認監聽于127.0.0.1地址,因此僅允許本地使用.BIND安裝在同一主機,bind程序安裝完成之后,默認即可做緩存名稱服務器使用;如果沒有專門復雜解析的區域,直接即可啟動服務;
開啟
centos6:service named start centos7:systemctl start named.service
主配置文件格式:
全局配置段: options{...} 日志配置段: logging{...} 區域配置段: zone{...} 那些由本機負責解析的區域,或轉發的區域 注意:每個配置語句必須以分號結尾 緩存名稱服務器的配置: 監聽能與外部主機通信的地址 listen-on port 53; listen-on port 53{ 172.16.100.67; }; 學習時,建議關閉dnssec dnssec-enable no; dnssec-validation no; dnssec-lookaside no; 檢查配置文件的語法錯誤; named-checkconf [/etc/named.conf] 測試工具:dig,host,nslookp dig命令: dig [-t RR_TYPE] name [@SERVER] [query options] 用于測試dns系統,因此其不會查詢hosts文件 查詢選項: +[no]trace:跟蹤解析過程 +[no]recures:進行遞歸解析 注意:反向解析測試 dig -x ip 模擬完全區域傳送 dig -t axfr DOMAIN [@server] host命令: host [-t RR_TYPE] name SERVER_IP nslookup命令 nslookuop [-options] [name] [server] 交互式模式: nslookup> server IP:以指定的IP為DNS服務器進行查詢 set q=RR_TYPE:要查詢的資源記錄類型 name:要查詢的名稱
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/58133