DNS相关介绍

1名字解析介绍和DNS

  1.1、背景

    当前TCP/IP网络中的设备之间进行通信,是利用和依赖于IP地址实现的。但数字形式的IP地址是很难记忆的。当网络设备众多,想要记住每个设备的IP地址,可以说是“不可能完成的任务”。那么如何解决这一难题呢?

我们可以给每个网络设备起一个友好的名称,如:www.magedu.org,这种由文字组成的名称,显而易见要更容易记忆。但是计算机不会理解这种名称的,我们可以利用一种名字解析服务将名称转化成(解析)成IP地址。从而我们就可以利用名称来直接访问网络中设备了;

除此之外还有一个重要功能,利用名称解析服务可以实现主机和IP的解耦,即:当主机IP变化时,只需要修改名称服务即可,用户仍可以通过原有的名称进行访问而不受影响。

  

DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网

基于C/S架构,服务器端:53/udp, 53/tcp
BIND:Bekerley Internet Name Domain,由 ISC (www.isc.org)提供的DNS软件实现DNS域名结构

根域

  一级域名:Top Level Domain: tld ,com, edu, mil, gov, net, org, int,arpa
          三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域

  二级域名:magedu.com
三级域名:study.magedu.com
最多可达到127级域名

  CANN(The Internet Corporation for Assigned Names and Numbers)互联网名称数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管
理、以及根服务器系统的管理

例如,马哥教育www.magedu.com

FQDN 全称域名=主机名(名)+域名(姓)

域名=子域名+父域名

1.2、DNS服务工作原理

DNS查询类型

  递归查询:最终结果,负责到底
迭代查询:最好结果,不负责到底

名称服务器

  Name Server,域内负责解析本域内的名称的DNS服务器
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,荷兰1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从

解析类型

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

 完整的查询请求经过的流程

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

2DNS 服务相关概念和技术

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

  

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

 从DNS服务器:

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

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

(判断主备同步推或者拉得是依据主得序列号,而非主备数据)
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器

  

 区域传输

    完全传输:传送整个解析库
增量传输:传递解析库变化的那部分内容

解析形式

    正向:FQDN Fully Qualified Domain Name --> IP( 域名->ip)
反向: IP --> FQDN      -->(ip->域名,配置文件里ip也需倒序写)

负责本地域名的正向和反向解析库

    正向区域

反向区域

解析答案

    肯定答案:存在对应的查询结果

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

权威答案:直接由存有此查询结果的DNS服务器(权威服务器)返回的答案

非权威答案:由其它非权威服务器返回的查询答案

2.1、各种资源记录

  区域解析库:由众多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,邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等,如下示例:

     _dnsauth TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x

2.1.1、资源记录定义的格式

   name   [TTL]   IN   rr_type   value

注意:

    1. TTL可从全局继承
2. 使用 “@” 符号可用于引用当前区域的名字,DNS里此符号具有特殊含义,所以在后面场景下需要添写邮件时,将@符号代替为.
3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通
过多个不同的名字可以找到同一个主机

 2.1.2SOA记录

  name: 当前区域的名字,例如“magedu.org.”

value: 有多部分组成

  

   注意:
1. 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
2. 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.magedu.org
3. 主从服务区域传输相关定义以及否定的答案的统一的TTL

例子:

   

2.1.3NS记录

    name: 当前区域的名字

value: 当前区域的某DNS服务器的名字,例如ns.magedu.org.

  注意:

    1. 相邻的两个资源记录的name相同时,后续的可省略
2. 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
3. 一个区域可以有多个NS记录

例子:

  2.1.4MX记录

    name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名

   注意:
1. 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
2. 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

   例子:

 

2.1.5A记录

  name: 某主机的FQDN,例如:www.magedu.org.

value: 主机名对应主机的IP地址

 避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址

例子:

    

  

2.1.6AAAA记录(ipv6解析)

  name: FQDN

value: IPv6

注意:网络地址及后缀可省略;主机地址依然需要反着写

 例子:

2.1.7、子域授权

 每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权,类似根域授权tld glue record:粘合记录,父域授权子域的记录

  例子:

2.1.8、互联网域名

 1. 域名注册
代理商:万网, 新网, godaddy

2. 注册完成以后,想自己用专用服务来解析

管理后台:把NS记录指向的服务器名称,和A记录指向的服务器地址

3DNS软件bind

  DNS服务器软件:bind,powerdns,unbound,coredns

 3.1 BIND相关程序包

   yum list all bind*

      bind:服务器

bind-libs:相关库

bind-utils: 客户端

bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/

3.2 BIND包相关文件

  BIND主程序:/usr/sbin/named

服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.servic

主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key

管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp

解析库文件:/var/named/ZONE_NAME.ZONE

注意:
(1) 一台物理服务器可同时为多个区域提供解析
(2) 必须要有根区域文件;named.ca
(3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库

3.3、主配置文件

    全局配置:options {};

日志子系统配置:logging {};

    区域定义:本机能够为哪些zone进行解析,就要定义哪些zone
zone "ZONE_NAME" IN {};

   注意:
任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上;
缓存名称服务器的配置:监听外部地址即可;
dnssec: 建议关闭dnssec,设为no;

4、实现主DNS服务器

 4.1 DNS服务器配置

  1. 在主配置文件中定义区域

2. 定义区域解析库文件
出现的内容
宏定义
资源记录

例子:区域数据库

例子:

 

4.2、主配置文件语法检查

  named-checkconf

4.3、解析库文件语法检查

named-checkzone "magedu.org" /var/named/magedu.org.zone

4.4 配置生效

不重启生效的方式

  rndc reload

systemctl reload named

service named reload

4.5 测试和管理工具

 4.5.1 dig 命令

  dig只用于测试dns系统,不会查询hosts文件进行解析

命令格式:

例子:

  

查看邮件服务dig -t mx kingbase.com.cn

4.5.2 host命令

 命令格式:

 例子:

host可以查看dns相关内容

4.5.3 nslookup命令

 nslookup 可以支持交互和非交互式两种方式执行

命令格式:

  

交互式模式:

  nslookup>
server IP: 指明使用哪个DNS server进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称

4.5.4、rndc 命令

 利用rndc工具可以实现管理DNS功能

rndc 监听端口: 953/tcp

命令格式:

4.6 实现简单的DNS服务

修改配置/etc/named.conf

windows查看dns方法;

从节点

在主节点上指定某个节点作为从节点

在从节点上设置策略,不让别的机器上同步

设置转发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值