参考文章:Centos7.8部署DNS服务、从服务及分离解析
主机名称 | 操作系统 | IP地址 |
---|---|---|
DNS服务器 | Centos7.8 | 192.168.250.209/24 |
应用服务器 | CENTOS7.8 | 192.168.250.200/24 |
测试PC | WINDOWS10家庭版 | 10.128.40.100/24 |
二.安装bind服务软件包
BIND( Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS 域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议在生产环境中安装部署 bind 服务程序时加上 chroot(俗称牢笼机制)扩展包,以便有效地限制 bind 服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
yum install bind-chroot
在 bind 服务程序中有下面这三个比较关键的文件 :
1.主配置文件
/etc/named.conf
将这两个位置修改:
listen-on port 53{ any; }; #表示服务器上的所有IP地址均可提供 DNS 域名解析服务
allow-query { any; }; #允许所有人对本服务器发送DNS查询请求
2.区域配置文件
/etc/named.rfc1912.zones
它是用来保存域名和 IP地址对应关系的所在位置。在这个文件中,定义了域名与 IP 地址解析规则保存的文件位置以 及服务类型等内容,而没有包含具体的域名、IP 地址对应关系等信息。
服务类型有三种,分别为 hint(根区域)、master(主区域)、slave(辅助区域),其中常用的 master 和 slave 指的就 是主服务器和从服务器。
正向解析区域:
zone "haopython.com" IN {
type master; #服务类型
file "haopython.com.zone"; #域名与IP地址解析规则保存的文件位置
allow-update { none; }; #允许哪些客户机动态更新解析信息
};
反向解析区域:
zone "250.168.192.in-addr.arpa" IN { #表示网段的反向解析区域
type master;
file "192.168.250.arpa";
};
3.数据配置文件目录
/var/named)
三.配置正向解析
这是最常用的 DNS 工作模式。
正向解析是指根据域名(主机名)查找到对应的 IP 地址。也就是说,当用户输入了一个域名后,bind 服务程序会自动进行查找,并将匹配到的 IP 地址返给用户。
1.编辑区域配置文件
[root@mybind ~]# vim /etc/named.rfc1912.zones
[root@mybind ~]# cat /etc/named.rfc1912.zones
zone "haopython.com" IN {
type master;
file "haopython.com.zone";
allow-update {none;};
};
2.编辑数据配置文件
先从/var/named 目录中复制一份正向解析的模板文件( named.localhost), 然后把域名和 IP 地址的对应数据填写数据配置文件中并保存。
[root@mybind ~]# cd /var/named/
[root@mybind named]# ls -al named.localhost
-rw-r-----. 1 root named 1526月 212007 named.localhost
[root@mybind named]# cp -a named.localhost haopython.com.zone
[root@mybind named]# vim haopython.com.zone
[root@mybind named]# cat haopython.com.zone
$TTL 1D
@ IN SOA haopython.com. root.haopython.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H) ; minimum
NS ns.haopython.com.
ns IN A 192.168.250.200
www IN A 192.168.250.200
AAAA ::1
配置后,重启named服务:
systemctl restart named
systemctl status named.service
3.检验解析结果
先修改DNS服务器的DNS地址为本机地址 192.168.250.209,然后重启网络服务:
systemctl restart network
然后用 nslookup:
nslookup
> www.haopython.com
Server: 192.168.250.209
Address: 192.168.250.209#53
Name: www.haopython.com
Address: 192.168.250.200
Name: www.haopython.com
Address: ::1
在WIN10客户端,设DNS为 192.168.250.209,然后测试:
这里测试时,在服务器上开放53的TCP和UDP端口。
firewall-cmd --permanent --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports: 53/tcp 53/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
四.配置反向解析
反向解析的作用是将用户提交的 IP 地址解析为对应的域名信息,它一般用于对某个 IP 地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个 IP 地址进行反向解析,大致判断出有多少个网站运行在上面。
扫描二维码关注公众号,回复:
14317446 查看本文章
![](/qrcode.jpg)
1.编辑区域配置文件
[root@mybind ~]# vim /etc/named.rfc1912.zones
[root@mybind ~]# cat /etc/named.rfc1912.zones
zone "haopython.com" IN {
type master;
file "haopython.com.zone";
allow-update {none;};
};
zone "250.168.192.in-addr.arpa" IN {
type master;
file "192.168.250.arpa";
};
2.编辑数据配置文件
先从/var/named 目录中复制一份反向解析的模板文件( named.loopback), 然后进行修改
[root@mybind named]# pwd
/var/named
[root@mybind named]#
[root@mybind named]# cp -a named.loopback 192.168.250.arpa
[root@mybind named]# ls -al
总用量 28
drwxrwx--T. 6 root named 1914月 1211:33.
drwxr-xr-x. 21 root root 40964月 1209:13..
-rw-r-----. 1 root named 16812月 152009192.168.250.arpa
drwxr-x---. 7 root named 614月 1209:13 chroot
drwxrwx---. 2 named named 234月 1210:42 data
drwxrwx---. 2 named named 604月 1210:42dynamic
-rw-r-----. 1 root named 2464月 1210:41 haopython.com.zone
-rw-r-----. 1 root named 22534月 52018 named.ca
-rw-r-----. 1 root named 15212月 152009 named.empty
-rw-r-----. 1 root named 1526月 212007 named.localhost
-rw-r-----. 1 root named 16812月 152009 named.loopback
drwxrwx---. 2 named named 62月 2401:17 slaves
修改如下:
[root@mybind named]# vim 192.168.250.arpa
[root@mybind named]# vim 192.168.250.arpa
$TTL 1D
@ IN SOA haopython.com. root.haopython.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H) ; minimum
NS ns.haopython.com.
ns A 192.168.250.200
10 PTR ns.haopython.com.
10 PTR www.haopython.com.
3.检验结果解析
重启服务
systemctl restart named
测试
[root@mybind named]# nslookup
> www.haopython.com
Server: 192.168.250.209
Address: 192.168.250.209#53
Name: www.haopython.com
Address: 192.168.250.200
> 192.168.250.200
200.250.168.192.in-addr.arpa name = www.haopython.com.
200.250.168.192.in-addr.arpa name = ns.haopython.com.
>
第二部分:部署从服务器
主机名称 | 操作系统 | IP地址 |
---|---|---|
主DNS服务器 | Centos7.8 | 192.168.250.209 |
从DNS服务器 | Centos7.8 | 192.168.250.219 |
2.基本架构
二.配置从服务器
1.编辑主服务器的区域配置文件
在主服务器的区域配置文件中允许该从服务器的更新请求:
[root@mybind named]# vim /etc/named.rfc1912.zones
[root@mybind named]# cat /etc/named.rfc1912.zones
zone "haopython.com" IN {
type master;
file "haopython.com.zone";
allow-update { 192.168.250.219; };
};
zone "250.168.192.in-addr.arpa" IN {
type master;
file "192.168.250.arpa";
allow-update { 192.168.250.219; };
};
[root@mybind named]# systemctl restart named
2.编辑从服务器的区域配置文件
在从服务器中填写主服务器的 IP 地址与要抓取的区域信息,然后重启服务。
为了配置方便,先从主服务器 mybind拷贝现在的配置文件到从服务器 mybind2目录下:
[root@mybind named]# scp /etc/named.rfc1912.zones [email protected]:/etc/named.rfc1912.zones
The authenticity of host '192.168.250.219 (192.168.250.219)' can't be established.
ECDSA key fingerprint is SHA256:vThEoRhUOECeD5jhE+m8TZA2+6OoElIoNOQ3XqtopZw.
ECDSA key fingerprint is MD5:97:40:b2:35:6e:07:5a:61:1f:73:f1:b2:6e:54:5b:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.250.219' (ECDSA) to the list of known hosts.
[email protected]'s password:
named.rfc1912.zones
然后到从服务器进行修改:
[root@mybind2 ~]# vim /etc/named.rfc1912.zones
[root@mybind2 ~]# cat /etc/named.rfc1912.zones
zone "haopython.com" IN {
type slave;
masters { 192.168.250.209; };
file "slaves/haopython.com.zone";
};
zone "250.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.250.209; };
file "slaves/192.168.250.arpa";
};
3.检验解析结果
查看下面目录,暂时无文件:
[root@mybind2 slaves]# pwd
/var/named/slaves
[root@mybind2 slaves]# ll
总用量 0
[root@mybind2 slaves]#
然后启动bind服务
systemctl start named
systemctl status named
并修改从服务器的DNS地址为 192.168.250.219然后测试
[root@mybind2 slaves]# nslookup
> www.haopython.com
Server: 192.168.250.219
Address: 192.168.250.219#53
Name: www.haopython.com
Address: 192.168.250.200
> 192.168.250.200
200.250.168.192.in-addr.arpa name = ns.haopython.com.
200.250.168.192.in-addr.arpa name = www.haopython.com.
第三部分:DNS分离解析技术
主机名称 | 操作系统 | IP地址 |
---|---|---|
DNS服务器 | Centos7.8 | 北京网络:172.16.10.17/24 上海网络:10.128.29.177 |
北京用户 | WIN10 | 172.16.10.200/24 |
上海用户 | MAC OS | 10.128.29.200/24 |
二.配置分离解析
1.配置主配置文件
下面修改 bind 服务程序的主配置文件:
vim /etc/named.conf
[root@split-bind ~]#
options {
listen-on port 53{ any; }; #修改为any
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; #修改为any
删除下面几行的根域信息:
zone "." IN {
type hint;
file "named.ca";
};
2.编辑区域配置文件
把区域配置文件中原有的数据清空,然后配置view规则:
[root@split-bind ~]# vim /etc/named.rfc1912.zones
[root@split-bind ~]# cat /etc/named.rfc1912.zones
acl "beijing"{ 172.16.10.0/24; };
acl "shanghai"{ 10.128.29.0/24; };
view "beijing"{
match-clients { "beijing"; };
zone "haopython.com"{
type master;
file "haopython.com.beijing";
};
};
view "shanghai"{
match-clients { "shanghai"};
zone "haopython.com"{
type master;
file "haopython.com.shanghai";
};
};
3.建立数据配置文件
这里通过复制模板文件,创建两个不同名称的数据文件:
[root@split-bind ~]# cd /var/named
[root@split-bind named]# ls
chroot data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@split-bind named]# cp -a named.localhost haopython.com.beijing
[root@split-bind named]# cp -a named.localhost haopython.com.shanghai
先编辑北京配置文件
[root@split-bind named]# vim haopython.com.beijing
[root@split-bind named]# cat haopython.com.beijing
$TTL 1D
@ IN SOA haopython.com. root.haopython.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H) ; minimum
NS ns.haopython.com.
ns IN A 172.16.10.10#DNS服务器地址
www IN A 172.16.10.17#web服务器地址
然后编辑上海配置文件
[root@split-bind named]# vim haopython.com.shanghai
[root@split-bind named]# cat haopython.com.shanghai
$TTL 1D
@ IN SOA haopython.com. root.haopython.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H) ; minimum
NS ns.haopython.com.
ns IN A 10.128.29.10
www IN A 10.128.29.117
4.结果验证
重启named服务,然后在客户机上进行验证