• Linux----------DNS服务器


    一、DNS概念

    1.1 DNS相关概念

    DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地。
    示例:

    客户端-->DNS服务器
    访问一个域名时,先指向DNS服务器寻找,寻找到域名对应的IP

    DNS服务器-->客户端
    DNS服务器将寻找到的域名对应的IP发给客户端,没有找到则不可达

    客户端-->服务器端
    客户端通过DNS服务器给的IP进行访问到正确的服务器

    1.2 DNS域名

    1. 域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。

    2.FQDN全称为Fully Qualified Domain Name,即完全合格域名。FQDN由两个部分组成:主机名和域名。因为DNS是逐级管理的,所以在不同的层级中主机名与域名也是不同的;以www.google.com为例,在第二层中,.com就是域名,google就是主机名,而到了第三层中,.google.com就成了域名,www就成了主机名。
    注意:主机名与域名并不是依据"."来划分的,主机名中也可以包含"."号的,主要还是要根据域名的注册情况来划分。

    3、正向解析
    从FQDN转换为IP地址称为正向解析。

    4、反向解析
    从IP地址转换为FQDN称为反向解析。

    5、区域
    正向解析或反向解析中,每个域的记录就是一个区域。

    1.3 DNS域名结构

    根域

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

    二级域名

    三级域名

    最多127级域名

    1.4 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,邮件交换器

    1.5 DNS查询方式

    DNS查询类型:
    递归查询
    迭代查询

    一次完整的查询请求经过的流程:
    Client -->hosts文件 -->DNS Service Local Cache--> DNS Server (recursion) --> Server Cache -->iteration(迭代) -->根--> 顶级域名DNS-->二级域名DNS…

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

    二、DNS服务

    DNS:Domain Name Service 应用层协议C/S,监听在53/udp, 53/tcp

    本地名称解析配置文件:hosts
    /etc/hosts
    %WINDIR%/system32/drivers/etc/hosts
    122.10.117.2 www.magedu.com
    93.46.8.89 www.google.com

    2.1 DNS服务器类型

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

    主DNS服务器:管理和维护所负责解析的域内解析库的服务器
    从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本
    序列号:解析库版本号,主服务器解析库变化时,其序列递增
    刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
    重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
    过期时长:从服务器联系不到主服务器时,多久后停止服务
    “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

    2.2 解析库的配置

    2.21 资源记录定义的格式:

    语法:name [TTL] IN rr_type value
    注意:
    (1) TTL可从全局继承
    (2) @可用于引用当前区域的名字
    (3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
    (4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的字可以找到同一个主机

    2.22 SOA记录

    name: 当前区域的名字,例如“magedu.com.”
    value: 有多部分组成

    1. 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
      (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如linux.wangchao.com
      (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
      例如:
      wangchao.com. 86400 IN SOA ns.wangchao.com.nsadmin.wangchao.com. (
      2015042201 ;序列号
      2H ;刷新时间
      10M ;重试时间
      1W ;过期时间
      1D ;否定答案的TTL值
      )

    2.23 NS记录

    name: 当前区域的名字
    value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
    注意:一个区域可以有多个NS记录
    例如:
    wangchao.com. IN NS ns1.wangchao.com.
    wangchao.com. IN NS ns2.wangchao.com.
    注意:
    (1) 相邻的两个资源记录的name相同时,后续的可省略
    (2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

    2.24 MX记录

    name: 当前区域的名字
    value: 当前区域的某邮件服务器(smtp服务器)的主机名
    一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
    例如:
    wangchao.com. IN MX 10 mx1.wangchao.com. IN MX 20 mx2.wangchao.com.
    注意:
    (1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

    2.25 A记录

    name: 某主机的FQDN,例如www.wangchao.com.
    value: 主机名对应主机的IP地址
    例如:
    www.wangchao.com. IN A 1.1.1.1
    www.wangchao.com. IN A 2.2.2.2
    mx1.wangchao.com. IN A 3.3.3.3
    mx2.wangchao.com. IN A 4.4.4.4
    $GENERATE 1-254 HOST$ A 1.2.3.$
    *.wangchao.com. IN A 5.5.5.5
    wangchao.com. IN A 6.6.6.6
    避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址

    2.26 其他记录

    AAAA:
    name: FQDN
    value: IPv6
    PTR:
    name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作
    4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:
    4.3.2.1.in-addr.arpa.
    value: FQDN
    例如:
    4.3.2.1.in-addr.arpa. IN PTR www.wangchao.com.
    如1.2.3为网络地址,可简写成:
    4 IN PTR www.wangchao.com.
    注意:网络地址及后缀可省略;主机地址依然需要反着写

    2.27 别名记录

    CNAME:
    name: 别名的FQDN
    value: 真正名字的FQDN
    例如:
    www.wangchao.com. IN CNAME websrv.wangchao.com.

    三、dns服务程序包

    BIND的安装配置:
    dns服务程序包:bind,unbound
    程序名:named,unbound
    程序包:yum list all bind*
    bind:服务器
    bind-libs:相关库
    bind-utils:客户端
    bind-chroot: /var/named/chroot/

    3.1 bind组成

    服务脚本和名称:/etc/rc.d/init.d/named
    /usr/lib/systemd/system/named.service
    主配置文件:/etc/named.conf, /etc/named.rfc1912.zones,
    /etc/rndc.key
    解析库文件:/var/named/ ZONE_NAME.ZONE
    注意:
    (1) 一台物理服务器可同时为多个区域提供解析
    (2) 必须要有根区域文件;named.ca
    (3) 应该有两个(如果包括ipv6的,应该更多)实现localhost
    和本地回环地址的解析库
    rndc: remote name domain controller,
    默认与bind安装在同一主机,且只能通过127.0.0.1连接
    named进程
    提供辅助性的管理功能;953/tcp

    3.2 bind配置文件

    主配置文件:
    全局配置:options {};
    日志子系统配置:logging {};
    区域定义:本机能够为哪些zone进行解析,就要定义哪些
    zone
    zone "ZONE_NAME" IN {};
    注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上
    缓存名称服务器的配置:
    监听外部地址即可
    dnssec: 建议关闭dnssec,设为no

    3.3 配置主从DNS服务器

    主DNS名称服务器:
    (1) 在主配置文件中定义区域
    zone "ZONE_NAME" IN {
    type {master|slave|hint|forward};
    file "ZONE_NAME.zone";
    };
    (2) 定义区域解析库文件
    出现的内容
    宏定义
    资源记录
    主配置文件语法检查:
    named-checkconf
    解析库文件语法检查:
    named-checkzone "magedu.com" /var/named/magedu.com.zone
    rndc status|reload ;service named reload

    3.31 主区域示例

    $TTL 86400
    $ORIGIN wangchao.com.
    @ IN SOA ns1.wangchao.com. admin.wangchao.com (
    2015042201
    1H
    5M
    7D
    1D )
    IN NS ns1
    IN NS ns2
    IN MX 10 mx1
    IN MX 20 mx2
    ns1 IN A 172.16.100.11
    ns2 IN A 172.16.100.12
    mx1 IN A 172.16.100.13
    mx2 IN A 172.16.100.14
    websrv IN A 172.16.100.11
    websrv IN A 172.16.100.12
    www IN CNAME websrv

    3.32 从服务器

    1、应该为一台独立的名称服务器
    2、主服务器的区域解析库文件中必须有一条NS记录指向从服务器
    3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中
    4、主服务器得允许从服务器作区域传送
    5、主从服务器时间应该同步,可通过ntp进行;
    6、bind程序的版本应该保持一致;否则,应该从高,主低
    定义从区域的方法:
    zone "ZONE_NAME" IN {
    type slave;
    masters { MASTER_IP; };
    file "slaves/ZONE_NAME.zone";
    };

  • 相关阅读:
    [转载]Linux下mail使用技巧
    VTK Online教程大全
    拓扑结构与TopoDS
    三维视图变换与相机模型
    说说DoDataExchange(CDataExchange* pDX)
    Lua Lib在VC下的编译
    建立最简单的OpenCASCADE程序
    构建通用类型 继承 VS 聚合
    【软件】新瓶装老酒 MyCapture
    用std::find查找文件流中的内容
  • 原文地址:https://www.cnblogs.com/wangchengshi/p/10810139.html
Copyright © 2020-2023  润新知