久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Linux基礎教程之DNS入門教程

DNS服務原理詳解

因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析。

我們在訪問一個網站的時候,只要輸入該網站的網址就會跳轉到該網站頁面,而實現這一過程就需要DNS服務器將域名解析為IP地址,進而實現數據通信。

DNS:Domain Name Service 域名解析服務

監聽端口:

udp/53,tcp/53

應用程序:

BIND:Bekerley Internat Name Domain 國際域名

DNS域名

根域

? ? 一級域名:Top Level Domain: com, edu, mil, gov, net, org, int,arpa

組織域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv

國家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir

反向域:.in-addr.arpa

? ? ????? ? ??最多127 級域名

ICANN(The Internet Corporation for Assigned Names and Numbers)互聯網名稱與數字地址分配機構,負責在全球范圍內對互聯網通用頂級域名(gTLD )以及國家和地區頂級域名(ccTLD)系統的管理、以及根服務器系統的管理。

DNS樹狀結構圖

DNS查詢類型:

遞歸查詢

DNS請求被服務器接受后,如果屬于此服務器管轄范圍則請求上級服務器依次傳遞請求,并且依次傳遞結果給發出請求的主機。

迭代查詢

DNS請求被服務器接受后,如果不是自己管轄范圍,讓客戶端訪問根域服務器,然后跟域通知客戶端去訪問下級服務器,直到最后客戶端訪問管轄請求域名的服務器為止。

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

根服務器:13組服務器

解析類型:

正向解析:FQDN(完全域名) –> IP

反向解析:IP –> FQDN(完全域名)

FQDN:(Fully Qualified Domain Name)完全限定域名

注意:正反向解析是兩個不同的名稱空間,是兩棵不同的解析樹,因此,也不是同一個解析庫

DNS服務器類型:

DNS 服務器的類型:

主DNS 服務器

從DNS 服務器

緩存DNS 服務器(轉發器)

主DNS 服務器:管理和維護所負責解析的域內解析庫的服務器;讀寫均可進行

從DNS 服務器:從主服務器或從服務器“復制”(區域傳輸)解析庫副本;只能進行讀操作

序列號:解析庫版本號,主服務器解析庫變化時,其序列遞增

刷新時間間隔:從服務器從主服務器請求同步解析的時間間隔

重試時間間隔:從服務器請求同步失敗時,再次嘗試時間間隔

過期時長:從服務器聯系不到主服務器時,多久后停止服務

否定答案的緩存時長

“通知”機制:主服務器解析庫發生變化時,會主動通知從服務器

區域傳輸:

完全傳輸:傳送整個解析庫

增量傳輸:傳遞解析庫變化的那部分內容

Domain: Fully Qualified Domain Name

正向:FQDN –> IP

反向:IP –> FQDN

負責本地域名的正向和反向解析庫

正向區域

反向區域

DNS解析:

一次完整的查詢請求經過的流程:Client(客戶端) –>hosts文件–>DNS Service Local Cache(自己的本地緩存)–> DNS Server (recursion遞歸) –> Server Cache(緩存) –>iteration(迭代) –>根–>頂級域名DNS–>二級域名DNS…

解析答案:

肯定答案:

否定答案:請求的條目不存在等原因導致無法返回結果

權威答案:由直接負責的DNS服務器返回的答案

非權威答案:

例如,DNS客戶機查詢URL地址www.fastweb.com.cn流程圖

區域解析庫:

由眾多RR組成:(Resource Record資源記錄)

SOA:Start Of Authority(起始授權記錄)

一個區域解析庫有且僅能有一個SOA記錄,必須位于解析庫的第一條記錄

A:internet Address(地址記錄) ??????FQDN –> IP

AAAA: FQDN –> IPv6

PTR: PoinTeR(域名服務記錄) ???????IP –> FQDN

一個區域解析庫可以有多個NS記錄

NS: Name Server(專用于標明當前區域的DNS服務器)

CNAME:Canonical Name (別名記錄)

MX: Mail eXchanger(郵件交換器)

優先級:0-99,數字越小優先級越高

資源記錄定義的格式:

語法:name ?[TTL] ?IN ??rr_type ?value

注意:

(1) TTL可從全局繼承

(2) @可用于引用當前區域的名字

(3)同一個名字可以通過多條記錄定義多個不同的值;此時DNS 服務器會以輪詢方式響應

(4)同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義;此僅表示通過多個不同的名字可以找到同一個主機

SOA記錄

name:當前區域的名字,例如“rookie.com.”

value:有多部分組成

? ?(1)當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字

? ?(2)當前區域管理員的郵箱地址;但地址中不能使用@ 符號,一般用. 替換,例如Linux.rookie.com

? ?(3)主從服務區域傳輸相關定義以及否定的答案的統一的TTL

? ?例如:

rookie.com. ? ? ? ?86400 ? ? ? ?IN ? ? ? ?SOA ? ? ? ? ?rookie.com. ? ? ? ? admin.rookie.com. ???(

2017052201 ???? ?; 序列號serial

2H?????????????????????; 刷新時間refresh

10M ???????????????? ?; 重試時間retry

1W ????????????? ? ? ?; 過期時間expire

1D ????????????????????; 否定答案的TTL值negative answer ttl

)

NS記錄:

name: 當前區域的名字

value: 當前區域的某DNS 服務器的名字,例如 ns.rookie.com.

注意:一個區域可以有多個NS 記錄

例如:

rookie.com. ??IN ??NS ??ns1.rookie.com.

rookie.com. ??IN ??NS ??ns2.rookie.com.

注意:

(1)相鄰的兩個資源記錄的name相同時,后續的可省略

(2)對NS記錄而言,任何一個ns記錄后面的服務器名字,都應該在后續有一個A記錄

MX記錄:

name:當前區域的名字

value:當前區域的某郵件服務器(smtp 服務器)的主機名

一個區域內,MX 記錄可有多個;但每個記錄的value之前應該有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高

例如:

rookie.com. ??IN ??MX ??10(優先級) ? mx1.rookie.com.

rookie.com. ??IN ??MX ??20(優先級) ? mx2.rookie.com.

注意:

(1)對MX記錄而言,任何一個MX記錄后面的服務器名字,都應該在后續有一個A記錄

A記錄:

name:某主機的FQDN ??例如www.rookie.com.

value:主機名對應主機的IP地址

例如:

www.rookie.com. IN A 1.1.1.1 www.rookie.com. IN A 2.2.2.2 mx1.rookie.com. IN A 3.3.3.3 mx2.rookie.com. IN A 4.4.4.4 $GENERATE 1-254 HOST$ A 1.2.3.$ *.rookie.com. IN A 5.5.5.5 rookie.com. IN A 6.6.6.6

避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址

AAAA記錄:

name: FQDN

value: IPv6

PTR記錄:

name: IP地址,有特定格式,把IP 地址反過來寫,1.2.3.4 ,要寫作4.3.2.1 ;并且要加特定后綴:in-addr.arpa. ,所以完整寫法為:4.3.2.1.in-addr.arpa.

value: FQDN

例如:

4.3.2.1.in-addr.arpa. ?IN ?PTR ?www.rookie.com.

如1.2.3為網絡地址 ,可簡寫成:

4 ?IN ?PTR ?www.rookie.com.

注意:網絡地址及后綴可省略;主機地址依然需要反著寫

CNAME:

name:FQDN格式的別名

value:FQDN格式的正式名字

例如:

web.rookie.com. ? IN ? CNAME ?www.rookie.com.

子域:

子域,是相對父域來說的,指域名中的每一個段。各子域之間用小數點分隔開。放在域名最后的子域稱為最高級子域,或稱為一級域,在它前面的子域稱為二級域。

子域授權:每個域的名稱服務器,都是通過其上級名稱服務器在解析庫進行授權

類似根域授權tld:

.com. ????IN ??NS ns1.com.

.com. ????IN ??NS ns2.com.

ns1.com. ? IN ??A ? 2.2.2.1

ns2.com. IN ???A ? 2.2.2.2

rookie.com. 在.com 的名稱服務器上,解析庫中添加資源記錄

rookie.com. ?IN ?NS ?ns1.rookie.com.

rookie.com. ?????IN ?NS ?ns2.rookie.com.

rookie.com. ?????IN ?NS ?ns3.rookie.com.

ns1.rookie.com. ?IN ?A ?3.3.3.1

ns2.rookie.com. ?IN ?A ?3.3.3.2

ns3.rookie.com. ?IN ?A ?3.3.3.3

glue record:粘合記錄,父域授權子域的記錄

BIND安裝:

DNS協議—>BIND

程序環境:
主程序:/usr/sbin/named
Unit File:/usr/lib/systemd/system/named.service
配置文件:/etc/named.conf
區域解析庫文件:/var/named
關閉dnssec功能:
vim ?/etc/named.conf
dnssec-enable no;
dnssec-validation no;
解析一個區域:
定義:/etc/named.rfc1912.conf
zone “iLinux.io” IN {
type master;
file “ZONE_FILE”;
};
例:vim /etc/named.rfc1912.conf
zone “rookie.com” IN {
type master;
file “rookie.com.zone”;
};

定義解析庫文件示例:
$TTL 600 ? ? ?#全局定義 ? ?緩存十分鐘
iLinux.com. ? ? ?IN ? ? ?SOA ? ? iLinux.com. ? ? ?nsadmin.iLinux.com. (
2017052301
1H
5M
1W
6H )
IN ? ? ?NS ? ? ?dns1.iLinux.com.
IN ? ? ?NS ? ? ?dns2.iLinux.com.
dns1.iLinux.com. IN ? ? ?A ? ? ? 172.16.0.67
dns2.iLinux.com. IN ? ? ?A ? ? ? 172.16.0.68
www.iLinux.com.IN ? ? ?A ? ? ? 172.16.0.1
web ? ? ? ?????? ? ?IN ? ? ?CNAME ? www

BIND 的安裝配置:

BIND:Berkeley Internet Name Domain

dns: 協議
BIND: dns協議的一種實現
named:bind程序的運行的進程名

dns服務程序包:bind ?unbound

程序名:named ??unbound

程序包:yum list all bind*

bind:提供的dns server程序、以及幾個常用的測試程序

bind-libs:被bind和bind-utils包中的程序共同用到的庫文件

bind-utils:bind客戶端程序集,例如dig, host, nslookup等

bind-chroot:選裝,讓named運行于jail模式下

/var/named/chroot/

?

bind服務器:

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

/usr/lib/systemd/system/named.service

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

????????????????? ? ?/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

yum install -y bind后可見

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

注意:

(1)一臺DNS服務器可同時為多個區域提供解析

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

(3)應該有兩個區域解析庫文件(如果包括ipv6的,應該更多)實現localhost和127.0.0.1的正反向解析庫

????????正向:named.localhost
反向:named.loopback

rndc: remote name domain controller (遠程域名控制器)

提供輔助性的管理功能 953/tcp 但默認監聽于127.0.0.1地址,因此僅允許本地使用

bind程序安裝完成之后,默認即可做緩存名稱服務器使用,如果沒有專門負責解析的區域,直接即可啟動服務

CentOS 6: ?service ?named ?start

CentOS 7: ?systemctl ?start ?named.service

?

主配置文件格式:

全局配置段:

????????options { … }

日志子系統配置段:

????????logging { … }

區域定義段:

????????zone “ZONE_NAME” IN { … }

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

注意:

每個配置語句必須以分號結尾

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

緩存名稱服務器的配置:

監聽能與外部主機通信的地址

listen-on port 53

listen-on port 53 { 172.16.252.245; }

dnssec: 建議關閉dnssec,設為no(自己做實驗時建議關閉)

???????dnssec-enable no

???????dnssec-validation no

???????dnssec-lookaside no

關閉僅允許本地查詢:

???????//allow-query ?{ localhost; }

檢查配置文件語法錯誤:
named-checkconf ? ? ? ? ? ? ??/etc/named.conf
檢查區域配置文件錯誤:

????????named-checkzone “rookie.com” /var/named/rookie.com.zone

例:[root@localhost ~]#vim /etc/named.conf

測試命令dig:

dig [-t type] name [@SERVER] [query options]

dig 只用于測試dns 系統,不會查詢hosts 文件進行解析

查詢選項:

+[no]trace程:跟蹤解析過程 : dig +trace rookie.com

+[no]recurse:進行遞歸解析

[root@localhost ~]#dig -t A www.baidu.com @172.16.252.254 +trace

測試反向解析:

dig ?-x ?IP = dig ?-t ?ptr ?reverseip.in-addr.arpa

模擬區域傳送:

dig ?-t ?axfr ?ZONE_NAME @SERVER

dig ?-t ?axfr ?rookie.com @10.10.10.11

dig ?-t ?axfr ?100.1.10.in-addr.arpa @172.16.1.1

dig ?-t ?NS ?. ?@114.114.114.114

dig ?-t ?NS ?. ?@a.root-servers.net

[root@localhost ~]#dig -t NS baidu.com @172.16.0.1 ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t NS baidu.com @172.16.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35043 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 6 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;baidu.com. IN NS ;; ANSWER SECTION: baidu.com. 54644 IN NS ns7.baidu.com. baidu.com. 54644 IN NS ns3.baidu.com. baidu.com. 54644 IN NS ns4.baidu.com. baidu.com. 54644 IN NS dns.baidu.com. baidu.com. 54644 IN NS ns2.baidu.com. ;; ADDITIONAL SECTION: ns2.baidu.com. 140982 IN A 61.135.165.235 ns4.baidu.com. 140982 IN A 220.181.38.10 dns.baidu.com. 140982 IN A 202.108.22.220 ns3.baidu.com. 140982 IN A 220.181.37.10 ns7.baidu.com. 140982 IN A 119.75.219.82 ;; Query time: 2 msec ;; SERVER: 172.16.0.1#53(172.16.0.1) ;; WHEN: Thu Jun 01 07:22:38 EDT 2017 ;; MSG SIZE rcvd: 208[root@localhost ~]#dig -t NS baidu.com @172.16.0.1 +nocomments ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t NS baidu.com @172.16.0.1 +nocomments ;; global options: +cmd ;baidu.com. IN NS baidu.com. 54627 IN NS dns.baidu.com. baidu.com. 54627 IN NS ns3.baidu.com. baidu.com. 54627 IN NS ns2.baidu.com. baidu.com. 54627 IN NS ns4.baidu.com. baidu.com. 54627 IN NS ns7.baidu.com. ns2.baidu.com. 140965 IN A 61.135.165.235 ns4.baidu.com. 140965 IN A 220.181.38.10 dns.baidu.com. 140965 IN A 202.108.22.220 ns3.baidu.com. 140965 IN A 220.181.37.10 ns7.baidu.com. 140965 IN A 119.75.219.82 ;; Query time: 1 msec ;; SERVER: 172.16.0.1#53(172.16.0.1) ;; WHEN: Thu Jun 01 07:22:56 EDT 2017 ;; MSG SIZE rcvd: 208

測試命令host:

host [-t type] name [SERVER]

host ??-t ??NS ??rookie.com 172.16.0.1

host ??-t ??soa ??rookie.com

host ??-t ??mx ??rookie.com

host ??-t ??axfr ??rookie.com

host 1.2.3.4

nslookup命令:nslookup [-option] [name | -] [server]

交互式模式:

nslookup>

server IP:指明使用哪個DNS server進行查詢

set q=RR_TYPE:指明查詢的資源記錄類型

name:要查詢的名稱

[root@localhost ~]#nslookup > server 172.16.0.1 Default server: 172.16.0.1 Address: 172.16.0.1#53 > set q=a > www.tencent.com Server: 172.16.0.1 Address: 172.16.0.1#53 Non-authoritative answer: www.tencent.com canonical name = upfile.wj.qq.com.cloud.tc.qq.com. upfile.wj.qq.com.cloud.tc.qq.com canonical name = ssd.tcdn.qq.com. Name: ssd.tcdn.qq.com Address: 111.202.99.24 Name: ssd.tcdn.qq.com Address: 111.202.99.25 Name: ssd.tcdn.qq.com Address: 111.202.99.23 Name: ssd.tcdn.qq.com Address: 123.125.110.21 Name: ssd.tcdn.qq.com Address: 123.125.110.12 Name: ssd.tcdn.qq.com Address: 123.125.110.11 Name: ssd.tcdn.qq.com Address: 123.125.110.22

命令rndc:

rndc:remote name domain contoller(遠程域名控制器)
953/tcp,但默認監聽于127.0.0.1地址,因此僅允許本地使用

????????rndc –> rndc (953/tcp)

rndc COMMAND

命令:

reload:重載主配置文件和區域解析庫文件

reload zonename:重載區域解析庫文件

retransfer zonename:手動啟動區域傳送,而不管序列號是否增加

notify zonename:重新對區域傳送發通知

reconfig:重載主配置文件

querylog:開啟或關閉查詢日志文件/var/log/message

trace:遞增debug 一個級別

trace LEVEL:指定使用的級別

notrace:為將調試級別設置為 0

flush:清空DNS

[root@localhost ~]#rndc status version: 9.9.4-RedHat-9.9.4-37.el7 <id:8f9657aa> 版本 CPUs found: 4 CPU worker threads: 4 線程 UDP listeners per interface: 4 接口 number of zones: 101 區域數 debug level: 0 調試級別 xfers running: 0 運行 xfers deferred: 0 延遲 soa queries in progress: 0 正在進行的SOA查詢 query logging is OFF 查詢記錄 recursive clients: 0/0/1000 遞歸客戶端 tcp clients: 0/100 TCP客戶端 server is up and running 服務器啟動并運行

配置主DNS 服務器:

(1)在主配置文件中定義區域

zone "ZONE_NAME" IN { type {master|slave|hint|forward}; file "ZONE_NAME.zone"; };

(2)定義區域解析庫文件

出現的內容

宏定義

資源記錄

主配置文件語法檢查:

named-checkconf

解析庫文件語法檢查:

named-checkzone "rookie.com" /var/named/rookie.com.zone rndc status|reload ;service named reload

注意:實驗配置前需要特別注意三點

關閉防火墻

關閉SELinux

時間必須同步

?

配置解析一個正向區域:

以rookie.com域為例: (1)定義區域 在主配置文件中(/etc/named.conf)或主配置文件輔助配置文件(/etc/named.rfc1912.conf)中實現 [root@localhost ~]#vim /etc/named.rfc1912.zones zone "rookie.com" IN { type master; file "rookie.com.zone"; }; 注意:區域名字即為域名(2)建立區域數據文件(主要記錄為A或AAAA記錄) 在/var/named目錄下建立區域數據文件; 文件為:/var/named/rookie.com.zone [root@localhost /var/named]#vim rookie.com.zone $TTL 600(全局變量 緩存600秒) rookie.com.(域名) IN SOA rookie.com. admin.rookie.com.管理員郵箱 ( 2017060101 序列號 1H 刷新時間間隔一小時 5M 重試時間間隔五分鐘 1W 過期時間一周 6H ) 否定答案的TTL值六小時 IN NS dns1.rookie.com. IN NS dns2.rookie.com. dns1.rookie.com. IN A 172.16.250.149 dns2.rookie.com. IN A 172.16.252.245 www.rookie.com. IN A 172.16.0.1 web IN CNAME www 權限及屬組修改: [root@localhost /var/named]#chgrp named /var/named/rookie.com.zone [root@localhost /var/named]#chmod o= /var/named/rookie.com.zone [root@localhost /var/named]#ll 總用量 20 drwxrwx--- 2 named named 6 11月 12 2016 data drwxrwx--- 2 named named 6 11月 12 2016 dynamic -rw-r----- 1 root named 2076 1月 28 2013 named.ca -rw-r----- 1 root named 152 12月 15 2009 named.empty -rw-r----- 1 root named 152 6月 21 2007 named.localhost -rw-r----- 1 root named 168 12月 15 2009 named.loopback -rw-r----- 1 root named 301 6月 1 00:22 rookie.com.zone 檢查語法錯誤: [root@localhost /var/named]#named-checkconf [root@localhost /var/named]#named-checkzone "rookie.com" /var/named/rookie.com.zone zone rookie.com/IN: loaded serial 2017060101 OK(3)讓服務器重載配置文件和區域數據文件 [root@localhost /var/named]#rndc reload [root@localhost ~]#systemctl restart named.service(4)驗證 [root@localhost /var/named]#dig -t A www.rookie.com @172.16.250.149 ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.rookie.com @172.16.250.149 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38718 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.rookie.com. IN A ;; ANSWER SECTION: www.rookie.com. 600 IN A 172.16.252.125 ;; AUTHORITY SECTION: rookie.com. 600 IN NS dns1.rookie.com. rookie.com. 600 IN NS dns2.rookie.com. ;; ADDITIONAL SECTION: dns1.rookie.com. 600 IN A 172.16.250.149 dns2.rookie.com. 600 IN A 172.16.252.245 ;; Query time: 0 msec ;; SERVER: 172.16.250.149#53(172.16.250.149) ;; WHEN: 四 6月 01 01:02:13 CST 2017 ;; MSG SIZE rcvd: 129也可以通過修改/etc/hosts省略IP [root@localhost /var/named]#vim /etc/resolv.conf ; generated by /usr/sbin/dhclient-script search magedu.com #nameserver 172.16.0.1 [root@localhost /var/named]#dig -t A www.rookie.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.rookie.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39628 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.rookie.com. IN A ;; ANSWER SECTION: www.rookie.com. 600 IN A 172.16.252.125 ;; AUTHORITY SECTION: rookie.com. 600 IN NS dns2.rookie.com. rookie.com. 600 IN NS dns1.rookie.com. ;; ADDITIONAL SECTION: dns1.rookie.com. 600 IN A 172.16.250.149 dns2.rookie.com. 600 IN A 172.16.252.245 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: 四 6月 01 01:08:08 CST 2017 ;; MSG SIZE rcvd: 129

配置解析一個反向區域

(1)定義區域 在主配置文件中或主配置文件輔助配置文件中實現; [root@localhost ~]#vim /etc/named.rfc1912.zones zone "16.172.in-addr.arpa" IN { type master; file "172.16.zone"; }; 注意:反向區域的名字 反寫的網段地址.in-addr.arpa 16.172.in-addr.arpa(2)定義區域解析庫文件(主要記錄為PTR) [root@localhost ~]#vim /var/named/172.16.zone $TTL 600 @ IN SOA rookie.com. admin.rookie.com. ( 2017060101 1H 5M 2W 1D ) @ IN NS dns1.rookie.com. @ IN NS dns2.rookie.com. 149.250 IN PTR dns1.rookie.com. 245.252 IN PTR dns2.rookie.com. 125.252 IN PTR www.rookie.com. 權限及屬組修改: [root@localhost /var/named]#chgrp named /var/named/rookie.com.zone [root@localhost /var/named]#chmod o= /var/named/rookie.com.zone 檢查語法錯誤: [root@localhost ~]#named-checkconf [root@localhost ~]#named-checkzone "172.16" /var/named/172.16.zone zone 172.16/IN: loaded serial 2017060101 OK(3)讓服務器重載配置文件和區域數據文件 [root@localhost ~]#rndc reload [root@localhost ~]#systemctl restart named.service(4)驗證 [root@localhost /var/named]#dig -x 172.16.250.149 ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 172.16.259.149 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8132 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;149.259.16.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 149.259.16.172.in-addr.arpa. 600 IN PTR dns1.rookie.com. ;; AUTHORITY SECTION: 16.172.in-addr.arpa. 600 IN NS dns1.rookie.com. 16.172.in-addr.arpa. 600 IN NS dns2.rookie.com. ;; ADDITIONAL SECTION: dns1.rookie.com. 600 IN A 172.16.250.149 dns2.rookie.com. 600 IN A 172.16.252.245 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: 四 6月 01 01:44:45 CST 2017 ;; MSG SIZE rcvd: 150

主從服務器:

注意:從服務器是區域級別的概念;

主區域配置:可以參照上面的正向區域配置和反向區域配置

從區域配置:

On Slave

(1)定義從區域 (以另一虛擬機為例) [root@localhost ~]#vim /etc/named.rfc1912.zones zone "rookie.com." IN { type slave; file "slaves/rookie.com.zone"; masters { 172.16.250.149; };????????????#指明主節點 };[root@localhost ~]#vim /etc/named.conf options { //listen-on port 53 { 127.0.0.1; }; 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 { any; }; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; dnssec-enable no; dnssec-validation no; 配置文件語法檢查: [root@localhost ~]#named-checkconf(2)主/從都要重載配置 [root@localhost ~]#rndc reload [root@localhost ~]#systemctl restart named.service [root@localhost ~]#ll /var/named/slaves/ (文件已經同步) total 4 -rw-r--r-- 1 named named 414 Jun 1 03:01 rookie.com.zone(3)驗證 從 [root@localhost ~]#dig -t A www.rookie.com @172.16.250.149 ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.rookie.com @172.16.250.149 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5639 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.rookie.com. IN A ;; ANSWER SECTION: www.rookie.com. 600 IN A 172.16.252.125 ;; AUTHORITY SECTION: rookie.com. 600 IN NS dns1.rookie.com. rookie.com. 600 IN NS dns2.rookie.com. ;; ADDITIONAL SECTION: dns1.rookie.com. 600 IN A 172.16.250.149 dns2.rookie.com. 600 IN A 172.16.252.245 ;; Query time: 0 msec ;; SERVER: 172.16.250.149#53(172.16.250.149) ;; WHEN: Thu Jun 01 03:41:02 EDT 2017 ;; MSG SIZE rcvd: 129 (4)修改主配置文件,并重新測試 [root@localhost /var/named]#vim rookie.com.zone $TTL 600 rookie.com. IN SOA rookie.com. admin.rookie.com. ( 2017060102 1H 5M 1W 6D ) IN NS dns1.rookie.com. IN NS dns2.rookie.com. dns1.rookie.com. IN A 172.16.250.149 dns2.rookie.com. IN A 172.16.252.245 www.rookie.com. IN A 172.16.252.125 web IN CNAME www ftp IN CNAME www [root@localhost ~]#dig -t A ftp.rookie.com @172.16.250.149 ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A ftp.rookie.com @172.16.250.149 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30068 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ftp.rookie.com. IN A ;; ANSWER SECTION: ftp.rookie.com. 600 IN CNAME WWW.rookie.com. WWW.rookie.com. 600 IN A 172.16.252.125 ;; AUTHORITY SECTION: rookie.com. 600 IN NS dns1.rookie.com. rookie.com. 600 IN NS dns2.rookie.com. ;; ADDITIONAL SECTION: dns1.rookie.com. 600 IN A 172.16.250.149 dns2.rookie.com. 600 IN A 172.16.252.245 ;; Query time: 0 msec ;; SERVER: 172.16.250.149#53(172.16.250.149) ;; WHEN: Thu Jun 01 03:46:11 EDT 2017 ;; MSG SIZE rcvd: 147

On Master

(1) 確保區域數據文件中為每個從服務配置NS記錄,并且在正向區域文件需要每個從服務器的NS記錄的主機名配置一個A記錄,且此A后面的地址為真正的從服務器的IP地

注意:時間要同步

ntpdate命令

子域授權:

正向解析區域授權子域的方法:

ops.rookie.com. IN NS ns1.ops.rookie.com. ops.rookie.com. IN NS ns2.ops.rookie.com. ns1.ops.rookie.com. IN A IP.AD.DR.ESS ns2.ops.rookie.com. IN A IP.AD.DR.ESS

定義轉發:

注意:被轉發的服務器必須允許為當前服務做遞歸;

(1) 區域轉發:僅轉發對某特定區域的解析請求;

zone "ZONE_NAME" IN { type forward; forward {first|only}; forwarders { SERVER_IP; }; };

first:首先轉發;轉發器不響應時,自行去迭代查詢;

only:只轉發

(2) 全局轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;

options { ... ... forward {only|first}; forwarders { SERVER_IP; }; .. ... };

轉發服務器

注意:被轉發的服務器需要能夠為請求者做遞歸,否則轉發請求不予進行

first:首先轉發;轉發器不響應時,自行去迭代查詢

only:只轉發

(1)全局轉發: 對非本機所負責解析區域的請求, 全 轉發給指定的服務器 Options { fforward {only|first}; forwarders { SERVER_IP; }; };(2)特定區域轉發:僅轉發對特定的區域的請求,比全局轉發優先級高 zone "ZONE_NAME" IN { type forward; forward {first|only}; forwarders { SERVER_IP; }; }; 注意:關閉dnssec 功能: dnssec-enable no; dnssec-validation no;

bind中的安全相關的配置:

acl:訪問控制列表;把一個或多個地址歸并一個命名的集合,隨后通過此名稱即可對此集合內的所有主機實現統一調用

格式:

acl acl_name { ip; net/prelen; …… };示例: acl mynet { 172.16.0.0/16; 10.10.10.10; };

bind有四個內置的acl:

none:沒有一個主機

any:任意主機

localhost:本機

localnet:本機的IP同掩碼運算后得到的網絡地址

注意:只能先定義,后使用,因此一般定在配置文件中,處于options

訪問控制的指令:

allow-query ?{};允許查詢的主機;白名單

allow-transfer {};允許向哪些主機做區域傳送;默認為向所有主機;應該配置僅允許從服務器

allow-recursion {}; 允許哪此主機向當前DNS服務器發起遞歸查詢請求

allow-update {}; DDNS,允許動態更新區域數據庫文件中內容

bind view:

view:視圖,一個bind 服務器可定義多個view ,每個view中可定義一個或多個zone

每個view 用來匹配一組客戶端

多個view 內可能需要對同一個區域進行解析,但使用不同的區域解析庫文件

view VIEW_NAME { zone zone zone } view internal { match-clients { 172.16.0.0/8; }; zone "rookie.com" IN { type master; file "rookie.com/internal"; }; }; view external { match-clients { any; }; zone "rookie.com" IN { type master; file rookie.com/external"; }; };

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 宜黄县| 郁南县| 和林格尔县| 重庆市| 裕民县| 邵武市| 临汾市| 灵石县| 宝山区| 辽阳县| 彩票| 武清区| 迁西县| 融水| 社旗县| 海淀区| 平山县| 信丰县| 昆明市| 昔阳县| 如东县| 宿迁市| 海阳市| 十堰市| 邵东县| 乐昌市| 孝昌县| 怀远县| 高碑店市| 黎城县| 平利县| 东安县| 崇礼县| 安化县| 古交市| 郎溪县| 界首市| 鄱阳县| 无棣县| 平昌县| 吉木乃县|