DNS服务器原理及配置

域名讲解

  • www.baidu.com 完整的域名,通常.来进行分割三个部分;www是主机名,baidu是域名,com是类型
  • 主机名 + 域名 + 类型 构成完整的域名
DNS服务器分为以下几种:
- "." :完整网址中最后的那个 ".",代表DNS的根服务器,根服务器是DNS服务器中最上层的服务器,分布在全球,其中保存着该区域的所有类型的DNS服务器的ip地址
- com:是一个DNS类型
- baidu.com:baidu为域名,是com的下级dns服务器,里面保存着域名为baidu.com的所有主机对应的ip地址 DNS服务器的两种查询模式:
- 递归查询:到一个dns服务器查询到结果后就将结果返回给查询者,查询者再去查询别的DNS服务器,一次次的查询知道返回结果
- 循环查询:查询者向一个DNS服务器发起查询后由这个DNS服务器去查询别的服务器A,A又去查询服务器B,回到找到结果,然后返回给B,B返回给A,A在返回查询者
概念
  • DNS:Domain Name System 域名解析系统,作为域名和ip地址相互映射的一个分布式数据库,能够使得用户可以方便的访问互联网的过程称为域名解析
  • DNS协议运行在UDP协议之上,使用端口号为53.
  • 功能:每个ip地址都有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。
DNS映射方式
  • 静态映射:每台上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用。
  • 动态映射:建立一套域名解析系统(DNS),只在专门的DNS服务器配置主机到IP地址的映射,网络上使用主机名通信的设备,需要在DNS服务器上查询主机对应的IP地址,通过主机名最终得到该主机对应的IP地址过程称为域名解析。
DNS常用资源记录类型
  • A:地址,此记录列出特定主机名的IP地址,是名称解析的重要记录
  • CNAME:标准名称,此记录指定标准主机名的别名
  • MX:邮件交换服务器,此记录列出了负责接收到域中的电子邮件的主机
  • NS:名称服务器,此记录指定负责给定区域的名称服务器
DNS服务器类型
  • 缓存服务器:缓存dns信息,提供服务给用户查询,不能自定义域名配置进行解析
  • 主DNS服务器:负责解析本地客户端请求
  • 辅助DNS服务器:辅助服务器的区域数据都是从主服务器复制而来,其数据都是只读的
dig命令详解
  • 语法:dig -t 资源记录类型 名称 @server-ip
  • 工作机制:不加@server-ip,根据/etc/resolv.conf配置的解析文件类查询
  • 加@server-ip:根据指定的DNS服务器来解析,绕过了本地解析库设置的DNS服务器
常用命令组合
dig -x IP @server-ip 查询反向解析
dig -t 资源记录类型 名称 trace 追踪解析的过程

DNS服务器的搭建

# DNS服务器安装bind、bind-chroot、bind-utils;bind-chroot会生成一个伪根目录
# yum install -y bind bind-utils bind-chroot # 编辑配置文件/etc/named.conf
# vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; }; #注释此行 //也可修改为dns服务器的ip地址或者any
// listen-on-v6 port 53 { ::1; }; #注释此行
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
// allow-query { localhost; }; #注释此行 //也可设置为any # 启动named服务
# systemctl start named
# systemctl enable named
# netstat -ntlp #查看是否启动 # 编辑区域配置文件
# 文件位置: /etc/named.rfc1912.zones
# vim /etc/named.rfc1912.zones
新建区域:
# 配置正向解析
zone "dong.com" IN {
type master;
file "dong.com.zone";
};
# 配置反向解析;反向解析的区域名称:reverseIP.in-add.arpa
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.zone";
}; # 检查配置文件的语法
# named-checkoutconf /etc/named.conf
# named-checkoutzone zonename filename # 创建区域数据文件
# cp -p /var/named/named.localhost dong.com.zone #复制模板文件
# cd /var/named/ # 正向解析配置
# vim dong.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS @
IN A 192.168.1.10
www IN A 192.168.1.10
文件详解:
SOA是start Of Authority开始验证的意思,与域有关,后面接的7个参数及含义
1>master DNS服务器主机名,即在这个域中哪个DNS作为主服务器
2>管理员的email,即出现问题可给管理员发送邮件
3>序号,这个序号代表数据库档案的陈旧,序号越大,代表越新
4>刷新频率 refresh,即slave向master要求数据更新的频率
5>失败重新尝试时间 retry,如果因为某些因素,导致slave无法对master达成联机,那么在多久的时间内,salve会尝试重新联机到master
6>失效时间 expire,如果一直失败尝试时间,持续联机到达这个设定值时,那么slave将不在继续尝试联机
存活时间minimum ttl,如果在这个数据库zone file中,每笔记录都没有显性设定ttl快取时间的话,那么就以这个值为主
区域配置文件格式:
[名称] [TTL] [网络类型] 资源记录类型 数据
名称:指定资源记录引用的对象名,可以是主机名,也可以是域名。对象名可以是相对名称也可以是完整名称。完整名称必须以点结尾。当前域名为google,则表示www主机时,完整名称为www.google.com,相对名称为www
TTL:指定资源记录存在缓存中的时间,单位为秒。若省略,则使用文件开始的TTL所定义的时间
网络类型:常用的IN资源记录类型:SOA、NS、A、PTR、MX、CNAME;一般情况下SOA记录第一行,NS记录第二行,接着MX记录。
通常用SOA记录@,表示当前域 # vim /var/named/1.168.192.zone
$TTL 1D
@ IN SOA dong.com. admin.dong.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dong.com.
10 IN PTR dong.com. # 重启dns服务
# systemctl restart named
# 添加防火墙
# firewall-cmd --add-service=dns --permanent
# firewall-cmd --reload
# firewall-cmd --list-all # 使用命令解析
# nslookup www.dong.com
# dig -t A www.dong.com @192.168.1.10

DNS服务器配置总结

  • 每个DNS服务器必须要有一个对应的NS资源记录
  • 创建slave的时候,其配置文件类型必须是type slave,必须制定主服务器的IP地址
  • 可以使用 dig -t axfr test.com @server_ip 从主DNS服务器拉取所解析库资源记录
  • 主从同步完成后,将自动在slave服务器上的slave/目录下生成zone文件,这些区域文件是从主DNS同步过来的,一般只读
  • 在主DNS上修改区域文件时,必须将SOA记录的serial加1因为slave是通过serial值进行判断更新的
  • DNS的日志默认保存在/var/log/message文件中
  • DNS解析依赖于解析库
  • 正向解析里面没有PTR记录,反向记录库里面不需要A 、MX 和CNAME记录

区域传送原理

区域传送
  • dns从服务器是容错设计,一旦dns主服务出现故障或因负载太重无法及时响应客户机请求,从服务器将挺身而出代理主服务器。从服务器的区域数据都是从主服务器复制而来的,因此从服务器的数据都是只读的。
  • slave从master复制区域数据的过程叫做区域传送,区域传送使用的TCP的53端口
  • 区域传送的类型:完全区域传送(AXFR) 增量区域传送(IXFR)

DNS服务的安装的更多相关文章

  1. DNS服务详解

    DNS服务 目录: 一.DNS原理 二.DNS服务的安装与配置 三.DNS信息收集 一.DNS原理 1.hosts文件与DNS服务器 1.1hosts文件 目录:C:\WINDOWS\system32 ...

  2. Windows中的DNS服务——正向解析&反向解析配置 分类: AD域 Windows服务 2015-07-16 20:21 19人阅读 评论(0) 收藏

    坚信并为之坚持是一切希望的原因. DNS服务是AD域不可或缺的一部分,我们在部署AD域环境时已经搭建了DNS服务(windows server 2008 R2域中的DC部署),但是DNS服务的作用还是 ...

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

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

  4. windows虚拟机中DNS服务配置

    在linux虚拟机中进行DNS服务配置并进行正向解析反向解析我博客中已经写过,下面 我来介绍一下在windows虚拟机中DNS服务的配置使用. 1.打开一台windows虚拟机中服务器管理器——角色— ...

  5. linux之DNS服务

    1.DNS (Domain Name Service 域名解析) DNS是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网而不需要记忆能够直接被机器识别的IP. BI ...

  6. Linux_配置主DNS服务(基础)

    [RHEL8]-DNSserver:[Centos7.4]-DNSclient !!!测试环境我们首关闭防火墙和selinux(DNSserver和DNSclient都需要) [root@localh ...

  7. RHEL6安装配置DNS服务

    RHEL6安装配置DNS服务 作者:Eric 微信:loveoracle11g 安装软件包 [root@rac1 ~]# yum -y install bind bind-chroot caching ...

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

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

  9. Liunx下配置DNS服务

    当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...

随机推荐

  1. 七牛云对象存储kodo使用体验

    在这里,我使用了七牛云的对象存储Kodo,和阿里云的OSS,还有腾讯云的COS是同样的产品 oss相关术语 包依赖关系解决 unrecognized import path "golang. ...

  2. 【bzoj3343】教主的魔法

    *题目描述: 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始 ...

  3. Finer Resolution Observation and Monitoring -Global Land Cover更精细的分辨率观测和监测-全球土地覆盖

    http://data.ess.tsinghua.edu.cn/ 全球土地覆盖数据是了解人类活动与全球变化之间复杂互动的关键信息来源.FROM-GLC(全球土地覆盖的精细分辨率观测和监测)是首个使用陆 ...

  4. CF 546 B Soldier and Badges(贪心)

    原题链接:http://codeforces.com/problemset/problem/546/B 原题描述: Soldier and Badges Colonel has n badges. H ...

  5. (23)C++/Python项目练习一

    逆转字符串——输入一个字符串,将其逆转并输出. Python: def rev(s): return (s[::-1]) s =input("请输入一个字符串:") a = rev ...

  6. android发送udp,tcp消息

    发送方创建步骤: 1.  创建一个DatagramSocket对象 DatagramSocket socket = new  DatagramSocket (4567); 2.  创建一个 InetA ...

  7. Git 创建版本库并实现本地上传数据到GitHub库

    版本库又叫做仓库,其实也是一个目录,这个目录里的所有文件都是被Git管理着,对每个文件的修改,删除,Git都会进行记录,方便我们对其进行跟踪. 因为本地是window环境,我们先从官网下载好windo ...

  8. Python分析《武林外传》 -----转载

    转载原链接:http://www.cnblogs.com/fredkeke/p/8328387.html 我一向比较喜欢看武侠电影.小说,但是06年武林外传开播的时候并没有追剧,简单扫几眼之后发现他们 ...

  9. Robot Framework-DatabaseLibrary(MySql) API

    API 参数 说明 Check If Exists In Database 查询语句 数据库中存在:存在,则为PASS,不存在,则为FAIL Check If Not Exists In Databa ...

  10. 45 MySQL自增id

    45 MySQL自增id 表定义自增id 说到自增id,前面提到mysql的自增id不连续,当表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变 ; insert into t v ...