概念
DNS (Domain Name System)域名解析服务器
linux 常用软件 BIND;另译 Berkeley Internet Name Domain
作用:
通过将主机名(FQDN Full Qualified Domain Name, 完全限定域名 )解析为IP 地址;IP地址解析成主机名的服务软件,这个过程叫名称解析(Name Resolving),在背后查询数据记录集得到结果
示例
FQDN ==> IP (正向解析) www.example.com –> 10.0.0.1
IP ==> FQDN (反向解析) 10.0.0.1 –> www.example.com
相关内容
IANA: 互联 地址名称分配机构(美国机构),通过维护,申请IP地址+FQDN(只有先后;申请后别人没办法使用相同域名)
ICNAA: 授权机构,区域授权;授权给组织域,国家域自行管理
域
根域 “.”
根域名服务器(英语:root name server)是互联 域名解析系统(DNS)中最高级别的域名服务器,负责返回顶级域的权威域名服务器地址。它们是互联 基础设施中的重要部分,因为所有域名解析操作均离不开它们。由于DNS和某些协议(未分片的用户数据 协议(UDP)数据包在IPv4内的最大有效大小为512字节)的共同限制,根域名服务器地址的数量被限制为13个。 —- 维基百科
13个根的地址.jpg
dig 命令用法在下半部分说道,或自己看下linux命令dig用法
例如:
www.example.com. 其中的.表示的就是根域
域是有授权跟上下级关系的,根将组织域的管理授权给组织域自己管理,根只知道自己的直接下级,或者说是授权下级,并不知道自己的下下级是谁。比如,根将.com授权给.com域自己来管理,并在根的ns服务器中记录.com域的ns服务器地址(下文会介绍一些相关概念)
组织域
组织域 (TLD: Top Level Domain 顶级域)
TLD(组织域)常见域:
组织域:.com .org .net .cc ……
国家域:.cn .jp .iq .ca ……
反向域:IP –> FQDN(正向解析跟反向解析不在同一个数据库中查询)
反向:IP –> FQDN
正向:FQDN –>IP
NS服务器
客户端请求一个主机的时候,通常是交由这个域下的ns服务器解析(不考虑hosts文件,配置啥的),ns服务器查看当前本地是否有该域名解析结果的缓存,如果没有就去找根.,比如www.example.com,如果本地没有该域名解析的结果就去找根,根只知道自己的直接下级中的.com,根返回参考答案.com 的ns地址,然后ns服务器就去找.com 域下的ns服务器,.com 发现自己的域下有.example 的记录,然后返回.example 下的ns服务器地址,然后ns服务器再去找.example 域下的ns服务器,找www,然后.example 域下的ns服务器直接返回最后结果。
相关概念:
递归(根是不给任何人递归的):
客户端 –> 根.服务器 –>,根.服务器–> .com服务器 ,根.服务器–> .example服务器
大致理解成:A问B1+1=B说我不知道C知道,B去问C,B告诉A等于2。在这过程中A只发出一次请求,B发出了两次最后得到答案
迭代:
客户端 –> 根.服务器 ,客户端–> .com服务器 ,客户端–> .example服务器
大致理解成:A问B1+1=B说我不知道C知道,A去问C,C告诉A等于2。在这过程中B只发出一次请求,A发出了两次最后得到答案
权威答案:ns服务器返回自己直接域或子域下的域
非权威答案:ns服务器返回非自己直接域或子域下的域
NS服务器
大致理解成,根将.com域授权给.com管理,但是要在根服务器的NS服务器中留下一个记录,让客户端来查询的时候好返回并告诉.com域中NS服务器的地址。你理解成管理员也行,就像我问你XX小学三年级有没有个叫张三的,XX小学相当域根.,三年级相当于.com域,张三相当于.example域,而NS服务器就相当于这个班的班主任(管理员),你问班主任他肯定知道有没有。
DNS服务器类型
主DNS服务器:
数据(记录,配置)的修改
辅助DNS服务器服务器:
请求数据同步(通过主版本 的变更,或者主通知从修改)涉及axfr/ixfr 完全/增量
serial number: 版本 (不超过十位)
refresh : 定义每隔多少时间检查主版本 时间
retry: 重试时间(refresh没有响应)
expire: 过期时间(主宕机)
nagative answer TTL: 否定答案缓存时长(该解析没有结果)
缓存DNS服务器
转发器
NS服务器数据库中的每一个条目称作一个资源记录(Resource Record,RR)
资源记录的格式:
NAME(名称) [TTL]
TTL(失效时间)
IN(表明Internet上的记录)
RRT(资源记录类型)
VALUE(值)
资源记录类型(RRT)
SOA (Start Of Authority;起始授权记录)
格式:ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAIL( serial number refresh retry expire nagative answer TTL )
时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
邮箱地址:admin@example.com 写为–> admin.example.com @有特殊含义
域跟区域
域(Domain):一个逻辑概念
区域(Zone):不太好解释,他们有包含关系,又好像没有关系。
一个域中可以分为多个区域,但一个区域又能指向一个域。就好像根区域文件中定义.com域记录,但是.com域中有可以有多个区域。额。。。我也是看视频理解的,这个不太好描述
区域文件:
一般都会定义两个区域文件正向区域文件和反向区域文件
正向区域文件:
example.com. 600 IN SOA ns1.example.com. admin.example.com. (20171122 1H 5M 1D 3H )
简写:
@ 600 IN SOA ns1 admin ( 20171122 1H 5M 1D 3H )
应该可以,我是试了下,dig了下正常解析没有 错
反向区域文件(假如当前172.17.0.0/16段 络, 段反过来加后缀,后缀固定):
0.17.172.in-addr.arpa 600 IN SOA ns1.example.com. admin.example.com. (20171122 1H 5M 1D 3H )
简写:
区域传送方式 (主dns服务器传送更新数据至从dns服务器 ):
完全区域传送(同步所有):axfr
增量区域传送(同步修改):ixfr
区域类型:
提示区域(定义根在什么地方):hint
主区域:master
从区域:slave
转发区域(不需要通过根查询,直接配置需要查询域内的ns服务器地址):forward
BIND:Berkeley Internet Name Domain(ISC 维护)
配置文件:
/etc/named.conf:定义BIND进程的工作数据,区域文件定义
/etc/rndc.key:定义rndc访问秘钥
/etc/rndc.conf:rndc访问配置文件
/var/named/:区域数据文件存放位置
/etc/rc.d/init.d/named {start|stop|restart|status|reload|configtest}:二进制启动文件
启动进程:named
监听协议及端口:
53/UDP:查询,解析
53/TCP:主从同步数据传输
953/TCP:rndc访问时使用端口
/etc/named.conf 配置文件解析(主要options、zone、view),options 参数选项解析
zone 参数选项解析
view 参数选项解析(定义视图实现智能dns解析)
一旦定义视图,zone都要定义在视图中
案例:
1:搭建单区域DNS服务器
1.1 问题
本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问 站。测试阶段主要提供以下正向记录:
1.svr7.tedu.cn —> 192.168.4.7
2.pc207.tedu.cn —> 192.168.4.207
3.www.tedu.cn —> 192.168.4.100
配置完成后在客户机上验证查询结果。
1.2 方案
快速构建DNS服务器的基本过程:
1.安装 bind、bind-chroot 包
1.3 步骤
步骤一:配置DNS服务器svr7
1)安装 bind、bind-chroot 包
2)建立主配置文件 /etc/named.conf
3)建立地址库文件 /var/named/tedu.cn.zone
4)启动 named 服务,并设置开机自启
步骤二:配置DNS客户机pc207并测试
1)修改配置文件/etc/resolv.conf,指定默认使用哪一台DNS服务器
2)使用host命令查询,提供目标域名作为参数
使用host测试DNS查询结果时,如果不方便修改/etc/resolv.conf文件,也可以采用“host 目标域名 DNS服务器地址”形式临时指定使用哪一台DNS服务器。
2.特殊DNS解析
2.1 问题
沿用案例1,本例要求掌握DNS轮询、泛域名解析的配置,实现的目标如下:
1.为站点 www.tedu.cn 提供DNS轮询解析,三台Web服务器节点的IP地址分别为:192.168.4.100、192.168.4.110、192.168.4.120
2.配置泛域名解析实现以下解析记录:任意名称.tedu.cn —> 119.75.217.56
2.2 方案
DNS轮询:FQDN —> IP地址1、IP地址2、… …
泛域名解析(站点名不确定):多个FQDN —> 一个IP地址
2.3 步骤
步骤一:配置DNS轮询
1)修改DNS服务器上tedu.cn区域的地址库文件,在末尾添加轮询地址记录
2)重启系统服务named
3)在客户机pc207上测试轮询记录
针对目标www.tedu.cn执行多次查询,观察第1条结果的变化:
步骤二:配置多对一的泛域名解析
1)修改DNS服务器上指定区域的地址库文件,在末尾添加*通配地址记录
2)重启系统服务named
3)在客户机pc207上测试多对一的泛域名解析记录
当查询未知站点(地址库中没有明确记录)时,以 * 对应的IP地址反馈:
3.配置DNS子域授权
3.1 问题
沿用案例1,本例要求为上下级两个DNS区域建立父子关联,实现客户机向父DNS也可以查询到子域内的FQDN,基本要求如下:
1.构建父DNS(tedu.cn)服务器
2.构建子DNS(bj.tedu.cn)服务器
3.在父DNS上配置子域授权
4.测试子域授权查询
3.2 方案
为一个DNS区域添加授权子域时,需要修改此区域的地址库,添加以下记录:
1.子域域名. IN NS 子DNS的FQDN.
2.子DNS的FQDN. IN A 子DNS的IP地址
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:构建父DNS(tedu.cn)服务器
1)将svr7配置为父DNS服务器,确认配置
主配置文件/etc/named.conf:
正向地址库文件:
确保服务已启用:
2)测试 —— 向父DNS可成功查询到父区域中的站点
步骤二:构建子DNS(bj.tedu.cn)服务器
1)将pc207配置为子DNS服务器,确认配置
安装软件包bind、bind-chroot:
建立主配置文件/etc/named.conf:
建立地址库配置文件:
2)启动系统服务named,并设置开机自启
3)测试 —— 向子DNS可成功查询到子区域中的站点
步骤三:在父DNS上配置子域授权
1)测试 —— 未配置子域授权时,向父DNS无法正确查询到子区域中的站点
若父DNS配置有 * 泛域名,则反馈的结果为对应的IP地址119.75.217.56,而不是子DNS中记录的1.2.3.4:
若父DNS未配置有 * 泛域名,则找不到解析结果(not found):
2)修改父DNS区域tedu.cn的地址库,添加授权子域信息
步骤四:测试子域授权查询
测试 —— 成功配置子域授权以后,向父DNS可以正确查询到子区域中的站点:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!