Linux基礎服務_DNS原理以及正反向DNS配置
DNS服務的原理介紹:
dns(Domain Name Service,域名解析服務) 為c/s架構的服務
通常默認的監聽的端口為:53/tcp 53/udp
將dns服務實現的應用程序為:bind (rpm包 )
DNS的樹狀結構:
根域為:.
tld:(Top Level Domain 頂級域)
組織域:.com, .net, .org, .gov, .edu, .mil
國家域:.iq, .tw, .hk, .jp, .cn, ...
DNS查詢內型:
遞歸查詢:DNS請求被服務器接受後,如果屬於此服務器管轄範圍則請求上級服務器依次傳遞請求,並且依次傳遞結果給發出請求的主機。
叠代查詢:DNS請求被服務器接受後,如果不是自己管轄範圍,讓客戶端訪問根域服務器,然後跟域通知客戶端去訪問下級服務器,直到最後客戶端訪問管轄請求域名的服務器為止。
DNS客戶端設置使用的DNS服務器一般都是遞歸服務器,它負責全權處理客戶端的DNS查詢請求,直到返回最終結果。而DNS服務器之間一般采用叠代查詢方式。
DNS解析方式:
正向解析: 名稱(域名)——>IP
反向解析: IP——>名稱(域名)
**二者的名稱空間,非為同一個空間,即非為同一棵樹;因此,也不是同一個解析庫
DNS服務器類型:
主DNS服務器;從DNS服務器:負責解析一個域或多個域。
緩存服務器:不負責解析域名
區域(zone)和域(domain)
例:
xxxx.com為域:
將xxx.com進行正向解析時:正向解析庫為區域
將xxx.com進行反向解析時:反向解析庫為區域
區域傳送:
全量傳送:axfr, 傳送整個數據庫;
增量傳送:ixfr, 僅傳送變量的數據;
區域的數據庫文件中相關參數含義:
資源記錄:Resource Record, 簡稱rr;
記錄有類型:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始授權記錄;
NS:Name Service,域名服務記錄;
A: Address, 地址記錄,FQDN --> IPv4;
AAAA:地址記錄, FQDN --> IPv6;
CNAME:Canonical Name,別名記錄;
PTR:Pointer,IP --> FQDN
MX:Mail eXchanger,郵件交換器;
優先級:0-99,數字越小優先級越高;
資源記錄的定義格式:
語法: name [TTL] INRR_TYPE value
SOA:起始授權記錄
name: 當前區域的名字; value:有多部分組成 (1) 當前區域的區域名稱(也可以使用主DNS服務器名稱); (2) 當前區域管理員的郵箱地址;[email protected],一般使用點號來替代; (3) (主從服務協調屬性的定義以及否定答案的TTL) 註意:任何解析庫文件的第一個記錄的類型必須是SOA
例: @ IN SOA xxx.com mailxxx.com ( 20000001 ; serial 序列號#每增加配置版本號+1 1D ; refresh 刷新時間間隔 1H ; retry 重式時間間隔 1W ; expire 過期時常 3H ) ; minimum 否定答案的緩存時長
NS:Name Service,域名服務記錄
name: 當前區域的區域名稱 value:當前區域的某DNS服務器的名字,例如dns.xxx.com.; 註意:一個區域可以有多個ns記錄;
例: xxx.com IN NS dns1.xxx.com xxx.com IN NS dns2.xxx.com
MX:Mail eXchanger,郵件交換器;
name: 當前區域的區域名稱 value:當前區域某郵件交換器的主機名; 優先級:0-99,數字越小優先級越高; 註意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先級;
例: xxx.com IN MX 20 mx1.xxx.com xxx.com IN MX 10 mx2.xxx.com
A:Address, 地址記錄,FQDN --> IPv4;
name:某FQDN,例如www.xxx.com. value:某IPv4地址;
例: www.xxx.com IN A 172.16.0.55 www.xxx.com IN A 172.16.1.11 edu.xxx.com IN A 172.16.0.55
AAAA:地址記錄, FQDN --> IPv6;
name:FQDN //表示的為域 value: IPv6 //代表的IPV6
PTR:Pointer,IP --> FQDN:反向解析
name:IP地址,有特定格式,IP反過來寫,而且加特定.in-ddar.arpa後綴; 例如172.16.0.55的記錄應該寫為55.0.16.172.in-addr.arpa.; value:FQND
例: 172.16.0.55.in-ddar.arpa IN PTR www.xxx.com
CNAME:Canonical Name,別名記錄;
name:FQDN格式的別名; value:FQDN格式的正式名字;
例: edu.xxx.com IN CNAME www.xxx.com sss.xxx.xom IN CNAME www.xxx.com
在區域的數據庫文件中定義時要註意:
(1) TTL可以從全局繼承;
(2) @表示當前區域的名稱;
(3) 相鄰的兩條記錄其name相同時,後面的可省略;
(4) 對於正向區域來說,各MX,NS等類型的記錄的value為FQDN,此FQDN應該有一個A記錄
配置正反向的DNS服務前的環境!
linux中提供的DNS服務包為bind(bekerley internet name domain)
使用 yum install 安裝bind;並使用 rpm -ql 查看安裝的程序的環境
程序環境: 主程序:/usr/sbin/named 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones 區域解析庫文件:/var/named/ 主配置文件中定義域類型分為: 主域(master)、從域(slave)、緩存域(hint)、轉發域(forward)
bind的配置文件:
主配置文件: /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
bind程序安裝完成之後,默認即可做緩存名稱服務器使用; 如果沒有專門負責解析的區域,直接即可啟動服務;
CentOS 6與CentOS 7的bind啟動方法: CentOS 6: service named start CentOS 7: systemctl start named.service
DNS服務的正反向解析配置!
案例:
為xxx.ss域配置一個dns服務
dns服務器地址為:172.16.254.188
www : 172.16.254.188
mail: 172.16.252.177
ftp別名www,指向www
第一步安裝:bind
第二步修改/etc/named.conf配置文件:
[[email protected] ~]# vim /etc/named.conf options { #全局配置 //listen-on port 53 { 127.0.0.1; }; #註釋後監聽全部IP的53端口 //listen-on-v6 port 53 { ::1; }; directory "/var/named"; #區域文件目錄 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; //allow-query { localhost; }; #訪問控制,註釋後允許所有IP訪問或改為any allow-query { any; }; recursion yes; #是否遞歸 //dnssec-enable yes; //是否啟用dns校驗的服務註銷或者改為no //dnssec-validation yes; dnssec-enable no; dnssec-validation no; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { #定義日誌 channel default_debug { file "data/named.run"; severity dynamic; }; };
第三步:在/etc/named.rfc1912.zones創建正反向區域或在/etc/named.conf內配置
zone "xxx.ss" IN { //正向區域 type master; file "xxx.ss.zone"; }; zone "16.172.in-addr.arpa" IN { //反向區域 在配置反向區域時IP為反寫的並在後加特定的後綴.in-addr.arpa type master; file "172.16.zone";
第四步:在/var/named/ 下創建相關的正反向區域的配置文件
創建正向區域文件 [[email protected] named]# vim xxx.ss.zone #必須與區域文件名保持一致 $TTL 2000 @ IN SOA dns.xxx.ss. admin.xxx.ss. ( 2017052901 1H 5M 6D 1D ) @ IN NS dns @ IN MX 10 mail dns IN A 172.16.254.188 mail IN A 172.168.252.177 www IN A 172.16.254.188 ftp IN CNAME www
創建反向區域文件 [[email protected] named]# vim 172.16.zone #必須與區域文件名保持一致 $TTL 2000 @ IN SOA dns.xxx.ss. admin.xxx.ss. ( 2017052901 1H 5M 6D 1D ) @ IN NS dns.xxx.ss. 188.254 IN PTR dns.xxx.ss. 177.252 IN PTR mail.xxx.ss. 188.254 IN PTR www.xxx.ss.
第五步:檢查並修改文件權限,檢查配置文件語法;
修改創建配置文件的權限
# chgrp named ZONE_FILE NAME # chmod o= ZONE_FILE NMAE
檢查配置文件是否語法錯誤:
# named-checkzone ZONE_NAME ZONE_FILE # named-checkconf
第六步開啟服務:
# rndc reload 服務重載 # systemctl reload named.service 重啟服務
第七步:產看本地53號端口是否正常監聽
ss -tnl
第八步測試:
正向解析: dig -t A @172.16.254.188
反向解析:
dig -x 172.16.254.188 @172.16.254.188
更多的dig命令請自行查找
以上僅為個人學習整理,如有錯漏,大神勿噴~~~
本文出自 “kkk” 博客,謝絕轉載!
Linux基礎服務_DNS原理以及正反向DNS配置