BIND_9.16.3(DNS)部署安裝測試


1.簡介

域名系統(英文:Domain Name System,縮寫:DNS)是因特網使用的命名系統,用來把便於人們使用的機器名字轉換成為IP地址 即解決的是IP地址和域名的映射問題。

DNS是多層命名服務器構成的分布式數據庫,屬於應用層協議,DNS使用TCP和UDP端口53。

當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符,是Internet的核心功能。

DNS系統是由各式各樣的DNS軟件所驅動的,包括:

  • BIND(Berkeley Internet Name Domain),這是應用最廣的DNS軟件.
  • DJBDNS(Dan J Bernstein's DNS implementation)
  • MaraDNS
  • NSD(Name Server Daemon)
  • PowerDNS

 

2.請求方式

迭代查詢:LocalDNS服務器只告訴客戶機另外一台DNS服務器的地址,讓客戶機自己去循環查詢結果。

遞歸查詢:委托給LocalDNS服務器去查詢,LocalDNS服務器直接返回結果給客戶機,一般DNS解析都是用遞歸查詢的方法。

 

3.域名解析過程

  • 先檢查瀏覽器的緩存 看有沒有對應解析過的ip
  • 查看本地的hosts文件
  • 向本地指向的dns服務器 發起域名解析請求 看看有沒有緩存
  • 沒有的話就向根dns服務器發起請求
  • 根服務器回返回給頂級域名服務器的地址
  • 本地服務器去向頂級域名服務器請求
  • 頂級域名解析服務器會返回注冊的域名服務器
  • 本地服務器再去向注冊的域名服務器發起域名解析請求
  • 返回解析出來的ip
  • 本地域名服務器再返回給客戶端

 

4.DNS資源記錄

DNS 區域采用資源記錄的形式存儲信息。每條資源記錄均具有一個類型 , 表明其保留的數據類型。 

  • A : 名稱至 IPv4 地址 
  • AAAA : 名稱至 IPv6 地址 
  • CNAME : 名稱至 ”規范名稱 “ ( 包含 A/AAAA 記錄的另一個名稱
  • PTR : IPv4/IPv6 地址至名稱 
  • MX : 用於名稱的郵件交換器 ( 向何處發送其電子郵件
  • NS :域名的名稱服務器 
  • SOA:“授權起始”, DNS 區域的信息 ( 管理信息 )

 SOA詳解:

$ORIGIN .

$TTL 3600       ; 1 hour

txt.com                 IN SOA  ns.txt.com. mail.txt.com. (

                                2          ; serial

                                28800      ; refresh (8 hours)

                                3600       ; retry (1 hour)

                                604800     ; expire (1 week)

                                1800       ; minimum (30 minutes)

 )

Serial

數值Serial代表這個Zone的序列號,作用:Slave DNS判斷是否從Master DNS獲取新數據,每次Zone文件更新,都需要修改Serial數位. RFC19122.2建議的格式為YYYYMMDDnn其nn為修訂號;表示在某年(YYYY)、月(MM)、日(DD)進行了第幾次(nn)修改

Refresh

數值Refresh設置Slave DNS多長時間與Master DNS進行核對Serial核對,目前bindnotify參數可以設置每次Master DNS更新都會主動通知Slave DNS更新,Refresh參數主要用於notify參數關閉時

Retry

 數值Retry設置當Slave DNS試圖獲取Master DNS Serial時,如果Master DNS未響應,多長時間重新進行檢查。

Expire

 數值Expire將決定Slave DNS在沒有Master DNS的情況下權威的提供域名解析服務的時間長短。

Minimum

8.2版本之前,由於沒有獨立的STTL令,所以通過SOA最后一個字段來實現,但由於BIND. 8.2后出現了STTL 指令,該部分功能就不再由SOA的最后一個字段來負責,STTL全權負責.SOA的最后一個字段專門負責negative answer  (negative caching)

 

5.DNS排錯

它顯示來自 DNS 查找的詳細信息 , 其中包括為什么查詢失敗

  • NOERROR : 查詢成功 
  • NXDOMAIN : DNS 服務器提示不存在這樣的名稱 
  • SERVFAIL : DNS 服務器停機或 DNSSEC 響應驗證失敗 
  • REFUSED : DNS 服務器拒絕回答 ( 也許是出於訪問控制原因 )

 

6.源碼方式安裝

 本文章所使用的系統環境為 Centos 7.5 操作系統,安裝的是bind-9.16.3版本

6.1創建非特權用戶named

[root@localhost ~]# cat /etc/group //查看是否存在named組
[root@localhost ~]# groupadd -g 53 named
[root@localhost ~]# cat /etc/passwd //查看是否存在named用戶
[root@localhost ~]# useradd -M -s /sbin/nologin -g named named

6.2安裝依賴包

[root@localhost ~]#  yum -y install libcap libcap-devel libuv libuv-devel openssl-devel

6.3上傳安裝包並檢查安裝包信息

[root@localhost ~]# ls
anaconda-ks.cfg   bind-9.16.3.tar.xz  initial-setup-ks.cfg   epel-release-latest-7.noarch.rpm

[root@localhost ~]# md5sum bind-9.16.3.tar.xz
2b207d5699d7acb0a2e997b7cd53d9c2 bind-9.16.3.tar.xz

為了確保BIND將構建dnssec-keymgr,以root用戶身份安裝python模塊:

[root@localhost ~]# yum -y install python36 python36-devel
[root@localhost ~]# pip3 install ply -i https://mirrors.aliyun.com/pypi/simple/

6.4解壓安裝包

[root@localhost ~]# tar xf bind-9.16.3.tar.xz

6.5進入到解壓文件中進行配置編譯

[root@localhost ~]# cd bind-9.16.3/

[root@localhost bind-9.16.3]# ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named --localstatedir=/var --with-libtool --disable-chroot --disable-static
[root@localhost bind-9.16.3]# echo $?
0
[root@localhost bind-9.16.3]# make && make install
[root@localhost bind-9.16.3]# echo $?
0

6.6安裝完成之后配置rndc和named.conf主配置文件

[root@localhost ~]# cd /usr/local/bind9/sbin/
[root@localhost sbin]# ./rndc-confgen > /etc/named/rndc.conf
[root@localhost ~]# cd /etc/named/
[root@localhost named]# tail -10 rndc.conf | head -9 | sed -e s/#\ //g > named.conf
[root@localhost ~]# vim /etc/named/named.conf
options {
directory "/var/named";
pid-file "/var/named/named.pid";
dump-file "/var/named/cache_dunmp.db";
statistics-file "/var/named/named_stats.txt";
version none;
hostname none;
recursion yes;
allow-query { any; };
listen-on port 53 { any; };
querylog yes;
max-cache-size 0M;
};
logging {
channel query_syslog { syslog local3; severity info; print-time yes; };
channel query_log {
file "/var/dnslog/query.log" versions 5 size 500m;
print-time yes;
severity info;
};
category queries { query_log;};
channel general_log {
file "/var/dnslog/general_log" versions 5 size 500m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
category default { general_log; };
category general { general_log; };
};

創建域名記錄存放的目錄並修改權限

[root@localhost ~]# mkdir -p /var/named
[root@localhost ~]# chown root:named /var/named/
[root@localhost ~]# chmod 770 /var/named/

創建DNS日志存放目錄並修改權限

[root@localhost ~]# mkdir -p /var/dnslog
[root@localhost ~]# chown root:named /var/dnslog/
[root@localhost ~]# chmod 770 /var/dnslog/

修改配置文件的權限

[root@localhost ~]# chmod 640 /etc/named/*
[root@localhost ~]# chown root:named /etc/named/*

使用named用戶啟動服務並查看是否成功

[root@localhost ~]# /usr/local/bind9/sbin/named -4u named -c /etc/named/named.conf
[root@localhost ~]# ps xua |grep bind
rpc 679 0.0 0.0 69220 1056 ? Ss 13:25 0:00 /sbin/rpcbind -w
named 59934 0.0 0.8 236140 15212 ? Ssl 16:15 0:00 /usr/local/bind9/sbin/named -4u named -c /etc/named/named.conf
root 60043 0.0 0.0 112724 972 pts/0 R+ 16:26 0:00 grep --color=auto bind

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM