Fedora 35 部署DNS主从和分离解析 —— 筑梦之路

参考文章: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 查看本文章
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服务,然后在客户机上进行验证

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/124128593