1  什么是DNS? 

  DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

2 DNS工作方式

  递归查询  #若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
  迭代查询 #根据客户机向非权威域名服务器提交域名解析查询请求后,逐级进行查询直到查到结果或者没有得到结果,都将最终结果传送给客户机的行为。
  说明:假设你要寻找一家你从未去过的公司,你会有2种解决方案,1是找一个人替你问路,那可能是你的助手,2是自己问路,每走过一个路口,就问一个人,这就好比递归查询和迭代查询,递归查询在这里代表你的第1种解决方案,而迭代则是第2种解决方案。

3 DNS应用层协议及端口

  使用的协议有两种,TCP和UDP协议,端口是53,TCP协议负责主从服务器同步记录,UDP协议除了负责主从同步记录并且负责查询工作。

4  DNS服务器类型

  主DNS服务器:管理和维护所负责解析的域内解析库的服务器

  从DNS服务器:从主服务器或从服务器复制解析库副本

  序列号:解析库版本号,主服务器解析库变化时,其序列递增刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔                        重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔过期时长:从服务器联系不到主服务器时,多久后                         停止服务

  “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

5 DNS解析流程

   一次完整的查询请求经过的流程:Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->         二级域名DNS…
  centos6.9版本里,提供DNS域名解析服务的默认组件是bind,可以用 yum info bind 查询当前安装包库里的bind版本信息,其服务名是named,主要文件如下:
 
 在/etc/named.conf文件里可以修改DNS相关参数
 
named-chkconf命令可以检测named.conf文件的语法错误。
/etc/resolv.conf           #文件里存的是本机的DNS服务器地址
 dig www.qq.com @127.0.0.1     #查询www.qq.com对应的IP地址,@后边跟地址意思是向那个地址的DNS服务器查询
 
区域数据库的增加及修改,此文件位置在/etc/named.rfc1912.zones,在相对应的格式下添加自己的域名,比如我们这里要添加一个chykj.com的主域名解析记录

 zone "chykj.com" IN {         #此处填上你的域名信息
type master;   #因为是主解析服务器,所以这里应该是master类型                                                                                
file "chykj.com.zone" #此处填你此域名数据库文件名字,相对应的在/var/named下边也要创建你的同名文件,格式参考/var/named/named.localhost文件
allow-update { none; };   #是否允许从解析服务器同步更新
};
 cp -p /var/named/named.localhost /var/named/chykj.com.zone  #将named.localhost作为模板,复制一份名字为chykj.com.zone,文件属性要相同所以这里-p

这两个文件改完了,可以用named-checkconf来检测有没语法错误。

解析库文件语法检查:
named-checkzone "chykj.com" /var/named/chykj.com.zone
rndc status|reload ;service named reload      

这两步都做完了,切记启动named服务,不然会报错,如果启动服务还报以下错误。

运行 rndc reload 提示 rndc: neither /etc/rndc.conf nor /etc/rndc.key was found

解决方法:  1  rndc-confgen -r /dev/urandom -a    #手动创建key

       2 chown root:named /etc/rndc.key     #修改rndc.key 文件属主

       3 chmod 644 /etc/rndc.key        # 修改rndc.key 读权限  

       4 /etc/init.d/named restart         # 重启named 服务

建立主从域名服务器:

1 yum install bind                  #安装bind服务
systemctl start named                #启动服务
systemctl enable named               #开启开机自启动

2 vim /etc/named.conf                #修改主配置文件
listen-on port 53 { localhost; };
allow-query { any; };                 #允许所有人查询

3 vim /etc/named.rfc1912.zones            #修改rfc配置文件

zone "chykj.com" IN {            
type master;                     #设置其为主域名服务器
file "chykj.com.zone";                 
};

4 vim /var/named/chykj.com.zone            #修改区域数据库文件
$TTL 1D                       #本段域,刷新周期为1天
@ 2D IN SOA dns1 admin.chykj.com. (          #SOA记录,声明dn1为主域服务器,邮件服务器为admin.chykj.com. (如果要添加域名后缀,需在后缀加.)
2017 ; serial                              #标签为2017
86400 ; refresh                    #主从服务器更新周期为86400秒即1D
1H ; retry                       #如果从主联系失败后,每隔1小时重新尝试连接更新
1M ; expire                       #
3H ) ; minimum
NS dns1
dns1 2D A 192.168.25.107
websrv A 192.168.25.106
www CNAME websrv

chgrp named /var/named/chykj.com.zone         #修改文件属组为named组

5
named-checkconf
named-checkzone chykj.com /var/named/chykj.com.zone   #此两项为检查配置文件语法正确与否
systemctl restart named                 #重启服务生效

测试命令dig

dig [-t type] name [@SERVER] [query options]
dig只用于测试dns系统,不会查询hosts文件进行解析
 查询选项:
+[no]trace:跟踪解析过程 : dig +trace chykj.com
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP = dig –t ptr reverseip.in-addr.arpa
模拟区域传送:
dig -t axfr ZONE_NAME @SERVER
dig -t axfr chykj.com @10.10.10.11
dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1
dig -t NS . @114.114.114.114
dig -t NS . @a.root-servers.net

========================================================================

域名反向解析

1 修改/etc/named.rfc1912.zones         #修改区域数据库

 zone  "40.18.172.in-addr.arpa" IN {      #建立一个172.18.40.0段的反向解析
type master;             
file "172.18.40.zone";
};

2  在/var/named目录下建立一个172.18.40.zone配置文件

 $TTL  1D
@ IN SOA dns1.chykj.com. admin.chykj.com. ( 10m 2m 1h 3h )
NS dns1.
PTR dns1.chykj.com.
PTR dns3.chykj.com.
PTR chykj.com.

=================================================

创建转发服务器

(1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器
Options {
forward first|only;
forwarders { ip;};
};

#first选项:如果A向B提交一个域名解析请求,B会去网络找地址,如果找不到地址,则A机器会亲自去互联网或者根DNS找地址。

#only选项:如果A向B提交一个域名解析请求,B如果找不到地址,则此次解析任务就失败,A也不会去互联网继续找。

(2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};

以上操作均是在/etc/named.rfc1912.zones修改

--------------------------------------------------------------

根服务器建立是在/var/named/named.ca 修改

然后将此文件都传到各自角色的机器里即可。

centos的DNS服务工作流程及搭建的更多相关文章

  1. KaliLinux常用服务配置教程DHCP服务工作流程

    KaliLinux常用服务配置教程DHCP服务工作流程 DHCP服务工作流程如图1.1所示. 具体的工作流程如下所示: (1)DHCP客户端以广播的方式发出DHCP Discover报文. (2)所有 ...

  2. 关于dns服务工作的原理,和配置的细节理解。

    dns服务器相关 1,dns原理,也就是迭代,和递归查询.将域名解析为ip的过程. 一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Loc ...

  3. struts2系列(一):struts2入门(struts2的产生、struts2的工作流程、搭建struts2开发环境)

    一. struts2的产生 struts1的缺点:                         1. ActionForm过多,而且这个ActionForm在很大程度上又和VO(POJO)重复  ...

  4. centos 构建dns服务 dnsmasq

    1 安装yum -y install dnsmasq开放udp tcp 53 端口2,修改配置文件 dnsmasq.conf# grep -Ev "^$|^[#;]" /etc/d ...

  5. 简单web服务工作流程梳理

       一.用户访问web基本流转过程梳理 二.web框架粗略概括

  6. centos搭建dns服务

    原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles ...

  7. 云原生学习筑基 ~ 组网必备知识点 ~ DNS服务

    @ 目录 一.为啥写这篇文章? 二.DNS的作用 三.域 四.DNS工作原理 五.搭建DNS服务器 5.1.Bind 5.2.系统环境准备 5.3.安装 5.4.查看bind的相关文件 5.5.查看b ...

  8. k8s中的dns服务发现

    一.dns服务 1.解决的问题 为了通过服务的名字在集群内进行服务相互访问,需要创建一个dns服务 2.k8s中使用的虚拟dns服务是skydns 二.搭建 1.创建并应用skydns-rc.yaml ...

  9. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

随机推荐

  1. 解决JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer问题

    ** 错误1: **在eclipse中新创建一个web项目的时候项目下的JSP文件中会爆出错误:The superclass “javax.servlet.http.HttpServlet” was ...

  2. 如何使用Android Studio与夜神模拟器开发调试

    (1)运行夜神模拟器, (2)打开命令行窗口, (3)打开到夜神安装目录(如cd D:\Program Files\NOX\Nox\bin)本人安装的目录, (4)执行命令:nox_adb.exe c ...

  3. [BZOJ3456]城市规划:DP+NTT+多项式求逆

    写在前面的话 昨天听吕老板讲课,数数题感觉十分的神仙. 于是,ErkkiErkko这个小蒟蒻也要去学数数题了. 分析 Miskcoo orz 带标号无向连通图计数. \(f(x)\)表示\(x\)个点 ...

  4. Who is better?

    徐州网络赛A 所谓斐波那契博弈 考场推了个假规律自闭== import java.math.BigInteger; import java.util.ArrayList; import java.ut ...

  5. D. Treasure Island

    D. Treasure Island dfs大法好== 写半天bfs疯狂MLE dfs标记掉路上的一些点 然后再跑一遍dfs #include<bits/stdc++.h> using n ...

  6. Hive数据导入Elasticsearch

    Elasticsearch Jar包准备 所有节点导入elasticsearch-hadoop-5.5.1.jar /opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12 ...

  7. 火狐使用阿里云OOS上传图片报错:“XML 解析错误:找不到根元素”

    问题描述: 使用阿里云OOS上传图片在火狐浏览器报错 "XML 解析错误:找不到根元素",但不影响功能的使用.阿里云返回信息: <Error> <Code> ...

  8. 《Effective Java》读书笔记 - 3.对于所有对象都通用的方法

    Chapter 3 Methods Common to All Objects Item 8: Obey the general contract when overriding equals 以下几 ...

  9. (转)IIS Express介绍与使用

    IIS Express是什么?IIS Express是为开发人员优化的轻量级.自包含版本的IIS.IIS Express使使用当前最新版本的IIS来开发和测试网站变得容易.它具有IIS 7及以上的所有 ...

  10. React Native商城项目实战04 - 封装TabNavigator.Item的创建

    1.Main.js /** * 主页面 */ import React, { Component } from 'react'; import { StyleSheet, Text, View, Im ...