一、什么是DNS?
DNS即域名系统,dns服务器是进行域名和与之相对应的IP地址转换的服务器。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS使用TCP和UDP端口53。
二、DNS的查询方式
查询方式分为两种迭代查询和递归查询
2.1 递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
客户机和服务器之间的查询是递归查询
2.2 迭代查询
DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
服务器之间的查询是迭代查询
2.3 DNS的解析查询方式
DNS的查询解析方式有正向解析和方向解析
正向解析:根据主机名(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机名(域名)。
2.4 DNS的记录值
简称 | 全称 | 作用 |
---|---|---|
NS | 资源记录 | 表示该区的授权服务器 |
A | 正向解析 | FQDN解析成ip |
PTR | 反向解析 | ip解析成FQDN |
CNAME | FQDN的别名 | 使用CNAME记录来隐藏用户网络的实现细节 |
MX | 资源记录 | 邮件交换(MX)资源记录为DNS域名指定邮件交换服务器 |
FQDN: 全限定域名(Fully Qualified Domain Name),同时带有主机名和域名的名称。
三、搭建DNS服务器
3.1 配置环境
搭建好yum仓库
3.2 安装包
yum install -y bind*
3.3 修改配置文件
这里需要修改三个相关的配置
3.3.1 修改主配置
vim /etc/named.conf
options{
listen-on port 53 { 实验机的ip;};
.........
allow-query {实验机的网络地址(例:192.168.1.0/24);};
}
3.3.2 添加正向解析和反向解析的文件引导
修改完相应的主配置,将光标移动到最下面空白区
添加正向解析
zone "aaa.com" IN {
type master
file "aaa.com";
};
添加反向解析
zone "1.168.192.in-addr.arpa" IN {
type master
file: "aaa.arpa";
}
设置好所要解析ip的网段以及对应的文件名称
3.4 配置正向解析文件
3.4.1 首先切换到/var/named目录下
cd /var/named
3.4.2 将模板文件拷贝为相应的正向解析文件
cp named.empty aaa.com
3.4.3 对正向解析的文件进行配置
vim aaa.com
$TTL 1D
@ IN SOA aaa.com rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.aaa.com.
MX 10 mail.aaa.com.
www A 192.168.1.1
mail A 192.168.1.1
ns A 192.168.1.1
* A 192.168.1.100 (*为域名前缀)
A 127.0.0.1
AAAA ::1
在该文件中设置好不同格式域名对应的ip地址
3.5 配置反向解析文件
3.5.1 将模板文件拷贝为相应的反向解析文件
cp named.empty aaa.arpa
3.5.2 对反向解析的文件进行配置
vim aaa.arpa
$TTL 1D
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.aaa.com.
MX 10 mail.aaa.com.
1 PTR www.aaa.com.
1 PTR ns.aaa.com.
1 PTR mail.aaa.com.
A 127.0.0.1
AAAA ::1
对反向解析文件的配置和正向解析文件的配置恰好相反,将对应的ip对应着不同格式的域名
3.6 对解析文件的属组进行修改
chgrp named aaa.*
3.7 修改安全配置并开启相应的服务
设置selinux为非强制模式
setenforce 0
关闭防火墙
systemctl stop firewalld
启动dns服务
service named start
四、测试DNS服务器
4.1 修改本地dns为本机
vim /etc/resolv.conf
nameserver 192.168.1.1
4.2 将dns解析修改为本地dns
修改网络接口配置文件,把dhs服务器添加进去并将其设置为静态ip
vim /etc/sysconfig/network-script/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno167
UUID=bcdd3678-25f0-4f97-803d-650b85be577d
DEVICE=eno16777736
ONBOOT=yes
IPADDR0=192.168.1.1
PREFIX0=24
GATEWAY0=192.168.1.2
DNS1=192.168.1.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
4.3 验证
dig -t A www.aaa.com
4.4 如果named服务启动不起来,检测及解决
named-checkconf -z /etc/named.conf 检查配置文件
named-checkzone aaa.com /var/named/aaa.arpa 检查正向解析文件
named-checkzone 192.168.1.1 /var/named/aaa.arpa 检查反向解析文件
检查配置的文件是否有格式错误或者打错,大多数问题都是格式不对