在Ubuntu 20.04上配置Master绑定DNS服务器
对于互联网来提供即时访问世界各地的资源,这涉及将计算机或者与唯一域名链接,需要一个有助于提供此操作的服务。
DNS(域名系统)将人类可读域名(例如www.theitroad.com)转换为计算机可读IP地址,反之亦然。
Bind9(伯克利互联网名称域)是包提供了名称的转换为IP功能。
让我们探索如何在Ubuntu 20.04上使用bind9设置主DNS服务器。
确保服务器在继续之前配置了静态IP地址。
如果服务器使用DHCP,我们必须配置静态一个以确认一旦配置了DNS服务器,就会发生IP地址更改。
在Ubuntu 20.04上绑定DNS服务器安装
在我们开始安装必要的包之前,请确保在更新的Ubuntu服务器上运行总是很好:
sudo apt update -y
使用Ubuntu基础下载必要的包 apt:
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
Ubuntu 20.04上的DNS服务器配置
DNS主配置目录是 /etc/bind.
它包含区域查找文件和其他配置文件。
全局DNS Conf文件位于 /etc/bind/named.conf
。
但是,这不用于本地DNS配置。 /etc/bind/named.conf.local
代替使用。
创建区域
我们会这样做 /etc/bind/named.conf.local
文件。
使用我们选择的文本编辑器来编辑文件。
我们将在文件中创建前向和反向区域。
下面是oniToroad.local域的前向区域条目。
将其更改为域名。
zone "theitroad.local" IN { //Domain name type master; //Primary DNS file "/etc/bind/forward.theitroad.local.db"; //Forward lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
其中:onitad.local是区域名称.Forward.theitroad.local.db是正向查找区域的名称。
将以下内容添加到 /etc/bind/named.conf.local
对于反向区域
zone "10.16.172.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; //Primary DNS file "/etc/bind/reverse.theitroad.local.db"; //Reverse lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
10.16.172.in-addr.arpa操作系统反向DNS的区域名称。
(如果网络是172.16.10.0,则该名称将在10.16.172中逆转)reverse.theitroad.local.db是反向DNS文件。
在Ubuntu 20.04上配置绑定DNS区域查找文件
区域查找文件保存前向和反向区域的DNS记录.Foward区域查找文件
将示例转发区域查找文件复制到名为f的文件 orward.theitroad.local.db
在下面 /etc/bind
目录:
sudo cp /etc/bind/db.local /etc/bind/forward.theitroad.local.db
注意到区域文件语法,域名应以点(。
)结尾
文件上的首字母缩略词具有以下描述:SOA - 启动权限 - Name ServerA - RecordMx - Exchangecn的邮件 - 规范名称
我们必须编辑区域文件并更新如下内容。
根据域名修改它:
sudo vi /etc/bind/forward.theitroad.local.db
$TTL 604800 @ IN SOA ns1.theitroad.local. root.ns1.theitroad.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ IN NS localhost. ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 ;Name Server Information @ IN NS ns1.theitroad.local. ;IP address of Name Server ns1 IN A 172.16.10.2 ;Mail Exchanger theitroad.local. IN MX 10 mail.theitroad.local. ;A – Record HostName To Ip Address www IN A 172.16.10.3 mail IN A 172.16.10.4 ;CNAME record ftp IN CNAME www.theitroad.local.
2.反向区域查找文件
Revese区文件中的首字母缩略词是:PTR - Pointersoa - 权威的开始
复制示例反向区域文件 etc/bind
到一个名为的文件 reverse.theitroad.local.db
。
sudo cp /etc/bind/db.127 /etc/bind/reverse.theitroad.local.db
编辑文件中的内容以适合域:
sudo nano /etc/bind/reverse.theitroad.local.db
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA theitroad.local. root.theitroad.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;Name Server Information @ IN NS ns1.theitroad.local. ns1 IN A 172.16.10.2 ;Reverse lookup for Name Server 2 IN PTR ns1.theitroad.local. ;PTR Record IP address to HostName 3 IN PTR www.theitroad.local. 4 IN PTR mail.theitroad.local.
检查Ubuntu 20.04上的DNS语法
这 named-checkconf
命令用于检查语法是否可以或者是否存在任何错误。
如果没有错误,该命令应返回shell
sudo named-checkconf
named-checkzone命令用于检查前向和反向区域文件的语法:
#forward zone file sudo named-checkzone theitroad.local /etc/bind/forward.theitroad.local.db #reverse zone file named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.theitroad.local.db
输出应该是:
#forward zone file Hyman@theitroad:~# sudo named-checkzone theitroad.local /etc/bind/forward.theitroad.local.db zone theitroad.local/IN: loaded serial 2 OK #reverse zone file Hyman@theitroad:~# named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.theitroad.local.db zone 10.16.172.in-addr.arpa/IN: loaded serial 1 OK
最后重新启动并启用绑定服务:
sudo systemctl restart bind9 sudo systemctl enable bind9
更新绑定DNS记录
应该在两个中更新DNS记录 /etc/bind/forward.theitroad.local.db
和 /etc/bind/reverse.theitroad.local.db
文件。
在更新DNS记录时,将正向和反向区域文件的序列号更改为大于当前的数字。
测试DNS服务器
在任何客户机上,将其DNS服务器更改为新已部署的服务器。
在我们的情况下,它是172.16.10.2.
DNS服务器设置随操作系统而异。
在Ubuntu:
sudo echo "nameserver 172.16.10.2" >> /etc/resolv.conf
让我们使用该来测试DNS解析 dig
命令。
DIG命令用于获取有关域名的信息,这包括DNS服务器,域IP,MX记录等的内容。
Hyman@theitroad:~# dig www.theitroad.local ; <<>> DiG 9.16.1-Ubuntu <<>> www.theitroad.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65241 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: fabd20125b9ccbff010000005f8c7204e1387a993d58c22f (good) ;; QUESTION SECTION: ;www.theitroad.local. IN A ;; ANSWER SECTION: www.theitroad.local. 604800 IN A 172.16.10.3 ;; Query time: 4 msec ;; SERVER: 172.16.10.10#53(172.16.10.10) ;; WHEN: Sun Oct 18 16:49:08 UTC 2017 ;; MSG SIZE rcvd: 100
输出给出了关于"A"记录的信息.LAN
要检查反向DNS:
Hyman@theitroad:~# dig -x 172.16.10.3 ; <<>> DiG 9.16.1-Ubuntu <<>> -x 172.16.10.3 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62529 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 7b8c9b8971f74afc010000005f8c72a8bdc5ebbdb4869578 (good) ;; QUESTION SECTION: ;3.10.16.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 3.10.16.172.in-addr.arpa. 604800 IN PTR www.theitroad.local. ;; Query time: 0 msec ;; SERVER: 172.16.10.10#53(172.16.10.10) ;; WHEN: Sun Oct 18 16:51:52 UTC 2017 ;; MSG SIZE rcvd: 122