内网DNS服务安装使用系列教程(一)介绍

什么是 DNS ?

1. DNS 服务介绍


DNS(Domain Name System,域名系统),因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

  • DNS 协议运行在UDP和TCP之上,使用53号端口
  • 其中在DNS解析查询时用到UDP协议,而在主从传递区域数据库文件时,用到TCP协议

2. 互联网域名结构


一般结构
  • 主机名.二级域名.顶级域名.根
  • www.code404.icu.
管理方式
  • Internet 的顶级域名由 Internet 网络协会域名注册查询负责网络地址分配的委员会进行登记和管理
  • 它还为 Internet 的每一台主机分配唯一的 IP 地址
    在这里插入图片描述

3. DNS 的功能


每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相对直观有意义的主机名就行了。

主机名到 IP 地址映射的两种方式
  • 静态映射
    /etc/hosts文件
    在每台设备上都有主机到IP的映射关系,只供此设备使用
  • 动态映射
    /etc/resolv.conf文件

指通过DNS服务器配置主机到IP的映射关系

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# cat /etc/resolv.conf
nameserver 172.16.242.2
解析方式 – FQDN(Full Qualified Domain Name)
  • 正向 ==> FQDN –> IP
  • 反向 ==> IP –> FQDN
  • 权威
  • 非权威
解析顺序

在解析域名时,首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法
在这里插入图片描述

一次完整的查询请求经过的流程
在这里插入图片描述

4. 技术实现


DNS通过允许一个名称服务器把他的一部分名称服务,众所周知的zone,委托给子服务器而实现了一种层次结构的名称空间,成为子域授权机制。

  • DNS还提供了一些额外的信息,例如系统别名、联系信息以及哪一个主机正在充当系统组或域的邮件枢纽
  • 任何一个使用IP的计算机网络可以使用DNS来实现他自己的私有名称系统。
实现 DNS 的软件
  • BIND
  • DJBDNS
  • MaraDNS
  • Name Server Daemon
  • PowerDNS
  • Dnsmasq
DNS 查询类型
  • 迭代查询
  • 递归查询
    在这里插入图片描述
    在这里插入图片描述

5. DNS 的类型


  • (1)Primary DNS Server(Master)
    一个域的主服务器保存着该域的zone配置文件,该域所有的配置、更改都是在该服务器上进行,本篇随笔要讲解的也是如何配置一个域的主DNS服务器。
  • (2)Secondary DNS Server(Slave)
    域从服务器一般都是作为冗余负载使用,一个域的从服务器是从该域的主服务器上抓取zone配置文件,从服务器不会进行任何信息的更改,zone配置文件的修改只能在主DNS服务器上进行,所有的修改都有主服务器同步。
  • (3)Caching only Server(Cache)
    DNS缓存服务器不存在任何的zone配置文件,仅仅依靠缓存来为客户端提供服务,通常用于负载均衡及加速访问操作。
  • (4)转发服务器
    只负责转发功能
主 DNS 服务器
  • 维护所负责解析的区域内解析库服务器
  • 解析库由管理维护,可以是手工也可以是自动的
  • 通知机制
  • 一旦主 DNS 服务器解析库发生改变会立即通知从服务器
从 DNS 服务器
  • 从主DNS服务器或其他的从DNS服务器那里复制(区域传送)一份解析库
  • 序列号
    来表示解析库的版本号
    前提是,主服务器解析库内容发生改变,其序列递增
  • 刷新时间
    从服务器从主服务器请求同步解析库的时间间隔
  • 重试时间
    从服务器从服务器请求同步解析库失败的时候,再次尝试的时间间隔
  • 过期时长
    从服务器始终联系不到主服务器时,多久后放弃从服务器角度,停止提供服务
全量传送
  • 传送整个解析库
增量传送
  • 传送解析库变化的那部分内容

6. 资源记录类型


DNS 系统中,常见的资源记录类型:
  • 主机记录(A记录)
    FQDN –> IP
    A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上
  • 指针记录(PTR记录)
    IP –> FQDN
    引导至一个规范名称(Canonical Name),最常用来运行反向DNS查找
  • 权威记录的起始(SOA记录)
    一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录
  • 名称服务器记录(NS记录)
    专用于标明当前区域的DNS服务器
  • 别名记录(CNAME记录)
    CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录
  • MX 记录(MX记录)
    引导域名到该域名的邮件传输代理(Message Transfer Agents)列表
  • IPv6 主机记录(AAAA记录)
    FQDN –> IP
    与 A 记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
  • 服务位置记录(SRV记录)
    用于定义提供特定服务的服务器的位置,如主机hostname,端口port
  • NAPTR 记录
    它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。
在这里插入图片描述

7. 资源记录格式


语法
name [TTL] IN rr_type value
  • (1) TTL如果从全局继承可以省略,为缓存时长
  • (2)IN表示Internet
  • (3)rr_type表示资源记录类型
  • (4) @可用于引用当前区域的名字
  • (5) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮询方式响应
  • (6) 同一个值也可能有多个不同的定义名字,通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机而已
SOA
  • name: 当前区域的名字,例如code404.icu.
  • value: 有多部分组成:
  1. 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
  2. 当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用.替换,例如mail.code404.icu
  3. 主从服务协调属性的定义以及否定的答案的统一的TTL
# 86400为TTL值,单位为秒钟
# 主DNS服务器地址为ns.wsescape.com.
# 邮箱地址为nsadmin.wsescape.com.
# 第一版为2016052201,标识版本号
wsescape.com.86400INSOAns.nsadmin.wsescape.com.(
2016052201  ;序列号
2H          ;刷新时间,2小时
10M;重试时间,10分钟
1W;过期时间,一周
1D;否定答案的TTL值,一天
)
NS
  • name: 当前区域的名字
  • value: 当前区域的某DNS服务器的名字,例如ns.wsescape.com.
  • 注意:
  1. 相邻的两个资源记录的name相同时,后续的可省略
  2. 对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录
# 一个区域可以有多个NS记录
# ns1.wsescape.com.和ns2.wsescape.com.都应该在后续有一个A记录
wsescape.com.INNS  ns1.wsescape.com.
wsescape.com.INNS  ns2.wsescape.com.

MX

  • name: 当前区域的名字
  • value: 当前区域的某邮件服务器(smtp服务器)的主机名
  1. 一个区域内,MX记录可以有多个
  2. 但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级
  3. 数字越小优先级越高
  • 注意
  1. 相邻的两个资源记录的name相同时,后续的可省略
  2. 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
# mx1.wsescape.com.和mx2.wsescape.com.都应该在后续有一个A记录
wsescape.com.IN  MX  10  mx1.wsescape.com.
INMX  20  mx2.wsescape.com.
A
  • name: 某主机的FQDN,例如www.wsescape.com.
  • value: 主机名对应主机的 IP 地址;
  • 注意
    避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
# 轮询
www.wsescape.com.IN  A1.1.1.1
www.wsescape.com.IN  A  1.1.1.2

# 一个主机有多个名称而已
mx1.wsescape.com.IN    A   1.1.1.3
mx2.wsescape.com.  IN  A   1.1.1.3
# 避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
*.wsescape.com.IN  A  1.1.1.4
wsescape.com.IN  A   1.1.1.4
AAAA

与 A 记录类似,这是只是表示IPv6地址而已

# 轮询
www.wsescape.com.IN  AAAA1.1.1.1
www.wsescape.com.IN  AAAA  1.1.1.2

# 一个主机有多个名称而已
mx1.wsescape.com.IN    AAAA   1.1.1.3
mx2.wsescape.com.  IN  AAAA   1.1.1.3

# 避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
*.wsescape.com.IN  AAAA  1.1.1.4
wsescape.com.IN  AAAA   1.1.1.4
PTR
  • name: 这里的name表示的是IP地址
  • IP地址有特定格式,把IP地址反过来写,如果是1.2.3.4需要写作4.3.2.1
  • 还有特定后缀in-addr.arpa.,完整写法为4.3.2.1.in-addra.arpa.
  • value: 这里的value值为FQDN
  • 注意
    网络地址及后缀可省略,主机地址依然需要反着写
# 实例
4.3.2.1.in-addr.arpa.INPTRwww.wsescape.com.

# 如果3.2.1是网络地址简写成为
4   IN  PTRwww.wsescape.com.

# 如果2.1是网络地址简写成为
4.3  IN  PTRwww.wsescape.com.
CNAME
  • name: 别名的FQDN
  • value: 正工名字的FQDN
web.escapelife.com.IN  CNAME  www.escapelife.com.

8. 个人使用


子域授权就是每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权

类似根域授权tld

.com.INNS     ns1.com.
.com.   IN    NSns2.com.
ns1.com.INA   2.2.2.1
ns2.com.      INA2.2.2.2

这里以wsescape.com为例

# wsescape.com. 在.com的名称服务器上,解析库中添加资源记录
wsescape.com.INNSns1.wsescape.com.
wsescape.com.INNSns2.wsescape.com.
wsescape.com.INNSns3.wsescape.com.
ns1.wsescape.com.INA  3.3.3.1
ns2.wsescape.com.INA  3.3.3.2
ns3.wsescape.com.INA  3.3.3.3

域名注册

  • 代理商
  • 万网
  • 新网
  • godaddy

绑定服务器

  • 注册完成以后,想自己用专用服务来解析?
  • 管理后台,把 NS 记录指向的服务器名称和 A 记录指向的服务器地址

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/1159.html

发表评论

登录后才能评论