Linux基于Bind9搭建dns服务器
Bind9簡介
Bind是Berkeley Internet Name Domain Service的簡寫,它是一款實現(xiàn)DNS服務(wù)器的開放源碼軟件。Bind已經(jīng)成為世界上使用最為廣泛的DNS服務(wù)器軟件,目前Internet上半數(shù)以上的DNS服務(wù)器都是用Bind來架設(shè)的,已經(jīng)成為DNS中事實上的標準。
bind歷史
- BIND4版本,BIND包最初是在 1980 年代初在加州大學(xué)伯克利分校作為研究生項目在美國國防高級研究項目管理局 (DARPA)的資助下編寫的。BIND 到 4.8.3 的版本由加州大學(xué)伯克利分校的計算機系統(tǒng)研究小組 (CSRG) 維護。Douglas Terry、Mark Painter、David Riggle 和 Songnian Zhou 組成了最初的 BIND 項目團隊。
- BIND8版本,Internet Software Consortium, Inc. (ISC) 由 Rick Adams、Paul Vixie 和 Carl Malamud 于 1994 年創(chuàng)立,專門為 BIND 的開發(fā)和維護提供一個場所。從 4.9.3 開始的 BIND 版本由 ISC 開發(fā)和維護,并由 ISC 的贊助商提供支持。作為合作架構(gòu)師/程序員,Bob Halley 和 Paul Vixie 于 1997 年 5 月發(fā)布了 BIND 版本 8 的第一個生產(chǎn)就緒版本。BIND 版本 4 和 8 已正式棄用。2004 年 1 月,ISC 更名為 Internet Systems Consortium, Inc。
- BIND9版本,于2000 年 9 月發(fā)布,幾乎對底層 BIND 架構(gòu)的所有方面進行了重大改寫。
- BIND10版本,于2009 年~2014年期間進行開發(fā),ISC 開始嘗試使用 BIND 10 從頭開始??重寫 BIND。它旨在替代和改進 BIND 9,基于全新的應(yīng)用程序框架。2014 年,ISC結(jié)束了 BIND 10 的開發(fā),轉(zhuǎn)而重新專注于投資 BIND 9。
bind版本
BIND 有四種主要的版本:穩(wěn)定版、開發(fā)版、擴展支持 (ESV) 和訂閱版。如果您更喜歡 GUI 管理界面,您可以考慮基于 BIND的商業(yè)產(chǎn)品。
在早期,BIND 主要用于 UNIX 平臺。但是,考慮到多年來的升級次數(shù),BIND 現(xiàn)在可以在所有平臺上使用。
官方網(wǎng)站:https://www.isc.org/bind
項目地址:https://github.com/isc-projects/bind9
BIND 配置權(quán)威 DNS 服務(wù)器
在 CentOS 8 上使用 BIND 9 配置主和輔助DNS 服務(wù)器。準備兩臺 CentOS 8 虛擬機,規(guī)劃如下:
主 DNS 服務(wù)器:
- 主機名- dns-01.example.com
- IP 地址- 192.168.93.70/24
- 操作系統(tǒng)– CentOS 8.3
輔助 DNS 服務(wù)器:
- 主機名- dns-02.example.com
- IP 地址- 192.168.93.71/24
- 操作系統(tǒng)– CentOS 8.3
配置主機名
[root@dns-01 ~]# hostnamectl set-hostname dns-01.example.com [root@dns-02 ~]# hostnamectl set-hostname dns-02.example.com安裝 BIND 9 DNS 服務(wù)器
BIND 9可通過 CentOS 8 官方 yum 存儲庫獲得。因此,我們可以使用dnf命令輕松安裝它。
[root@dns-01 ~]# dnf install -y bind bind-utils配置主DNS 服務(wù)器
默認named.service在localhost 上運行,需要配置named.service在本機IP地址上監(jiān)聽。
[root@dns-01 ~]# vi /etc/named.conf在options指令下設(shè)置以下參數(shù)以允許named.service在我們的網(wǎng)絡(luò)接口上運行。
listen-on port 53 { 127.0.0.1; 192.168.93.70; };我們還需要啟用named.service以允許指定客戶端查詢。因此,在選項指令中查找并設(shè)置以下參數(shù)。
allow-query { localhost; 192.168.93.0/24; };為了保持named.conf文件干凈,創(chuàng)建一個單獨的配置文件中定義我們的DNS 區(qū)域。
cat >/etc/named.conf.local<<EOF zone "example.com" {type master;file "/var/named/example.com"; };zone "93.168.192.in-addr.arpa" {type master;file "/var/named/93.168.192.in-addr.arpa"; }; EOF我們在這里定義了兩個 DNS 區(qū)域,一個是正向 DNS 區(qū)域,另一個是反向 DNS 區(qū)域。
在默認配置文件named.conf文件中包含named.conf.local,以在服務(wù)啟動時被調(diào)用。
echo 'include "/etc/named.conf.local";' >> /etc/named.conf為我們的域配置轉(zhuǎn)發(fā)區(qū)域。
cat >/var/named/example.com<<'EOF' $TTL 1h @ IN SOA example.com. root.example.com. (2019080901 ; Serial YYYYMMDDnn24h ; Refresh2h ; Retry28d ; Expire2d ) ; Minimum TTL;Name Servers @ IN NS dns-01;Mail Servers @ IN MX 0 mail-01;Other Servers dns-01 IN A 192.168.93.70 mail-01 IN A 192.168.93.73 web-01 IN A 192.168.93.74;Canonical Names www IN CNAME web-01 mail IN CNAME mail-01 EOF檢查轉(zhuǎn)發(fā)區(qū)域文件是否有任何可能的錯誤。
[root@dns-01 ~]# named-checkzone example.com /var/named/example.com zone example.com/IN: loaded serial 2019080901 OK為我們的域配置一個反向區(qū)域。
cat >/var/named/93.168.192.in-addr.arpa<<'EOF' $TTL 1h @ IN SOA 93.168.192.in-addr.arpa root.example.com. (2019080901 ; Serial YYYYMMDDnn24h ; Refresh2h ; Retry28d ; Expire2d ) ; Minimum TTL;Name Servers @ IN NS dns-01;Other Servers dns-01 IN A 192.168.93.70;PTR Records 0 IN PTR dns-01 3 IN PTR mail-01 4 IN PTR web-01 EOF檢查反向區(qū)域文件是否有任何可能的錯誤。
[root@dns-01 ~]# named-checkzone example.com /var/named/93.168.192.in-addr.arpa zone example.com/IN: loaded serial 2019080901 OK調(diào)整區(qū)域文件的文件所有權(quán)。
[root@dns-01 ~]# chgrp named /etc/named.conf.local [root@dns-01 ~]# chgrp named /var/named/example.com [root@dns-01 ~]# chgrp named /var/named/93.168.192.in-addr.arpa啟用并啟動named.service。
[root@dns-01 ~]# systemctl enable --now named.service Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.在 Linux 防火墻中允許DNS服務(wù)。
[root@dns-01 ~]# firewall-cmd --permanent --add-service=dns success [root@dns-01 ~]# firewall-cmd --reload success將主DNS 服務(wù)器添加到客戶端的resolve.conf 中。
[root@dns-01 ~]# nmcli c m ens33 ipv4.dns-search example.com ipv4.dns 192.168.93.70重新啟動界面以應(yīng)用更改。
[root@dns-01 ~]# nmcli c down ens33 ; nmcli c up ens33 Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)驗證 DNS 服務(wù)器設(shè)置。
[root@dns-01 ~]# cat /etc/resolv.conf # Generated by NetworkManager search example.com nameserver 192.168.93.70使用dig命令查詢我們的主(主)DNS 服務(wù)器。
[root@dns-01 ~]# dig www.example.com; <<>> DiG 9.11.26-RedHat-9.11.26-4.el8_4 <<>> www.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63862 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 8f0807a08d768c30be87bc2b61727936b17d2333020cdc40 (good) ;; QUESTION SECTION: ;www.example.com. IN A;; ANSWER SECTION: www.example.com. 3600 IN CNAME web-01.example.com. web-01.example.com. 3600 IN A 192.168.93.74;; AUTHORITY SECTION: example.com. 3600 IN NS dns-01.example.com.;; ADDITIONAL SECTION: dns-01.example.com. 3600 IN A 192.168.93.70;; Query time: 0 msec ;; SERVER: 192.168.93.70#53(192.168.93.70) ;; WHEN: Fri Oct 22 16:41:26 CST 2021 ;; MSG SIZE rcvd: 146我們的主DNS 服務(wù)器已經(jīng)配置完成。
配置輔助DNS 服務(wù)器
我們有一個工作的主DNS 服務(wù)器,現(xiàn)在要添加一個輔助DNS 服務(wù)器。使用ssh作為root用戶連接到dns-02節(jié)點。
在輔助DNS 服務(wù)器上安裝 BIND 9 軟件包:
[root@dns-02 ~]# dnf install -y bind bind-utils配置輔助DNS 服務(wù)器的named.service設(shè)置。
[root@dns-02 ~]# vi /etc/named.conf在選項指令下設(shè)置以下參數(shù)。
listen-on port 53 { 127.0.0.1; 192.168.93.71; }; allow-query { localhost;192.168.93.0/24; };與主DNS 服務(wù)器配置相似,在單獨的配置文件中定義我們的區(qū)域。
cat >/etc/named.conf.local<<EOF zone "example.com" {type slave;masters { 192.168.93.70; };file "/var/named/example.com"; };zone "93.168.192.in-addr.arpa" {type slave;masters { 192.168.93.70; };file "/var/named/93.168.192.in-addr.arpa"; }; EOF在默認配置文件named.conf文件中包含named.conf.local,以在服務(wù)啟動時被調(diào)用。
[root@dns-02 ~]# echo 'include "/etc/named.conf.local";' >> /etc/named.conf啟動并啟用named.service。
[root@dns-02 ~]# systemctl enable --now named.service Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.在 Linux 防火墻中允許DNS服務(wù)。
[root@dns-02 ~]# firewall-cmd --permanent --add-service=dns success [root@dns-02 ~]# firewall-cmd --reload success設(shè)置SELinux布爾值,以便我們的輔助DNS 服務(wù)器可以接受區(qū)域傳輸并更新本地區(qū)域文件。
[root@dns-02 ~]# setsebool -P named_write_master_zones on現(xiàn)在,連接到dns-01節(jié)點并為我們的輔助DNS 服務(wù)器添加設(shè)置,
[root@dns-01 ~]# vi /etc/named.conf.local在named.conf.local文件追加以下兩行來配置區(qū)域傳輸。
zone "example.com" {type master;file "/var/named/example.com";allow-transfer {192.168.93.71; };also-notify {192.168.93.71; }; };zone "93.168.192.in-addr.arpa" {type master;file "/var/named/93.168.192.in-addr.arpa";allow-transfer {192.168.93.71; };also-notify {192.168.93.71; }; };在我們的正向和反向區(qū)域中添加我們的輔助DNS 服務(wù)器記錄。
[root@dns-01 ~]# vi /var/named/example.com添加輔助DNS 服務(wù)器NS和A記錄如下:
$TTL 1h @ IN SOA example.com. root.example.com. (2019080901 ; Serial YYYYMMDDnn24h ; Refresh2h ; Retry28d ; Expire2d ) ; Minimum TTL;Name Servers @ IN NS dns-01 @ IN NS dns-02;Mail Servers @ IN MX 0 mail-01;Other Servers dns-01 IN A 192.168.93.70 dns-02 IN A 192.168.93.71 mail-01 IN A 192.168.93.73 web-01 IN A 192.168.93.74;Canonical Names www IN CNAME web-01 mail IN CNAME mail-01在反向區(qū)域中添加輔助DNS 服務(wù)器記錄。
[root@dns-01 ~]# vi /var/named/93.168.192.in-addr.arpa添加我們的輔助DNS 服務(wù)器NS,A和PTR記錄如下。
$TTL 1h @ IN SOA 93.168.192.in-addr.arpa root.example.com. (2019080901 ; Serial YYYYMMDDnn24h ; Refresh2h ; Retry28d ; Expire2d ) ; Minimum TTL;Name Servers @ IN NS dns-01 @ IN NS dns-02;Other Servers dns-01 IN A 192.168.93.70 dns-02 IN A 192.168.93.71;PTR Records 0 IN PTR dns-01 1 IN PTR dns-02 3 IN PTR mail-01 4 IN PTR web-01重新啟動named.service以應(yīng)用更改。
[root@dns-01 ~]# systemctl restart named.service檢查dns-02.example.com上的/etc/named目錄。
[root@dns-02 ~]# ls /var/named 93.168.192.in-addr.arpa dynamic named.ca named.localhost slaves data example.com named.empty named.loopback區(qū)域文件會自動復(fù)制到輔助DNS 服務(wù)器。現(xiàn)在將此輔助 DNS 服務(wù)器添加到客戶端的 resolve.conf 文件中。
[root@dns-01 ~]# nmcli c m ens33 +ipv4.dns 192.168.93.71 [root@dns-01 ~]# nmcli c down ens33 ; nmcli c up ens33 Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)檢查resolv.conf內(nèi)容。
[root@dns-01 ~]# cat /etc/resolv.conf # Generated by NetworkManager search example.com nameserver 192.168.93.70 nameserver 192.168.93.71通過查詢主機名檢查輔助DNS 服務(wù)器。
[root@dns-01 ~]# dig @192.168.93.71 mail.example.com; <<>> DiG 9.11.26-RedHat-9.11.26-4.el8_4 <<>> @192.168.93.71 mail.example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15217 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 2c3b1a687e6eb1dd1750d7ed61727d00b31d2a383dfc10cf (good) ;; QUESTION SECTION: ;mail.example.com. IN A;; ANSWER SECTION: mail.example.com. 3600 IN CNAME mail-01.example.com. mail-01.example.com. 3600 IN A 192.168.93.73;; AUTHORITY SECTION: example.com. 3600 IN NS dns-01.example.com.;; ADDITIONAL SECTION: dns-01.example.com. 3600 IN A 192.168.93.70;; Query time: 1 msec ;; SERVER: 192.168.93.71#53(192.168.93.71) ;; WHEN: Fri Oct 22 16:57:36 CST 2021 ;; MSG SIZE rcvd: 148輔助DNS 服務(wù)器已配置好并且運行良好。現(xiàn)在已經(jīng)使用 BIND 9 成功配置了權(quán)威 DNS 服務(wù)器。
參考:https://www.centlinux.com/2019/08/configure-authoritative-dns-server-bind-centos-7.html
總結(jié)
以上是生活随笔為你收集整理的Linux基于Bind9搭建dns服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机怎么访问电脑html文件,手机能访问
- 下一篇: X61使用 U盘安装linux系统