sudo apt-get install bind9
內網搭建DNS服務器,大多數是解析純內網地址使用。但是偶爾也需要解析外網的地址,所以我們可以配置DNS沒有添加A記錄的URL時,forward到外網DNS服務器或者內網的其他DNS服務器解析。
打開配置文件:
sudo vi /etc/bind/named.conf.options
編輯forward,指定轉發服務器public DNS:114.114.114.114或者8.8.8.8:
?forwarders {8.8.8.8;};
接下來,我們配置DNS服務器在IPv4工作:
sudo vi /etc/default/bind9
將options=“-u bind ”修改為:將options=“-u bind -4 ”
#
# run resolvconf?
RESOLVCONF=no# startup options for the server
OPTIONS="-u bind -4"
保存退出。
更改配置后,重啟bind9 服務:
sudo service bind9 restart
如果要指定可以遞歸查詢的DNS服務器,需要添加ACL:
ACL "trusted"{114.114.114.114;8.8.8.8;192.168.0.0/16
};
?
options {directory "/var/cache/bind";recursion yes;allow-recursion{trusted;}listen-on{192.168.31.170;}allow-transfer {none;}forwarders {114.114.114.1148.8.8.8}}
上述配置指定只有我們自己的服務器才能在DNS服務器中查詢外部域。
保存退出。
下面以綁定域名: core.harbor.domain 192.168.1.105?來舉例,目標是局域網內通過域名服務器解析core.harbor.domain 得到ip?192.168.1.105?
sudo vi /etc/bind/named.conf.local
?
這個文件內,除注釋文件外,為空。添加如下正向區域文件。
domain.com為內網的域名,內網子網wei192.168.0.0/16
zone "domain.com" {
type master;
file "/etc/bind/zones/db.harbor.domain";
};zone "168.192.in-addr.arpa"{
type master;
file "/etc/bind/zones/db.168.192";
};
創建zones區域文件:
sudo mkdir /etc/bind/zones
1
將db.local文件復制到zones目錄下:
sudo cp /etc/bind/db.local /etc/bind/zones/db.harbor.domain
1
編輯區域文件:
sudo vi /etc/bind/zones/db.harbor.domain
修改成?
; BIND data file for local loopback interface
;
$TTL 1D@ IN SOA harbor.domain. core.harbor.domain. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS core.harbor.domain.core A 192.168.1.105www A 10.0.0.7
保存退出。至此正向區域就完成了。
反向區域方法與正向相同,只是A records更改為PTR records即可。
反向區域文件是我們為反向DNS查找定義DNS PTR記錄的地方。 也就是說,當DNS通過IP地址接收查詢時,它將查看反向區域文件以解析相應的FQDN。
sudo cp /etc/bind/db.127 /etc/bind/zones/db.168.192
sudo vi /etc/bind/zones/db.168.192
創建PTR:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA harbor.domain. root.harbor.domain. (3 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL
;
;@ IN NS localhost.;1.0.0 IN PTR localhost.
192.168.1.1 IN PTR root.harbor.domain
192.168.1.105 IN PTR core.harbor.domain
最后驗證測試:
驗證正向區域
sudo named-checkzone harbor.domain /etc/bind/zones/db.harbor.domain
驗證反向區域
sudo named-checkzone 168.192.in-addr.arpa /etc/bind/zones/db.168.192
過程中還需要注意firewall是否有允許bind9同行。
sudo ufw allow Bind9
參考文檔:
Ubuntu 用bind9搭建DNS服務器_ubuntu bind9配置_Par@ish的博客-CSDN博客
ubuntu 22.04 lts bind9 局域網DNS服務器搭建 泛域名配置_ubuntu bind9_Faith1810的博客-CSDN博客