简介

DNS是用来名字解析的,名字解析成IP地址,IP地址解析成名字,正反操作,有服务器端和客户端即 S/C

DNS是应用层协议,基于UDP/53、TCP/53端口,缺一不可

分为正向解析和反向解析/递归查询、迭代查询

注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

名称解析:主机名解析

把一种名称转换为另一种名称的过程

根据用户提供的名称,去查询解析库,以得到另一种名称

hosts:文本文件

用户自定义了对应的解析列表即要解析的FQDN与IP地址对应关系

有时候hosts很好的解决了DNS服务器访问不了的情况

如:某个域所在的权威DNS服务器出问题了,网站图片不显示等,这时候在hosts文本里写上对应的FQDN和IP地址就可。

备注:FQDN也就是我们所说的网址,如www.xxx.com

如果在本机定义了hosts文本则优先本列表,本列表没有再去DNS库查询

递归查询

用户向第一个DNS服务发请求,DNS收到后,如果它这有直接的结果就直接给你,如果没有就会向根DNS服务询问,层层询问直到问道结果返回给你,负责到底

迭代查询

上述过程中去问根,根给你推荐别人,你去问它,这就是迭代查询,不会负责到底

DNS域结构图

备注:如 www.xxx.com

www:可以是主机或别名

xxx.com:是域名

DNS服务器类型

主DNS服务器
从DNS服务器
缓存DNS服务器(转发器)

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

从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本

序列号:解析库版本号,主服务器解析库变化时,其序列递增

刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

一次完整的查询请求经过的流程:

Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

解析答案:

肯定答案:

否定答案:请求的条目不存在等原因导致无法返回结果

权威答案:你请求的dns服务器正好是负责这个链接域的dns

非权威答案:dns服务器问别人,别人告诉它的,有时候会是假的,比如国外某些网站访问不了,就是dns告诉给你一个错误的答案,不让你访问(DNS的污染,信息篡改了)

备注:名字解析成不成功和能不能上网是两码事

资源记录

区域解析库:由众多RR组成:
资源记录:Resource Record, RR
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX


SOA:
Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,
必须位于解析库的第一条记录

A:
internet Address,作用,FQDN --> IP

AAAA:
FQDN --> IPv6

PTR:
PoinTeR,IP --> FQDN

NS:
Name Server,专用于标明当前区域的DNS服务器

CNAME:
Canonical Name,别名记录

MX:
Mail eXchanger,邮件交换器

资源记录定义的格式:

语法:

name(名称) [TTL](生命期) IN(intnet记录) rr_type(资源记录的类型)value(值)

rr_type类型:有 A(ipv4)、 AAAA(ipv6)、SOA、NS(这两种最重要)

注意:

(1) TTL可从全局继承

(2) @可用于引用当前区域的名字

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询

方式响应

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值

进行定义;此仅表示通过多个不同的名字可以找到同一个主机

 

记录介绍

MX记录:邮件交换器

注意:
(1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

DNS服务器 bind配置文件说明

named.conf主配置文件说明

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
// options { // 定义全局变量
listen-on port 53 { 127.0.0.1; }; // ipv4 监听端口
listen-on-v6 port 53 { ::1; }; // ipv6 监听端口
directory "/var/named"; // 制定装载zone区域文件的目录
dump-file "/var/named/data/cache_dump.db"; // cache
statistics-file "/var/named/data/named_stats.txt"; // statistics
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; }; // 允许访问列表
recursion yes; //递归查询 dnssec-enable yes; //DNS确保应答报文的完整性
dnssec-validation yes;
dnssec-lookaside auto; /* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
}; // "}"后也得分号结束 logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
}; zone "." IN { // "."代表根区域
type hint; // 根区域的类型就为hint
file "named.ca"; // 指定zone文件,默认已经生成
}; include "/etc/named.rfc1912.zones"; //存放自定义的区域文件

备注:配置文件总体来说分为三大块选项、日志、区域

DNS服务-了解篇的更多相关文章

  1. Linux服务之DNS服务篇

    一.DNS服务概述 DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务. DNS 是一个分布式数据库,命名系统采用层次的逻 ...

  2. 移植DNS服务bind

    移植DNS服务bind 标签: makefile工作linuxbuildgcc工具 先写用于DNS的bind. 一. 移植环境 1 .硬件环境: Host : X86 PC Target : MPC8 ...

  3. 网络协议 17 - HTTPDNS:私人定制的 DNS 服务

    [前五篇]系列文章传送门: 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - ...

  4. 在k8s中搭建可解析hostname的DNS服务

    2016-01-25更新 上篇文章总结k8s中搭建hbase时,遇到Pod中hostname的DNS解析问题,本篇将通过修改kube2sky源码来解决这个问题. 1 前言 kube2sky在Githu ...

  5. DNS服务-主从架构搭建

    为了网站的可靠性,通常都会有多个DNS服务器,万一DNS服务器宕机了,可以实现DNS服务器容错 通常都会有一个主DNS服务器,后面配若干个辅助DNS服务器,这个主DNS服务器的数据库会同步给其他的DN ...

  6. linux初学者-DNS集群篇

    linux初学者-DNS集群篇 DNS服务器一般在使用时,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个DNS集群. 在DNS主服务器配置好后,需要另 ...

  7. DNS服务——正向查找区 和 逆向查找区

    前言 正向查找区,就是我们最熟知的DNS.即根据域名解析成IP 逆向查找区,即根据IP解析成域名. 他们之间的关系很像ARP和RARP 正向查找区 /etc/named.rfc1912.zones用于 ...

  8. DNS服务和BIND

    今天我们来介绍一下DNS服务,在大家的印象中DNS可能只是将域名解析为IP地址,可能其他的暂时还不太了解,希望本篇内容能帮助大家. 1.什么是DNS? DNS( Domain Name System) ...

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

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

随机推荐

  1. Java 时区(转)

    http://blog.csdn.net/wangpeng047/article/details/8560690

  2. Git - Merge: refusing to merge unrelated histories

    场景 我在本地有个代码仓库local-A,本地仓库local-A已经和一个远程仓库remote-A关联了. 接着我又在GitHub上新建了一个仓库remote-B,我希望将本地仓库local-A的本地 ...

  3. properties 文件注意事项

    不要使用""双引号包裹内容 db.validationQuery="select 1"比如上面这种是错误的,下面的是正确的写法 db.validationQue ...

  4. [BZOJ2251/BJWC2010]外星联络

    Description 小 P 在看过电影<超时空接触>(Contact)之后被深深的打动,决心致力于寻找外星人的事业.于是,他每天晚上都爬在屋顶上试图用自己的收音机收听外星人发来的信息. ...

  5. 洛谷P2473||bzoj1076 [SCOI2008]奖励关

    https://www.luogu.org/problemnew/show/P2473 https://www.lydsy.com/JudgeOnline/problem.php?id=1076 不会 ...

  6. 洛谷 P3957 跳房子

    https://www.luogu.org/problemnew/show/P3957 错误记录:1.没开longlong 2. -inf不够小 #include<cstdio> #inc ...

  7. JetSpeed2因dom4j包冲突导致PSML页面文件数据丢失

    使用JetSpeed2进行二次开发时突然出现在保存Portlet配置信息时出现PSML页面文件数据丢失的情况,几经测试,最终发现是因为Portlet中的dom4j.jar与jetspeed应用中的do ...

  8. Rasheda And The Zeriba Gym - 100283A  计算几何

    http://codeforces.com/gym/100283/problem/A 考虑到多边形是不稳定的,是可以变来变去的. 那么总是可以把每个点放到圆上. 所以只需要判断圆心角是不是小于等于36 ...

  9. Ionic之$scope 依赖注入报错

    在开发Ionic过程中,发现会报在 LoginController 中引用locals报错,具体报错问题: ionic.bundle.js:19526 Error: [$injector:unpr] ...

  10. Spring MVC 入门实例报错404的解决方案

    若启动服务器控制台报错,并且是未找到xml配置文件,初始化DispatchServlet失败,或者控制台未报错404,那么: 1.URL的排查: 格式-----------协议名://地址:端口号/上 ...