linux-DNS域名正向解析服务程序BIND安装与配置

Posted 可乐卷儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-DNS域名正向解析服务程序BIND安装与配置相关的知识,希望对你有一定的参考价值。

一、DNS系统

1、概念

  • DNS域名系统(Domain Name system缩写DNS, Domain Name被译为域名)是因特网的一项核心服务, 它作为可以将域名和IP地址相互映射的一个分布式数据库;是应用层协议,是域名也是服务
  • DNS使用的协议及端口号是TCP和UDP的53端口号
  • TCP是用来做区域传送,多用于主从同步
    在一个区中主DNS服务器从自己术机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
  • UDP是用来做DNS解析的
    FQON全称Fully Qualified Domain Name
    即全城名:同时带有主机名和域名的名称
    FQDN=Hostnane + DomainName
    如: ww. baidu. com.
    注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www. abc . com=www. abc. com.

2、作用

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的城名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。)

今天我们主要以实验的方式详细讲解正向解析的过程

3、域名系统是树形的域名树

首先DNS系统的分布式数据结构是树形,分为根域、顶级域、二层域、三层域或子域、主机名五个部分;具体看图1
例:www.sina.com.cn
在这里插入图片描述
从上往下,一层管理一层

  • 根域:位于域名空间最顶层,一般用一个".“表示根域
  • 顶级城:一般代表种类型的组织机构或国家地区, 比如com. cn. net, uk等
  • 二级域::用来标明顶级域内的一个特定的组织。国家顶级域下面的二级域名由国家网络部门统一管理,比如baidu. taobao等
  • 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名sina.com.cn
  • 主机位:位于域名空间最下层,就是一台具体的计算机,比如www,mail等
    每一级的城名长度限制是63个字符,域名总长度则不能超过253个字符

拓展小知识:

  • 顶级域:
    .com:盈利的组织,一般是盈利的企业申请
    .net:网络的组织
    .org:不盈利的组织
    .edu:教育性,比如大学的网址
    .cn:中国的
    .uk:美国的
  • 主机名:
    mail:邮件
    news:新闻
    ftp:上传下载的类

4、工作原理

这里还是给大家画一个图,方便大家的理解
在这里插入图片描述
dns服务器经过了两个过程:
递归查询:客户端-域名服务器-ip;可以直接告诉准确结果的
迭代查询:从域名服务器-根域-二级域-服务器-三级域;无法直接告知,需要一层层查
具体解析过程如下:

  1. 看本机的缓存记录
  2. 查询hosts文件
  3. 查询dns域名服务器,交给dns域名服务器处理
  4. 域名服务器查看缓存:查询缓存表有直接返回结果,没有则进行下一步
  5. 域名服务器发送请求给根域:根域通过查看域名服务器请求的地址,告知顶级服务器可能会知道结果,让其去找顶级服务器
  6. 顶级域服务器:顶级域服务器返回三级域服务器可能会知道结果,让其去找三级域服务器
  7. 三级域服务器:三级域服务器返回二级域服务器可能会知道结果,让其去找二级域服务器
  8. 二级域服务器:二级域服务器查询主机位内的缓存表,发现是我的主机,把查询到的IP地址返回给本地域名服务器
  9. 本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

//1-3的过程称为递归查询;4-9的过程称为迭代查询

5、DNS系统类型

根据所管理的区域地址数据的来源不同,DNS 系统可以分为不同的类型。在同一台DNS 服务器中,相对于不同的区域来说,也拥有不同的身份

  1. 缓存域名服务器
    域名服务器完成一套完整的工作流程之后,客户端再次寻找IP地址,这时域名服务器直接在其缓存表迅速查找到对应的IP地址,大大提升查询时的速度
    这个意思就是说在域名服务器完成一套完整的工作流程之后,客户端再次寻找IP地址,这时域名服务器直接在其缓存表迅速查找到对应的IP地址,大大提升查询时的速度
  2. 主域名服务器
    当主城名服务器出现故障,关闭或负载过重时,从域名服务器作为备份服务提供城名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自主域名服务器。负责跟主域名服务器同步,同步主域名服务器的映射内容,若主域名服务区down,也可以从从域名服务器中读取
  3. 从域名服务器
    只提供域名解析结果缓存功能,就是一个缓存

万网:专门用来买域名的网站。现已被阿里收购
14.114.114.114 电信的域名服务器
8.8.8.8 google 的城名服务器
23.5.5.5 阿里的城名服务器

在这里插入图片描述

在我们系统cmd快捷键打开命令提示符时
在这里插入图片描述
非权威应答:通过层层迭代获取ip地址
权威应答:通过递归查询获取ip地址

6、清理缓存命令

windows系统查询dns媛存命令:ipconfig /displaydns
windows系统清理dns缓存命令:;ipconfig /flushdns
iInux清dns缓存需要安装nscd软件, 启动、执行nscd -i hosts

二、DNS的安装和配置文件

以下结合试验具体讲解各配置文件
实验要求:创建域名:kkkkk.com,通过www.kkkkk.com解析到本机IP地址,以及更改域名访问网站

官方站点:https://www.isc.org/
在这里插入图片描述
以下通过实操来dns服务器解析过程

1、安装DNS服务软件:BIND软件

yum -y install bind
在这里插入图片描述
yum info bind:查询bind的版本;查询书提示程序被占用,就把程序杀死:kill -99074
在这里插入图片描述
在这里插入图片描述

  • 查看 /var/named/named.ca:记录13个根域
    vim /var/named/named.ca
    在这里插入图片描述

1.1、相关的软件包

bind         ## 提供了域名服务的主要程序及相关文件
bind-utils   ## 提供了对DNS服务器的测试工具,如nslookup等
bind-libs    ## 提供了bind,bind-utils需要使用的库函数
bind-chroot  ## 为BIND服务提供一个伪装的根目录(/var/named/chroot)以提高安全性

2、bind的配置文件

查找BIND配置文件
rpm -qc bind

/etc/named.conf:主配置文件,相当于全局配置文件
/etc/named.rfc1912.zones:区域配置文件
/var/named/named.localhost:区域数据文件的模板

在这里插入图片描述

2.1、主配置文件-named.conf

写入监听的端口和允许查询本机的地址

vim /etc/named.conf

在这里插入图片描述
注意点:any; 跟前后的大括号需要空格
在这里插入图片描述

2.2、区域配置文件-named.rfc1912.zones

主要作用:定义域名
进入区域配置文件:复制一份zone后面的内容,并更改域名
/etc/named.rfc1912.zones
file“klj.com.zone”,这里写的是配置文件存放的文件名
地址已经在全局里面配置好了 ## 这是个注意点
在这里插入图片描述

2.4、区域数据文件的模板-named.localhost

主要作用:定义主机名
/var/named/named.localhost:区域数据文件模板 :
注意点:需要把区域数据文件模板named.localhost复制到区域配置文件名里 klj.com.zone
在这里插入图片描述
cp -p named.localhost klj.com.zone #带属性复制区域数据文件: 这里复制过去的文件夹需要是区域配置文件file内命名的文件名:klj.com.zone 敲重点!!
vim /klj.com.zone
在这里插入图片描述
在这里插入图片描述

 NS hhh.com.            #记录当前区域的DNS服务器名称
 www IN A xxxIP         #记录正向解析对应的IP,叫做主机A记录
ftp  IN CNAME www       #别名,ftp是www的别名
* IN A xxxIP            #泛域名解析, “*”代表任意主机
IN MX 10 mail.xxx.xxx   #邮件交换,5表示优先级,注意与后面的域名的间隔大小,优先级0-99.数值越小越优先
mail IN A xxxIP

这里有几个注意点:

  • 需求可以直接写主机名:www,因为全称在区域配置文件配置写过了,这里可以简写
  • 认证记录NS 后面的@,可以写成“klj.com.”,在域名后面加上域根“.”,若是没有加域根,系统自动默认为klj.com.klj.com;所有为了防止写错,可以直接写@即可
  • IN :若打头的SOA写了IN,下面添加的可写可不写,若打头的没写,后面每一个都要写
  • A:代表主机记录,解析主机写A,解析出来的ip地址,任意网段ip,随便设置#这里我的本机IP是192.168.35.10

3、开启named服务

systemctl start named

查询端口开启
在这里插入图片描述

4、搭建网站

搭建网站,可以通过www.klj.com可以访问网站

  • 首先安装httpd在这里插入图片描述
  • 启用httpd服务
  • 查询端口是否开启
    在这里插入图片描述
  • 编辑网站内容
    这时网站已经开启,在网站首页内写入内容,首页的目录:/var/www/html/,查询首页目录内没有内容
    首页默认没有内容,需要编辑首页文件
index.html      #网站首页文件
/var/www/html/  #网站首页目录

在这里插入图片描述

 <h1>  #一级标题
</h1>  #html的语言

在这里插入图片描述

  • 验证网页,访问www.kkkkk.com
    在这里插入图片描述

5、配置文件检测命令

更改完配置文件之后,可以使用以下两条命令检查文件修改是否有误

named-checkconf:检测配置文件(主配置文件和区域配置文件)
-z:指定目录

在这里插入图片描述

named-checkzone:检测区域数据配置文件

在这里插入图片描述

以上是关于linux-DNS域名正向解析服务程序BIND安装与配置的主要内容,如果未能解决你的问题,请参考以下文章

Linux-dns基础知识和BIND的简单配置-1

Linux-DNS服务器:DNS介绍及BIND安装

Redhat6.5中搭建DNS域名解析服务

linux-dns

DNS域名解析服务

使用Bind提供域名解析服务(正向解析)