DNS服務、BIND

DNS:domain name service,協議(C/S,udp53,tcp53)

BIND:bekerley internat name domain

注意:named程序的啟動用戶是named用戶,非root用戶,因此需要注意權限和屬主。

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

linux:/etc/hosts

windows:%WINDOWS%/system32/dirvers/etc/hosts

 

dns查詢類型:

遞歸查詢:一次請求取得最終結果;

迭代查詢:多次請求取得最終結果;

 

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

根服務器:13組服務器

 

解析類型:FQDN:完全限定域名

正向解析:FQDN ? –>> ? IP

反向解析:IP ? –>> ? FQDN

 

DNS服務器的類型:

主DNS服務器

輔助DNS服務器

緩存DNS服務器

轉發器

 

主DNS服務器:維護所負責解析的域內解析庫的服務器;解析庫文件由管理員維護;

從DNS服務器:解析庫文件從主DNS服務器或者其他的從DNS服務器“復制”(區域傳送)過來;

序列號:解析庫的版本號;前提:主dns服務器解析庫內容發生變化,其序列號遞增;

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

重試時間間隔:同步解析庫失敗時,再次嘗試的時間間隔;小于刷新時間間隔;

過期時長:從服務器始終聯系不到主服務器時,多久后放棄從服務器角度,停止提供服務;

“通知”機制:

區域傳送:

全量傳送:傳送整個解析庫;

增量傳送:傳送解析庫變化的那部分內容;

 

一次完整的查詢請求經過的流程:

client–>hosts文件–>local cache–>dns server(遞歸)–>server cache–>迭代

解析答案:肯定回答、否定回答、權威答案、非權威答案

 

區域解析庫:由眾多資源記錄RR組成;

資源記錄:resource record,RR

記錄類型:A,AAAA,PTR,SOA,NS,CNAME,MX

SOA:start of author,起始授權記錄:一個區域解析庫有且僅能有一個SOA記錄,而且必須為解析庫的第一條記錄;

A:internet address,作用:FQDN–>IP;

AAAA:FQDN–>IPv6;

PTR:poinTeR,IP–>FQDN;

NS:name server,專用于標明當前區域的dns服務器

CNAME:canonical name,別名記錄

MX:mail exchanger,郵件交換器

 

資源記錄定義的格式:

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

注意:(1)TTL可從全局繼承;

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

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

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

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

(6)同一個值也可能有多個不同定義名字,通過多個不同名字指向同一個值定義;

(7)避免用戶寫錯名稱時給錯誤答案,通過*泛域名解析至特定地址;例如*.magedu.com. ? IN ? ?A ? ?1.1.1.3

 

SOA:一個區域解析庫內有且只有一個SOA記錄

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

value:由多部分組成:(1)當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字;

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

(3)主從服務協調屬性的定義以及否定的答案的統一的TTL;

例如:magedu.com. ? ? 86400 ?IN ?SOA ? ? ? ns.magedu.com. ? ?nsadmin.magedu.com. ? ? (

2018041901 ? ?;序列號

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

10M ? ? ? ? ? ? ? ? ?;重試時長

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

1D ? ? ? ? ? ? ? ? ? ? ;否定答案的TTL

 

NS:

name:當前區域的名字

value:當前區域的某DNS服務器的名字,例如ns.magedu.com.;一個區域可以有多條NS記錄;

例如:

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

IN ? ?NS ? ns2.magedu.com.

 

MX:

name:當前區域的名字

value:當前區域的某郵件服務器的主機名;注意,value之前應該有一個數字(0-99),表示此郵件服務器的優先級;

例如:

magedu.com. ? ? IN ? ?MX ?10 mx1.magedu.com.

IN ? ?MX ?20 mx2.magedu.com.

 

A:

name:某主機的FQDN,例如www.magedu.com.

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

例如:

www.magedu.com. ? ? ? ?IN ? ? ? A ? ? 1.1.1.1

www.magedu.com. ? ? ? ?IN ? ? ? A ? ? 2.2.2.2

 

AAAA:

name:FQDN

value:IPv6

 

PTR:

name:IP;有特定格式,把IP地址反過來寫,有特定后綴:.in-addr.arpa.,例如1.2.3.4,要寫成4.3.2.1.in-addr.arpa.

value:IPv6FQDN

例如:

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

也可以簡寫成:

4 ? ???IN ? ? PTR ? ?www.magedu.com.

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

 

CNAME:

name:別名的FQDN

value:正式名字的FQDN

例如:

web.magedu.com. ? ? ?IN ? CNAME ? ? www.magedu.com.

 

域名注冊:代理商:萬網、新網、godaddy

注冊完成以后,想自己用專用服務器來解析步驟:進入域名管理后臺:把NS記錄指向自己的服務器名稱,和A記錄指向的服務器地址;

 

主要程序包:

bind:server包

bind-libs:依賴庫

bind-utils:工具

 

bind-chroot:將/var/named/chroot/設置為根;

 

rfc:Request For Comments 請求注解

rndc:Remote Name Domain Controllerr;BIND安裝包提供的一種控制域名服務運行的工具

 

主配置文件:

/etc/named.conf、/etc/named.rfc1912.zones、/etc/rndc.key

全局配置:options {}

日志子系統配置:logging {}

區域定義:本機需要定義的zone解析;zone ?“ZONE_NAME” ? ?IN ? {}

 

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

注意:(1)一臺物理服務器可同時為多個區域提供服務;

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

(3)應該有兩個(如果包括ipv6的,應該更多)實現localhost和本地回環地址的解析庫文件;/var/named/named.localhost、/var/named/named.loopback

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

 

1、在主配置文件中/etc/named.rfc1912.zones定義zone區域

zone ?“ZONE_NAME” ? ?IN ?{

type {master|slave|hint|forward};

file ? ?“ZONE_NAME.zone”;

};

2、定義區域解析庫文件

# vim /var/named/lshaol.com.zone

出現的內容:宏定義、資源記錄;

例如:

1

(3)修改對應的屬組及權限

# chmod 640 ?/var/name/lshaol.com.zone

# chown :named?/var/name/lshaol.com.zone

(4)檢查配置文件語法

# named-checkconf

# named-checkzone “lshaol.com” /var/named/lshaol.com.zone

 

測試命令:

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

query options:查詢選項

+[no]trace:是否跟蹤解析過程

+[no]recurse:是否遞歸解析

dig用于測試dns,因此,不會查詢hosts文件;

測試反向解析:

dig -x IP @SERVER

模擬區域傳送:

dig -t axfr 區域名字|IP ?@SERVER

 

host [-t type] name [server]

 

nslookup命令:支持交互式

nslookup [-option] [name | -] [server]

支持交互式nslookup>

server ip:指定使用哪個dns server進行查詢;

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

NAME:要查詢的名稱;

 

反向區域的定義:

區域名稱:網絡地址反寫.in-addr.arpa.

1、在主配置文件中/etc/named.rfc1912.zones定義zone區域

zone ?“ZONE_NAME” ? ?IN ?{

type {master|slave|hint|forward};

file ? ?“網絡地址.zone”;

};

2、定義區域解析庫文件;注意:不需要MX、A、AAAA記錄;以PTR記錄為主;

出現的內容:宏定義、資源記錄;

常用宏:$TTL ? 有效時長

$ORIGIN ? 區域名

例如:

# vim ? ? ?/var/named/172.20.120.zone

2

(3)修改對應的屬組及權限

# chmod 640 ?/var/name/172.20.120.zone

# chown :named?/var/name/172.20.120.zone

(4)檢查配置文件語法

# named-checkconf

# named-checkzone “120.20.172.in-addr.arpa” /var/named/172.20.120.zone

 

主從復制:

1、應該為一臺獨立的名稱服務器;

2、主服務器的區域解析庫文件中必須有一條NS記錄是指向從服務器;

3、從服務器只需要定義區域,而無須提供解析庫文件,解析庫文件應該放置于/var/named/slaves目錄;

4、主服務器得允許從服務器做區域傳送;

5、主從服務器時間應該同步,可通過ntp進行;

6、bind程序的版本應該保持一致;否則,應該從高,主低;

 

定義從區域的方法:

zone “ZONE_NAME” ?IN {

type slave;

masters { ?MASTER_IP ?};

file “slaves/ZONE_NAME.zone”;

};

 

rndc命令:rndc command

常用command:

reload:重新載入配置文件和區域解析庫文件;

reload zone:重新載入區域解析庫文件;

reconfig:重新載入配置文件;

retransfer ?zone:手動啟動區域傳送過程,而不管序列號是否增加;

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

querylog:開啟或關閉查詢日志;在定義錯誤的時候管用;

trace LEVEL:指定調試debug級別;

 

正向解析區域子域方法:在父域中的區域定義子域的NS記錄而非A記錄;

 

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

(1)全部轉發:凡是非本機所負責解析的區域的請求,統統轉發給指定的服務器;

options ?{

forward ? {first(先遞歸后迭代)|only(僅遞歸)};

forwarder ?{ ?NS_SERVER_IP ?};

};

(2)區域轉發:僅轉發對特定區域的請求至某一服務器;

zone ?“ZONE_NAME” ? IN ? {

type forward;

forward ? {first|only};

forwarder ?{ ?NS_SERVER_IP ?};

};

注意:關閉dnssec功能:

dnssec-enable no;
dnssec-validation no;
dns(bind)中基礎安全的相關配置:
(1)acl:訪問控制列表,把一個或多個主機歸并成一個集合,并通過一個統一的名稱調用;只能先定義后使用,因此,其一般定義在配置文件中options的前面;
acl ? ACL_NAME ? {
ip;
hostname;
net/prelen;
};
內置acl:
none:沒有一個主機
any:任意主機
local:本機
localnet:本機的IP同掩碼運算后得到的網絡地址
示例:
acl ? mynet ? ?{
172.20.120.0/24;
};
(2)訪問控制的參數
allow-query {}:允許查詢的主機;
allow-transfer {}:允許區域傳送的主機;
allow-recursion {}:允許遞歸的主機;
allow-update {}:允許更新區域數據庫的內容;
bind view:視圖
1、一個bind服務器可定義多個view,每個view中可定義一個或多個zone;
2、每個view用來匹配一組客戶端;
3、多個view內可能需要對同一個區域進行解析,但使用不同的區域解析庫文件;
view ?VIEW_NAME ?{
match_clients ? { ? ?};
};
注意:
(1)一旦啟用了view,所有的zone都只能定義在view中;
(2)僅有必要在匹配到的允許遞歸請求的客戶端所在的view中定義根區域;
(3)客戶端請求到達時,是自上而下檢查每個view所服務的客戶端列表;
CDN:content ? delivery ? network:內容分發網絡
智能DNS:dnspod、dns.la
編譯安裝bind:官網https://www.isc.org/downloads/
# group -r -g 53 named
# useradd -r -u 53 -g 53 named
# ./configure ? –prefix=/usr/local/bind9 ?–sysconfdir=/etc/named/ ? ?–disable-ipv6 ? ?–disable-chroot ? –enable-threads
# make
# make install
后續庫文件、PATH、頭文件、man文件等處理;
另外配置rndc,使用rndc-confgen生成rndc.conf等
# dig -t NS . > /var/named/named.ca ? #生成根解析庫文件
DNS測試:queryperf
配置解析一個正向區域:
以magedu.com域為例:
(1) 定義區域
在主配置文件中或主配置文件輔助配置文件中實現;
zone ?“ZONE_NAME” ?IN ?{
type ?{master|slave|hint|forward};
file ?“ZONE_NAME.zone”;
};
注意:區域名字即為域名;
(2) 建立區域數據文件(主要記錄為A或AAAA記錄)
在/var/named目錄下建立區域數據文件;
文件為:/var/named/magedu.com.zone
$TTL 3600
$ORIGIN magedu.com.
@ ? ? ? IN ? ? ?SOA ? ? ns1.magedu.com. ? dnsadmin.magedu.com. (
2017010801
1H
10M
3D
1D )
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
權限及屬組修改:
# chgrp ?named ?/var/named/magedu.com.zone
# chmod ?o= ?/var/named/magedu.com.zone
檢查語法錯誤:
# named-checkzone ?ZONE_NAME ? ZONE_FILE
# named-checkconf
(3) 讓服務器重載配置文件和區域數據文件
# rndc ?reload 或
# systemctl ?reload ?named.service
配置解析一個反向區域
(1) 定義區域
在主配置文件中或主配置文件輔助配置文件中實現;
zone ?“ZONE_NAME” ?IN ?{
type ?{master|slave|hint|forward};
file ?“ZONE_NAME.zone”;
};
注意:反向區域的名字
反寫的網段地址.in-addr.arpa
100.16.172.in-addr.arpa
(2) 定義區域解析庫文件(主要記錄為PTR)
示例,區域名稱為100.16.172.in-addr.arpa;
$TTL 3600
$ORIGIN 100.16.172.in-addr.arpa.
@ ? ? ? IN ? ? ?SOA ? ? ns1.magedu.com. ?nsadmin.magedu.com. (
2017010801
1H
10M
3D
12H )
IN ? ? ?NS ? ? ?ns1.magedu.com.
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.
權限及屬組修改:
# chgrp ?named ?/var/named/172.16.100.zone
# chmod ?o= ?/var/named/172.16.100.zone
檢查語法錯誤:
# named-checkzone ?ZONE_NAME ? ZONE_FILE
# named-checkconf
(3) 讓服務器重載配置文件和區域數據文件
# rndc ?reload 或
# systemctl ?reload ?named.service
主從服務器:
注意:從服務器是區域級別的概念;
配置一個從區域:
On Slave
(1) 定義區域
定義一個從區域;
zone “ZONE_NAME” ?IN {
type ?slave;
file ?“slaves/ZONE_NAME.zone”;
masters ?{ MASTER_IP; };
};
配置文件語法檢查:named-checkconf
(2) 重載配置
rndc ?reload
systemctl ?reload ?named.service
On Master
(1) 確保區域數據文件中為每個從服務配置NS記錄,并且在正向區域文件需要每個從服務器的NS記錄的主機名配置一個A記錄,且此A后面的地址為真正的從服務器的IP地址;
注意:時間要同步;
ntpdate命令;
子域授權:
正向解析區域授權子域的方法:
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
定義轉發:
注意:被轉發的服務器必須允許為當前服務做遞歸;
(1) 區域轉發:僅轉發對某特定區域的解析請求;
zone ?“ZONE_NAME” ?IN {
type ?forward;
forward ?{first|only};
forwarders ?{ SERVER_IP; };
};
first:首先轉發;轉發器不響應時,自行去迭代查詢;
only:只轉發;
(2) 全局轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;
options {
… …
forward ?{only|first};
forwarders ?{ SERVER_IP; };
.. …
};
bind中的安全相關的配置:
acl:訪問控制列表;把一個或多個地址歸并一個命名的集合,隨后通過此名稱即可對此集合內的所有主機實現統一調用;
acl ?acl_name ?{
ip;
net/prelen;
};
示例:
acl ?mynet {
172.16.0.0/16;
127.0.0.0/8;
};
bind有四個內置的acl
none:沒有一個主機;
any:任意主機;
local:本機;
localnet:本機所在的IP所屬的網絡;
訪問控制指令:
allow-query ?{}; ?允許查詢的主機;白名單;
allow-transfer {}; ?允許向哪些主機做區域傳送;默認為向所有主機;應該配置僅允許從服務器;
allow-recursion {}; 允許哪此主機向當前DNS服務器發起遞歸查詢請求;
allow-update {}; DDNS,允許動態更新區域數據庫文件中內容;
bind view:
視圖:
view ?VIEW_NAME {
zone
zone
zone
}
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”;
};
};

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92886

(0)
N26-深圳-城市蝸牛N26-深圳-城市蝸牛
上一篇 2018-03-26
下一篇 2018-03-26

相關推薦

欧美性久久久久