1. 程式人生 > >DNS服務基礎及bind基礎配置和應用

DNS服務基礎及bind基礎配置和應用

遠程服務 abc time 通過 加載 rac 文件同步 linux. 全局配置

DNS服務基礎及bind基礎配置和應用

DNS服務基礎01
1.DNS:Domain Name Service, ( 應用層協議)
2.tld:Top Level Domain 頂級域
(1)頂級域中的組織域
.com (company)
.net 網絡組織
.org非盈利型組織 org:other organizations
.gov government
.edu 教育機構
.mil military軍事的,軍隊,軍人
...
(2)頂級域中的國家域
.tw .hk .cn ....
3.DNS名稱解析方式:
通過“主機名稱”尋找“IP”:正向解析
通過“IP”尋找“主機名稱”:反向解析
(3)eg:根服務器(.) ----管理頂級域服務器(73分鐘)
一級頂級域(com)-----管理二級域服務器
二級域 (三裏屯)------ 管理區域內本地服務器
本地主機服務器
4.域
magedu.com 即為一個域
域有了下面的主機名稱相當於都有了:
www.magedu.com
ftp.magedu.com
bbs.magedu.com
cloud.magedu.com
5、DNS服務器類型
第一種:負責解析至少一個域
主名稱服務器
輔助名稱服務器(以防主名稱服務器歇菜)
第二種:不負責域解析
緩存名稱服務器

*hosts:如果查找的域不多,將主機名稱或IP查找下來之後緩存至緩存中,再保存至本地hosts中,下次查找的時候先找hosts,
再從緩存中找。
*基於IP找主機名稱:
eg:一臺主機基於某個IP找到這個IP的主機名稱,查找的時候,上級知道下級的管理範圍,下級不知道上級的管理範圍,
就算這個IP對應的域的上級就是管理這個域的(這種可能性很小),也只有通過根才能找到自己的上級(叠代查找)

DNS服務基礎02
1.一次完整的查詢請求經過的流程:
本地hosts文件 --> 如果hosts中沒有對應關系,就去查看DNS local cache本地緩存-->
本地緩存如果找到了,就結束了,如果沒找到,就向所指定的DNS server(服務器)發送請求
(這個請求是個遞歸請求recursive):
如果是自己負責解析的域:直接查詢數據庫並返回答案
如果不是自己負責解析的域:先查找自己的緩存(服務器有自己的緩存),
然後基於叠代(iteration)的方式一步步去找根,最終完成解析請求。

2.服務器返回的解析答案可能性:
肯定答案:
否定答案:(免於客戶端頻繁查詢服務器,服務器對於否定答案也會緩存)

權威答案:由直接負責的DNS服務器返回的答案;
非權威答案:(域名是可以交易的)
3. 區域傳送:
輔助服務器剛上線時進行全量傳送(axfr:full zone transfer)
之後用增量傳送ixfr僅傳送變化的數據;(變量傳送)
4.一個主機有主機名和IP的原因
主機名容易被人記住,IP不容易記。
5.域管理
根服務器:根服務器下分子域,子域分一級、二級子域(分到此處就夠管理了),域中有主機,管理級域中沒有,域從上到下是管理關系,通過
DNS服務器來實現最終的主機管理。(每個域都配有DNS服務器)
主機管理:根服務器管理子域服務器,二級子域管理各自域中的主機。
管理的內容:名稱解析。主機有普通主機、服務主機。、、、、

6、主-輔DNS服務器:
主DNS服務器:維護所負責解析的域數據庫的那臺服務器;讀寫操作均可進行;
從DNS服務器:從主DNS服務器那裏或其它的從DNS服務器那裏“復制”一份解析庫;但只能進行讀操作;
“復制”操作的實施方式:
序列號:serial, 也即是數據庫的版本號;主服務器數據庫內容發生變化時,其版本號遞增;
刷新時間間隔:refresh, 從服務器每多久到主服務器檢查序列號更新狀況;
重試時間間隔:retry, 從服務器從主服務器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔;(肯定是小於刷新時間的,如何大於,愧疚沒必要重試了)
過期時長:expire,從服務器始終聯系不到主服務器時,多久之後放棄從主服務器同步數據;停止提供服務;
否定答案的緩存時長:

主服務器”通知“從服務器隨時更新數據;

區域傳送:
全量傳送:axfr, 傳送整個數據庫;
增量傳送:ixfr, 僅傳送變量的數據;
7、站在邏輯角度上講是一個域,站在物理角度上講是一個區域
區域(zone)和域(domain):
magedu.com域:
FQDN --> IP FQDN:Fully Qualified Domain Name完全合格域名(主機名)
正向解析庫;區域
IP --> FQDN
反向解析庫;區域


8.區域服務器是如何工作的
(1)一個主機名稱可對應多個IP,一個IP也可對應多個主機。
一個主機名稱可對應多個IP:實現負載均衡的輪循效果,比如一個主機對用兩個IP,對於此主機提供的web服務,一半人訪問這個IP,一般人訪問另一IP,提供服務效率。
一個IP也可對應多個主機:這個服務器既是web服務器,又是郵件服務器,這個很正常,即一臺服務器提供多種服務功能。
(2)區域數據庫文件:(主要是由資源記錄來定義的)
a、資源記錄:Resource Record, 簡稱rr;
記錄類型:A, AAAA, PTR, SOA, NS, CNAME, MX

*SOA:Start Of Authority,起始授權記錄(造了一個島,島上誰是島主、居民等要定義下,相當於這個意思); 一個區域解析庫有且只能有一個SOA(標明這個島)記錄,而且必須放在第一條;
*NS(島主和副島主):Name Service,域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的;
*A: Address, 地址記錄,FQDN --> IPv4;(主機名解析成對應IP,一個IPv4是32位)
*AAAA:地址記錄, FQDN --> IPv6;(128位)
*CNAME:Canonical Name,別名記錄; (主機服務器是可以有別名的)
*PTR:Pointer,IP --> FQDN(將IP解析成主機名的,實現反向解析)
*MX:Mail eXchanger,郵件交換器;(標記郵件服務器,[email protected]

/* */,後面是一個域名,不可能一個域內的所有主機服務器都是用來實現郵件服務的,MX就是用來標記某臺服務器是用來實現郵件服務的。)
優先級:0-99,數字越小優先級越高;(郵件服務器不可能只有一個,萬一掛了或者忙不過來呢,有多個,他們是有優先級的)

b、資源記錄(有很多個,上面*只是介紹常見的)的定義格式:
語法: name [TTL] IN(關鍵字) RR_TYPE value
time to live 生存時間,加[]表明是可以省略的
(正向的,左邊NAME是主機名,反向的,左邊NAME是IP)
SOA:
name: 當前區域的名字;例如”mageud.com.”(正向的),或者“2.3.4.in-addr.arpa.”(反向的);
value:有多部分組成
(1) 當前區域的區域名稱(也可以使用主DNS服務器名稱);
(2) 當前區域管理員的郵箱地址;[email protected],一般使用點號來替代;
(3) (主從服務協調屬性的定義以及否定答案的TTL)

例如:
magedu.com. 86400 IN SOA magedu.com. admin.magedu.com. (
2017010801 ; serial(主服務器序列號)
2H ; refresh(從服務器的刷新時間)
10M (分鐘) ; retry(重試時間)
1W(week) ; 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. IN MX 10 mx1.magedu.com.
magedu.com. 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:FQND

例如:
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記錄;


9、DNS協議 --> BIND, PowerDNS
http://www.isc.org

程序環境:
主程序:/usr/sbin/named
Unit File:/usr/lib/systemd/system/named.service
配置文件:/etc/named.conf
區域解析庫文件:/var/named

關閉dnssec功能:
/etc/named.conf

dnssec-enable no;
dnssec-validation no;

解析一個區域:
定義:/etc/named.rfc1912.conf
zone “ilinux.io" IN {
type master;
file "ZONE_FILE";
}

定義解析庫文件示例:
$TTL 600
ilinux.io. IN SOA ilinux.io. nsadmin.ilinux.io. (
2017052301
1H
5M
1W
6H )
IN NS dns1.ilinux.io.
IN NS dns2.ilinux.io.
dns1.ilinux.io. IN A 172.16.0.67
dns2.ilinux.io. IN A 172.16.0.68
www.ilinux.io. IN A 172.16.0.1
web IN CNAME www

bind基礎配置和應用(03)
1、如何安裝配置DNS的服務使用?
(1)BIND的安裝配置:
BIND: Berkeley Internet Name Domain, ISC.org
dns: 協議
bind: dns協議的一種實現
named:bind程序的運行的進程名(服務名)
(2)BIND的程序包 (此中講到的bind包是centos7,6和7的區別不大)
*在發行版的光盤中一般自帶相關程序包,只需配置好本地base或光盤指向的yum源即可。(需用到的知識點:yum源的配置)
*查看BIND包信息:#yum info bind(包的版本、功能作用等信息)

*查看有關bind包的信息:#yum list all bind* (以bind開頭進行通配)
*#yum list bind-libs(查看bind-libs包的信息)
*# rpm -ql bind-libs(查看bind-libs包中的輔助文件清單)
* bind-libs包作用:被bind包和bind-utils包中的程序共同用到的庫文件;
*bind-utils:bind客戶端程序集,例如dig, host, nslookup等;

* bind包:提供了dns server程序、以及幾個常用的測試程序;
*bind-chroot:選裝,讓named運行於jail模式下;
(3)bind:
*主配置文件:/etc/named.conf ,abc可用“#rpm -ql bind”查看到,abc也是bind配置文件中的組成部分
a、/etc/named.iscdlv.key
b、/etc/named.rfc1912.zones
c、/etc/named.root.key

*解析庫文件:在/var/named/目錄下;
一般名對應的區域名字:ZONE_NAME.zone
2、註意:(1) 一臺DNS服務器可同時為多個區域提供解析;
(2)既然是DNS服務器,就必須要有根區域解析庫文件(其主要作用在於告訴DNS服務器根節點的服務器地址),
此文件在centos上一般叫做:named.ca;
(3) 還應該有兩個區域解析庫文件:localhost(解析本地主機)和127.0.0.1的正反向解析庫;
正向解析庫文件:named.localhost
反向解析庫文件:named.loopback
*正向解析庫文件:
~]# cat /var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1 (正向解析的標誌)
AAAA ::1
*反向解析庫文件:
~]# cat /var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost. (反向解析的標誌)


3、rndc:remote name domain contoller,名稱服務器的遠程控制工具(比如刪除、清空緩存、結束進程等操作)
遠程就可以跨主機操作,和主機通信就必須基於套接字進行通信。 可以#man rndc
(1)默認工作在tcp下的953端口,953/tcp。但默認監聽於127.0.0.1地址,因此僅允許本地使用;
(2)bind程序安裝完成之後,rndc默認即可做緩存名稱服務器使用(其功能是讓其他主機服務器指向這臺主機);如果沒有專門負責解析的區域,直接即可啟動服務;
服務啟動CentOS 6: service named start
服務啟動CentOS 7: systemctl start named.service


4、bind的主配置文件格式:( named:bind程序的運行的進程名(服務名))
首先打開配置文件~#] vim /etc/named.conf,bind配置文件主要由三部分組成。
第一部分:全局配置段
定義在options {...}中,大括號括起來的一大部分配置信息。
第二部分:日誌配置段
定義在logging{...}中
第三部分:區域配置段
定義在zone{...}中,此中內容:那些由本機負責解析的區域,或轉發的區域;
(1)緩存名稱服務器的配置(監聽能與外部主機通信的地址)
你的dns服務器要想能為其他主機提供服務、建立通信,最起碼的他要監聽在一個公共的能讓其他主機通信的地址上,
而不是默認的127.0.0.1地址,因此我們要監聽可與外部服務通信的監聽地址,此時需要修改一個配置信息 ,監聽web
服務即可。
第一部分中:
默認的監聽地址:listen-on port 53 { 127.0.0.1; };
刪除默認地址:listen-on port 53 ;(沒加監聽地址的話,默認是監聽所有的地址)
如果要監聽某一特定的地址,在後面直接加上ip:listen-on port 53 { 172.16.100.67; };

(2)學習時,建議關閉dnssec
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
(3)註意:每個配置語句必須以分號“;”結尾,否則即為語法錯誤。

5、配置文件語法檢查(如果修改了配置文件中的內容,一定要先檢查是否有語法錯誤,再啟動服務。)
(1)命令檢查,未報錯說明正常。
~]# named-checkconf
(2)named-checkconf命令默認情況下是檢查/etc/named.conf配置文件的,後面帶不帶都行。
~]# named-checkconf [/etc/named.conf]
(3)刪除了配置文件中一個“{”,出現如下報錯。
~]# named-checkconf
/etc/named.conf:13: ‘{‘ expected near ‘listen-on‘



6、配置文件中註釋的方法
(1)多行註釋:
/*
...
...
*/
(2)單行註釋:a、/*...*/
b、//(雙斜線)

7、測試工具(測試網絡是否是通的)
dig, host, nslookup等

(1)dig命令:用於測試dns系統,因此其不會查詢hosts文件;
dig [-t RR_TYPE] name [@SERVER] [query options]
*-t :表示測試
*RR_TYPE:資源類型
*name:將哪一個名字解析成哪一個資源對應的值
[email protected]:通過哪一個服務器來解析
*query options:查詢選項(可省)
*查詢選項:
+[no]trace:跟蹤解析過程;
+[no]recurse:進行遞歸解析;

eg:測試百度A資源記錄
~]# dig -t A www.baidu.com
[email protected],是因為用本機進行測試。

註意:反向解析測試
格式:dig -x IP
解析某IP對應的主機
eg:
~]# dig -x 119.75.222.17
沒有解析出來,說明:有正向解析,不一定有反向解析

(2)host命令:
格式:host [-t RR_TYPE] name SERVER_IP
SERVER_IP([email protected]):使用指定的服務器進行測試,不用默認的。

解析主機名
eg:
~]# host -t NS baidu.com.
baidu.com name server ns2.baidu.com.
baidu.com name server dns.baidu.com.

解析郵件交換服務器的名字
eg:
~]# host -t MX baidu.com
baidu.com mail is handled by 20 mx1.baidu.com.
baidu.com mail is handled by 20 jpmx.baidu.com.

(3)nslookup命令:
格式:nslookup [-options] [name] [server]
name:指明要查詢的名字
server:使用哪天服務器進行查詢

最好使用交互式模式:
nslookup>
server IP:以指定的IP為DNS服務器進行查詢;
set q=RR_TYPE:要查詢的資源記錄類型;
name:要查詢的名稱;
eg:
~]# nslookup
> server 172.16.0.1 (指明服務器172.16.0.1)
Default server: 172.16.0.1
Address: 172.16.0.1#53
> set q=A (查詢A記錄資源)
> www.souhu.com (查搜狐的A 記錄)
Server: 172.16.0.1
Address: 172.16.0.1#53

Non-authoritative answer:
www.souhu.com canonical name = cndm.com. (canonical name(別名) canonical 典型 標準)
Name: cndm.com
Address: 124.16.31.154
> exit


8、rndc命令:named服務控制命令(遠程控制)
*rndc status
*rndc flush (清空服務器緩存) flush同花 發紅
eg:
~]# 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 (有沒有進行過transfer,0表示沒有)
xfers deferred: 0
soa queries in progress: 0 (正在進行的soa查詢有多少個)
query logging is OFF (表示查詢日誌功能是關閉的)
recursive clients: 0/0/1000 (遞歸查詢客戶端有多少個,最多1000個,現在為0個)
tcp clients: 0/100 (0:表示tcp有多少個,100:表示最多有100個)
server is up and running (服務器正處於啟動正常工作狀態)

9、配置一個正向區域:(67分鐘)
假如以magedu.com域為例:
(1) 定義區域(我們要來管理哪一個區域的主機,方便查找)
在主配置文件中(/etc/named.conf)或主配置文件輔助配置文件(/etc/named.rfc1912.conf)中實現;
zone "ZONE_NAME" IN { (在zone段中定義域名) 註意:區域名字即為域名;
type {master|slave|hint|forward}; (定義好服務器類型master(定義為主服務器)|slave(從服務器)|hint(根服務器)|forward(轉發服務器))
file "ZONE_NAME.zone"; (定義好文件名)
};

*(解釋zone段中出現的:/etc/named.rfc1912.zones
rfc:請求註解文檔
主要是描述每一種協議的規範的最權威的官方資料)

*在vim /etc/named.rfc1912.zones中新增區域:
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};


(比如正向解析,通過主機名找到IP,從而客戶端的工作才能繼續下去--獲取資料。從主機名解析IP、過程中要保證服務器正常工作
為他配置一個從服務器等等,這樣的一個過程需要詳細記錄才能完成,數據文件就是起到這樣的一個作用。正向解析有正向解析的過程內容信息需要去
記錄,反向解析從IP查找主機名同樣是如此,所以兩種工作過程都要建立自己的區域數據文件)
(2) 建立區域數據文件(主要記錄為A或AAAA記錄)
*為magedu.com.zone定義區域建立數據文件
*在/var/named目錄下建立區域數據文件;
文件為:/var/named/magedu.com.zone
*#vim magedu.com.zone
$TTL 3600(除TTL之外全部為資源記錄) time to live 生存時間
$ORIGIN magedu.com. (解析主機名)
@ IN SOA ns1.magedu.com. dnsadmin.magedu.com. (
2017010801 (序列號)
1H (刷新時間)
10M (重試時間)
3D (過期時間)
1D ) (否定回答的TTL值)
IN NS ns1
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.100.67
mx1 IN A 172.16.100.68
mx2 IN A 172.16.100.69
www IN A 172.16.100.67
web IN CNAME www
bbs IN A 172.16.100.70
bbs IN A 172.16.100.71

(3)區域數據文件(主配置文件)建立完成之後
第一步:檢查語法錯誤
a、檢查主配置文件語法錯誤 :# named-checkconf
b、新增區域的配置文件也要檢查語法錯誤:
# named-checkzone ZONE_NAME ZONE_FILE
eg:
~]# named-checkzone magedu.com /var/named/magedu.com.zone

第二步:權限及屬組修改
# chgrp named /var/named/magedu.com.zone
# chmod o= /var/named/magedu.com.zone(其他用戶沒有權限)

第三步: 讓服務器重載配置文件和區域數據文件
重載,查看一下遠程服務器狀態
#rndc status
然後#rndc reload(或# systemctl reload named.service重載服務器)
然後#rndc status(會發現number of zones多一個)

10、配置一個反向區域(88分鐘)
(1) 定義區域
在主配置文件中或主配置文件輔助配置文件中實現;
假如以magedu.com域為例:
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};

*在/etc/named.rfc1912.zones中定義區域名
eg:
zone "100.16.172.16.in-addr.arpa" IN {
type master;
file "172.16.100.zone";
};

註意:反向區域的名字
反寫的網段地址.in-addr.arpa
100.16.172.in-addr.arpa

(2) 定義區域解析庫文件(主要記錄為PTR)
示例,區域名稱為100.16.172.in-addr.arpa;
*#vim 172.16.100.zone
$TTL 3600 (一小時)
$ORIGIN 100.16.172.in-addr.arpa. (解析IP)
@ IN SOA ns1.magedu.com. nsadmin.magedu.com. (
2017010801
1H
10M
3D
12H )
IN NS ns1.magedu.com.(反向區域中不能省,不能只寫ns1)
67 IN PTR ns1.magedu.com.
68 IN PTR mx1.magedu.com.
69 IN PTR mx2.magedu.com.
70 IN PTR bbs.magedu.com.
71 IN PTR bbs.magedu.com.
67 IN PTR www.magedu.com.

(3)a、權限及屬組修改:
# chgrp named /var/named/172.16.100.zone
# chmod o= /var/named/172.16.100.zone
b、 檢查語法錯誤:
# named-checkzone ZONE_NAME ZONE_FILE
# named-checkconf

c、讓服務器重載配置文件和區域數據文件
# rndc reload 或
# systemctl reload named.service

bind高級應用(04)

1、主從服務器:(主從,就看正向區域解析數據文件和反向區域解析數據文件放在哪臺服務器上了)
(1)從服務器是區域級別的概念
(2)從服務器擁有主服務器一模一樣的數據文件
(3)eg加深理解:某臺服務器為十個區域提供正向解析,而且都是主的,從服務器只能是其中一個區域上服務器的從服務器,
如果一臺服務器上有三個區域且是主的,我們配置一臺服務器成為這臺服務器的從服務器時,是相對於其中一個區域配置的,
而不是對於整臺服務器配置的,如果他是第一個區域的從,那麽在從服務器上他只有第一個服務器的數據文件副本。
(4)eg加深理解:如果某臺服務器既是正向的主(即提供正向區域解析),又是反向的主(又提供反向區域解析),如果從服務器只配置了正向區域的從(副本),
那麽反向區域就和他沒有關系了,就不能提供反向區域解析了,他沒有反向區域解析數據文件。所以如果配置一臺從服務器,把一個域的完整的
正向區域和反向區域都成為從,那麽這兩個區域的數據文件要分別進行配置。
(5)eg加深理解:我們還可以這樣,拿兩臺服務器,第一臺服務器是正向的主,第二臺服務器是正向的從,但第二臺服務器是反向的主,第一臺是反向從,
這樣也是可以的。因此第一臺服務器向第二臺復制正向區域數據文件,第二臺服務器向第一臺復制反向區域數據文件。只能在區域級別
建立關聯關系。

2、從服務器的配置
*數據文件和主服務器同步獲取
*在區域文件中配置一個從區域,並定義區域類型是從服務器。
(1)從服務器的配置:
On Slave
(1) 定義區域
定義一個從區域;
zone "ZONE_NAME" IN {
type slave;(類型:從服務器)
file "slaves/ZONE_NAME.zone";
masters { MASTER_IP; }; (告知主服務器是哪個)
};
(2)配置文件語法檢查:named-checkconf
(3)重載配置
rndc reload或
systemctl reload named.service

3、在主服務器上,On Master(23分鐘)
(1) 確保區域數據文件中有一個NS記錄是指向從服務器的(或者說確保區域數據文件中為每個從服務配置NS記錄);
實驗(為主服務器配置一臺正向服務的從)
第一步:準備一個節點當從服務器
~]# ssh [email protected](連接從)
第二步:裝主程序包
~]# yum install bind -y(要裝此包,首先要配置yum源)
第三步:編輯DNS的主配置文件,要能監聽在web地址上
(1)#vim /etc/named.conf
(2)options {
11 listen-on port 53 { 127.0.0.1; 172.16.253.212; }; 將要監聽的地址加在後面
(3)optios段中,yes改為no
dnssec-enable yes;
dnssec-validation yes;
(4)啟動服務
~]# service named start
~]# service named status 查看服務狀態
第四步:配置從區域,將其配置為正向解析的從服務器。
(1)#vim /etc/named.conf
~]# vim /etc/named.rfc1912.zones(配置從區域)
(2) 加入的內容
zone "magedu.com" IN { (表明配置的是正向解析)
type slave; (表明是為從服務器配置)
file "slaves/magedu.com.zone"; (文件放置的相對位置)
masters { 172.16.253.212; }; 註意中括號的空格隔開 (表明主服務器是誰)
};
(3)更改了配置文件,要檢查其語法是否有錯。
#named-checkconf
第五步:返回主服務器,在magedu.com域中加一個NS,為從服務的副本提供服務。(域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的;)
*此條NS記錄如果沒有的話,從服務器將沒法正常工作。
(1)主服務器區域配置文件更改
~]# cd /var/named
named]# vim magedue.com.zone


$TTL 3600
$ORIGIN magedu.com
@ IN SOA ns1.magedu.com dnsadmin.magedu.com. (
2017010802(加了一個NS,序列號加1.新改動,新版本)
1H
10M
3D
1D )
IN NS ns1
IN NS ns2(新增,指向ns2,ns2跟對方主機的真正名字沒有關系)
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.253.212
ns2 IN A 172.16.252.184(新增,但這個ns2要有一個A記錄,指向對方的主機(從服務器))
mx1 IN A 172.16.253.213
mx2 IN A 172.16.100.214
www IN A 172.16.100.212
web IN CNAME www
bbs IN A 172.16.100.215
bbs IN A 172.16.100.216
(2)主服務器配置文件語法檢查
named]# named-checkzone magedu.com /var/named/magedu.com.zone
檢查的域為magedu.com
域的文件/var/named/magedu.com.zone
(3)重載配置(每新增主機,都需要重載,序列號加1)
rndc reload或
systemctl reload named.service

4、實驗:為主服務器配置一臺反向服務的從
第一步:在從服務器上編輯,作為一臺主機服務器反向解析的從。
*(有的主機希望正向解析,有的希望反向解析)
在從上配置一個反向解析區域
#vim /etc/named.rfc1912.zones
新增:
};
zone "100.16.172.in-addr.arpa" IN {
type slave;
file "slaves/172.16.100.zone"; (文件放置的位置)
masters { 172.16.100.67; }; (呼應的主服務器)
};
第二步:檢查配置文件的語法錯誤
#named-checkconf
第三步:在主服務器上,更改其配置文件,將從服務器的NS加上,序列號跟新。
然後檢查文件的語法錯誤,再加載。


5、小總結:檢查語法錯誤
*標明彼此是主從服務器的關系 *標明從是否有主的正向、反向解析功能 *實現數據文件同步功能
(1)檢查/etc/named.rfc1912.zones配置文件的語法錯誤:#named-checkonf(在從服務器上進行,為主服務器加了正向區域或反向區域解析功能的時候)
(2)eg:named]# named-checkzone magedu.com /var/named/magedu.com.zone(在主服務器上進行,當為主服務器配置從服務器時,要將從服務器的視作一個NS記錄在案。)
為從服務器的NS記錄的主機名配置一個A記錄,且此A後面的地址為真正的從服務器的IP地址.
檢查的域為magedu.com
域的文件/var/named/magedu.com.zone


6、註意:主從服務器時間要同步;
ntpdate命令;

7、子域授權:(46分鐘)
正向解析區域授權子域的方法:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A IP.AD.DR.ESS
ns2.ops.magedu.com. IN A IP.AD.DR.ESS

8、定義轉發:
註意:被轉發的服務器必須允許為當前服務做遞歸;
(1) 區域轉發:僅轉發對某特定區域的解析請求;
zone "ZONE_NAME" IN {
type forward;
forward {first|only}; (轉發服務器)
forwarders { SERVER_IP; }; (被轉發的服務器-即接受的服務器)
};
first:首先轉發;轉發器不響應時,自行去叠代查詢;
only:只轉發;

(2) 全局轉發:凡本地沒有通過本地zone定義的區域查詢請求,通通轉給某轉發器;
options {
... ...
forward {only|first};
forwarders { SERVER_IP; };(可以有多個,主、從都可以解析)
.. ...
};

9、bind中的安全相關的配置:
(1)acl:訪問控制列表;把一個或多個地址歸並一個命名的集合,隨後通過此名稱即可對此集合內的所有主機實現統一調用;(打包一個或多個主機,統一發送給服務器進行解析)
acl acl_name {
ip;
net/prelen;
};
示例:
acl mynet {
172.16.0.0/16;
127.0.0.0/8;
};

(2)bind有四個內置的acl
none:沒有一個主機;
any:任意主機;
local:本機;
localnet:本機的IP所屬的網絡;

(3)訪問控制指令:
allow-query {}; 允許查詢的主機;白名單;
allow-transfer {}; 允許向哪些主機做區域傳送;默認為向所有主機;應該配置僅允許從服務器;
allow-recursion {}; 允許哪些主機向當前DNS服務器發起遞歸查詢請求;
allow-update {}; DDNS,允許動態更新區域數據庫文件中內容;

(4)bind view:
視圖:
view VIEW_NAME {
zone
zone
zone
}

eg:
view internal {
match-clients { 172.16.0.0/8; };
zone "magedu.com" IN {
type master;
file "magedu.com/internal";
};
};

view external {
match-clients { any; };
zone "magecdu.com" IN {
type master;
file magedu.com/external";
};
};

DNS服務基礎及bind基礎配置和應用