精华内容
参与话题
问答
  • Linux域名解析服务

    2018-12-13 23:09:55
    Linux域名解析服务的配置由三个基本的配置文件决定: /etc/hosts /etc/hosts文件包含了IP地址和主机名之间的映射,可能还包括主机名的别名,合法条目格式如下: IP_address canonical_hostname [aliases...] 系统上...

    Linux域名解析服务的配置由三个基本的配置文件决定:

    /etc/hosts

    /etc/hosts文件包含了IP地址和主机名之间的映射,可能还包括主机名的别名,合法条目格式如下:

    IP_address canonical_hostname [aliases...]
    

    系统上的所有网络程序首先通过查询该文件来解析对应于某个主机名的IP地址,如果没有解析成功再使用DNS服务程序解析。
    通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。通常情况下这个文件首先记录了本机的ip和主机名。

    /etc/resolv.conf

    /etc/resolv.conf配置了DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,合法条目格式如下:

    nameserver Name server IP address
    domain Local domain name
    search Search list for host-name lookup
    sortlist
    

    其中:
    nameserver 声明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
    domain 声明本地域名。在本地域名下的请求可以直接使用短名(Short Name),例如设置了domain example.com,要访问email.example.com主机1,可以直接用email这个短名来访问,就可以访问到email.example.com主机。
    search 声明域名搜索列表。其默认值为domain设置的值,当search设置值以后,domain值就失效了。当要查询没有域名的主机(如email),解析器将轮流使用search声明的域名(如search google.com baidu.com)进行组合来查找主机(将查找到email.google.com,然后就停止解析了,不会再对baidu.com域进行检索)。
    sortlist 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。

    /etc/nsswitch.conf

    自glibc 2.x版本之后,Linux的域名解析服务就由Name Service Switch (NSS) 接管了,其配置文件为/etc/nsswitch.conf。
    NSS并不是只管域名解析的,管域名解析的是它配置文件的hosts字段:

    hosts: files dns
    

    其中,files指定了搜索/etc/hosts文件,且其优先级最高;dns字段则指定了前面用/etc/resolv.conf建立的主机数据库(hosts database)。

    [Reference]

    1. Domain name resolution
    2. Arch manual pages - HOSTS(5)
    3. Arch manual pages - RESOLV.CONF(5)
    4. Arch manual pages - NSSWITCH.CONF(5)

    1. 域名和主机名都是IP的别名,为了避免记忆数字IP而设计出来的人类易读的形式。透过解析器(Resolver),可以将域名和主机名解析为对应的IP。域名的范围要比主机名大,一个域名下可以有多个主机名,例如,域名abc.com下,有主机server1和server2,其主机全名就是 server1.abc.comserver2.abc.comserver1.abc.comserver2.abc.com 同时也是abc.com的子域名。 ↩︎

    展开全文
  • linux下DNS配置及域名解析服务

    万次阅读 多人点赞 2018-05-24 18:48:23
    一.DNS(Domain Name System,...通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。  DNS 服务器将域名解析出来,找到域名对应的ip地址的...

    一.DNS(Domain Name System,域名系统)

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

          DNS 服务器将域名解析出来,找到域名对应的ip地址的服务,可以高速缓存从其他 DNS 服务器收到的 DNS 记录。 也可以在 DNS 客户服务中使用高速缓存,将其作为 DNS 客户端保存在最近的查询过程中得到的信息高速缓存的方法。 可以提高解析速度。

     

    二.配置实验环境

     

    1.安装DNS服务;

      yum install bind.x86_64 -y   利用yum将DNS服务下载下来


    2.firewall-config                     打开防火墙图形设置开启dns服务,将Configuration旁下拉勾选Permanent,然后勾选dns :

    然后点击Options下的Reload Firewalld重新加载防火墙

    3.firewall-cmd --list-all             查看是否修改成功,如图所示,dns服务已被防火墙允许:

     


    4.systemctl restart named       重新启动dns服务
    5.netstat -antlpe | grep named 查看53接口是否打开,下图表示53接口未对本机打开:

    6.vim /etc/named.conf             编辑dns配置文件,将接口打开:

    7.systemctl restart named        重启服务让修改生效
    8.netstat -antlpe | grep named  再次查看53接口是否被打开,由下图可知,已经打开:

    9.vim /etc/resolv.conf               将dns设置为本机ip

     

    dns服务安装配置完成


     

    三.下面简单介绍一下dns的域名解析服务:

     

    DNS 总揽

    权威名称服务器

    存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。

    权威名称服务器的类型包括 
    Master : 包含原始区域数据。有时称作 “主要 ”名称服务器 
    Slave : 备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “次要 ”名称服务器

    非权威 / 递归名称服务器

    – 客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括 
    存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性

    DNS 查找

    客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端,否则 , 如果名称服务器在其缓存中有请求的信息 , 则会将非权威答案发送至客户端,如果缓存中没有信息 , 名称服务器将搜索权威名称服务器以查找信息 , 从根区域开始 , 按照DNS 层次结构向下搜索, 直至对于信息有具有权威性的名称服务器 , 以此为客户端获得答案。在此情况中,名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找。

    DNS资源记录

    DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型。 
    – A : 名称至 IPv4 地址 
    – AAAA : 名称至 IPv6 地址 
    – CNAME : 名称至 ”规范名称 “ ( 包含 A/AAAA 记录的另一个名称 ) 
    – PTR : IPv4/IPv6 地址至名称 
    – MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 ) 
    – NS : 域名的名称服务器 
    – SOA :” 授权起始 “ , DNS 区域的信息 ( 管理信息 )

    DNS排错

    • 它显示来自 DNS 查找的详细信息 , 其中包括为什么查询失败 : 
    – NOERROR : 查询成功 
    – NXDOMAIN : DNS 服务器提示不存在这样的名称 
    – SERVFAIL : DNS 服务器停机或 DNSSEC 响应验证失败 
    – REFUSED : DNS 服务器拒绝回答 ( 也许是出于访问控制原因 )

    dig输出的部分内容

    • 标题指出关于查询和答案的信息 , 其中包括响应状态和设置的任何特殊标记 ( aa 表示权威答案 , 等等 ) 
    – QUESTION : 提出实际的 DNS 查询 
    – ANSWER : 响应 ( 如果有 ) 
    – AUTHORITY : 负责域 / 区域的名称服务器 
    – ADDITIONAL : 提供的其他信息 , 通常是关于名称服务器 
    – 底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间

    缓存 DNS 服务器

    BIND 是最广泛使用的开源名称服务器,在 RHEL 中 , 通过 bind 软件包提供防火墙开启端口 53/TCP 和 53/UDP。BIND 的主配置文件是 /etc/named.conf 。/var/named 目录包含名称服务器所使用的其他数据文件

    /etc/named.conf 的语法

    • // 或 # 至行末尾是注释 ; /* 与 */ 之间的文本也是注释 ( 可以跨越多行 ) 
    • 指令以分号结束 (;) 
    • 许多指令认为地址匹配列表放在大括号中、以CIDR 表示法表示的 IP 地址或子网列表中 , 或者命名的 ACL 中 ( 例如 any; [ 所有主机 ] 和none; [ 无主机 ] )。 
    • 文件以 options 块开始 , 其中包含控制 named如何运作的指令。 
    • zone 块控制 named 如何查对于其具有权威性的根名称服务器和区域。

     


    ##(1)正向解析:通过域名,找到ip地址
    1.cd /var/named/         切换到/var/named/目录下
    2.cp -p named.localhost hk.com  将named.localhost里的内容复制生成新文件为hk.com (文件名自定义):
    3.vim /hk.com   编辑文件如下图所示:

    4.vim /etc/named.rfc1912.zones    编辑文件,将如下信息编辑到文件中:

    5.systemctl restart named              重启服务让修改生效
    6.测试
    dig news.hk.com                           输入域名让dns解析出ip:

    dig www.hk.com                            解析第二个域名:



    ###(2)反向解析:解析ip找到与之对应的域名
    1.cd /var/named/                              切换到/var/named/目录下
    2.cp -p named.loopback hk.com.ptr   复制named.loopback生成hk.com.ptr文件

     

    3.vim /hk.com.ptr                              编辑文件如图所示:


    4.vim /etc/named.rfc1912.zones  编辑文件如图所示:

    5.systemctl restart named                 重启服务让修改生效
    6.测试

     

     

    dig -x 172.25.254.121                       解析第一个ip :

     

     

    dig -x 172.25.254.122             接着解析第二个ip,解析出来的域名与之前编辑的文件内容一致:

     

     


    ###(3)解析反馈设置(给予不同ip用户不同答案)
    1.cd /var/named/                      切换到/var/named/目录下
    2.cp -p hk.com hk.com.net       复制生成hk.com.net文件

     

     

    3.vim /hk.com.net                     编辑文件如图所示:


    4.cp -p /etc/named.rfc1912.zones /etc/named.rfc1916.zones   复制产生一个新的文件/etc/named.rfc1916.zones
    5.vim /etc/named.rfc1916.zones  编辑文件如图所示:

    6.vim /etc/named.conf           编辑文件如图所示,给予不同ip用户不同答案,将文件中51到58行注释掉:

     

     

     

    然后编辑内容59到80行,如图所示,只有172.25.254.21能够看到/etc/named.rfc1912.zones文件中解析出来的ip,其他ip用户可以看到

    /etc/named.rfc1916.zones文件中解析出来的ip地址:

    7.systemctl restart named       重启服务,让修改生效

     

    8.测试 

     

    在ip为172.25.254.21的主机上编辑文件vim /etc/resolv.conf,将本机ip作为172.25.254.21的主机的dns:

     

     

    在ip为172.25.254.21的主机上访问 www.hk.com,成功解析出来ip,与之前文件中一致:

     


    本机自己访问 www.hk.com  和ip为172.25.254.21所看到解析出来的ip不同,说明配置成功:



    ###(4)dns集群:增加一个或多个主机一起解析,缓解主机压力(这次添加一台主机)

     

    1.在ip为172.25.254.221的主机上下载dns服务,并在防火墙设置中允许运行服务:

    firewall-config                         打开防火墙配置服务

    firewall-cmd --list-all                查看修改后被允许的服务信息:

    2.vim /etc/named.rfc1912.conf   编辑文件,将如图所示内容编辑到文件中:

     

    3.vim /etc/named.conf               修改文件,如图所示:

    4.将/var/named/slaves/目录下的文件删除
    5.systemctl restart named       重启服务,让修改生效

     

    6.查看/var/named/slaves/中是否有新的内容,可以看到本机的hk.com.net文件在目录下,说明配置没有问题:

     


    ###(5)同步:让两台或多台主机在进行域名解析时,所给出的答案一致
    1.vim /var/named/hk.con.net  修改文件中的参数,将之前www对应的122改为124,看ip为172.25.254.221主机是否能够同步:

    3.systemctl restart named            重启本机dns服务,让修改生效

     

     

    4.dig www.hk.com                       本机查看信息是否修改,如图已经修改:


    3.在ip为172.25.254.221主机,dig www.hk.com   查看信息是否与本机同步:

    解析一致,同步成功

    (6)加密key更新:(为了提升dns解析服务的安全性,需要进行加密更新配置,拥有密钥的的ip主机才能够对本机进行更新)
    1.dnssec-keygen -a HMAC-MD5 -b 128 -n HOST hongk     生成密钥
    2.cat Khongk.+157+06432.key                                  查看密钥密码:

    3.cp /etc/rndc.key /etc/hongk.key -p             生成dns的加密文件

     

     

    4.vim /etc/hongk.key                          编辑加密文件,如图所示:


    5.vim /etc/named.conf          指定dns服务读取的key文件:

     

     

    6.vim /etc/named.rfc1912.zones      编辑文件,指定更新域为hongk,如图所示:


    7.scp Khongk.+157+06432./* root@172.25.254.221:/mnt 将密钥发送给ip为i172.25.254.221的主机:
    8.在本机配置DHCP服务:
    vim /etc/dhcp/dhcpd.conf                编辑文件,如图所示:

     

     

    继续编辑,将加密信息编辑到dhcp配置文件中:

     

    9.systemctl restart dhcpd 重启dhcp服务

       systemctl restart named 重启dns服务

    10.给本机/var/named/目录修改权限:chmod g+w /var/named/

    11.测试:

    将一台主机的主机名改为music.hk.com,设置为dhcp模式获取ip,获取到的ip为172.25.254.55,为上面dhcp配置文件中的地址池ip:

    然后在本机 dig music.hk.com  可以解析到陌生主机名的ip:

     

    展开全文
  • DNS域名解析服务器

    万次阅读 多人点赞 2018-06-11 01:23:15
     DNS是Domain Name System(域名系统)的简称,DNS可以为计算机、服务以及接入互联网或局域网的任何资源提供分层的域名解析功能。DNS提供了很多功能,其中最主要的功能就是进行域名与IP之间的解析。在互联网中标记...

    一、DNS简介

        DNS是Domain Name System(域名系统)的简称,DNS可以为计算机、服务以及接入互联网或局域网的任何资源提供分层的域名解析功能。DNS提供了很多功能,其中最主要的功能就是进行域名与IP之间的解析。在互联网中标记唯一一台计算机使用的是IP地址,通过合法的IP地址,我们可以与全世界任何一台主机进行通信。然而在当今计算机如此普及的情况下,以人类现有的智慧与记忆力很难将大量的IP地址背诵下来,这时使用域名系统就可以将难以记忆的数字IP地址与容易记忆的域名建议映射关系,用户通过输入域名,计算机会寻找指定的DNS服务器,请求服务器帮助解析该域名对应的IP地址,成功解析后,将获得该域名对应的真实IP地址,然后使用该IP地址与对方通信。

        域名是分级的,一般分为:主机名.三级域名.二级域名.顶级域名.。注意,最后一个点代表的是根域,是所有域名的起点。域名有点像美国人的姓名一样,姓在后,名在前,而计算机域名中最后的点则是根,其次是根下的顶级域名,然后是二级域名等。图1为典型的域名树状结构图。例如,百度的域名为www.baidu.com,代表的是根域下有com子域,com子域下面有baidu子域,baidu子域下有主机www。注意,一般情况下,我们通过浏览器输入网址域名时,最后一个根域(.)是不需要输入的。一般顶级域代表国家或者组织形式,如cn代表中国;com代表商业公司;edu代表教育机构等。二级域名代表组织或者公司名称,三级域名代表组织或者公司内部的主机名称。最后通过完全合格的域名(FQDN)可以定位全球唯一的一台主机。这种分层管理机制的优势在于根域服务器不需要管理全世界所有的域名信息,它只需要管理顶级域信息即可,而顶级域服务器只需要管理二级域信息即可。以此类推,实现分层管理,这类似国家的行政管理机制。

    图1:

        域名查询分为递归查询和迭代查询,如图2所示。举例说明,如果客户端准备访问百度网站,客户端首先会检查本地缓存中是否有之前的查询记录,如果有,直接读取结果即可,如果没有相关的缓存记录,则向本地DNS服务器发送查询请求,也就是所谓的递归查询,本地DNS服务器如果有答案,就会将答案直接返回给客户端,但本地DNS服务器没有正确的答案时,它就需要向根服务器查询,但不是询问www.baidu.com对应的IP是多少,根服务器仅管理顶级域名,而且所有的顶级域名都属于根的管理范畴,所以此时本地DNS服务器向根查询结果是:根服务器会将它管理的com域对应的IP提供给本地DNS服务器,本地DNS服务器得到com域服务器的IP后,会再向com查询,然而com也没有最终的答案,com域服务器会将它所管理的baidu域服务器对应的IP提供给本地DNS服务器,最后本地DNS服务器再向baidu域服务器查询,询问该域下主机名为www的计算机对应的IP地址,由于www主机确实直接属于baidu域的管理范畴,所以baidu会将最终的正确答案返回给本地DNS服务器,最后本地DNS服务器将得到的结果返回给客户端,同时本地DNS服务器会将结果缓存起来,当下次再有相同的查询请求时,本地DNS服务器就可以直接从缓存中找到结果返回给客户端。

    图2:

    二、安装DNS软件

        提供DNS服务的软件有很多,而伯克利加州大学研发的BIND(Berkeley Internet Name Domain)是目前应用最广泛的DNS服务系统。该项目软件除了BIND主程序外,在Linux平台下还提供了chroot和utils软件包,bind-chroot软件包的主要功能是使BIND软件可以运行在chroot模式下,这样BIND运行在相对路径的根路径,而不是Linux系统真正的根路径,即使有人对BIND软件进行攻击与破坏,影响的也仅仅是操作系统中的一个子目录,不会影响整个操作系统平台,以此来提升系统安全性。通过yum安装bind-chroot后,对bind而言,/var/named/chroot目录就是根路径,所有BIND软件的配置文件都在根下的某某路径下。bind-utils软件提供了一些DNS查询工具,如dig、host、nslookup等。

    yum -y install bind bind-chroot bind-utils

    三、配置文件说明

        BIND配置文件主要分为主配置文件与域数据记录文件,主配置文件包括很多使用花括号引起来的定义语句,在定义语句中可以设置多个选项,主配置文件的核心功能就是定义域,以及告之计算机到哪里可以找到相应域的数据记录文件。而域数据记录文件则存储具体的域名与IP之间的解析记录,DNS通过读取域数据记录文件来解答客户端的查询请求。

        主配置文件一般为/etc/named.conf文件,但当我们安装了bind-chroot软件包后,在后面的内容中提供到的一些路径默认指的是一个虚拟路径,都是相对于虚拟根路径而言的,虚拟根路径默认为/var/named/chroot目录。如果主配置文件是/etc/named.conf,那么最终主配置文件在本机的绝对路径应该为/var/named/chroot/named.conf,修改主配置文件时一定要注意,如果语法格式有问题,则DNS服务是无法正常启动的,一个典型的主配置文件语法格式如下。

    statement_name {
    option1;
    option2;
    ... ...;
    };

         下面介绍/etc/named.conf文件中常用的定义语句。

        acl(Access Control List)语句允许我们预定义一组主机,从而控制是允许还是拒绝他人访问域名服务器,BIND预定义了一些主机访问控制列表,其中,any可以匹配任意IP地址,localhost可以匹配本地系统上所有的IP地址,localnets匹配本地系统所连接的任意网络,none将不匹配任何IP地址。下面通过实例自定义了两个访问控制列表,一个名为黑名单,一个为白名单。

    acl black {
    172.16.0.0/16;
    192.168.0.12;
    192.168.0.18;
    };
    acl white {
    10.0.0.0/8;
    192.168.0.0/24;
    };
    options {
    allow-query { white; };
    blackhole { black; };
    };

        options语句用来定义全局配置选项,在全局配置中至少需要定义一个工作路径,默认的工作路径为/var/named/,具体的常见的参数为表1 。

    表1:

        zone语句用来定义域及相关选项,定义域也就意味着你希望维护自己公司的域名解析。该语句的重点选项有type与file,表2为zone语句内常用的选项及描述。

    表2:

        下面一个简单的zone语句实例,example.com是定义的域,type定义本机为example.com域的主域名服务器,该域的解析文件保存在example.com.zone文件中,该文件被保存在/var/named/目录下。当定义反向解析域时,需要将网络地址反过来输入,并以固定的.in-addr.arpa格式结尾。通过定义类型为hint的根域,这样当客户端查询不属于自己维护的域名时,可以寻找根服务器进行迭代查询,最终返回正确的结果,全球的根域名服务器信息保存在named.ca文件中,该文件是在安装BIND文件后自动生成的模板文件,我们可以在/usr/share/doc/bind-9.8.2/sample/var/named/目录下找到它。

     

        在BIND软件的主配置文件中,如果定义了zone语句,还需要额外创建域数据文件,默认域数据文件被存储在/var/named/目录下,文件名称由zone语句中的file选项定义。数据文件分为正向解析数据文件和反向解析数据文件,正向解析数据文件保存了域名到IP地址的映射记录,反向解析数据文件保存了IP地址到域名的映射记录,表3列出了常用的记录类型及描述。

    表3:

        下面通过一个简短的正向解析的域数据文件,说明各种记录的语法格式,配置文件中的TTL的值为DNS记录的缓存时间,这个值是其他域名服务器将数据存放在缓存中的时间,1D代表一天。SOA记录后面的root.example.com.代表域的权威服务器,chytest1.163.com是管理员的邮箱,由于@在数据文件中代表特殊含义,这里使用.来代表@符号,所以实际的邮箱应该是chytest1@163.com,SOA记录可以跨行输入,跨越多行时使用括号引用。NS记录代表域名服务器记录,如果公司有多个域名服务器,可以添加多条NS记录,但每个NS记录在下面都需要有对应的A记录。A记录为正向解析记录,格式为在域名后面输入相应的IP地址,IN代表Internet,A代表正向解析记录。在使用MX记录指定邮件服务器时,我们给mai.example.com.服务器设着优先级为10,最后CNAME记录为别名,可以使用web.example.com来代表www.example.com。具体的配置文件如下。

        关于配置文件中的简写,在BIND主配置文件中,zone语句后定义的域对于数据文件的简写来说很重要,如果区数据文件中不以"."结尾的名称后会被自动加上该域名称,如zone语句定义了example.com,而数据文件中有一个mail没有以"."结尾,那么系统会自动追加example.com到mail后,有时候管理员将A记录错误地写成www.example.com这种形式,由于没有以"."结尾,实际系统识别的应该是www.example.com.example.com.。此外,在数据文件中使用@符号也同样代表zone所定义的域名称。最后,如果在数据文件中某条记录名称为空格或制表符,那么BIND系统会直接使用上一条记录的名称,当我们为同一个域名设置多个A记录,则客户端请求该域名解析时,服务器会以轮询的方式将结果返回给客户端,可以从一定程度上实现负载均衡的功能。

    四、部署主域名服务器

        随着ABC公司业务的扩张,计算机I越来越多的情况下,让员工记忆公司内部服务器所有的IP地址简直就是一场噩梦,因此,公司决定采用DNS解决方案,这样所有的员工仅需要记忆域名就可以访问各种服务。案例中使用的域为abc.com域,这个是正向解析的域,网络采用的是私有网络地址为:172.16.0.0/16。本次案例仅对公司主要的服务器编写解析记录,如果读者需要更多的记录,可以按照这些模板添加其他主机的信息,在公司内部服务器列表见表4.

    表4:

    1.安装软件

        如前所述,在部署DNS服务器时需要安装bind、bind-chroot以及bind-utils软件包。

    2.修改主配置文件

        默认chroot之后的虚拟根目录/var/named/chroot/etc 下面并没有现成的配置文件,需要在/usr/share/doc/bind-9.8.2/sample/etc目录下找到配置文件模板,复制该文件至/var/named/chroot/etc目录下,并根据自己的实际情况进行修改配置文件。案例中均以表4为模型进行配置。

    cd /usr/share/doc/bind-9.8.2/sample/etc/
    cp named.conf  /var/named/chroot/etc/
    chown  root.named  /var/named/chroot/etc/named.conf
    vim /var/named/chroot/etc/named.conf

    3.创建区数据文件

        主配置文件仅是对zone域的定义,关于域内主机的具体记录的解析,还需要依赖于数据文件的内容,常见的域名解析有正向解析记录、反向解析记录、CNAME记录以及MX记录等。在上一步完成了主配置文件中关于zone域的配置后,我们就根据模板创建具体的区数据解析文件,这些文件的创建可以根据软件包中提供的named.localhost文件作为模板。下面我们将创建一个用于正向解析的abc.com.zone域数据文件,再创建一个用于进行反向解析的172.16.zone域数据文件。

    cd /usr/share/doc/bind-9.8.2/sample/var/named
    cp named.ca /var/named/chroot/var/named/
    chown root.named /var/named/chroot/var/named/named.ca
    cp named.localhost /var/named/chroot/var/named/abc.com.zone
    chown root.named /var/named/chroot/var/named/abc.com.zone
    vim /var/named/chroot/var/named/abc.com.zone

    vim  /var/named/chroot/var/named/172.16.zone

    4.服务管理

        在dns主服务器部署完成后,如果不禁用防火墙或通过防火墙开启特定的端口,客户端主机是无法进行查询工作的。下面我们就通过Linux自带的防火墙iptables来演示如何开启DNS服务所需要使用的53端口,其中,TCP的53端口用于主从复制,UDP的53端口用于数据查询。 

    iptables -I INPUT -p udp --dport 53 -j ACCEPT
    iptables -I INPUT -p tcp --dport 53 -j ACCEPT
    service iptables save
    service named start
    chkconfig named on

    5.客户端验证

        客户端正确配置DNS服务器之后,查询工具比较多,常用的有nslookup、dig、host,下面分别演示这些命令的基本用法。

    nslookup www.abc.com
    nslookup 176.16.0.100
    dig abc.com  MX
    host www.abc.com

    五、部署从域名服务器

       部署从域名服务器的作用是防止出现单点故障或实现负载均衡。如果只有一台服务器,当该服务器宕机时,将导致所有客户机的地址解析出现问题。另外,为了满足大规模的查询请求,我们可以创建多台DNS服务器实现负载均衡。然而如果所有的DNS都作为主服务器,会有大量的配置需要我们重复进行,再有就是当解析记录发生改变后,各个服务器之间的区数据文件的版本比较混乱(不方便统一),所以我们需要部署从域名服务器,从域名服务器会从主域名服务器上下载数据文件,只要主服务器修改了数据文件中的记录,从服务器就可以自动同步数据。

    1.安装软件

        如前所述,在部署DNS服务器时需要安装bind、bind-chroot以及bind-utils软件包。

    2.修改配置文件

        与主服务器一样,我们需要复制模板配置文件,并修改named.conf配置文件与主服务器配置文件。有所不同的是,所有从服务器配置文件中除根域以外的所有zone域类型均为slave,依次声明自己是从服务器,并使用masters语句指定与哪台主服务器进行数据同步。

     cd /usr/share/doc/bind-9.8.2/sample/etc/
     cp named.conf  /var/named/chroot/etc/
     chown  root.named  /var/named/chroot/etc/named.conf
     vim /var/named/chroot/etc/named.conf

    3.同步数据文件 

        从服务器进行同步操作前,需要创建一个BIND软件读取操作的目录,以便将主服务器的数据文件保存至该目录。

        在从服务器上,我们仅需要简单设置以下BIND主配置即可,当从服务器的主配置文件修改完成后,通过启动服务,BIND会自动根据配置文件中的masters语句寻找主域名服务器,并将主域名服务器上的数据文件下载至从服务器本地。完成第一次的数据同步后,从服务器会根据同步过来的数据文件中的SOA记录选项,决定下次同步数据的时间,本次案例中主域名服务器的SOA记录括号中有五个选项。

        第一个选项10是序列号,从服务器会根据这个序列号来决定是否进行同步操作,只有当主服务器中数据文件的序列号大于从服务器中数据文件的序列号,从服务器才会真正与主服务器进行数据同步,该序列号建议使用时间格式,如20180610001,表示2018年6月10日的第一次修改(序列号只要数字即可,BIND不强制要求具体数字格式)。

        第二个选项1D,代表从服务器多久与主服务器进行序列号的对比(仅在主服务器序列号大于从服务器的序列号时,才进行数据同步),D代表Day,这里为一天。

        第三个选项1H,代表如果从服务器请求连接主服务器时,由于网络延迟、主服务器故障等原因,暂时无法连接到主服务器,那么从服务器会每隔一个小时再试一次。

        第四个选项1W,代表如果从服务器尝试一周后还未能连接到主服务器,则不再进行连接。

        第五个选项3H,代表的是缓存的时间为3个小时。

    setsebool -P named_write_master_zones=1
    mkdir -p /var/named/chroot/var/named/slaves/
    chown root.named /var/named/chroot/var/named/slaves
    chmod 775 /var/named/chroot/var/named/slaves
    service named start
    chkconfig named on

    六、DNS视图应用案例

        view语句用来创建视图,视图可以让不同的网络或主机在查询同一个DNS记录时得到不同的解析结果,也可以为不同的网络或者主机创建不同的数据文件。大型企业可以利用视图实现负载均衡,例如,当北京地区的网民访问新浪网时,域名服务器可以将结果就解析为北京本地的新浪网服务器,上海地区的网民访问新浪网时,域名服务器会将上海的新浪网服务器IP地址作为结果返还给用户。这样所有的人访问新浪网页查看新闻时,总是可以连接距离自己最近的服务器。

        在BIND9版本中,如果没有在主配置文件中使用view语句,则BIND会自动将所有的域定义一个大视图。通过配置文件中使用view语句,并结合match-clients语句,实现 不同用户查询相同的记录时所得到的结果不同。这样做的最大好处是可以让北京地区的网民访问新浪网时连接的是北京当地的服务器,而上海地区的网民需要连接新浪网时,DNS解析 的结果为上海本地的新浪服务器。

        一般我们会为同一个域创建多个视图,不同的视图对应不同的解析文件,此时需要注意的是,有多个视图就需要创建多少个对应的数据解析文件。当客户端发送查询请求后,服务器根据视图内的match-clients语句来匹配客户端主机,匹配成功后,服务器读取特定的视图内file指定的数据文件,并将结果返回给客户端,如果没有匹配成功,则继续查询下一个视图。如果所有的视图都未能匹配成功,服务器将返回无相关数据记录的信息给客户端。下面的案例通过修改主域名服务器的主配置文件演示视图的应用,当172.16.0.88请求abc.com域的相关解析记录时,服务器会读取abc.com.zone.develop这个数据解析文件,172.16.0.89请求abc.com域相关解析记录时,服务器会读取abc.com.zone.tech这个数据解析文件。注意,在此需要创建4个数据解析文件,相同域的正向域名解析文件有两个,反向域名解析文件有两个,只要在不同的数据解析文件中对相同的记录给予不同的解析结果,就可实现不同的用户得到不同的返回结果也不一样。

        只要根据自己的实际需要创建相应的数据文件,并在各个数据文件中对同一个数据记录给出不同的解析数据,即可实现智能DNS的分离解析功能。这里我们不可能将全北京或全上海的所有IP地址写入match-clients,根据DNS解析原理我们知道,所有的终端用户访问网络时都会连接到当地ISP服务商所提供的DNS服务器,这些服务商的DNS服务器会根据根服务器的提示迭代查询到我们的权威服务器。也就是说,我们在match-clients后面仅需填写全国主要的ISP所提供的DNS服务器IP地址即可。不同地区服务商的DNS,我们给予不同的解析结果,最终所有的终端用户会间接获得正确的解析结果。这里我们不再给出具体的数据文件记录,读者可以根据实际情况进行自行填写数据记录。

        以下为主配置文件named.conf实现视图应用的案例模板,读者根据自己的实际需要进稍作修改即可。

    vim /var/named/chroot/etc/named.conf

    七、常见问题分析

    1.由于BIND配置文件中,默认allow-query被设置为仅localhost可以进行DNS查询,如果开放DNS服务,则需要将allow-query修改为特定的主机或任意主机可以查询的DNS服务。

    2.在主配置文件中,默认listen-on被设置为仅监听本地回环地址,这样客户端也是无法连接服务器进行查询的。

    3.客户端连接服务器发送的查询请求使用的是UDP的53端口,而从服务器与主服务器同步数据用的是TCP53端口,开放DNS服务后,要注意修改防火墙设置。

    4.在Centos6系统环境下,从域名服务器与主域名服务器同步数据时,默认SELinux会拒绝从远程下载的数据文件写入本地磁盘,此时需要修改SELinux的布尔值,方法如下:

    setsebool -P named_write_master_zones=1

    5.配置文件问题,如果管理员在配置文件中的语法格式有错误,则named服务无法正常启动。例如,如果在配置文件语句后面少写了分好,启动服务时会提示类似的提示信息:/etc/named.conf:15:missing ';'before 'view',提示named.conf文件第15行左右少';'符号。

    6.文件与目录权限。由于BIND相关进程都是以named用户身份启动的,当配置文件或数据文件的权限无法被正确读取时,则系统将无法启动BIND服务。查看/var/log/messages日志文件,可以看到none:0:open:/etc/named.conf:permission denied这样的提示,说明BIND软件启动时无权对named.conf文件。类似的问题还可能出现在从服务器同步的时候,要求从服务器一定要把主服务器的数据文件同步到本地有读写权限的目录下。

    7.缩写问题。由于BIND数据文件有缩写功能,这样就有可能产生低级错误,就是在数据文件中输入的完整域名没有以"."结尾。例如,www.abc.com  IN  A  172.16.0.200,这样客户端无法查询到www.abc.com的解析记录,只能查询www.abc.com.abc.com的解析记录,但这应该不是我们所需要的。

    展开全文
  • 搭建主从域名解析服务器 主域名服务器通常架设在Internet环境中,提供某一个域或某几个域内的主机与IP地址的查询服务。为了分担域名查询的压力,提供区域数据的备份,有时还会另外架设一台从域名服务器,与主域名...

    搭建主从域名解析服务器

          主域名服务器通常架设在Internet环境中,提供某一个域或某几个域内的主机与IP地址的查询服务。为了分担域名查询的压力,提供区域数据的备份,有时还会另外架设一台从域名服务器,与主域名服务器同时提供服务。

    列如:我们可以根据以下要求构建主从域名解析服务器

    650) this.width=650;" style="width:621px;height:215px;" title="1.jpg" src="http://img1.51cto.com/attachment/201305/221139221.jpg" width="659" height="231" alt="221139221.jpg" />

    实验拓扑图如下:

    650) this.width=650;" style="width:548px;height:158px;" title="2.jpg" src="http://img1.51cto.com/attachment/201305/221214122.jpg" width="562" height="186" alt="221214122.jpg" />

    构建主域名解析服务器

    1、构建主域名解析服务器,需要安装bind相关的软件包,以及建立主配置文件和区域文件。

    主配置文件默认在“/var/named/chroot/etc/named.conf”,需要手工建立的。

    [root@localhost /]#vim /var/named/chroot/etc/named.conf

    650) this.width=650;" title="3.jpg" src="http://img1.51cto.com/attachment/201305/221633337.jpg" width="671" height="220" alt="221633337.jpg" />

    区域文件默认在“/var/named/chroot/var/named/”目录下,区域文件分为正向区域文件和反向区域文件,都需要手动建立的。

    2、[root@localhost /]#vim /var/named/chroot/var/named/benet.com.zone //建立正向区域文件

    650) this.width=650;" style="width:690px;height:236px;" title="4.jpg" src="http://img1.51cto.com/attachment/201305/221910543.jpg" width="696" height="219" alt="221910543.jpg" />

    3、[root@localhost /]#vim /var/named/chroot/var/named/173.16.16.arpa //建立反向区域文件

    650) this.width=650;" style="width:606px;height:244px;" title="5.jpg" src="http://img1.51cto.com/attachment/201305/222015964.jpg" width="614" height="260" alt="222015964.jpg" />

    4、建立完主配置文件以及区域文件后,需要开启named服务就可以在客户端解析域名了(注意:如果是在客户端解析,需将首选DNS指向主DNS服务器的地址,如果是在本机解析,也需要将首选DNS指向自己)。

    650) this.width=650;" style="width:717px;height:337px;" title="6.jpg" src="http://img1.51cto.com/attachment/201305/222253603.jpg" width="728" height="368" alt="222253603.jpg" />

    构建从域名解析服务器

    1、构建从域名服务器也需要安装bind相关的软件包,只是不用再建立区域文件了,因为从域名服务器的区域文件是从主域名服务器上复制过来的。只需要新建主配置文件即可。(注意:在主域名服务器的主配置文件中需要添加“allow-transfer”项,并指定从服务器的IP,而从服务器的主配置文件中也需要添加“masters“项,指向主服务器的IP,这样才从服务器才可以正常的从主服务器上复制区域文件)

    [root@localhost /]#vim /var/named/chroot/etc/named.conf

    650) this.width=650;" style="width:529px;height:194px;" title="7.jpg" src="http://img1.51cto.com/attachment/201305/222616711.jpg" width="528" height="175" alt="222616711.jpg" />

    2、启动named服务,查看区域数据文件是否下载成功。

    650) this.width=650;" title="8.jpg" src="http://img1.51cto.com/attachment/201305/223016201.jpg" alt="223016201.jpg" />

    3、验证从域名服务器是否能够解析。

    650) this.width=650;" title="7.jpg" src="http://img1.51cto.com/attachment/201305/223225269.jpg" alt="223225269.jpg" />

    本文出自 “邓奇的Blog” 博客,谢绝转载!

    展开全文
  • DNS域名解析服务

    2020-11-04 12:17:04
    文章目录DNS系统的作用DNS系统类型缓存域名服务器主域名服务器从域名服务器...域名解析对配置文件进行语法检查构建缓存域名服务器启动named服务验证缓存域名服务器构建主域名服务器基本配置步骤确认本机网络地址、主机...
  • DNS域名解析服务--Named服务

    万次阅读 2018-05-14 09:57:12
    使用BIND提供域名解析服务 - 简介 - 1. 部署主服务器 - 2. 部署主从服务器 - 2.1. 部署带安全加密传输的主从服务器 - 3. 部署缓存服务器 - 4. 分离解析技术 一、部署主服务器 基本过程 - 1. 编辑主...
  • Linux 域名解析服务 DNS

    千次阅读 2019-12-29 18:28:01
    域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数...
  • DNS域名解析服务器原理; 1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。 2. 如果浏览器缓存中没有(专业点叫还没命中),...
  • 阿里云域名解析服务器

    千次阅读 2018-11-16 09:23:34
    1、登录阿里云控制台->域名->找到对应的域名->解析->添加记录 步骤一: 步骤二: 步骤三:
  • HPUX 域名解析服务解释

    千次阅读 2011-01-07 12:55:00
    1. 三种名字解析方式: 第一种是/etc/hosts文件解析:这个文件为每一个主机到IP地址的映射包含了一行。在一个大规模的网络中保持这个文件在所有主机的一致性是不可能实现的。如果一个主机声明了多个...
  • httpdns是面向无线端的域名解析服务,与传统走UDP协议的DNS不同,httpdns基于HTTP协议。 PC端的服务一般通过浏览器访问,对于域名解析,浏览器只会走标准DNS,我们没法干预。无线端的可操作空间比较大,APP自己...
  • Oracle 11gR2引入SCAN之后,SCAN的...Oracle提供两种方法解析SCAN,一种是传统的DNS解析,另一种是Oracle提供的GNS解析。不管用哪种方法解析都需要配置DNS。下面对这两种解析方式的DNS配置进行讨论,使用DNS解析SCAN用
  • IMDNS动态域名解析服务,对没有独立域名或固定IP中小公司提供二级域名动态解析,降低企业部署成本,提高系统的适应性和灵活性。
  • 介 绍 Internet发展至今,在网的服务器和个人主机数量庞大,每个用户通过记忆IP地址访问网络资源并不现实了。 目前大家访问互联网进行上网浏览信息时,正常...这里就出现了DNS域名系统技术来帮我们简化此过程,以此...
  • 域名与DNS(域名解析服务器)

    千次阅读 2016-06-05 12:07:52
    1. 顶级域名与二级域名 a.b是顶级域名 c.a.b是二级域名 d.c.a.b是三级域名 需要注意的是,以上的“b”这个部分有时候可能并不是一个字段…如yahoo.com,b部分是com,这是一个顶级域名 yahoo.com.cn b部分是com.cn...
  • DNS域名解析服务器的搭建

    万次阅读 2018-05-11 10:42:35
    12DNS服务的启动和关闭/etc/init.d/named start ##开启DNS服务 chkconfig named on ##开启自启 /etc/init.d/named stop ##关闭DNS服务 1234DNS服务主要配置文件/etc/named.conf ##主配置文件 /etc/...
  • DNS,即Domain Name System,域比如名服务器,实现域名和IP地址对应的解析。将www.baidu.com 转换成某个IP地址,或者将某个IP映射成www.baidu.com。 DNS的三种服务类型 - 主服务器:在特定区域内具有唯一性,负责...
  • 今天给大家带来的是DNS域名解析服务的内容,将从以下几个内容来进行解析: 1、BIND域名服务基础:DNS系统的作用及类型BNID的安装和配置文件2、使用BIND构建域名或服务器:构建缓存域名服务器构建主、从域名服务器 ...
  • 不过,少了一个CloudXNS也没有关系,毕竟DNS域名解析服务并不只有一家,免费的DNS域名解析服务在国外也非常地常见,除了没有地理位置和线路识别功能,国外的DNS域名解析服务其实也可以用于网站域名解析,基本上可以...
  • 常见公共 DNS 域名解析服务器

    千次阅读 2019-11-13 21:03:35
    国内最为多见的是由互联网服务提供商 (ISP)电信、移动、联通出资在全国各地组件的DNS,一般我们接入国内宽带网络后的默认DNS都是ISP的本地DNS。目前在国内除了ISP和政府职能部门外一些IT公司也都建立起了非常不错的...
  • 使用Bind提供域名解析服务

    千次阅读 2018-02-25 20:50:41
    13.1 DNS域名解析服务相较于由数字构成的IP地址,域名更容易被理解和记忆,所以我们通常更习惯通过域名的方式来访问网络中的资源。但是,网络中的计算机之间只能基于IP地址来相互识别对方的身份,而且要想在互联网中...
  • 一、背景 到 20 世纪 70 年代末,ARPAnet 是一个拥有几百台主机的很小很友好的网络。仅需要一个名为 HOSTS.TXT 的文件就能容纳所有需要了解的主机信息:它包含了所有连接到 ARPAnet 的主机名字到地址的映射(name-to...
  • vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 www.baidu.com...
  • 域名解析服务查询工具dnstracer

空空如也

1 2 3 4 5 ... 20
收藏数 18,887
精华内容 7,554
关键字:

域名解析服务