DNS正反向解析和主從同步配置
DNS伺服器的型別
- 主DNS伺服器
- 從DNS伺服器
- 快取DNS伺服器
- 轉發器
主從簡介
- 主DNS伺服器:
- 維護所負責解析的域內解析庫的伺服器;解析庫由管理維護
- 從DNS伺服器:
- 從主DNS伺服器或其它的從DNS伺服器那裡“複製”(區域傳遞)一份解析庫
DNS安裝配置
在Linux系統上安裝能提供DNS服務的程式包,其程式包名為 bind,程式名為 named
安裝如下程式包
- bind
- 實現提供DNS服務的主程式包
- bind-libs
- bind程式包所需要的庫檔案
- bind-utils
- 包含一系列用於測試和查詢DNS的命令
- 如:dig, host, nslookup
yum install -y bind bind-libs bind-utils
主要配置檔案位置
安裝完成後,主要配置檔案位置如下
- bind 服務指令碼: /etc/rc.d/init.d/named
- 主要配置檔案
- /etc/named.conf
- /etc/named.rfc1912.zones
- /etc/rndc.key
編輯主配置檔案
/etc/named.conf,預設配置和欄位意義解釋如下
# options 為全域性配置
options {
# 監聽埠 53 在 127.0.0.1 上
listen-on port 53 { 127.0.0.1; };
# 監聽埠 53 在 ipv6 迴環介面上
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" ;
# 允許進行DNS查詢客戶機的地址
allow-query { localhost; };
# 是否允許客戶機進行遞迴查詢
recursion yes;
# 是否開啟 dnssec,建議測試時關閉
dnssec-enable yes;
# 是否開啟 dnssec 驗證
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
# 管理金鑰檔案的位置
managed-keys-directory "/var/named/dynamic";
};
# logging 為日誌
logging {
# channel 定義通道名
channel default_debug {
# 日誌檔案 位於 /var/named/data/named.run
file "data/named.run";
# 控制日誌級別
severity dynamic;
};
};
# 定義 區域名為"."
zone "." IN {
# 型別為 根
type hint;
# 區域解析庫檔名,此處為預設根伺服器地址
file "named.ca";
};
# 擴充套件區域配置檔案
include "/etc/named.rfc1912.zones";
# 根區域的 key
include "/etc/named.root.key";
進行編輯,結果如下,此時一個最基本的DNS伺服器就已搭建完成。(快取DNS伺服器)
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; };
recursion 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;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
注意
1. 一臺物理伺服器可同時為多個區域提供解析
2. 必須要有根區域檔案 named.ca
3. 應該有兩個(如果包括IPv6,應該更多)實現 localhost 和 本地迴環地址的解析庫
擴充套件區域配置檔案簡介
在 /etc/named.rfc1912.zones,中實現 IPv4 和 IPv6 的本地迴環地址 的 正反解析區域
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
這裡對區域定義,進行簡單解釋
# ZONE_NMAE 為定義的區域名
zone "ZONE_NAME" IN {
# type 定義區域型別
# master 為主
# slave 為從
# hint 為根
# forward 為轉發
type {master|slave|hint|forward};
# file 定義區域解析庫檔名
# 存放位置 絕對路徑為 /var/named/[ZONE_NAME.zone]
file "ZONE_NANE.zone";
}
開啟DNS服務
開啟DNS服務時,執行如下命令
named-checkconf
命令檢查 主配置檔案 配置是否無誤
- 執行沒有提示(結果)就是 最好的提示(結果)
service named start
開啟DNS服務rndc status
檢視DNS服務狀態,確定DNS服務已經開啟ss -tlunp | grep ':53'
檢視DNS服務 53埠 是否繫結在合適的IP地址上
進行測試
使用 dig 命令,測試命令如下
dig -t A www.bing.com @127.0.0.1
結果如下,表示成功解析 www.bing.com 域名 並獲取其 IP地址
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -t A www.bing.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42652
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.bing.com. IN A
;; ANSWER SECTION:
www.bing.com. 300 IN CNAME cn.a-0001.a-msedge.net.
cn.a-0001.a-msedge.net. 240 IN A 202.89.233.103
cn.a-0001.a-msedge.net. 240 IN A 202.89.233.104
;; AUTHORITY SECTION:
a-msedge.net. 172793 IN NS ns2.a-msedge.net.
a-msedge.net. 172793 IN NS ns1.a-msedge.net.
;; ADDITIONAL SECTION:
ns1.a-msedge.net. 172793 IN A 204.79.197.1
ns2.a-msedge.net. 172793 IN A 131.253.21.1
;; Query time: 837 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jan 13 06:54:07 2017
;; MSG SIZE rcvd: 166
注意
- 關閉 iptables ,以免DNS協議報文被過濾,以至於無法為客戶機提供DNS服務
DNS正反向解析
- 正向區域
- 提供 FQDN 到 IP 地址的解析
- 反向區域
- 提供 IP 地址 到 FQDN 的解析
FQDN:FULL Qualified Domain Name (完全合格域名)
區域解析庫
- 無論正反向解析都各需要一個解析庫分別負責本地域名的正向和反向解析
- 區域解析庫由眾多 RR(Resource Recodr) 組成
- 有如下記錄型別:A,AAAA,PTR,SOA,NS,CNAME,MX
- SOA:起始授權記錄
- A:Internet Address,作用,FQDN 到 IP
- AAAA:FQDN 到 IPv6
- PTR:PoinTeR,IP 到 FQDN
- NS:Name Server,專用於表明當前區域的DNS伺服器
- CNAME:Canonical Name,別名記錄
- MX:Mail eXchanger,郵件交換器
- 有如下記錄型別:A,AAAA,PTR,SOA,NS,CNAME,MX
資源記錄定義的格式
語法
name [TTL] IN rr+type value
注意
1. TTL可從全域性繼承
2. @可用於引用當前區域的名字
3. 同一個名字可以通過多條記錄定義多個不同的值;此時DNS伺服器會以輪詢方式響應
4. 同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一值進行定義;此僅表示通過多個不同的名字可以找到同一個主機
建立正向解析區域
在主配置檔案中定義區域
vim /etc/named.conf
中 新增如下內容
zone "test.com" IN {
type master;
file "test.com.zone";
};
定義區域解析庫檔案
在 /var/named/ 目錄下,建立 test.com.zone,解析庫檔案
/var/named/test.com.zone
中新增如下內容
$TTL 86400
$ORIGIN test.com.
@ IN SOA ns1.test.com. admin.test.com. (
2017011301
1H
5M
7D
1D
)
IN NS ns1
ns1 IN A 192.168.80.130
www IN A 192.168.80.130
IN A 192.168.80.130
* IN A 192.168.80.130
需要注意的是,在 /var/named 目錄下建立檔案的預設所屬組屬於root,named使用者將無法讀取,這裡我們將屬組改為named
chown :named /var/named/test.com.zone
對新增的內容解釋如下
- $TTL 86400
巨集定義 TTL 值為 86400 秒,記錄省略未填寫的 TTL值的記錄,將自動代入該TTL值
- $ORIGIN test.com.
巨集定義 ORIGIN(當前區域的名字),以便於 @ 引用,或 自動代入
;@ 引用當前區域名
;SOA 指明 ns1.test.com. 為當前區域權威伺服器(主DNS伺服器)
;admin.test.com 當前區域管理員的郵箱地址,但地址中不能使用@符號,一般用 . 替換
@ IN SOA ns1.test.com. admin.test.com (
2017011301 ;序列號
1H ;重新整理時間
5M ;重試時間
7D ;過期時間
1D ;否定答案的TTL值
)
注意
1. 區域解析庫檔案中 第一條必須為 SOA,一個區域解析庫有且僅能有一個SOA記錄,而必須為解析庫的第一條記錄
2. 在資源記錄定義的 代表為 根的 . (點號)必不可少
建立反向解析區域
在主配置檔案中定義區域
vim /etc/named.conf
中 新增如下內容。通常反向解析區域名,約定俗成的規則為該 網路地址反寫 拼接 “.in-addr.arpa”,如下
zone "80.168.192.in-addr.arpa" IN {
type master;
file "192.168.80.zone";
};
定義區域解析庫檔案
在 /var/named/ 目錄下,建立 192.168.80.zone,解析庫檔案
/var/named/192.168.80.zone
中新增如下內容
$TTL 86400
$ORIGIN 80.168.192.in-addr.arpa.
@ IN SOA ns1.test.com. admin.test.com. (
2017011301
1H
5M
7D
1D
)
IN NS ns1.test.com.
130 IN PTR ns1.test.com.
130 IN PTR www.test.com.
同上,這裡我們也要將屬組改為named
chown :named /var/named/192.168.80.zone
正反向解析測試
- 首先檢查主配置檔案
named-checkconf
- 沒有提示就是最好的提示
- 檢查正反向區域解析庫檔案配置
named-checkzone "test.com" /var/named/test.com.zone
named-checkzone "80.168.192.in.addr.arpa" /var/named/192.168.80.zone
- 配置無誤後 啟動DNS服務
service named start
- 檢查埠及IP地址
ss -tlunp | grep ":53"
- 測試正向解析結果是否正確
dig -t A www.test.com @127.0.0.1
- 測試反向解析結果是否正確
dig -x 192.168.80.130 @127.0.0.1
DNS主從同步配置
實驗目標
- 負責 test.com 正反區域的解析
- 和 test.com 正反區域的主從同步
實驗環境
- DNS主伺服器為 CentOS6.8
- DNS從伺服器為 CentOS7.2
- 主伺服器的IP地址為 192.168.80.130
- 從伺服器的IP地址為 192.168.80.131
安裝服務
首先分別為主和從伺服器安裝提供DNS服務的bind程式包
yum install -y bind bind-libs bind-utils
編輯主伺服器 配置檔案
編輯 /etc/named.conf,結果如下
options {
listen-on port 53 { 192.168.80.130; };
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; };
recursion 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;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "test.com" IN {
type master;
file "test.com.zone";
allow-transfer { 192.168.80.131; };
};
zone "80.168.192.in-addr.arpa" IN {
type master;
file "192.168.80.zone";
allow-transfer { 192.168.80.131; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
注意
- 在生產環境中,
allow-transfer { 192.168.80.131; };
必不可少, 為防止內網伺服器部署情況洩露,限制可以進行同步的伺服器。
在 /var/named/ 目錄下 新增正反區域解析庫檔案,test.com.zone 和 192.168.80.zone,並新增如下內容
/var/named/test.con.zone
$TTL 86400
$ORIGIN test.com.
@ IN SOA ns1.test.com. admin.test.com. (
2017011301
1H
5M
7D
1D
)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.80.130
ns2 IN A 192.168.80.131
www IN A 192.168.80.130
IN A 192.168.80.130
* IN A 192.168.80.130
/var/named/192.168.80.zone
$TTL 86400
$ORIGIN 80.168.192.in-addr.arpa.
@ IN SOA ns1.test.com. admin.test.com. (
2017011301
1H
5M
7D
1D
)
IN NS ns1.test.com.
IN NS ns2.test.com.
130 IN PTR ns1.test.com.
131 IN PTR ns2.test.com.
130 IN PTR www.test.com.
最後對配置進行檢查
named-checkconf
named-checkzone "test.com" /var/named/test.com.zone
named-checkzone "80.168.192.in-addr.arpa" /var/named/192.168.80.zone
關閉 iptables
service stop iptables
確認配置無誤後開啟DNS服務
service named start
注意
1. 主伺服器應該為一臺獨立的名稱伺服器
2. 主伺服器的區域解析庫檔案中必須有一條NS記錄是指向從伺服器
3. 主伺服器必須允許從伺服器作區域傳送複製
編輯從伺服器 配置檔案
編輯 /etc/named.conf,結果如下
options {
listen-on port 53 { 192.168.80.131; };
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; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
/* 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";
};
zone "test.com" IN {
type slave;
masters { 192.168.80.130; };
file "slaves/test.com.zone";
};
zone "80.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.80.130; };
file "slaves/192.168.80.130.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
對配置進行檢查
named-checkconf
開啟DNS服務
- CentOS 7 系列 使用
systemctl
命令開啟服務
systemctl start named.service
關閉SELinux 和 防火牆
- /etc/sysconfig/selinux
- systemctl stop firewalld.service
最後在 /var/named/slaves/ 目錄能看到已經同步區域解析庫檔案
[[email protected] ~]# ls /var/named/slaves/
192.168.80.130.zone test.com.zone
注意
1. 從伺服器只需要定義區域,而無須提供解析庫檔案;解析庫檔案應該放置於/var/named/slaves/目錄中
2. bind程式的版本應該保持一致;否則,應該從高,主低
3. 如果未能同步,請檢查主伺服器的位於/var/named/目錄下區域解析庫的所屬組許可權是否正確,
4. 如果未能同步,注意檢查主和從伺服器的防火牆和SELinux是否設定得當,在本博文配置中,均是關閉狀態
5.學會使用 tail -f /var/log/message
檢視DNS服務日誌來解決問題
DNS常用測試命令使用方法總結
dig命令
dig命令語法
dig [-t type] name [@SERVER] [query options]
- -t 指明型別 如 A記錄 MX記錄等
- name 需要查詢的名稱
- [@SERVER] 指定DNS伺服器
- [query options] 查詢選項
- +[no]trace 跟蹤解析過程
- +[no]recurse 進行遞迴解析
- 示例
- 由指定 192.168.80.131 DNS伺服器查詢 A記錄 名稱為 www.test.com 的 IP地址
dig -t A www.test.com @192.168.80.131
host命令
host命令語法
host [-t type] name [SERVER]
示例
- 由指定 192.168.80.131 DNS伺服器查詢 A記錄 名稱為 www.test.com 的 IP地址
host -t A www.test.com 192.168.80.131
nslookup命令
nslookup命令語法
nslookup [-option] [name | -] [server]
常使用於互動式模式
nslookup >
server IP:指明使用哪個DNS server進行查詢
set q=RR_TYPE:指明查詢的資源記錄型別
NAME:要查詢的名稱
示例
[[email protected] ~]# nslookup
> server 192.168.80.131
Default server: 192.168.80.131
Address: 192.168.80.131#53
> set q=A
> www.test.com
Server: 192.168.80.131
Address: 192.168.80.131#53
Name: www.test.com
Address: 192.168.80.130
>
相關推薦
DNS正反向解析和主從同步配置
DNS伺服器的型別 主DNS伺服器 從DNS伺服器 快取DNS伺服器 轉發器 主從簡介 主DNS伺服器: 維護所負責解析的域內解析庫的伺服器;解析庫由管理維護 從DNS伺服器: 從主DNS伺服器或其它的從DNS伺服器那裡“複製”(區域傳遞
+++++++DNS基本工作原理、DNS正反向解析及主從同步
博客 運維 linux dns基礎工作原理bind Berkerley Information Name DomainDNS Domain Name ServerTCP/UDP 53UDP 53 無連接協議,域名解析TCP 53 面向連接協議,區域傳送歷史IANA統一名字,自己hosts中維護(%
配置DNS的正反向解析與主從同步
dns配置DNS的正反向解析與主從同步準備:本實驗基於兩臺centos6.5其內核版本號為2.6.32-431.el6.x86_64配置時間同步# echo "#update system date by jiajie at 20170506" >>/var/spool/cron/root #
DNS簡介、DNS工作原理、DNS正反向解析的搭建、DNS主從備份、DNS子域創建
查找 art 技術分享 c51 找到 tex 文件權限 就會 查詢方式 一、DNS簡介DNS 域名系統(Domain Name System)萬維網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記讓人頭疼的一大串數字。根服務器:13組
在Linux中實現DNS正反向解析
圖片 行編輯 正反向解析 name 反向 技術分享 aec roc 結束 實驗環境:RHEL6.5版本一臺。 ---------------------------------操作步驟---------------------------------------- 一、安裝
DNS 正反向解析
rfc [] pts hello 修改 語法 mini 啟動服務 正向解析 yum install bind -y #安裝dns服務 vi /etc/named.conf #進入dns配置文件修改以下內容 listen-on port 53 { any;
DNS服務之DNS正反向解析
ice addition oba loopback rfc 數據庫 pseudo com 應用 DNS服務之DNS正反向解析 作用:解析域名服務,用來解析互聯網中的域名,是基於應用層的協議 安裝 bind:服務端工具包,以named賬號來運行此軟件 bind-utils:
11.17 域名解析DNS---------快取記憶體DNS,權威DNS的正反向解析,輪詢:域名轉換,,郵箱解析,內部解析和外部解析
1.概念的介紹 1)DNS DNS(Domain Name System,域名系統),全球資訊網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。 2)快取記憶體DNS服務 快取記憶體DNS服務的作用:正常上網
DNS 主從同步配置
推送 指定 www sta sla not exp 加域 變更 DNS 主從同步配置 主從同步:主每次修改配置文件需要修改一下序列號,主從同步主要 看序列號。 從DNS:從是可以單獨修改,主從不會報錯。但從修改後,主端同步給從後 從端修改數據會丟失 主從原理:從會監聽
dns的正反向解析
連接 進行 -o 0.10 port 一個 root dns服務 管理員 DNS正反向解析 環境 一臺Linux虛擬機,安裝centos7.4版本IP地址:192.168.100.139,最後進行測試測試。 實驗 在Linux虛擬機上安裝dns服務及bind。 [root@
Linux中DNS正反向區域解析(二)
nslookup是常用來查詢本機域名解析情況的命令,但是一些linux系統下預設無此命令. 我們可以通過安裝一個包來使該命令生效,這個包中也包括dig命令. yum -y install bind-utils 域名查詢工具 1)Nslookup命令
DNS正反向區域解析(二)
域名查詢工具 Nslookup命令 >server 202.106.0.20 #指定DNS伺服器 >set q=A #指定要查詢的型別(A,PTR,MX,CNAME,NS) >www.baidu.com #指定要查詢的域名 d
redis主從同步配置和哨兵機制監控master主從切換配置
搭建好redis單機後,開始研究redis叢集配置 兩臺VM虛擬機器,都安裝了redis程式,一臺作為master 一臺作為slave 首先配置redis主從配置 配置在redis.conf檔案中 主機上需要設定masterauth(光主從同步不需要配置這個,但是後續配置哨
mysql主從同步配置
這就是 sla star 失敗 有效 bin roo orm 相同 文件同步 rsync同步http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html 在當前的生產工作中,大多數應用的mysql主從同步都是異步的
mysql在windows下主從同步配置
mysql5 版本 文件 數據庫復制 exe change ast 授權 create mysql主從同步: 1.為什麽要主從同步? 在Web應用系統中,數據庫性能是導致系統性能瓶頸最主要的原因之一。尤其是在大規模系統中,數據庫集群已經成為必備的配置之一。集群的好處
MySQL 主從同步配置
pass str 設置 user name 滿足 ini flush service 1. MySQL 主從同步配置 1.1. 基礎信息 數據庫主服務器IP:127.0.0.1 數據庫從服務器IP:192.168.1.31 1.2. 主服務器配置文件my.ini配置 (
MySql主從同步配置及實現
數據庫集群 授權 問題 show 不可 leg class status replicat mysql主從復制 隨著技術的發展,在實際的生產環境中,由單臺MySQL數據庫服務器不能滿足實際的需求。此時數據庫集群就很好的解決了這個問題了。采用MySQL分布式集群,能夠搭建一
DNS正向反向解析與主從復制
dns相關DNS正向反向解析與主從復制 環境: VMware Workstation 12 pro, 配置相同的2臺CentOS 7.4 1708,bind 9.9.4,關閉selinux清空iptable規則,主從配置要註意時間同步,否則無法復制。基礎知識:
mysql5.6 主從同步配置
文件名 登錄 nds 每次 hang mysqldump details 5.6 解決 一:配置前說明 在centos 6環境下配置 mysql 5.6主從同步 準備兩臺測試的虛擬機,2臺虛擬機上都安裝mysql軟件,並開啟mysql服務主master : 192.168.
MySQL 5.6.35主從同步配置案例
MySQL 5.6.35主從同步配置案例MySQL 5.6主從同步配置案例分享本文環境 主庫:Redhat 6.5 x64 192.168.1.180 mysql-5.6.35 備庫:Redhat 6.5 x64 192.168.1.181 mysql-5.6.35 一、常規配置方式一1. mysql主