DNS和BIND
DNS
DNS:Domain Name Service 應用層協議(C/S,53/udp, 53/tcp)
域名
分類:最多可以有127級域名
- 根域
- 一級域名:Top Level Domain(tld)頂級域
- 組織域:.com,。gov,.edu,.mil,.net
- 國家域:.cn,.jp
- 反向域:arpa
- 二級域名
- 三級域名
解析
查詢型別:
- 遞迴查詢:DNS 伺服器接收到客戶機請求,必須使用一個準確的查詢結果回覆客戶機。如果DNS 伺服器本地沒有儲存查詢DNS 資訊,那麼該伺服器會詢問其他伺服器,並將返回的查詢結果提交給客戶機。
- 迭代查詢:DNS 伺服器接收到客戶機請求,會向客戶機提供其他能夠解析查詢請求的DNS 伺服器地址,當客戶機傳送查詢請求時,DNS 伺服器並不直接回複查詢結果,而是告訴客戶機另一臺DNS 伺服器地址,客戶機再向這臺DNS 伺服器提交請求,依次迴圈直到返回查詢的結果為止
FQDN:Fully Qualified Domain Name,完全合格域名
解析型別:
- 正向解析:FQDN --> IP
- 反向解析:IP --> FQDN
型別
- 主DNS伺服器:管理和維護所負責解析的域內解析庫的伺服器
- 從DNS伺服器:從主伺服器或其他的從伺服器“複製”(區域傳送)解析庫副本
- 快取DNS伺服器
- 轉發伺服器
區域傳送
利用“通知”機制,來保證主從伺服器能及時同步
通知機制:主伺服器解析庫發生變化時,會主動通知從伺服器
同步時一些必要引數:
- 序列號:解析庫版本號,主伺服器解析庫變化時,其序列遞增
- 重新整理時間間隔:從伺服器從主伺服器請求同步解析的時間間隔
- 重試時間間隔:從伺服器請求同步失敗時,再次嘗試時間間隔
- 過期時長:從伺服器聯絡不到主伺服器時,多久後停止服務
型別
- 主區域:master
- 主區域:master
- 提示區域:hint 定義根域的位置
- 轉發區域:forward 例如:直接告訴.com的位置
資源記錄
resource record,簡稱RR
格式
name [TTL] IN rr_type value
-
TTL可從全域性繼承
TTL(Time-To-Live),簡單的說它表示一條域名解析記錄在DNS伺服器上快取時間.當各地的DNS伺服器接受到解析請求時,就會向域名指定的DNS伺服器發出解析請求從而獲得解析記錄;在獲得這個記錄之後,記錄會在DNS伺服器中儲存一段時間,這段時間內如果再接到這個域名的解析請求,DNS伺服器將不再向DNS伺服器發出請求,而是直接返回剛才獲得的記錄;而這個記錄在DNS伺服器上保留的時間,就是TTL值。
@可用於引用當前區域的名字
同一個名字可以通過多條記錄定義多個不同的值;此時DNS伺服器會以輪詢方式響應
同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義;此僅表示通過多個不同的名字可以找到同一個主機
SOA
Start Of Authority,起始授權記錄,表明一個區域內部,主從DNS服務是如何同步資料以及起始授權物件是誰
注意:一個區域解析庫有且僅能有一個SOA記錄,必須位於解析庫的第一條記錄
name:當前區域的名字,例如“magedu.com.”
value:有多部分組成
- 當前區域的主DNS伺服器的FQDN,也可以使用當前區域的名字;
- 當前區域管理員的郵箱地址;但地址中不能使用@符號,一般用.替換,例如:admin.magedu.com
- 主從服務區域傳輸相關定義以及否定的答案的統一的TTL
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
2015042201 ;序列號,serail number
2H ;重新整理時間,refresh
10M ;重試時間,retry
1W ;過期時間,expire
1D ;否定答案的TTL值,nigative answer TTL
)
NS
Name Server,專用於標明當前區域的DNS伺服器
name:當前區域的名字
value: 當前區域的某DNS伺服器的名字,例如ns.magedu.com.
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
注意:
- 相鄰的兩個資源記錄的name相同時,後續的可省略
- 對NS記錄而言,任何一個ns記錄後面的伺服器名字,都應該在後續有一個A記錄
A
internet Address,FQDN-->IP IPV4
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
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$ # 主機名和ip地址同名的時候可以這樣操作,避免重複操作
*.magedu.com. IN A 5.5.5.5 # 避免使用者寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址
magedu.com. IN A 6.6.6.6
AAAA
FQDN --> IPv6
name:FQDN
value:IPv6
MX
Mail eXchanger,郵件交換器
name:當前區域的名字
value:當前區域的某郵件伺服器(smtp伺服器)的主機名
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:
- 一個區域內,MX記錄可有多個;但每個記錄的value之前應該有一個數字(0-99),表示此伺服器的優先順序;數字越小優先順序越高
- 對MX記錄而言,任何一個MX記錄後面的伺服器名字,都應該在後續有一個A記錄
- MX記錄只能定義在正向區域檔案中,不能定義到反向區域檔案中
CNAME
Canonical Name,別名記錄
name:別名的FQDN
value:真正名字的FQDN
www.magedu.com. IN CNAME websrv.magedu.com.
PTR
PoinTeR,IP --> FQDN
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.magedu.com.
# 如1.2.3為網路地址,可簡寫成:
4 IN PTR www.magedu.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
magedu.com. 在.com的名稱伺服器上,解析庫中新增資源記錄
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
glue record:粘合記錄,父域授權子域的記錄
BIND
BIND:Bekerley Internat Name Domain
/etc/named.conf # 主配置檔案
/etc/named.rfc1912.zones # 專門的zone配置檔案
/etc/rndc.conf # rdnc配置檔案
/etc/rndc.key # 用來遠端控制DNS服務的金鑰檔案
/usr/sbin/named # 二進位制程式
/usr/sbin/named-checkconf # 檢查配置檔案語法
/usr/sbin/named-checkzone # 檢查zone檔案語法
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint # 檢視jnl檔案
/usr/sbin/rndc
/var/log/named.log # 日誌檔案
/var/named
/var/named/data
/var/named/dynamic
/var/named/named.ca # 用於存放根伺服器的地址資訊
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
/var/named/slaves
/etc/named.conf
[root@centos7 ~]# cat /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; # IPv4地址監聽埠及監聽的主機列表
listen-on-v6 port 53 { ::1; }; # IPv6地址監聽埠及監聽的主機列表
directory "/var/named"; # 伺服器的工作目錄
dump-file "/var/named/data/cache_dump.db"; # 當執行rndc dumpdb時伺服器dump檔案的路徑
statistics-file "/var/named/data/named_stats.txt"; # 執行rndc stats將伺服器的統計資訊寫入檔案,預設為named.stats
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 預設為named.memestats,當退出的服務的時候將伺服器的統計資訊寫到檔案中
allow-query { localhost; }; # 允許查詢的主機列表,表示可以對主機列表裡的主機提供服務
allow-transfer { any;}; # 指定哪些主機可以從伺服器上接收區域傳輸,未指定將允許傳輸到所有的主機,預設是any,極其不安全,通常修改為指定主機或none
recursion yes; # 是否開啟遞迴查詢請求,設定為no的話,不去找根
dnssec-enable yes; # dns安全策略,建議關閉
dnssec-validation yes; # dns安全策略,建議關閉
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
ACL
把一個或多個地址歸併為一個集合,並通過一個統一的名稱呼叫
四個內建acl:
- none:沒有一個主機
- any:任意主機
- localhost:本機
- localnet:本機的IP同掩碼運算後得到的網路地址,即本機ip所在的網段
注意:只能先定義,後使用;因此一般定義在配置檔案中,處於options的前面
訪問控制的指令:
- allow-query {}:允許查詢的主機;白名單
- allow-transfer {}:允許區域傳送的主機;白名單
- allow-recursion {}:允許遞迴的主機,建議全域性使用
- allow-update {}:允許更新區域資料庫中的內容
測試工具
dig
dig [-t type] name [@SERVER][query options]
注意:dig只用於測試dns系統,不會查詢hosts檔案進行解析
查詢選項:
- 跟蹤解析過程:dig +trace magedu.com
- 進行遞迴解析:dig +recurse magedu.com
- 測試反向解析:dig -x IP
- 模擬區域傳送:
- dig -t axfr ZONE_NAME @SERVER:檢視指定SERVER的ZONE的資料庫資訊
- dig -t axfr magedu.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@xuexi ~]# dig -t a www.longshuai.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -t a www.longshuai.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8670
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.longshuai.com. IN A
;; ANSWER SECTION:
www.longshuai.com. 21600 IN A 172.16.10.16
;; AUTHORITY SECTION:
longshuai.com. 21600 IN NS dnsserver.longshuai.com.
;; ADDITIONAL SECTION:
dnsserver.longshuai.com. 21600 IN A 172.16.10.15
;; Query time: 0 msec
;; SERVER: 172.16.10.15#53(172.16.10.15)
;; WHEN: Sat Aug 12 23:38:17 CST 2017
;; MSG SIZE rcvd: 102
在結果中:
- QUESTION SECTION:表示所發起的查詢
- ANSWER SECTION:表示對查詢的回覆
- AUTHORITY SECTION:表示該查詢是權威伺服器給的答案,並給出了權威伺服器的ns記錄
- ADDITIONAL SECTION:表示額外的回覆,回覆的內容是權威伺服器的A記錄。
host
host [-t type] name [SERVER]
nslookup
nslookup [-option][name | -][server]
也可使用互動式
rndc
remote name domain controller,預設與bind安裝在同一主機,且只能通過127.0.0.1連線named程式
提供輔助性的管理功能;953/tcp
rndc COMMAND:
- reload:過載主配置檔案和區域解析庫檔案
- reload zonename:過載區域解析庫檔案
- retransfer zonename:手動啟動區域傳送,而不管序列號是否增加
- notify zonename:重新對區域傳送發通知
- reconfig:過載主配置檔案
- querylog:開啟或關閉查詢日誌檔案/var/log/message,排錯時可臨時開啟,長時間開啟無端增加了磁碟IO,因此一般不要開啟
- trace:遞增debug一個級別
- trace LEVEL:指定使用的級別
- notrace:將除錯級別設定為 0
- flush:清空DNS伺服器的所有快取記錄
CDN
Content Delivery Network,內容分發網路
CDN的基本原理是廣泛採用各種快取伺服器,將這些快取伺服器分佈到使用者訪問相對集中的地區或網路中,在使用者訪問網站時,利用全域性負載技術將使用者的訪問指向距離最近的工作正常的快取伺服器上,由快取伺服器直接響應使用者請求
view
用於實現智慧DNS
- 一個bind伺服器可定義多個view,每個view中可定義一個或多個zone
- 每個view用來匹配一組客戶端
- 多個view內可能需要對同一個區域進行解析,但使用不同的區域解析庫檔案
注意:
- 一旦啟用了view,所有的zone都只能定義在view中
- 僅在允許遞迴請求的客戶端所在view中定義根區域
- 客戶端請求到達時,是自上而下檢查每個view所服務的客戶端列表,因此特別注意順序
格式:
view VIEW_NAME {
match-clients { testacl; };
zone “magedu.com” {
type master;
file “magedu.com.zone”; };
include “/etc/named.rfc1912.zones”;
};
view VIEW_NAME {
match-clients { testacl; };
include “/etc/named.rfc1912.zones.VIEW_NAME”;
};
DNS排錯
# dig A example.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> A example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30523
...
SERVFAIL:The nameserver encountered a problem while processing the query.
- NXDOMAIN:The queried name does not exist in the zone.(可能是CNAME對應的A記錄不存在導致)
- REFUSED:The nameserver refused the client's DNS request due to policy restrictions.(可能是DNS策略導致)
- NOERROR不代表沒有問題,也可以是過時的記錄
- 檢視是否為權威記錄,flags:aa標記判斷
- 被刪除的記錄仍能返回結果,可能是因為*記錄存在
實現只快取DNS服務
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務
named-checkconf:主配置檔案語法檢查
rndc reload
實現正向主DNS服務
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務
-
vim /etc/named.rfc1912.zones
zone "magedu.com" IN { type master; file "magedu.com.zone"; };
named-checkconf
-
cp -a named.localhost magedu.com.zone:為了保證許可權,也可以自己建立,記得修改許可權
vim magedu.com.zone
$TTL 1D @ IN SOA dns1 admin.magedu.com ( 2018072201 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 dns1 A 192.168.31.71 web-nginx01 A 1.1.1.1 web-nginx02 A 1.1.1.2 app-tomcat01 A 2.2.2.2 www CNAME web-nginx01 * A 192.168.31.71 # 泛域名解析 @ A 192.168.31.71 # 直接解析本域 $GENERATE 1-100 web-nginx0$ A 1.1.1.$
named-checkzone magedu.com magedu.com.zone:如當前工作目錄不是/var/named/,需要使用絕對路徑
rndc reload
實現反向主DNS服務
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務
-
vim /etc/named.rfc1912.zones
zone "39.168.192.in-addr.arpa" IN { type master; file "39.168.192.in-addr.arpa.zone"; };
named-checkconf
-
cp -a named.localhost 39.168.192.in-addr.arpa.zone:為了保證許可權,也可以自己建立,記得修改許可權
vim 39.168.192.in-addr.arpa.zone
$TTL 86400 @ IN SOA dns1.magedu.com. admin.magedu.com. ( 2018072201 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1.magedu.com. 71 PTR dns1.magedu.com. 100 PTR www.qq.com. # 正反向解析結果最好一致
named-checkzone 39.168.192.in-addr.arpa 39.168.192.in-addr.arpa.zone:如當前工作目錄不是/var/named/,需要使用絕對路徑
rndc reload
實現遠端動態更新DNS服務
-
vim /etc/named.rfc1912.zones:在指定zone語句塊中新增
Allow-update {any;}; # 為了安全最好僅允許指定主機
chmod 770 /var/named:動態更新實質上就是named使用者將指定資源記錄寫到生成的/var/named/{指定zone}.jnl檔案中,隨後再同步到指定的zone檔案中,因此需要再目錄下有w許可權
-
nsupdate
•>server 192.168.39.71 •>zone magedu.com •>update add ftp.magedu.com 86400 IN A 8.8.8.8 # 這裡的TTL不能省略 •>send •>update delete www.magedu.com A •>send
實現主從DNS服務
主DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務 allow-transfer { 192.168.39.72; }; # 允許從伺服器拉取資料,注意中花括號前後均有空格
named-checkconf
-
vim /var/named/magedu.com.zone:將從伺服器資訊新增到指定zone檔案中
$TTL 1D @ IN SOA dns1 admin.magedu.com ( 2018072201 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 NS dns2 dns1 A 192.168.39.71 dns2 A 192.168.39.72 web-nginx01 A 1.1.1.1 web-nginx02 A 1.1.1.2 app-tomcat01 A 2.2.2.2 www CNAME web-nginx01 * A 192.168.39.71 @ A 192.168.39.71 $GENERATE 1-100 web-nginx0$ A 1.1.1.$
named-checkzone magedu.com. magedu.com.zone
從DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務 allow-transfer { none; }; # 為了安全禁止任何主機拉取
-
vim /etc/named.rfc1912.zones
zone "magedu.com" IN { type slave; masters { 192.168.39.71; }; file "slaves/magedu.com.slave.zone"; };
named-checkconf
ls /var/named/slave/:檢視是否拉取成功
實現子域委派
父域DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務 dnssec-enable no; # 關閉加密 dnssec-validation no;
-
vim /var/named/magedu.com.zone
$TTL 1D @ IN SOA dns1 admin ( 2018072209 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 shanghai NS dns2 # 新增shanghai子域資訊 dns1 A 192.168.39.71 dns2 A 192.168.39.72 www.beijing A 3.3.3.3 # 主機少的情況下,可以直接在父域直接定義子域中的主機 www A 1.1.1.1
rndc reload
子域DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip繫結53埠 allow-query { any; }; # 修修改可以以為任何主機提供服務
-
vim /etc/named.rfc1912.zones
zone "shanghai.magedu.com" IN { type master; file "shanghai.magedu.com.zone"; };
-
scp 192.168.39.71:/var/named/magedu.com.zone shanghai.magedu.com.zone:由於scp預設root身份執行,導致檔案許可權出錯,一定要注意檔案許可權
vim /var/named/shanghai.magedu.com.zone
$TTL 1D @ IN SOA dns1 admin ( 2018072201 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 dns1 A 192.168.39.72 www A 2.2.2.2
rndc reload
實現轉發DNS服務
forward first/only:表示如果 forwarders list 為非空,預設為first值,伺服器首先請求 forwarders list ,如果 forwarders list 中的DNS主機不應答,該主機將自己去找應答,如果設定值為only,伺服器將只會請求 forwarders中的DNS主機
forwarders:指定用來 forwarding的ip地址. 預設為空列(即不轉發)
全域性轉發
對非本機所負責解析區域的請求,全轉發給指定的伺服器
vim /etc/named.conf
Options {
forward first|only;
forwarders { ip;};
};
特定區域轉發
僅轉發對特定的區域的請求,比全域性轉發優先順序高
vim /etc/named.rfc1912.zones
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
實現智慧DNS服務
-
vim /etc/named.conf:acl必須在option前新增,而且注意遷移zone,因為一旦啟用view,所有的zone都必須定義裝載view中
acl beijingnet { 192.168.31.0/24; 10.0.0.0/8; }; acl shanghainet { 172.18.0.0/16; }; acl othernet { any; }; options { ...... }; logging { ...... }; view beijingview { match-clients {beijingnet;}; include "/etc/named.rfc1912.zones.bj"; }; view shanghaiview { match-clients {shanghainet;}; include "/etc/named.rfc1912.zones.sh"; }; view otherview { match-clients {othernet;}; include "/etc/named.rfc1912.zones.other"; }; include "/etc/named.rfc1912.zones"; # 刪除此行,所有的zone都將定義在view中 ......
-
vim /etc/named.rfc1912.zones.bj
zone "magedu.com" IN { type master; file "magedu.com.zone.bj"; };
vim /etc/named.rfc1912.zones.sh
zone "magedu.com" IN { type master; file "magedu.com.zone.sh"; };
vim /etc/named.rfc1912.zones.other
zone "magedu.com" IN { type master; file "magedu.com.zone.other"; };
-
vim /var/named/magedu.com.zone.bj
$TTL 1D @ IN SOA dns1 admin ( 2018072209 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 dns1 A 192.168.39.71 www A 1.1.1.1
vim /var/named/magedu.com.zone.sh
...... www A 2.2.2.2
vim /var/named/magedu.com.zone.other
...... www A 3.3.3.3
實現網際網路架構DNS服務
注意:
- 從後往前搭建,好測試
- 測試時注意rndc flush,因為有快取時優先使用快取
-
配置www主機:
yum install -y httpd
-
vim /var/www/html/index.html
Welcome to magedu!
systemctl start httpd
-
配置主DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; allow-query { any; }; allow-transfer { 192.168.39.75; }; dnssec-enable no; dnssec-validation no;
-
vim /etc/named.rfc1912.zones
zone "magedu.com" IN { type master; file "magedu.com.zone"; };
named-checkconf
-
vim /var/named/magedu.com.zone
$TTL 1D @ IN SOA dns1 admin ( 2018072401 1D 2H 3D 1D ) NS dns1 NS dns2 dns1 A 192.168.39.74 dns2 A 192.168.31.75 www A 192.168.31.76
chmod 640 magedu.com.zone
chown :named magedu.com.zone
named-checkzone magedu.com. magedu.com.zone
systemctl start named
-
-
配置從DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; allow-query { any; }; allow-transfer { 192.168.39.75; }; dnssec-enable no; dnssec-validation no;
-
vim /etc/named.rfc1912.zones
zone "magedu.com" IN { type slave; masters { 192.168.39.74; }; file "slaves/magedu.com.slave.zone"; };
named-checkconf
systemctl start named
-
-
配置comDNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; allow-query { any; }; dnssec-enable no; dnssec-validation no;
-
vim /etc/named.rfc1912.zones
zone "com" IN { type master; file "com.zone"; };
named-checkconf
-
vim /var/named/com.zone
$TTL 1D @ IN SOA dns1 admin ( 2018072401 1D 2H 3D 1D ) NS dns1 magedu NS dns2 magedu NS dns3 dns1 A 192.168.39.73 dns2 A 192.168.39.74 dns3 A 192.168.39.75
chmod 640 com.zone
chown :named com.zone
named-checkzone com. com.zone
systemctl start named
-
-
配置根DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; allow-query { any; }; dnssec-enable no; dnssec-validation no; zone "." IN { type master; file "root.zone"; };
named-checkconf
-
vim /var/named/root.zone
$TTL 1D @ IN SOA dns1 admin ( 2018072401 1D 2H 3D 1D ) NS dns1 com NS dns2 dns1 A 192.168.39.72 dns2 A 192.168.39.73
chmod 640 root.zone
chown :named root.zone
named-checkzone . root.zone
systemctl start named
-
-
配置區域網DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; allow-query { any; }; dnssec-enable no; dnssec-validation no;
-
vim /var/named/named.ca
. 86400 IN NS dns1 dns1 86400 A 192.168.39.72
systemctl start named
-
-
配置client:
-
vim /etc/resolv.conf
nameserver 192.168.39.71
-
編譯安裝BIND
-
下載bind
- isc.org
-
編譯安裝bind
- tar xvf bind-9.11.0a3.tar.gz
- cd bind-9.11.0a3/
- groupadd -r -g 53 named
- useradd -r -u 53 -g 53 named
- ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --without-openssl --disable-ipv6 --disable-chroot --enable-threads
- make
- make install
-
環境變數
-
vim /etc/profile.d/named.sh
export PATH=/usr/local/bind9/bin: /usr/local/bind9/sbin/:$PATH
-
-
庫和標頭檔案
-
vim /etc/ld.so.conf.d/named.conf
/usr/local/bind9/lib
ldconfig –v
ls -sv /usr/local/bind9/include /usr/include/named
-
-
man幫助
-
vim /etc/man.config | /etc/man_db.conf
MANPATH /usr/local/bind9/share/man
man named.conf
-
-
主配置檔案
-
vim /etc/named/named.conf
options { directory "/var/named/" }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file “named.localhost"; allow-update {none;}; }; zone “1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update {none;}; };
-
-
區域資料庫
mkdir /var/named
named-checkconf
dig +norec @a.root-servers.net > /var/named/named.ca
-
vim /var/named/named.localhost
$TTL 1d @ IN SOA localhost. admin.localhost. ( 2016061801 1h 5m 7d 1d) IN NS localhost. localhost. IN A 127.0.0.1
-
vim /var/named/named.loopback
$TTL 1d @ IN SOA localhost. admin.localhost. ( 2016061801 1h 5m 7d 1d) NS @ A 127.0.0.1 PTR localhost.
-
設定許可權
- chmod 640 /var/named/*
- chmod 640 /etc/named/named.conf
- chgrp -R named /var/named/
- chgrp named /etc/named/named.conf
-
啟動服務和測試
- man named
- named -u named -f -g -d 3 前端級別3方式執行
- named -u named 後臺執行
- killall named
- ss -tuln
- tail /var/log/message
- named -u named
相關文章
- DNS Bind日誌詳述DNS
- DNS軟體bind-實現DNS伺服器DNS伺服器
- DNS解析服務(bind)安裝DNS
- DNS之BIND使用小結(Forward轉發)DNSForward
- 如何使用 bind 設定 DNS 伺服器DNS伺服器
- DNS劫持和DNS汙染DNS
- this, call, apply 和 bindAPP
- bind 127.0.0.1 ::1 和 bind 127.0.0.1 有什麼區別127.0.0.1
- [譯] Javascript: call()、apply() 和 bind()JavaScriptAPP
- underscore的bind和bindAll方法
- DNS劫持與DNS汙染是什麼意思、dns劫持和汙染DNS
- Linux下DNS服務(Bind9)之Web管理利器-NamedManager部署說明LinuxDNSWeb
- DHCP 和 DNS 示例DNS
- call,apply和bind的區別APP
- 手動設定ip地址和dns ip地址和dns怎麼設定DNS
- 淺談JavaScript中的apply、call和bindJavaScriptAPP
- 【譯】理解this及call,apply和bind的用法APP
- js深入之實現call、apply和bindJSAPP
- 談談JavaScript中的call、apply和bindJavaScriptAPP
- apply 、call 以及 bind 的使用和區別APP
- 192.168.1.1的首選dns 手動設定IP地址和DNSDNS
- dns汙染是誰幹的,什麼是dns汙染,它和DNS劫持有什麼區別DNS
- 首選dns的伺服器地址是多少 首選dns和備用dns填什麼DNS伺服器
- ubuntu 配置靜態IP 和 DNSUbuntuDNS
- JavaScript bind()JavaScript
- JavaScript進階之模擬call,apply和bindJavaScriptAPP
- DNS解析常見問題:什麼是主DNS伺服器和輔助DNS伺服器?DNS伺服器
- js中call,apply和bind方法的區別和使用場景JSAPP
- dnsmasq劫持和dns教程詳細解析DNS
- 詭異!std::bind in std::bind 編譯失敗編譯
- PHP 中 bind 的用法 self 和 static 的區別PHP
- javascript 物件導向學習(三)——this,bind、apply 和 callJavaScript物件APP
- js之call,apply和bind的模擬實現JSAPP
- 008 Rust 網路程式設計,使用 trust-dns-resolver 和 trust-dnsRust程式設計DNS
- DNS劫持 DNS汙染 介紹、dns 劫持 汙染DNS
- 詳解bind
- this、apply、call、bindAPP
- javascript bind polyfillJavaScript