前言:

在我们平时上网中,访问的都是域名,那么域名是如何转换为IP地址的呢?进而访问我们的服务器主机的呢?这时候就需要用到DNS服务器了。DNS是由域名解析器和域名服务器组成的,域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。


那么接下就开始搭建DNS服务器吧!

1.首先搭建主DNS服务器,ch1主机配置如下:


[root@ch1 ~]# yum -y install bind        ## 安装bind程序
[root@ch1  ~]#  ntpdate 172.18.0.1                ## 同步时间服务器
[root@ch1 ~]# vim /etc/named.conf        ## 修改DNS服务器配置文件

[root@ch1 ~]# named-checkconf            ## 检查配置文件语法错误
[root@ch1 ~]# vim /etc/named.rfc1912.zones        ## 在此配置文件中添加区域

[root@ch1 ~]# vim /var/named/test.com.zone        ##在/var/named目录下建立区域数据文件

[root@ch1 named]# vim /var/named/172.18.20.zone         ## 建立反向解析区域数据文件

[root@ch1 ~]# chown :named /var/named/test.com.zone       ## 修改属组为named
[root@ch1 ~]# chmod o= /var/named/test.com.zone         ## 移除其他的权限
[root@ch1 named]# named-checkzone test.com /var/named/test.com.zone  ## 检测区域文件语法错误
[root@ch1 named]# named-checkzone 20.18.172.in-addr.arpa /var/named/172.18.20.zone
[root@ch1 named]# service named start                 ## 启动DNS服务
[root@ch1 named]# dig -t A www.test.com @172.18.20.10    ## 测试DNS服务器172.18.20.10是否能正常解析A记录
[root@ch1 named]# dig -x 172.18.20.11 @172.18.20.10      ## 测试DNS服务器172.18.20.10是否能反向解析172.18.20.11

主DNS服务器搭建完毕


2.搭建从DNS服务器,ch2配置如下


[root@ch2 ~]# yum -y install bind        ## 安装bind程序
[root@ch2 ~]# ntpdate 172.18.0.1         ## 同步时间服务器
[root@ch2 ~]# vim /etc/named.rfc1912.zones        ## 定义一个从区域

[root@ch2 ~]# named-checkconf         ## 检查语法错误
[root@ch2 ~]# service named start        ## 启动DNS服务
[root@ch2 slaves]# cat test.com.zone        ## 查看区域配置文件是否能够同步

注意:要在主DNS服务器上配置一条指向从DNS服务器的NS记录


3.配置子域


[root@ch3 ~]# yum -y install bind         ## 安装bind程序
[root@ch3 ~]# ntpdate 172.18.0.1           ## 同步时间服务器
[root@ch3 ~]# vim /etc/named.conf          ## 修改配置文件

[root@ch3 ~]# vim /etc/named.rfc1912.zones  ## 建立区域配置

[root@ch3 ~]# vim /var/named/ops.test.com.zone         ## 建立区域配置文件

[root@ch3 ~]# named-checkconf                     ## 检查语法是否错误
[root@ch3 ~]# service named start                 ## 启动服务
[root@ch3 ~]# dig -t A www.ops.test.com @172.18.20.12        ## 测试子域是否能够正常解析
[root@ch3 ~]# dig -t A www.test.com @172.18.20.12            ## 测试子域是否能够解析父域

注意:子域同样需要主DNS服务器上的授权


总结:


1. DNS是应用层协议,端口号为tcp/53和udp/53

2. DNS查询的过程

(1)客户机将查询www.test.com的信息传递到自己的首选DNS服务器。

(2)DNS客户机的首选DNS服务器检查区域数据库,由于此服务器没有test.com域的授权记            录,因此,它将查询信息传递到根域DNS服务器,请求解析主机名称。

(3)根域DNS服务器把负责解析“com”顶级域的DNS服务器的IP地址返回给DNS客户机的首选          DNS服务器。

(4)首选DNS服务器将请求发送给负责“com”域的DNS服务器。

(5)负责“com”域的服务器根据请求将负责“test.com”域的DNS服务器的IP地址返回给首          选DNS服务器。

(6)首选DNS服务器向负责“test.com”区域的DNS服务器发送请求。

(7)由于此服务器具有www.test.com的记录,因此它将www.test.com  的IP地址返回给首          选DNS 服务器。

(8)客户机的首选DNS服务器将www.test.com的IP 地址发送给客户机。

(9)域名解析成功后,客户机将http请求发送给Web服务器。

(10)Web服务器响应客户机的访问请求,客户机便可以访问目标主机。

3. DNS服务器类型

主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;

从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但                    只能进行读操作;

4. DNS区域数据库文件常见类型

SOA:起始授权记录; 一个区域解析库有且只能有一个SOA记录

NS:域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的;

A: 地址记录,FQDN --> IPv4;

AAAA:地址记录, FQDN --> IPv6;

CNAME:别名记录;

PTR:Pointer,IP --> FQDN

MX:Mail eXchanger,邮件交换器;

5. DNS的配置文件

主配置文件:/etc/named.conf

或包含"include"设定的其它文件;

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

解析库文件:

/var/named/目录下;

一般名字为:ZONE_NAME.zone

6. DNS测试工具

dig命令:

dig  [-t RR_TYPE]  name  [@SERVER]  [query options]

用于测试dns系统,因此其不会查询hosts文件;

查询选项:

+[no]trace:跟踪解析过程;

+[no]recurse:进行递归解析;

反向解析测试:    dig  -x  IP

模拟完全区域传送:    dig  -t  axfr  DOMAIN  [@server]

7. DNS中的安全相关的配置

访问控制指令:

allow-query  { }; 允许查询的主机;白名单;

allow-transfer { }; 允许向哪些主机做区域传送;默认为向所有主机;

allow-recursion { }; 允许哪此主机向当前DNS服务器发起递归查询请求;

allow-update { }; DDNS,允许动态更新区域数据库文件中内容;

转载于:https://blog.51cto.com/ch666/1762193

自己动手搭建DNS服务器相关推荐

  1. Linux DNS (2)搭建DNS服务器

    注意:实验很简单,环境很重要.大家在做实验的时候一定要注意环境的配置,不然实验做的再好最后的结果也和我们想的要的结果不一样的. 首先我们先准备环境: 虚拟机一个 RedHat5.9系统两个操作系统 我 ...

  2. Windows Server 2008 R2 搭建DNS服务器(转)

    Windows Server 2008 R2 搭建DNS服务器 将本机IP设为首选DNS服务器的地址 在dos 下分别输入 nslookup www.mydns.com 和 nslookup 192. ...

  3. Linux ENSP 搭建DHCP服务器并实现中继和Linux 下搭建DNS服务器(2个实验可跟做)

    文章目录 DHCP服务 了解DHCP服务 使用DHCP的好处 Linux 下搭建DNS服务器 实验环境 实验过程 修改DHCP配置文件 更改dns服务器名称 更改win10的IP地址 Linux &a ...

  4. linux mysql dns_Linux下搭建DNS服务器及踩坑

    DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...

  5. 使用 bind 搭建DNS 服务器

    Part 1: 使用 bind 搭建DNS 服务器 软件包: 1 2 3 4 5 6 7 ======================================================= ...

  6. linux dns服务无效,Linux下搭建DNS服务器及踩坑

    DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...

  7. Linux7中安装DNS服务,CentOS7/RHEL7搭建DNS服务器

    CentOS7/RHEL7搭建DNS服务器 DNS(域名系统)主要用于域名与IP地址的相互转换,将IP地址转换成对应的主机名或将主机名转换成与之相对应IP地址的一种机制.通过域名解析出IP地址的叫做正 ...

  8. 部署搭建DNS服务器

    部署搭建DNS服务器 域名服务器 DNS域名解析流程 域名类型 DNS主服务器搭建 正向解析配置 配置正向区域数据文件 DNS服务器测试 反向解析配置 配置反向区域数据文件 DNS服务器测试 DNS从 ...

  9. 虚拟机2012搭建DNS服务器,Windows Server2012 安装配置DNS服务器方法详解

    Windows Server2012 安装配置DNS服务器方法详解 在云服务器 Windows Server2012 上安装配置DNS服务器方法,安装与配置非常简单,在这里写个完整教程方便大家查询 一 ...

最新文章

  1. 顶尖CSS Web设计师Andy Clarke访谈
  2. xampp mysql mac_如何在mac上用终端打开XAMPP自带的MySQL
  3. 基于PyTorch的GAN框架TorchGAN:用架构级API轻松定制GAN项目
  4. 白话Elasticsearch18-深度探秘搜索技术之基于slop参数实现近似匹配以及原理剖析
  5. 设计模式-创建型-生成器
  6. 【机器视觉】 import算子
  7. java list数组排序_浅谈对象数组或list排序及Collections排序原理
  8. leetcode206. 反转链表
  9. Java中关于省略作用域报错问题分析
  10. java jtree_Java JTree
  11. 主进程中发生了一个javascript错误_知道html5 Web Worker标准吗?能实现JavaScript的多线程?
  12. 如何嗅闻交换网络和ARP骗子-ARP解释的原则
  13. 精确光源(Punctual Light Sources)
  14. 目标检测回归损失函数总结
  15. itunes一直显示正在验证iphone恢复_苹果6怎么判断基带坏了,iphone6一直搜索信号...
  16. Linux 系统中如何恢复已删除的文件?
  17. python中间件的作用_graphene-python学习笔记(12)中间件
  18. 专硕计算机考研英语一还是二,学硕只会考英语一?专硕只会考英语二?
  19. Palantir分析:「商业模式画布」、「SWOT」、「垄断特征」、以及「7个商业模式」
  20. uboot网口调试Marvell phy 88E1111

热门文章

  1. 小学生python入门-写给中小学老师们的Python入门指引
  2. 快速排序 python菜鸟教程-C 排序算法
  3. CNN 模型的参数(parameters)数量和浮点运算数量(FLOPs)是怎么计算的
  4. 光储充一体化充电站_【储能项目】深圳宝清240kW/500kWh光储充电站项目
  5. basename函数使用
  6. sersync+rsync做实时同步
  7. oracle数据库逐步学习总结【基础一】
  8. emeditor利用书签功能导出匹配结果到新文件
  9. 正则表达式匹配不包含特定字符串解决匹配溢出问题
  10. js学习笔记——在html中嵌入脚本