全国直销电话:4006-854-568
IT-technology
以人为本,众志成城,以“用户至上”.“服务上乘”为原则,
追求产品和服务高质量,努力实现与客户之间真诚有效的沟通,
不断地圆梦、奔跑与腾飞。
新闻动态   NEWS
Centos7.8部署DNS服务、从服务及分离解析-北京赛维博信科技发展有限公司
来源: | 作者:svbx001 | 发布时间: 2022-04-14 | 4565 次浏览 | 分享到:

第一部分:部署DNS服务器

一.准备工作

1.主机信息
主机名称操作系统IP地址
DNS服务器Centos7.8192.168.250.209/24
应用服务器CENTOS7.8192.168.250.200/24
测试PCWINDOWS10家庭版10.128.40.100/24
2.简单架构图

二.安装bind服务软件包

BIND( Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS 域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议在生产环境中安装部署 bind 服务程序时加上 chroot(俗称牢笼机制)扩展包,以便有效地限制 bind 服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。

[root@localhost ~]# yum install bind-chroot已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.huaweicloud.combase| 3.6 kB  00:00:00     extras                                                                                                                                                                                    | 2.9 kB  00:00:00     updates                                                                                                                                                                                   | 2.9 kB  00:00:00     正在解决依赖关系--> 正在检查事务---> 软件包 bind-chroot.x86_64.32.9.11.4-26.P2.el7_9.9将被 安装

在 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.编辑区域配置文件
  1. [root@mybind ~]# vim /etc/named.rfc1912.zones

  2. [root@mybind ~]# cat /etc/named.rfc1912.zones

  3. zone "haopython.com" IN {

  4. type master;

  5. file "haopython.com.zone";

  6. allow-update {none;};

  7. };


  8. [root@mybind ~]#

2.编辑数据配置文件

先从/var/named 目录中复制一份正向解析的模板文件( named.localhost), 然后把域名和 IP 地址的对应数据填写数据配置文件中并保存。

  1. [root@mybind ~]# cd /var/named/


  2. [root@mybind named]# ls -al named.localhost

  3. -rw-r-----. 1 root named 1526月  212007 named.localhost


  4. [root@mybind named]# cp -a named.localhost haopython.com.zone

  5. [root@mybind named]# vim haopython.com.zone

  6. [root@mybind named]# cat haopython.com.zone

  7. $TTL 1D

  8. @    IN SOA  haopython.com.         root.haopython.com. (

  9. 0; serial

  10. 1D; refresh

  11. 1H; retry

  12. 1W; expire

  13. 3H)    ; minimum

  14.    NS  ns.haopython.com.

  15. ns      IN A    192.168.250.200

  16. www     IN A    192.168.250.200

  17.    AAAA    ::1

  18. [root@mybind named]#

配置后,重启named服务:

[root@mybind named]# systemctl restart named[root@mybind named]# systemctl status named.service● named.service - BerkeleyInternetNameDomain(DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)Active: active (running) since 二 2022-04-1210:42:01 CST; 4s agoProcess: 15301ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Process: 15299ExecStartPre=/bin/bash -c if[ ! "$DISABLE_ZONE_CHECKING"== "yes"]; then/usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi(code=exited, status=0/SUCCESS)Main PID: 15303(named)Tasks: 7CGroup: /system.slice/named.service└─15303/usr/sbin/named -u named -c /etc/named.conf
3.检验解析结果

先修改DNS服务器的DNS地址为本机地址 192.168.250.209,然后重启网络服务:

[root@mybind named]# systemctl restart network[root@mybind named]#

然后用 nslookup

  1. [root@mybind named]# nslookup

  2. > www.haopython.com

  3. Server:        192.168.250.209

  4. Address:    192.168.250.209#53


  5. Name:    www.haopython.com

  6. Address: 192.168.250.200

  7. Name:    www.haopython.com

  8. Address: ::1

  9. >

在WIN10客户端,设DNS为 192.168.250.209,然后测试:

这里测试时,在服务器上开放53的TCP和UDP端口。

  1. [root@mybind ~]# firewall-cmd --permanent --list-all

  2. public

  3.  target: default

  4.  icmp-block-inversion: no

  5.  interfaces:

  6.  sources:

  7.  services: dhcpv6-client ssh

  8.  ports: 53/tcp 53/udp

  9.  protocols:

  10.  masquerade: no

  11.  forward-ports:

  12.  source-ports:

  13.  icmp-blocks:

  14.  rich rules:


  15. [root@mybind ~]#

四.配置反向解析

反向解析的作用是将用户提交的 IP 地址解析为对应的域名信息,它一般用于对某个 IP 地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个 IP 地址进行反向解析,大致判断出有多少个网站运行在上面。

1.编辑区域配置文件
  1. [root@mybind ~]# vim /etc/named.rfc1912.zones

  2. [root@mybind ~]# cat /etc/named.rfc1912.zones

  3. zone "haopython.com" IN {

  4. type master;

  5. file "haopython.com.zone";

  6. allow-update {none;};

  7. };


  8. zone "250.168.192.in-addr.arpa" IN {

  9. type master;

  10. file "192.168.250.arpa";

  11. };


  12. [root@mybind ~]#

2.编辑数据配置文件

先从/var/named 目录中复制一份反向解析的模板文件( named.loopback), 然后进行修改

  1. [root@mybind named]# pwd

  2. /var/named

  3. [root@mybind named]#


  4. [root@mybind named]# cp -a named.loopback 192.168.250.arpa

  5. [root@mybind named]# ls -al

  6. 总用量 28

  7. drwxrwx--T.  6 root  named  1914月  1211:33.

  8. drwxr-xr-x. 21 root  root  40964月  1209:13..

  9. -rw-r-----.  1 root  named  16812152009192.168.250.arpa

  10. drwxr-x---.  7 root  named   614月  1209:13 chroot

  11. drwxrwx---.  2 named named   234月  1210:42 data

  12. drwxrwx---.  2 named named   604月  1210:42dynamic

  13. -rw-r-----.  1 root  named  2464月  1210:41 haopython.com.zone

  14. -rw-r-----.  1 root  named 22534月   52018 named.ca

  15. -rw-r-----.  1 root  named  15212152009 named.empty

  16. -rw-r-----.  1 root  named  1526月  212007 named.localhost

  17. -rw-r-----.  1 root  named  16812152009 named.loopback

  18. drwxrwx---.  2 named named    62月  2401:17 slaves

  19. [root@mybind named]#

修改如下:

  1. [root@mybind named]# vim 192.168.250.arpa

  2. [root@mybind named]# vim 192.168.250.arpa


  3. $TTL 1D

  4. @       IN SOA  haopython.com. root.haopython.com. (

  5. 0; serial

  6. 1D; refresh

  7. 1H; retry

  8. 1W; expire

  9. 3H)    ; minimum

  10.        NS      ns.haopython.com.

  11. ns      A       192.168.250.200

  12. 10      PTR     ns.haopython.com.

  13. 10      PTR     www.haopython.com.

3.检验结果解析

重启服务

[root@mybind named]# systemctl restart named[root@mybind named]#

测试:

  1. [root@mybind named]# nslookup

  2. > www.haopython.com

  3. Server:        192.168.250.209

  4. Address:    192.168.250.209#53


  5. Name:    www.haopython.com

  6. Address: 192.168.250.200

  7. > 192.168.250.200

  8. 200.250.168.192.in-addr.arpa    name = www.haopython.com.

  9. 200.250.168.192.in-addr.arpa    name = ns.haopython.com.

  10. >

第二部分:部署从服务器

一.准备工作

1.地址信息
主机名称操作系统IP地址
主DNS服务器Centos7.8192.168.250.209
从DNS服务器Centos7.8192.168.250.219
2.基本架构

二.配置从服务器

1.编辑主服务器的区域配置文件

在主服务器的区域配置文件中允许该从服务器的更新请求:

  1. [root@mybind named]# vim /etc/named.rfc1912.zones

  2. [root@mybind named]# cat /etc/named.rfc1912.zones

  3. zone "haopython.com" IN {

  4. type master;

  5. file "haopython.com.zone";

  6. allow-update { 192.168.250.219; };

  7. };


  8. zone "250.168.192.in-addr.arpa" IN {

  9. type master;

  10. file "192.168.250.arpa";

  11. allow-update { 192.168.250.219; };

  12. };


  13. [root@mybind named]# systemctl restart named

2.编辑从服务器的区域配置文件

在从服务器中填写主服务器的 IP 地址与要抓取的区域信息,然后重启服务。

为了配置方便,先从主服务器 mybind拷贝现在的配置文件到从服务器 mybind2目录下:

[root@mybind named]# scp /etc/named.rfc1912.zones root@192.168.250.219:/etc/named.rfc1912.zonesThe 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)? yesWarning: Permanently added '192.168.250.219' (ECDSA) to the list of known hosts.root@192.168.250.219's password:named.rfc1912.zones                                                                                                                                                   100%  218119.3KB/s   00:00    [root@mybind named]#

然后到从服务器进行修改:

  1. [root@mybind2 ~]# vim /etc/named.rfc1912.zones

  2. [root@mybind2 ~]# cat /etc/named.rfc1912.zones

  3. zone "haopython.com" IN {

  4. type slave;

  5. masters { 192.168.250.209; };

  6. file "slaves/haopython.com.zone";

  7. };


  8. zone "250.168.192.in-addr.arpa" IN {

  9. type slave;

  10. masters { 192.168.250.209; };

  11. file "slaves/192.168.250.arpa";

  12. };


  13. [root@mybind2 ~]#

3.检验解析结果

查看下面目录,暂时无文件:

[root@mybind2 slaves]# pwd/var/named/slaves[root@mybind2 slaves]# ll总用量 0[root@mybind2 slaves]#

然后启动bind服务

  1. [root@mybind2 slaves]# systemctl start named

  2. [root@mybind2 slaves]# systemctl status named

  3. ● named.service - BerkeleyInternetNameDomain(DNS)

  4. Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)

  5. Active: active (running) since 二 2022-04-1214:42:35 CST; 7s ago

  6. Process: 4233ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)

  7. Process: 4230ExecStartPre=/bin/bash -c if[ ! "$DISABLE_ZONE_CHECKING"== "yes"]; then/usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi(code=exited, status=0/SUCCESS)

  8. Main PID: 4235(named)

  9. Tasks: 7

  10. CGroup: /system.slice/named.service

  11. └─4235/usr/sbin/named -u named -c /etc/named.conf



  12. [root@mybind2 slaves]#

并修改从服务器的DNS地址为 192.168.250.219然后测试:

  1. [root@mybind2 slaves]# nslookup

  2. > www.haopython.com

  3. Server:        192.168.250.219

  4. Address:    192.168.250.219#53


  5. Name:    www.haopython.com

  6. Address: 192.168.250.200

  7. > 192.168.250.200

  8. 200.250.168.192.in-addr.arpa    name = ns.haopython.com.

  9. 200.250.168.192.in-addr.arpa    name = www.haopython.com.

  10. >

第三部分:DNS分离解析技术

一.准备工作

1.主机信息
主机名称操作系统IP地址
DNS服务器Centos7.8北京网络:172.16.10.17/24
上海网络:10.128.29.177
北京用户WIN10172.16.10.200/24
上海用户MAC OS10.128.29.200/24
2.架构图

二.配置分离解析

1.配置主配置文件

下面修改 bind 服务程序的主配置文件:

  1. [root@split-bind ~]# vim /etc/named.conf

  2. [root@split-bind ~]#


  3. options {

  4.    listen-on port 53{ any; };  #修改为any

  5.    listen-on-v6 port 53{ ::1; };

  6.    directory   "/var/named";

  7. dump-file   "/var/named/data/cache_dump.db";

  8.    statistics-file "/var/named/data/named_stats.txt";

  9.    memstatistics-file "/var/named/data/named_mem_stats.txt";

  10.    recursing-file  "/var/named/data/named.recursing";

  11.    secroots-file   "/var/named/data/named.secroots";

  12.    allow-query     { any; };  #修改为any


  13. 删除下面几行的根域信息:

  14. zone "." IN {

  15.    type hint;

  16.    file "named.ca";

  17. };

2.编辑区域配置文件

把区域配置文件中原有的数据清空,然后配置view规则:

[root@split-bind ~]# vim /etc/named.rfc1912.zones[root@split-bind ~]# cat /etc/named.rfc1912.zonesacl "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";};};[root@split-bind ~]#
3.建立数据配置文件

这里通过复制模板文件,创建两个不同名称的数据文件:

  1. [root@split-bind ~]# cd /var/named

  2. [root@split-bind named]# ls

  3. chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves


  4. [root@split-bind named]# cp -a named.localhost haopython.com.beijing

  5. [root@split-bind named]# cp -a named.localhost haopython.com.shanghai

  6. [root@split-bind named]#

先编辑北京配置文件

[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; serial1D; refresh1H; retry1W; expire3H)    ; 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]#

然后编辑上海配置文件

[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; serial1D; refresh1H; retry1W; expire3H)    ; minimum    NS  ns.haopython.com.ns    IN A    10.128.29.10www     IN A    10.128.29.117[root@split-bind named]#
4.结果验证

重启named服务,然后在客户机上进行验证(过程略)。


 

服务热线

1391-024-6332