文章目录

  • 1. 添加一个dns服务器(只缓存)
  • 1.1 配置dns服务器
  • 1.2客户端访问
  • 1.3解析失败的原因
  • 1. 不可达
  • 2. refused拒绝
  • 3. 网络不可达:没有网关(dns已经成功)
  • 2.针对域的主服务器(企业)
  • 主要步骤
  • 3.搭建从服务器和反向DNS服务器
  • 特殊用法
  • 三. 反向解析
  • 四. 添加DNS从服务器
  • 五、从服务器安全加固


1. 添加一个dns服务器(只缓存)

没有区域服务器转发到互联网上,进行dns解析

负责专门解析qcq.com域后缀的主机

1.1 配置dns服务器

1.装包bind: yum install bind

服务名为named

启动服务systemctl start named

这样既可以将本机的dns配置删掉–网卡里面的DNS和/etc/resol.conf文件
将dns指向本机—从起网络服务
同样也可以解析域名

逻辑:本身不是dns全为服务器,会找到根—根去找(第一次慢,其次就会有缓存

有缓存:就算dns服务器的网卡断开—但服务器有缓存(依然可以解析)
但如果清除缓存rndc flush 或者 重启服务----就不能正常解析

搭建dns服务器docker 搭建dns域名服务器_搭建dns服务器docker


搭建dns服务器docker 搭建dns域名服务器_服务器_02


搭建dns服务器docker 搭建dns域名服务器_DNS_03

1.2客户端访问

让其他机器(客户端)—将dns指向该dns服务器

搭建dns服务器docker 搭建dns域名服务器_服务器_04


重启网络服务

通过dns服务器—最后也可以解析

1.3解析失败的原因

用host或者dig测试

1. 不可达

(可能是服务器53端口没有监听你所指定的dns)

rndc reload重启服务

dns服务器/etc/named.conf

localhost表示本机所有的ip

意思是让53端口提供对外服务(不然没法将eth0的ip解析为dns服务)重启服务named

搭建dns服务器docker 搭建dns域名服务器_服务器_05


搭建dns服务器docker 搭建dns域名服务器_bc_06

2. refused拒绝

搭建dns服务器docker 搭建dns域名服务器_服务器_07


查看服务器的/etc/named.conf

localhost只允许本地访问

any允许所有主机访问

192.168.245.网段

搭建dns服务器docker 搭建dns域名服务器_linux_08


rndc reload重启服务

3. 网络不可达:没有网关(dns已经成功)

搭建dns服务器docker 搭建dns域名服务器_DNS_09


用host 就可以直接看结果

搭建dns服务器docker 搭建dns域名服务器_linux_10

2.针对域的主服务器(企业)

主DNS服务器:管理和维护所负责解析的域内解析库的服务器
从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本序列号:解析库版本号,主服务器解析库变化时,其序列递增刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

负责解析magedu.com结尾的
1.打开dns主配置文件/etc/named/named.conf

zone区域
负责每个域和数据库的对应关系

数据库在/var/named下面(注意权限和属组

数据库文件格式:name [TTL] IN rr_type value 格式:参考named.localhost

-p注意权限

搭建dns服务器docker 搭建dns域名服务器_搭建dns服务器docker_11

敲.表示结束,不敲他就会给你补充域名

搭建dns服务器docker 搭建dns域名服务器_搭建dns服务器docker_12


修改完资源记录后要

在配置文件中加入/etc/named.rfc1912.zones权门用来放区域

搭建dns服务器docker 搭建dns域名服务器_服务器_13


主配置文件语法检查

named-checkconf

检查数据库文件

named-checkzone “magedu.com” /var/named/magedu.com.zone

配置生效

rndc reload 或 service named reload

搭建dns服务器docker 搭建dns域名服务器_bc_14


最后如果down客户端的网卡

依然可以解析到DNS

但是如果刷新缓存rndc flush—没有了

主要步骤

1.安装bind包
2.更改配置

vim /etc/named.conf
 listen-on port 53 { localhost; };   允许本机所有ip作为
 allow-query     { any; };   远程那些用户可以访问

搭建dns服务器docker 搭建dns域名服务器_linux_15

3.建立区域库(注意权限)

cp /var/named/named.localhost    /var/named/abc.com.zone -p
vim /var/named/abc.com.zone
$TTL 1D
@	IN SOA	master.abc.com.  admin.abc.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	master
master.abc.com. A 192.168.245.129
ftp A 1.1.1.1
db A 2.2.2.2
www CNAME websrv
websrv A 192.168.245.10
websrv A 192.168.245.20

4.配置区域

/etc/named.conf或/etc/named.rfc1912.zones

vim  /etc/named.rfc1912.zones
zone  "abc.com" {
    type master;
    file "abc.com.zone";
};

5.主配置文件语法检查:named-checkconf
检查数据库文件:named-checkzone “abc.com” /var/named/abc.com.zone
配置生效:rndc reload 或 service named reload

6.配置客户端
也可以不用改配置文件 在测试时用host 后面用@指定dns服务器

指定dns为DNS服务器

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.245.129

重启服务service network restart
这样就可以实现dns解析
用host,或dig命令测试
在测试时用host 后面用@指定dns服务器

host www.baidu.com @192.168.245.129

3.搭建从服务器和反向DNS服务器

特殊用法

注意:次序(有优先级关系)

访问网站不写www.
直接写后面的baidu.com就可以访问
方法:
直接用baidu.com A ip 也可以用 @ A ip 这里的@代表域名

www写错解决方案敲太多的wwwwww

nslookup解决(windows和linux都支持)

在配置文件中用* A 3.3.3.3 将所有错误的后缀都解析(范域名解析)

搭建dns服务器docker 搭建dns域名服务器_DNS_16

将host$ 全部解析为 1.2.3.$,也就是将host$.abc.com--->1.1.1.$
$表示数字
$GENERATE 1-254 HOST$ IN A 1.2.3.$

三. 反向解析

ip——————>FQDN

用host -t ptr或dig -t ptr解析

ip 反向写

搭建dns服务器docker 搭建dns域名服务器_DNS_17

配置文件/etc/named.rfc1912.zones
也就是解析192.168.245网段

搭建dns服务器docker 搭建dns域名服务器_搭建dns服务器docker_18

建立库文件
要修改该文件权限named组和640权限

vim /etc/named/192.168.245.zone

网段可以省略不写----默认为@-----就是文件名

搭建dns服务器docker 搭建dns域名服务器_bc_19

用-t

或者-x选项反向解析

搭建dns服务器docker 搭建dns域名服务器_服务器_20

搭建dns服务器docker 搭建dns域名服务器_服务器_21

四. 添加DNS从服务器

主从服务器更新(前提是主的版本号,大于从服务器的)
1.推----根据主服务器的更新----主动更新从服务器
2.拉----从服务器—自己跑到主服务器上去更新

避免主服务器宕机

1.在另一台机器上配置

步骤与组dns服务器一样
装包–配置named.conf

cd /usr/local/bind/etc\

vim named.conf
#最下面添加一段
zone "abc.com" IN {
        type slave;
        masters { dns-master主机ip; };
        file "abc.com.zone";
};

#在iotions字段打开
options {
    allow-query{ any; };
    allow-query-cache { any; };

然后直接重启named服务
就会在/var/named/slaves/就会生成该文件(加密的)

2.主服务器配置

给主服务器里面加入从服务器的信息

搭建dns服务器docker 搭建dns域名服务器_linux_22

修改主服务器里面的信息—那么就会在从服务器里面同步

搭建dns服务器docker 搭建dns域名服务器_bc_23


修改版本号—给他加一级

搭建dns服务器docker 搭建dns域名服务器_DNS_24

重启服务 rndc reload

从服务器就会自动更新

客户端
需要配置DNS为从服务器的,或主服务器的

五、从服务器安全加固

如果不设置,任何主机都可以访问DNS的信息

其他人就可以随意抓取dns信息

dig -t axfr magedu.com @10.10.10.11

解决方案:在主DNS服务器 中设置
在/etc/named/named.conf

1.只有自己的从服务器才能访问

从服务器地址

搭建dns服务器docker 搭建dns域名服务器_DNS_25

2.从服务器安全配置:防止其他人访问从服务器得到DNS信息

在从服务其中配置

通过从服务器获得DNS

搭建dns服务器docker 搭建dns域名服务器_服务器_26

不允许 其他人和 从节点同步

搭建dns服务器docker 搭建dns域名服务器_bc_27