CentOS 8 搭建DNS服务器(正向解析&反向解析)

一、概述

DNS域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

二、域名结构(FQDN)

FQDN全称:Fully Qualified Domain Name
即全域名:同时带有主机名和域名的名称(通过符号“.”)
FQDN = Hostname + DomainName
例如:主机名是www,域名是baidu.com,那么它的FQDN就是www.baidu.com
在这里插入图片描述
注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.
在这里插入图片描述

1、顶级域名分类

  • 国家顶级域:cn(中国),jp(日本),uk(英国),us(美国)
  • 通用顶级域:com(商业机构),net(网络服务机构),gov(政府机构),org(非盈利性组织)
  • 基础结构顶级域:arpa(从ip到域名的反向解析)

三、域名解析流程

在这里插入图片描述

1、查询方式

(1)递归查询

如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询,而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

(2)迭代查询

当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

2、解析方式

(1)正向解析

正向解析:根据域名解析ip

(2)反向解析

反向解析:根据ip解析域名

3、服务器类型

  • 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率
  • 主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权
  • 从域名服务器:与主域名服务器提供完全相同的解析服务,相当于热备,解析结果都是一样的,但他的解析结果不是自己决定的,而是来自于主域名服务器,构建从域名服务器时需要指定主域名服务器的位置,以便能自动同步区域的地址数据库

4、记录类型

  • A记录(Address)正向解析

A记录是将一个主机名(全称域名FQDN)和一个IP地址关联起来。这也是大多数客户端程序默认的查询类型。

  • PTR记录(Pointer)反向解析

PTR记录将一个IP地址对应到主机名(全称域名FQDN)。这些记录保存在in-addr.arpa域中。

  • CNAME记录(Canonical Name)别名

别名记录,也称为规范名字(Canonical Name)。这种记录允许您将多个名字映射到同一台计算机。

  • MX记录(Mail exchange)

MX记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。MX记录也叫做邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。
当有多个MX记录(即有多个邮件服务器)时,则需要设置数值来确定其优先级。通过设置优先级数字来指明首选服务器,数字越小表示优先级越高。

  • NS记录(Name Server)

NS(Name Server)记录是域名服务器记录,也称为授权服务器,用来指定该域名由哪个DNS服务器来进行解析。

四、搭建DNS服务器

1、正向解析

实验环境:CentOS 8
DNS服务器IP地址:192.168.245.141

yum -y install bind*
yum安装bind(提供域名的DNS服务程序,应用最广)
在这里插入图片描述
rpm -qc bind
#查看配置文件,DNS主要有三个,都很重要,主要就是配置这3个文件
在这里插入图片描述
vim /etc/named.conf
第一步:首先打开主配置文件进行全局配置(监听范围,访问控制等)
在这里插入图片描述
directory “/var/named”; #定义了区域数据文件的位置
include “/etc/named.rfc1912.zones”; #表示访问主配置文件的时候会也去找区域配置文件
第二步:配置区域文件 /etc/named.rfc1912.zones配置域名为yjs.com,数据配置文件为/var/named/yjs.com.zone,因为之前在主配置文件中定义过directory指向/var/named,所以这里只需要写上具体文件名即可

zone "yjs.com" IN {
        type master;
        file "yjs.com.zone";
        allow-update { none; };
};

在这里插入图片描述
在这里插入图片描述
cp -p named.localhost yjs.com.zone
#带所有属性的拷贝文件named.localhost为yjs.com.zone即区域数据文件,因为属组是named而不是root,不加-p操作的话拷贝过来的属组是root会影响服务启动
在这里插入图片描述
vim yjs.com.zone
#配置区域数据文件,将具体的ip地址写进去与域名对应

主要参数解析:
www后面会自动补全域名
IN:internet
A:address的意思,后面跟ip地址
@:指代域名,也可以写准确的域名
admin.yjs.com. 是管理员邮箱,因为@已经被使用所以原本@的地址用.代替了
在这里插入图片描述
setenforce 0
iptables -F
#需要关闭selinux与清空防火墙规则
在这里插入图片描述
netstat -anpt | grep 53
netstat -anpu | grep 53
#查看53端口的状态是否正常开启
在这里插入图片描述
最后别忘了设置域名服务器,指定自己的ip地址
在这里插入图片描述
验证可以正常解析www.yjs.com
在这里插入图片描述
nslookup同样也可以解析
在这里插入图片描述

(1)网站使用域名访问

实验环境:
DNS服务器:CentOS 8
ip地址:192.168.245.141

网站服务器:CentOS 7.6
ip地址:192.168.245.140

客户端:win10
ip地址:dhcp自动获取
DNS:192.168.245.141

客户机和服务器虚拟机网卡都设置NAT模式绑定vmnet8

第一步:把win10客户机的dns取消自动获取,设置为192.168.245.141
在这里插入图片描述
第二步,因为DNS已经配置好并启动,测试可以解析域名www.yjs.com
在这里插入图片描述
第三步:在网站服务器(192.168.245.140)上安装apache
yum -y install httpd
在这里插入图片描述
vim /var/www/html/index.html
#自定义默认网页内容为welcome!在这里插入图片描述

启动apache服务,在win10上访问域名,可以访问网页
在这里插入图片描述

(2)正向解析的其他类型

只需要直接配置区域数据文件即可,加入邮件交换、别名、泛域名的域名和ip对应关系
在这里插入图片描述
在这里插入图片描述
systemctl restart named
#配置文件已经改变,需要重启DNS服务
在这里插入图片描述
用host测试本地可以解析
在这里插入图片描述

2、反向解析

在这里插入图片描述

zone "245.168.192.in-addr.arpa" IN {
        type master;
        file "yjs.com.local";
        allow-update { none; };
};

245.168.192的最后一段写在yjs.com.local文件里
在这里插入图片描述
同样是拷贝模板文件为区域数据文件
在这里插入图片描述
vim /var/named/yjs.com.local
14 IN PTR www.yjs.com.
在这里插入图片描述
测试用本地DNS服务器可以解析成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shengjie87/article/details/107165303