2018-11-22 00:06:44 Stella_Pooter 阅读数 136
  • 网络工程师DNS域名解析强化训练视频课程

    网络工程师考试考察知识点繁多,形式多样。如何有效把握每种考察形式,拿到相应分数?这是历年考生挠头的事情。本系列课程紧抓考生痛点,对网工考试中重点题型分门别类讲解,反复强化训练,助力考生查缺补漏,拿到相应分数。本次分课程重点讲解了理解题型中DNS解题方法。通过基本概念阐述->实战配置演示->全真模拟题强化训练,三大步骤帮助考生掌握DNS解题方法,拿到相应分数。

    3231 人正在学习 去看看 徐朋

如果要给别人的dns服务器排错

首先重启dns服务

启动不来

报错信息都会在/var/log/message

为了实验方便,我们先做错一些操作

然后

1.清空/var/log/message

2.重启dns服务

systemctrl restart named

3.查看报错信息

cat /var/log/message

例:

4.阅读并改正错误

错误行数 错误内容 

/etc/named.rfc1912.local 的49行与25行存在相同定义

删除多余内容

5.重启dns服务验证,如果不对继续重复上述操作直至服务正常启动

2010-01-13 14:41:00 wangxiaofei2006 阅读数 2215
  • 网络工程师DNS域名解析强化训练视频课程

    网络工程师考试考察知识点繁多,形式多样。如何有效把握每种考察形式,拿到相应分数?这是历年考生挠头的事情。本系列课程紧抓考生痛点,对网工考试中重点题型分门别类讲解,反复强化训练,助力考生查缺补漏,拿到相应分数。本次分课程重点讲解了理解题型中DNS解题方法。通过基本概念阐述->实战配置演示->全真模拟题强化训练,三大步骤帮助考生掌握DNS解题方法,拿到相应分数。

    3231 人正在学习 去看看 徐朋

在开始讨论如何排除DNS问题之前,我们想知道你是否清楚怎样判断某个问题是由DNS而不是由别的命名服务造成的。在Windows主机

上,判断问题的原因是否真的出在DNS上可是件困难的事。Windows支持的命名服务真是名目繁多:如DNS、Wins、HOSTS、LMHOSTS等

数不胜数。然而常用的Windows 2000 nslookup 却全然不理会其他这些命名服务。你可能会只顾在Windows 2000计算机上运行

nslookup和查询名称服务器,而有问题的服务却可能在使用另一种不同的命名服务。首先,你需要考虑是哪一类程序出了问题,如果

是TCP/IP客户端,如telnet或ftp,那么问题可能出在DNS和HOSTS文件上。如果是一个支持NetBIOS命名的实用程序,如net(与在net

use中一样)中,那么值得怀疑的还要包括Wins和LMHOSTS文件。其他也使用DNS名称或NetBIOS名称作为参数的客户端(如ping)也会

使用这些命名服务中的任意一种。接下来,再考虑Windows使用这些命名服务的顺序。在查找问题时,应按照此顺序检查各种服务。

这些提示对你查出问题的症结会有帮助,至少可帮你排除一个怀疑对象。
 
  如果要检查一个服务器的缓存区,请单击DNS控制台左窗格中该服务器名称左边的加号。你将看到一个名为Cached Lookups的文件

夹。单击其左边的加号或双击文件夹图标或标签以展开下一级。这样可显示出你的名称服务器已为其缓存了数据的那些顶级域。继续

展开,直至看到你要查看的缓存数据所在的那一域名。如我们的名称服务器已为microsoft.com缓存了三条NS记录和一条A记录。如果

依次双击net和hp,我们还会看到这些名称服务器的缓存地址。如果想看缓存数据上的 TTL,请双击右窗格中的一条记录。若 DNS 控

制台处于高级查看模式(选择查看 > 高级),则出现的窗口将显示出该记录的 TTL。在检查 TTL 之前,一定要用操作 > 刷新或用

F5 键刷新 DNS 控制台,否则你看到的 TTL 可能会大于当前 TTL。如果右键单击该记录,你可能会注意到有一个删除记录选项。
 
  DNS的一些常见的错误
 
  1. 忘记增加序列号
 
  在你未使用 DNS 控制台而是用手动方式更改区域数据文件时,就会出现一些问题。DNS 控制台在它每次更改区域数据时都会记着

在 SOA 记录中增加序列号,所以你不必为此操心。不过,这也意味着你可能不会养成更新序列号的习惯,所以在进行一次性手动修

改时,你可能会忘记增加序列号。此问题的主要症状是,从属名称服务器不会获得你在主服务器上对该区域做的任何更改。从属服务

器认为区域数据并未更改,因为它看到的序列号仍是原来的序列号。该怎样检查当时是否记着增加序列号呢?不幸的是,这就不是那

么容易了。如果你不记得原序列号是什么,而现在的序列号不能表明它是什么时候更新的,则没有直接的方法判断它是否已更改。在

启动主服务器时,不管你是否更改了序列号,它都将加载更新后的区域数据文件。最好的办法只能是使用 nslookup 来比较主服务器

和从属服务器返回的数据。如果它们返回不同的数据,则表明你可能忘了增加序列号。如果你能想起最近作的一次更改,则可以查看

此数据。如果记不起最近一次作的更改,则可以从一个主服务器和一个从属服务器复制该区域,将结果排序并使用文件比较工具将它

们加以比较。还有一个好消息,即,尽管确定该区域此前是否已复制比较难,但现在要确保该区域被复制却非常简单。只须在 DNS

控制台中双击 SOA 记录并手动编辑序列号字段,增加主服务器上此区域的副本中的序列号即可。从属服务器将在刷新时间间隔内获

得此新的数据,如果它们用了 NOTIFY,则会更快。
 
  2. 以手动方式更改DNS服务器
 
  要记住 Microsoft DNS 服务器会定期更新其区域数据文件。每次用 DNS 控制台对一个区域的数据进行更改时,就有一个写操作挂

起:在 DNS 服务器退出之前,它必须重写该区域的数据文件,否则它就会丢失你所作的更改。可以将此比作内存中一个已更新的页

:操作系统在退出之前必须将它写到磁盘上。如果你在一个写操作挂起期间对一个区域数据文件作了手动更改,则在名称服务器退出

后你会莫名其妙地丢失所作的更改。比如你在服务器正在运行且有一个写操作挂起时向一个名为microsoft.com的新子域添加了委派

。作完更改后,你必须将服务器停下并再次启动,以让它再次读取该区域数据。但是在服务器退出时,它将重写 microsoft.com 区

域数据文件,你的委派于是就会丢掉。如果仔细观察(平时就需要这样)事件查看器,会在服务器停止事件之前看到这样一条消息:

The DNS server wrote version 37 of zone microsoft.com to file microsoft.com.dns.(DNS 服务器写入区域 microsoft.com

的版本 37 到文件 microsoft.com.dns。)如果你用操作 | 更新服务器数据文件来强制服务器重写其区域数据文件,则服务器就会

与区域数据文件同步,而不必在退出时重写。所以,如果要对区域数据文件作手动更改,那么要么首先停止服务器(但这意味着在你

作更改期间服务器将不响应任何查询),要么使用 DNS 控制台将服务器与区域数据文件同步,然后再进行更改。
 
  3. 从属服务器无法加载区域数据
 
  如果一个从属服务器无法从其主控服务器获取某个区域的当前序列号,那么最初它是不会给你发警告消息的。然而,如果该问题一

直存在而且从属服务器在有效期时间内无法确定其数据是否是最新的,那么该区域就会过期。在一个 Microsoft DNS 服务器上,你

将在事件查看器中看到与下文类似的一条消息:在获得成功区域复制或从这个区域作为其源的主服务器获得成功区域复制之前

microsoft.com 区域就超时了,该区域已经被关闭。区域过期后,当你向名称服务器查询该区域中的数据时,就会收到 SERVFAIL 错

误消息:
  C:> nslookup robocop wormhole.microsoft.com.
  Server: wormhole.microsoft.com
  Addresses: 207.46.230.219, 192.253.253.1
  wormhole.microsoft.com can’t find robocop.microsoft.com: Server failed
 
  出现此问题的原因主要有三个:由于网络故障与主控服务器的连接断开,为主控服务器配置的 IP 地址不正确,主控服务器上的区

域数据文件中有语法错误。首先,应使用 DNS 控制台检查该从属服务器在尝试从中加载数据的那一(些)主控服务器的地址。右键

单击左窗格中该区域的域名,选择属性,然后查看常规选项卡,确认它是否真是主名称服务器的 IP 地址。如果是,请检查到此 IP

地址的连接:C:> ping 207.46.230.219
  Pinging 207.46.230.219 with 32 bytes of data:
  Request timed out.
  Request timed out.
  Request timed out.
  Request timed out.
 
  如果无法连接到主控服务器,请确定该服务器的主机是否真的在运行(例如,已通电),或检查网络问题。你可能还需要检查主控

服务器对该区域中数据的查询是否返回权威性响应。如果主控服务器的响应对于该区域不是权威性的,则从属服务器就不从该主控服

务器中复制此区域。可使用 nslookup 检查主控服务器的对于区域的 SOA 记录的权威性响应,命令格式如下:
  C:> nslookup -norec -type=SOA microsoft.com. 207.46.230.219
 
  此命令向位于地址 152.104.1.6 的名称服务器发送一个非递归查询,以查询 microsoft.com 的 SOA 记录。我们必须发送非递归

查询,这样位于 152.104.1.6 的名称服务器就不会将该查询转发给另一个服务器。如果将此主控服务器配置正确,则对此查询的响

应就应是权威性的。(记住,除非 nslookup 返回了“非权威性”响应,否则响应就是权威性的。)非权威性的响应可能表明主控服

务器在加载该区域时发生问题,通常是由于区域数据文件中存在语法错误。请与该主控服务器的管理员联系,让他检查其事件查看器

或系统日志的输出中是否有表明出现语法错误的消息。我们从来还没有见到过 Windows 2000 名称服务器因为区域数据文件中有语法

错误而对于此区域失去非权威性的情况,但旧的 BIND 名称服务器确实会表现出这种现象。所以,如果你的名称服务器是某一区域的

从属服务器,而此区域的主要主名称服务器是 BIND 名称服务器,该服务器现在对该区域不具有权威性,那么问题可能就是一个语法

错误。如果对查询的响应是权威性的但从属服务器仍无法成功复制该区域,那么你可以使用nslookup的ls命令来手动复制该区域。如

果看到类似于下面的错误消息,则很可能是主控服务器限制区域复制:
  C:> nslookup - 152.104.1.6
  Default Server: terminator.microsoft.com
  Address: 152.104.1.6
  > ls microsoft.com
  [terminator.microsoft.com]
  *** Can‘t list domain microsoft.com: Query refused
 
  请与该主控服务器的管理员联系,问是否在对区域复制进行限制。请他检查你正在尝试复制的区域的属性窗口的区域复制选项卡上

的选项(如果他在运行 Microsoft DNS 服务器)。如果该远程服务器在运行着 BIND,则请问他是否在使用 xfrnets 或 allow-

transfer 功能来对区域复制进行限制。在问题已被排除而且你的服务器能成功复制该区域后,你会在事件查看器中看到下面的消息

:A more recent version, version 212 of zone microsoft.com was
  found at DNS server at 207.46.230.219. Zone transfer is in progress.
  The DNS server wrote version 212 of zone microsoft.com to
 
  file microsoft.com.dns.(在 207.46.230.219 的 DNS 服务器上找到区域microsoft.com 的更新的版本212。正在进行区域复制

。DNS 服务器写入区域 microsoft.com 的版本 212 到文件 microsoft.com.dns。)
 
  DNS故障还有几种情况,我们将在下期继续讨论。

 
  4. 网络连接断开
 
  虽然与原始的 ARPANET时代相比,如今的 Internet 已可靠得多,但网络中断的现象仍很常见。这些故障往往看起来好像是性能问

题:
  C:/> nslookup nisc.sri.com.
  Server: terminator.microsoft.com
  Address: 152.104.1.6
  DNS request timed out.
  ……
  *** Request to terminator.microsoft.com timed-out
 
  使用 nslookup,你可以查找你的名称服务器要与之对话的那些名称服务器的名称和地址,以便解析该名称:
  C:/> nslookup
  Default Server: terminator.microsoft.com
  Address: 152.104.1.6
  > set type=ns
  > sri.com.
  Server: terminator.microsoft.com
  Address: 207.46.230.219
  Non-authoritative answer:
  ……
  NS.sri.com internet address = 128.18.30.66
  NS.CSL.sri.com internet address = 130.107.4.94
  NS.CSL.sri.com internet address = 192.12.33.94
  TURTLE.MCC.COM internet address = 128.62.1.215
  NS1.sri.com internet address = 128.18.30.65
  > com.
  Server: terminator.microsoft.com
  Address: 207.46.230.219
  Non-authoritative answer:
  ……
  C.ROOT-SERVERS.NET internet address = 192.33.4.12
  D.ROOT-SERVERS.NET internet address = 128.8.10.90
  E.ROOT-SERVERS.NET internet address = 192.203.230.10
  I.ROOT-SERVERS.NET internet address = 192.36.148.17
  F.ROOT-SERVERS.NET internet address = 192.5.5.241
  G.ROOT-SERVERS.NET internet address = 192.112.36.4
  J.GTLD-SERVERS.INTERNIC.NET internet address = 198.41.0.21
  A.ROOT-SERVERS.NET internet address = 198.41.0.4
  H.ROOT-SERVERS.NET internet address = 128.63.2.53
  B.ROOT-SERVERS.NET internet address = 128.9.0.107
 
  然后你可以检查你的主机与这些服务器的连接。但是,ping也不会比你的名称服务器幸运多少。如果ping成功了,你就应该查一查

这些远程服务器是否真的在运行。
  C:/> ping 128.18.30.66 --ping 第一个 sri.com 名称服务器
  Pinging 128.18.30.66 with 32 bytes of data:
  Request timed out.
  ……
  C:/> ping 130.107.4.94 --ping 第二个 sri.com 名称服务器
  Pinging 130.107.4.94 with 32 bytes of data:
  Request timed out.
  ……
  现在剩下要做的只是查找网络中的故障。像tracert这样的实用工具可帮你确定问题是出在你的网络上、在目标网络上、还是在中

间某个地方,在查找故障位置时也需要运用一些常识了。
 
  5.缺少子域委派
 
  尽管取得ICANN认证的注册员尽了最大努力以尽可能快地处理你的请求,但让你的子域的委派出现在根名称服务器中也可能需要一

两周的时间。你的父级不同(是取得ICANN 认证的注册员还是其他区域管理员),你的等待时间也会不一样。有的父级办事速度快且

有责任心;而有的父级则办事拖拉。等到你的委派数据出现在父级区域的名称服务器上后,你的名称服务器就能够在 Internet 域名

称空间查找数据了,但Internet 上(在你的域之外)没有任何人会知道怎样在你的 名称空间查找数据。
 
  这意味着,尽管你可以将邮件发送到你的域之外,但收件人却不能回复你的邮件。而且,也没有人能够按名称 telnet 到、ftp 到

,甚至不能 ping 到你的主机。
 
  要知道,你运行的任何 in-addr.arpa 子域都是这种情况。在父级将这些子域委派到你的服务器之前,Internet 上的名称服务器

不能够逆映射你网络上的地址。
 
  如要确定你区域的委派是否已在你的父级区域的名称服务器中,请向一个父级名称服务器查询你的区域的 NS 记录。如果父级名称

服务器中有此数据,则 Internet 上的任何名称服务器都能找到它:
 
  C:/> nslookup
  Default Server: terminator.microsoft.com
  Address: 152.104.1.6
  > server a.root-servers.net.--Query a root name server
  Default Server: a.root-servers.net
  Address: 198.41.0.4
  > set norecurse --Instruct the server to answer out of
  > set type=ns --its own data and to look for NS records
  > 249.249.192.in-addr.arpa. --for 249.249.192.in-addr.arpa
  Server: a.root-servers.net
  Address: 198.41.0.4
  *** a.root-servers.net can't find 249.249.192.in-addr.arpa.
  : Non-existent domain
 
  从这里可以清楚地看出尚未添加委派。你可以耐心地等待,如果在向父级区域请求委派后等待的时间太长,你可以与父级区域的管

理员联系,问他们是怎么回事。
 
  6.子域委派不正确
 
  子域委派不正确是 Internet 上另一个常见的问题。让委派保持最新需要人的参与 - 将你对你的一组权威性名称服务器作的更改

通知父级区域的管理员。因此,委派信息往往会由于管理员作更改时不将此情况通知他们的父级管理员而变得不准确。有相当多的管

理员都认为,建立委派是一劳永逸的事:在建立他们的区域时,他们让父级管理员知道哪些名称服务器是权威性的,然后就再也不与

父级管理员沟通此事了。他们甚至在母亲节也不知道打个电话。一名管理员可能会添加一个新的名称服务器,撤下另一个,又改变了

某一个名称服务器的 IP 地址,而这一切都可能不让父级区域的管理员知道。久而久之,由父级区域正确委派的名称服务器的数目就

会变少。在这种情况下,最好的结局是名称解析时间延长,因为进行查询的名称服务器要费尽周折去查找该区域的权威性名称服务器

。如果委派信息严重过时而最后一个权威性名称服务器主机被停机维修,那么就无法访问到该区域中的信息。如果你怀疑有委派错误

,不管是从你的父级到你的区域,从你的区域到你的一个子级,还是从一个远程区域到该区域的一个子级,你都可以用 nslookup 来

检查:
 
  C:/> nslookup
  Default Server: terminator.microsoft.com
  Address: 152.104.1.6
  > server a.gtld-servers.net. --Set server to the parent name
  --server you suspect has bad delegation
  Default Server: a.gtld-servers.net
  Address: 198.41.0.4
  > set type=ns --Look for NS records
  > microsoft.com. --for the zone in question
  Server: a.gtld-servers.net
  Address: 198.41.0.4
  Non-authoritative answer:
  ……
  RELAY.MICROSOFT.COM internet address = 15.255.152.2
  HPLABS.HPL.MICROSOFT.COM internet address = 15.255.176.47
  NNSC.NSF.NET internet address = 128.89.1.178
  HPSDLO.SDD.MICROSOFT.COM internet address = 15.255.160.64
  HPSDLO.SDD.MICROSOFT.COM internet address = 15.26.112.11
 
  假如你怀疑到 hpsdlo.sdd.microsoft.com 的委派不正确,你可以在 hpsdlo 区域查询 microsoft.com 中的数据,并检查返回的

结果:
  > server hpsdlo.sdd.microsoft.com.
  Default Server: hpsdlo.sdd.microsoft.com
  Addresses: 15.255.160.64, 15.26.112.11
  > set norecurse
  > set type=soa
  > microsoft.com.
  Server: hpsdlo.sdd.microsoft.com
  Addresses: 15.255.160.64, 15.26.112.11
  Non-authoritative answer:
  ……
  expire = 604800 (7 days)
  minimum ttl = 86400 (1 day)
  Authoritative answers can be found from:
  ……
  RELAY.MICROSOFT.COM internet address = 15.255.152.2
  HPLABS.HPL.MICROSOFT.COM internet address = 15.255.176.47
  NNSC.NSF.NET internet address = 128.89.1.178
 
  如果hpsdlo 确实是权威性的,它就会返回一个权威性的响应。microsoft.com 区域的管理员能告诉你 hpsdlo 是否应是

microsoft.com 的一个权威性名称服务器,所以你应与该管理员联系

2016-04-23 15:53:34 Minly_Hong 阅读数 965
  • 网络工程师DNS域名解析强化训练视频课程

    网络工程师考试考察知识点繁多,形式多样。如何有效把握每种考察形式,拿到相应分数?这是历年考生挠头的事情。本系列课程紧抓考生痛点,对网工考试中重点题型分门别类讲解,反复强化训练,助力考生查缺补漏,拿到相应分数。本次分课程重点讲解了理解题型中DNS解题方法。通过基本概念阐述->实战配置演示->全真模拟题强化训练,三大步骤帮助考生掌握DNS解题方法,拿到相应分数。

    3231 人正在学习 去看看 徐朋

注:Red Hat Enterprise Linux 6 

1、DNS配置不成功

原named.conf文件:

options {
	listen-on port 53 { 127.0.0.1; };
	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
	allow-query     { localhost; };
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;
	dnssec-lookaside auto;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.iscdlv.key";
};
<span style="font-size:14px;">
logging {</span>
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
将其中的
listen-on port 53 { 127.0.0.1; };
后面添加设置的ip

listen-on port 53 { 127.0.0.1;192.168.11.2; };

2、辅助DNS服务器的配置

此时主DNS服务器的named.conf的options中应该加上

<span style="font-size:14px;">options {
	allow-transfer	{192.168.11.6;};
};</span>
设置允许进行区域传输

2018-10-05 15:08:23 u013168176 阅读数 807
  • 网络工程师DNS域名解析强化训练视频课程

    网络工程师考试考察知识点繁多,形式多样。如何有效把握每种考察形式,拿到相应分数?这是历年考生挠头的事情。本系列课程紧抓考生痛点,对网工考试中重点题型分门别类讲解,反复强化训练,助力考生查缺补漏,拿到相应分数。本次分课程重点讲解了理解题型中DNS解题方法。通过基本概念阐述->实战配置演示->全真模拟题强化训练,三大步骤帮助考生掌握DNS解题方法,拿到相应分数。

    3231 人正在学习 去看看 徐朋

Linux高级篇–DNS服务和BIND

本章概要

  • DNS服务
  • 实现主从服务器
  • 实现子域
  • 实现view
  • 编译安装
  • 压力测试
  • DNS排错

一、 DNS服务

1.1 DNS服务相关

DNS服务

  • DNS:Domain Name Service 应用层协议
      C/S,53/udp, 53/tcp
  • BIND:Bekerley Internat Name Domain
      ISC (www.isc.org
  • 本地名称解析配置文件:hosts
      /etc/hosts
      %WINDIR%/system32/drivers/etc/hosts
        122.10.117.2 www.magedu.com
        93.46.8.89 www.google.com

DNS域名

  • 根域
  • 一级域名:Top Level Domain: tld
      com, edu, mil, gov, net, org, int,arpa
      分为三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
  • 二级域名:如baidu.com,taobao.com,magedu.com等
  • 三级域名:如:www.magedu.comwww.taobao.com,www.jd.com等
  • 最多127级域名
  • ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理

DNS域名结构
在这里插入图片描述

DNS解析

  • DNS查询类型:
      递归查询:主机向本地域名服务器的查询一般都是采用递归查询。
      所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
      迭代查询:本地域名服务器向根域名服务器的查询的迭代查询。
      迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

  • 名称服务器:域内负责解析本域内的名称的主机
      根服务器:13组服务器
    知识扩展:
    ipv4 dns根服务器,全球共有13个,其中10个在美国,2个在荷兰,1个在日本
    ipv6 根服务器全球共有25个,其中中国有1主3从

  • 解析类型:
      FQDN --> IP
      IP --> FQDN

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

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

  • 解析答案:
      肯定答案:对请求给予答复
      否定答案:请求的条目不存在等原因导致无法返回结果
      权威答案:由专门负责该域的服务器回复的结果
      非权威答案:与权威答案相反,由不是负责该域的服务器给出的答复

DNS服务器类型

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

区域传输

  • 区域传输:
      完全传输:传送整个解析库
      增量传输:传递解析库变化的那部分内容
  • Domain: Fully Qualified Domain Name
      正向:FQDN --> IP
      反向: IP --> FQDN
  • 负责本地域名的正向和反向解析库
      正向区域
      反向区域
1.2 资源记录

资源记录

  • 区域解析库:由众多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

资源记录定义的格式
语法格式:

name   [TTL]      IN           rr_type      value
名字   生命期   internet    资源记录类型     值

magedu.com域名的SOA记录写法:
magedu.com. 注意最后要加上"." ,否则系统会在域名后自动补上magedu.com
TTL 缓存生命期,以秒为单位,该时间统一定义,可以省略不写
IN:表示internet网络
rr_type:资源记录类型,如:SOA,A,NS
value的各项定义如下:
1、主dns服务器的名称;如果有主从dns服务器,此处写主dns服务器的名称,如:dns1.magedu.com
2、dns管理员的邮箱,在dns软件中,@符号有特殊含义,它表示本域的域名,用.来代替,因此邮箱格式为:admin.magedu.com
3、数据库版本号,该版本号是需要手动更新的,如果数据库内容有所更改,要人为手动更新数据库版本号
主服务器负责查询和修改,从服务器从主服务器获取数据,只负责查询,不能修改
从服务器数据库的更新是根据主服务器版本号来判断,如果主服务器的版本号比从版本号高,那么从服务器才会进行更新
4、主从同步时间间隔,默认以秒为单位,可指定时间单位,如一小时1h,一天1d
5、主从同步重试时间间隔,即同步失败后,隔多久进行再次同步
6、从数据库过期时长,如果一直同步失败,从服务器的数据库多久之后会过期
7、不存在的记录的缓存时长,把输入错误不存在的域名记录,如:wwww.magedu.com缓存下来,直接告知用户域名不存在,不再进行查询,节省流量
这七条记录中,第1-2条是括号前内容的定义,第3-7条是指括号内的内容定义

SOA记录

  • name: 当前区域的名字,例如“magedu.com.”
  • value: 有多部分组成
    (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
    (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
    例如:admin.magedu.com
    (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
    例如:
vim /var/named/magedu.com.zone
$TTL 1D            生命期,统一定义
@       IN SOA  magedu.com. admin.magedu.com. (                 @代表本域,  magedu.com.代表主dns服务器  admin.magedu.com.代表邮件服务器
                                        20180926        ; serial        版本号,注意该版本号位数不能超过10位
                                        1D      ; refresh               主从同步时间间隔
                                        1H      ; retry                 主从同步重试间隔
                                        1W      ; expire                同步失败后,数据库过期时长
                                        3H )    ; minimum               错误记录缓存时长
@       NS      dns1.magedu.com.        NS记录,表示本域的dns服务器,IN省略不写,可以从上条记录继承
dns1    A       192.168.32.129          主dns服务器的名字要配合A记录,把主dns服务器的名字解析为对应的ip地址
@       MX  10  mailsrv                 MX记录,表示邮件服务器,并指定邮件服务器的优先级
mailsrv A       192.168.32.100          邮件服务器的名字要配合A记录,把邮件服务器的名字解析为对应的ip地址
websrv1 A       192.168.32.130          
www     CNAME   websrv1                 定义websrv1服务器的别名为www
注意:如果域名不写全域后缀,系统会自动补全,如dns1相当于dns1.magedu.com,mailsrv相当于mailsrv.magedu.com等

NS记录

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

MX记录

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

A记录

www.magedu.com.   IN   A   1.1.1.1
www.magedu.com.   IN   A   2.2.2.2
mx1.magedu.com.   IN   A   3.3.3.3
mx2.magedu.com.   IN   A   4.4.4.4
$GENERATE 1-254  HOST$ A   1.2.3.$
*.magedu.com.     IN   A   5.5.5.5
magedu.com.       IN   A   6.6.6.6
  • 避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
  • 注意:A记录示例中多种写法在不同场景有不同作用,在下面会有详细示例

其他记录

  • AAAA:是指ipv6格式的A记录
      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.magedu.com.
如1.2.3为网络地址,可简写成:
4 IN PTR www.magedu.com.
  • 注意:网络地址及后缀可省略;主机地址依然需要反着写

别名记录

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

子域

  • 子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权
  • 类似根域授权tld:
.com. IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
  • magedu.com. 在.com的名称服务器上,解析库中添加资源记录
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
  • glue record:粘合记录,父域授权子域的记录
20.1.3 互联域名

互联网域名

  • 域名注册:
      代理商:万网, 新网, godaddy
  • 注册完成以后,想自己用专用服务来解析
      管理后台:把NS记录指向的服务器名称,和A记录指向的服务器地址

阿里云DNS
在这里插入图片描述

二、 实现主从服务器

2.1 BIND软件介绍
  • 在linux中,我们使用bind软件实现dns服务
    BIND安装
  • BIND的安装配置:
      dns服务程序包:bind,unbound
      程序名:named,unbound
      程序包:yum list all bind*
        bind:服务器
        bind-libs:相关库
        bind-utils:客户端
        bind-chroot: /var/named/chroot/

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

配置文件

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

配置主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

主区域示例:

$TTL 86400
$ORIGIN magedu.com.
        @ IN SOA ns1.magedu.com. admin.magedu.com (
        2015042201
        1H
        5M
        7D
        1D )
     IN   NS   ns1
     IN   NS   ns       
     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

测试命令dig

  • dig [-t type] name [@SERVER] [query options]
      dig只用于测试dns系统,不会查询hosts文件进行解析
  • 查询选项:
      +[no]trace:跟踪解析过程 : dig +trace magedu.com
      +[no]recurse:进行递归解析
      测试反向解析:
      dig -x IP = dig –t ptr reverseip.in-addr.arpa
      模拟区域传送:
      dig -t axfr ZONE_NAME @SERVER
      dig -t axfr magedu.com @10.10.10.11
      dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1
      dig -t NS . @114.114.114.114
      dig -t NS . @a.root-servers.net

测试命令

  • host [-t type] name [SERVER]
      host –t NS magedu.com 172.16.0.1
      host –t soa magedu.com
      host –t mx magedu.com
      host –t axfr magedu.com
      host 1.2.3.4
  • nslookup命令: nslookup [-option] [name | -] [server]
    交互式模式:
      nslookup >
      server IP: 指明使用哪个DNS server进行查询
      set q=RR_TYPE: 指明查询的资源记录类型
      NAME: 要查询的名称

实验:实现magedu.com的主DNS

(1)yum install bind 
(2)vim /etc/named.conf
   listen-on port 53 { localhost; };
    allow-query     { any; };
    
(3)vim /etc/named.rfc1912.zones
zone "magedu.com" {
        type master;
        file "magedu.com.zone"; 
};

(4)vim /var/named/magedu.com.zone 
$TTL 1D
@       IN SOA  dns1.magedu.com. admin.magedu.com. (
                                        2018092528      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.32.129      主dns服务器地址
@       MX      10  mailsrv
mailsrv A       192.168.32.100
websrv1  A      192.168.32.130     web服务地址
www     CNAME   websrv1

(5)更改文件权限
chgrp named  /var/named/magedu.com.zone 
(6)重启服务
rndc reload 

查询邮件服务器
dig -t MX magedu.com    查询magedu.com域的邮件服务器
dig -t  ns  magedu.com    查询magedu.com的ns记录
dig  邮件服务器域名     可以查询到邮件服务器域名对应的ip地址
2.3 反向DNS解析

反向区域

  • 反向区域:
      区域名称:网络地址反写.in-addr.arpa.
      192.168.32. --> 32.168.192.in-addr.arpa.
    (1) 定义区域
      zone “ZONE_NAME” IN {
      type {master|slave|forward};
      file “网络地址.zone”
      };
    (2) 定义区域解析库文件
      注意:不需要MX,以PTR记录为主
    (3)ip地址反向解析为域名
      dig -x 192.168.32.129 @192.168.32.129 反向解析
      另外一种写法(不推荐):dig -t ptr 129.32.168.192.in-addr.arpa. @192.168.32.129

示例:

$TTL 86400
$ORIGIN 100.16.172.in-addr.arpa.
@    IN        SOA  ns1.magedu.com. admin.magedu.com. (
     2015042201
     1H
     5M
     7D
     1D )
     IN   NS   ns1.magedu.com.
     IN   NS   ns2.magedu.com.
11   IN   PTR  ns1.magedu.com.
11   IN   PTR  www.magedu.com.
12   IN   PTR  mx1.magedu.com.
12   IN   PTR  www.magedu.com.
13   IN   PTR  mx2.magedu.com.

实验:搭建反向解析

更改区域的域配置文件
vim /etc/named.rfc1912.zones
 29 zone "32.168.192.in-addr.arpa" {
 30         type master;
 31         file "192.168.32.zone"; 
 32 };
编辑数据库文件,可以参考named.loopback文件,注意文件权限
cp -a named.loopback 192.168.32.zone
[root@centos7-1 named]#vim 192.168.32.zone 
$TTL 1D
@ IN SOA  dns1 admin.magedu.com. (
          0 ; serial
          1D  ; refresh
          1H  ; retry
          1W  ; expire
          3H )  ; minimum
@     NS     dns1               NS记录,表示dns1是dns服务器
dns1  A     192.168.32.129   A记录配合把dns1域名解析为ip地址
129   PTR   dns1.magedu.com.    129后面的数据,系统会自动补全,相当于129.32.168.192.in-addr.apra
100   PTR   www.qq.com.      100相当于100.32.168.192.in-addr.apra
检查域文件
named-checkzone 32.168.192.in-addr.arpa 192.168.32.zone
重启服务
rndc reload

A记录其他写法讲解:

如果登录www.magedu.com网站时,只写入magedu.com而不写www,会出现问题
在区域的域配置文件中添加一条A记录
vim /var/named/magedu.com
 15 @       A       192.168.32.130   @相当于magedu.com
注意:该记录要对应dns服务器的ip地址
curl  magedu.com


访问某网站时,写错域名也能访问
如访问京东:www.jd.com时,写错为wwwwww.jd.com也可以访问
泛域名解析:
vim /var/named/magedu.com.zone 
16 *      A        192.168.32.130   *相当于*.magedu.com
curl aaa.magedu.com


vim /var/named/magedu.com.zone 
17 $GENERATE 1-254 server$ A 3.3.3.$ 
3.3.3.$中的$符号调用servce$,而server$的范围为1-254,也就是说3.3.3.$的范围是3.3.3.(1-254),该命令可以生成254条记录
测试:
dig server1.magedu.com
解析地址为3.3.3.1
dig server100.magedu.com
解析地址为3.3.3.100

允许动态更新

  • 指定的zone语句块中:Allow-update {any;};
  • chmod 770 /var/named
  • setsebool -P named_write_master_zones on
  • nsupdate
    >server 127.0.0.1
    >zone magedu.com
    >update add ftp.magedu.com 88888 IN A 8.8.8.8
    >send
    >update delete www.magedu.com A
    >send
  • 测试:dig ftp.magedu.com @127.0.0.1
    ll /var/named/magedu.com.zone.jnl
  • 查看/var/named/magedu.com.zone文件
cat /var/named/magedu.com.zone  
zone "magedu.com" {
        type master;
        file "magedu.com.zone";
        allow-upadate {x.x.x.x}    x.x.x.x为允许更新的ip地址                                                               
};
2.5 从DNS服务器

从服务器
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";
};

实验:实现dns服务器的高可用性,搭建主从dns服务器
实现dns服务器的高可用性,搭建主从dns服务器
主服务器数据发生变化,向从服务器推送数据
触发条件:主服务器数据发生变化
从服务器从主服务器拉取数据
触发条件:时间,指定每隔多久拉取一次信息
规划如下:
192.168.32.129 主服务器
192.168.32.130 从服务器
192.168.32.128 测试服务器

更改配置文件
/etc/named.conf
//  listen-on port 53 { 127.0.0.1; };
//  allow-query     { localhost; };

配置管理域
/etc/named.rfc1912.zones
zone "magedu.com" {
        type slave;          指定从服务器类型
        masters { 192.168.32.129; };    指定主服务器ip地址
        file "slaves/magedu.com.zone.slave"  指定从服务器的库文件
};
注意:从服务器的库文件必须存放在/var/named/slaves目录下,文件中slaves/magedu.com.zone.slave是相对路径,系统会自动找到该文件

更改主服务器/var/named/magedu.com.zone
在主服务器数据库文件中添加从服务器地址
  8 @       NS      dns1          主服务器NS记录
  9 @       NS      dns2          从服务器NS记录
 10 dns1    A       192.168.32.129   A记录配合解析主服务器dns域名
 11 dns2    A       192.168.32.130   A记录配合解析从服务器dns域名 
更改后,重启服务 rndc reload

在从服务器查看文件是否从主服务器拉取过来
ls /var/named/slaves
magedu.com.zone.slave
注意:此文件可以从dns服务器获取,也可以手动创建

在测试主机网络配置文件中指定第二个dns地址
DNS1=192.168.32.129
DNS2=192.168.32.130
把主dns服务器的dns服务关闭,测试从dns服务器是否能够启动
dig www.magedu.com

在主服务器数据库文件中添加一条A记录,手动更新版本号,测试从服务器是否能够拉取主服务器已经更改的数据
bbs  A   1.1.1.1
在测试主机:
dig  bbs.magedu.com @192.168.32.130   指定从某主机查询记录

这样搭建从dns服务器存在着安全漏洞,因为从dns服务器的搭建没有经过主服务器的同意就能充当从dns服务器,连接到主dns服务器获取数据。
虽然在主服务器上/etc/named/magedu.com.zone文件中配置了一条关于从服务器NS记录和A记录,这两条记录只能影响主服务器向从服务器推送数据的操作,但并不影响从服务器向主服务器拉取数据的操作
解决方法:

在主dns服务器配置文件/etc/named.conf中添加策略
vim  /etc/named.conf
allow-transfer  { 192.168.32.130; }; 
此时,仍然能从从dns服务器抓取数据
在从dns服务器配置文件/etc/named.conf中添加策略
vim  /etc/named.conf
allow-transfer  { none; }; 

rndc命令

  • rndc:
      rndc --> rndc (953/tcp)
      rndc COMMAND
  • COMMAND:
      reload: 重载主配置文件和区域解析库文件
      reload zonename: 重载区域解析库文件
      retransfer zonename: 手动启动区域传送,而不管序列号是否增加
      notify zonename: 重新对区域传送发通知
      reconfig: 重载主配置文件
      querylog: 开启或关闭查询日志文件/var/log/message
      trace: 递增debug一个级别
      trace LEVEL: 指定使用的级别
      notrace:将调试级别设置为 0
      flush:清空DNS服务器的所有缓存记录

三、 实现DNS子域

子域

  • 子域授权:分布式数据库
  • 正向解析区域子域方法
  • 定义一个子区域:
ops.magedu.com.       IN    NS    ns1.ops.magedu.com.
ops.magedu.com.       IN    NS    ns2.ops.magedu.com.
ns1.ops.magedu.com.   IN    A     1.1.1.1
ns2.ops.magedu.com.   IN    A     1.1.1.2
fin.magedu.com.       IN    NS    ns1.fin.magedu.com.
fin.magedu.com.       IN    NS    ns2.fin.magedu.com.
ns1.fin.magedu.com.   IN    A     3.1.1.1
ns2.fin.magedu.com.   IN    A     3.1.1.2
  • 注意:关闭dnssec功能:
dnssec-enable no;
dnssec-validation no;

实验:子域的搭建
magedu.com的子域搭建

子域搭建的三种方法:
方法1:以子域:zhengzhou.magedu.com为例
如果子域访问量不大,可以拿一台服务器,既当父域magedu.com,又当子域zhengzhou.magedu.com
vim /var/named/magedu.com.zone 
20 www.zhengzhou  A  2.2.2.2   只需添加一条记录即可
在测试机进行测试:
dig www.zhengzhou.magedu.com
这种方法把www.zhengzhou.magedu.com作为一条A记录,并没有用域来实现

方法2:
以子域:shanghai.magedu.com为例
vim /etc/named.rfc1912.zones    在域文件中添加一个域
 17 zone "shanghai.magedu.com" {
 18         type master;
 19         file "shanghai.magedu.com.zone";                                                     
 20 };

[root@centos7-1 ~]#vim /var/named/shanghai.magedu.com.zone

  1 $TTL 1D
  2 @       IN SOA  dns1  admin.magedu.com. (
  3                                         20180928        ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8 @       NS      dns1
  9 dns1    A       192.168.32.129
 10 websrv1 A       3.3.3.3                                                                     
 11 www     CNAME   websrv1
测试:
dig www.shanghai.magedu.com

方法3:
以子域:shenzhen.magedu.com为例
主机:192.168.32.131
当dns服务器访问量过大时,需要把dns服务搭建到单独一台服务器上
这种方法称作子域委派,即把子域委派给某台服务器单独管理                 
在主服务器上建立委派
vim /var/named/magedu.com.zone
10 shenzhen NS     dns3           增加NS记录,表示其为子域dns服务器
13 dns3    A       192.168.32.131  A记录配合解析域名为ip地址
在192.168.32.131上创建数据库文件/var/named/shenzhen.magedu.com.zone
[root@centos7-3 named]#vim shenzhem.magedu.com.zone

$TTL 1D
@       IN SOA  dns1 admin (
                                        20180928        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns1
dns1    A       192.168.32.131
websrv1 A       5.5.5.5
www     CNAME   websrv1

vim /etc/named.rfc1912.zones   添加域
zone "shenzhen.magedu.com" {
        type master;
        file "shenzhen.magedu.com.zone";
};

转发服务器

  • 注意:被转发的服务器需要能够为请求者做递归,否则转发请求不予进行
  • (1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器
Options {
       forward first|only;
       forwarders { ip;};
};
  • (2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高
zone "ZONE_NAME" IN {
      type forward;
      forward first|only;
      forwarders { ip;};
};
  • 工作模式:forward first|only
    first:如果用户的某请求本地dns服务器没有,就把请求转发到指定dns服务器上,如果指定dns服务器上也没有,那么本地dns服务器自己到互联网上寻找
    only:如果用户的某请求本地dns服务器没有,就把请求转发到指定dns服务器上,如果指定dns服务器上也没有,那么将返回请求结果失败,不再进行查询
  • 注意:关闭dnssec功能:
dnssec-enable no;
dnssec-validation no;

实验:实现DNS转发功能

三台主机做模拟:
192.168.32.128
192.168.32.129
192.168.32.131
128主机向129主机查询wang的域名,129主机上没有,转发到131主机,131主机上有wang的域名
在主机192.168.32.131上设置一个新的域:wang.com
/etc/named.rfc1912.conf
zone "wang.com" {
        type master;
        file "wang.com.zone";
};
/var/named/wang.com.zone
[root@centos7-3 named]#vim /var/named/wang.com.zone 

$TTL 1D
@       IN SOA  dns1  admin  (
                                        20180928        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns1
dns1    A       192.168.32.131
websrv1 A       8.8.8.8
www     CNAME   websrv1
在129主机上设置转发
vim /etc/named.conf
options{
 21         forward only;          设置only转发策略
 22         forwards { 192.168.32.131; }   
};
在128主机上查询:
dig www.wang.com @192.168.32.129
由于转发策略设置的时foreword only,如果查询131主机上也不存在的域名,那么结果将会返回查询失败

把129主机上的转发策略设置为foreword first,并且确定该主机能够连接互联网
在128主机上查询:
dig www.baidu.com @192.168.32.129

rndc flush  清除dns缓存

四、 实现view

bind中的ACL

  • bind中基础的安全相关的配置:
    acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用
  • 格式:
acl acl_name {
       ip;
       net/prelen;
       ……
};

示例:

acl mynet {
       172.16.0.0/16;
       10.10.10.10;
};
  • bind有四个内置的acl:
      none: 没有一个主机
      any: 任意主机
      localhost: 本机
      localnet: 本机的IP同掩码运算后得到的网络地址
  • 注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面

访问控制

  • 访问控制的指令:
      allow-query {}: 允许查询的主机;白名单
      allow-transfer {}:允许区域传送的主机;白名单
      allow-recursion {}: 允许递归的主机,建议全局使用
      allow-update {}: 允许更新区域数据库中的内容

智能DNS
在这里插入图片描述

CDN (Content Delivery Network)
在这里插入图片描述

CDN内容网络分发
在这里插入图片描述

bind view

  • CDN: Content Delivery Network内容分发网络
      服务商:蓝汛,网宿,帝联等
  • 智能DNS:
      dnspod
      dns.la
  • view:视图:实现智能DNS:
      一个bind服务器可定义多个view,每个view中可定义一个或多个zone
      每个view用来匹配一组客户端
      多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
  • 注意:
      (1) 一旦启用了view,所有的zone都只能定义在view中
      (2) 仅在允许递归请求的客户端所在view中定义根区域
      (3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表
  • 格式:
view VIEW_NAME {
      match-clients { testacl; };
      zone “magedu.com” {
           type master;
           file “magedu.com.zone”; };
      include “/etc/named.rfc1912.zones”;
}

实验:智能dns模拟实验:

规划:
192.168.32.0/24   模拟 beijing
通过192.168.32.0访问www.magedu.com  返回6.6.6.6
172.20.0.0/16     模拟 shanghai
通过172.20.0.0访问www.magedu.com  返回8.8.8.8
通过本地网卡访问,返回192.168.32.130

在192.168.32.129主机上进行配置
注意:该内容一定要写在文件最上面(即卸载options行上面)
vim /etc/named.conf
acl beijingnet{ 192.168.32.0/24; };   
acl shanghainet{ 172.20.0.0./16; };
acl othernet{ any; };  

};
view  beijingview {
        match-clients { beijingnet; };
        include "/etc/named.rfc1912.zones.beijing";
};
view  shanghaiview {
        match-clients { shanghainet; };
        include "/etc/named.rfc1912.zones.shanghai";
};
view  otherview {
        match-clients { othernet; };
        include "/etc/named.rfc1912.zones";                                                                                                                                                    
};

include "/etc/named.root.key";

注意:一旦存在view信息,根域的区域信息必须存放在view里,否则,该信息将会失效
因此把该信息存放到/etc/named.rfc1912.zones文件中即可
vim /etc/named.rfc1912.zones
zone "." IN {
        type hint;
        file "named.ca";

cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.beijing -p
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.shanghai -p

vim /etc/named.rfc1912.zones.beijing
zone "." IN {
        type hint;
        file "named.ca";
};

zone "magedu.com" {
        type master;
        file "magedu.com.zone.beijing";
};
;

vim /etc/named.rfc1912.zones.shanghai
zone "." IN {
        type hint;
        file "named.ca";
};

zone "magedu.com" {
        type master;
        file "magedu.com.zone.shanghai";
};

vim  /etc/named.rfc1912.zones 
zone "." IN {
        type hint;
        file "named.ca";
};
zone "magedu.com" {
        type master;
        file "magedu.com.zone";                                                                                                                                                                
};


[root@centos7-1 ~]#vim /var/named/magedu.com.zone

$TTL 1D
@       IN SOA  dns1.magedu.com. admin.magedu.com. (
                                        20180928        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns1
dns1    A       192.168.32.129                                                                                                                                                                 
websrv1 A       192.168.32.130
www     CNAME   websrv1

[root@centos7-1 ~]#vim /var/named/magedu.com.zone.shanghai 
$TTL 1D
@       IN SOA  dns1 admin (
                                        20180928        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns1
dns1    A       192.168.32.129
mailsrv A       192.168.32.100                                                                                                                                                                 
websrv1 A       8.8.8.8
www     CNAME   websrv1

[root@centos7-1 ~]#vim /var/named/magedu.com.zone.beijing 

$TTL 1D
@       IN SOA  dns1  admin  (
                                        20180928        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns1
dns1    A       192.168.32.129                                                                                                                                                                 
mailsrv A       192.168.32.100
websrv1 A       6.6.6.6
www     CNAME   websrv1

测试:
在129主机:
dig www.magedu.com @127.0.0.1
在其他主机:
dig www.magedu.com @172.20.129.131    
dig www.magedu.com @192.168.32.129
查看返回值是否正确

五、 编译安装bind

编译安装bind

  • 下载bind:
    isc.org:
            bind-9.10
            bind-9.11
            bind-10
  • 编译安装bind
    tar xvf bind-9.11.0a3.tar.gz
    cd bind-9.11.0a3/
    groupadd -r -g 53 named
    useradd -r -u 53 -g 53 named
    ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --without-openssl --disable-ipv6 --disable-chroot --enable-threads
    make
    make install
  • 环境变量:
vim /etc/profile.d/named.sh
    export PATH=/usr/local/bind9/bin:
    /usr/local/bind9/sbin/:$PATH
  • 库和头文件
vim /etc/ld.so.conf.d/named.conf
    /usr/local/bind9/lib
ldconfig –v
ls -sv /usr/local/bind9/include /usr/include/named
  • man帮助
vim /etc/man.config | /etc/man_db.conf
    MANPATH /usr/local/bind9/share/man
man named.conf
  • 配置/etc/named/named.conf文件
vim /etc/named/named.conf
    options {
        directory "/var/named/"
    };
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "localhost" IN {
        type master;
        file “named.localhost";
        allow-update {none;};
    };
    zone “1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update {none;};
    };
  • 区域数据库
mkdir /var/named
named-checkconf
dig +norec @a.root-servers.net > /var/named/named.ca
vim /var/named/named.localhost
    $TTL 1d
    @ IN SOA localhost. admin.localhost. (
                  2016061801
                  1h
                  5m
                  7d
                  1d)
    IN NS localhost.
    localhost. IN A 127.0.0.1
  • 配置/var/named/named.loopback文件
vim /var/named/named.loopback
    $TTL 1d
    @ IN SOA localhost. admin.localhost. (
                  2016061801
                  1h
                  5m
                  7d
                  1d)
    NS   @
    A   127.0.0.1
    PTR localhost
  • 设置权限
    chmod 640 /var/named/*
    chmod 640 /etc/named/named.conf
    chgrp -R named /var/named/
    chgrp named /etc/named/named.conf
  • 启动服务和测试
    man named
    named -u named -f -g -d 3 前端级别3方式运行
    named -u named 后台运行
    killall named
    ss -tuln
    tail /var/log/message
    named -u named
  • 支持rndc
    rndc reload 观察错误提示
    rndc-confgen -r /dev/urandom > /etc/named/rndc.conf 生成key
    tail /etc/named/rndc.conf >> /etc/named/named.conf
    killall -SIGHUP named
    rndc status

六、 压力测试

压力测试

  • /root/bind-xxx/contrib/scripts
  • 编译压力测试工具
    cd /root/bind-xxx/contrib/queryperf
    ./configure
    make
    cp queryperf /usr/local/bind9/bin
    queryperf -h
  • 压力测试
    vim test.txt
      www.magedu.com A
      magedu.com NS
      magedu.com MX
      pop3.magedu.com A
      web.magedu.com A
    queryperf -d test.txt -s 127.0.0.1
  • 打开日志功能
    rndc querylog
    rndc status
    queryperf -d test.txt -s 127.0.0.1
    wc -l /var/log/message

七、 DNS排错

DNS排错

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> A example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30523
...
SERVFAIL:The nameserver encountered a problem while processing the query.

  可使用dig +trace排错,可能是网络和防火墙导致

  • NXDOMAIN:The queried name does not exist in the zone.
      可能是CNAME对应的A记录不存在导致
  • REFUSED:The nameserver refused the client’s DNS request due to policy restrictions.
      可能是DNS策略导致
  • NOERROR不代表没有问题,也可以是过时的记录
  • 查看是否为权威记录,flags:aa标记判断
  • 被删除的记录仍能返回结果,可能是因为*记录存在
  • 如:*.example.com. IN A 172.25.254.254
  • 注意“.”的使用
  • 避免CNAME指向CNAME记录,可能产生回环
  • test.example.com. IN CNAME lab.example.com.
  • lab.example.com. IN CNAME test.example.com.
  • 正确配置PTR记录,许多服务依赖PTR,如sshd,MTA
  • 正确配置轮询round-robin记录
2019-08-05 23:42:24 monster_warm 阅读数 120
  • 网络工程师DNS域名解析强化训练视频课程

    网络工程师考试考察知识点繁多,形式多样。如何有效把握每种考察形式,拿到相应分数?这是历年考生挠头的事情。本系列课程紧抓考生痛点,对网工考试中重点题型分门别类讲解,反复强化训练,助力考生查缺补漏,拿到相应分数。本次分课程重点讲解了理解题型中DNS解题方法。通过基本概念阐述->实战配置演示->全真模拟题强化训练,三大步骤帮助考生掌握DNS解题方法,拿到相应分数。

    3231 人正在学习 去看看 徐朋

缓存DNS服务器

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

DNS的排错

NOERROR:查询成功
NXDOMAIN:DNS服务器提示不存在这样的名称呢个
SERVFAIL:DNS服务器停机或DNSSEC响应验证时被
REFUSED:DNS服务器拒绝回答(也许是出于访问控制的原因;可以查看防火墙状态是否允许DNS服务)

配置高速缓存DNS

操作步骤
1.选择一台主机作为DNS服务器

配置IP
设定主机名为:dns-server
配yum源
下载bind服务器

在这里插入图片描述
在这里插入图片描述
2.将dns服务添加到火墙中

systemctl  start firewalld
firewall-cmd --permenant --add-service=dns
firewall-cmd --reload        ##永久添加dns服务
firewall-cmd --list-all         ##查看dns服务是否添加成功

在这里插入图片描述
3.对bind的配置文件进行修改

netstat -antulpe | grep named   ##查询此时53端口的开放情况
vim /etc/named.conf    ##bind的配置文件
listen-on port 53 {any;};  ##监听所有的53端口
allow-query    {any;};     ##允许所有主机询问
forwarders    {114.114.114.114;}; ##当无法在该主机中寻找到答案时,让其访问114.114.114.114寻求答案
dnssec-validation no;    ##不检测dns
systemctl restart named   ##重启服务

在这里插入图片描述
在这里插入图片描述
4.dns服务器

vim /etc/resolv.conf
添加dns为nameserver为172.25.254.(dns服务器ip)

测试注意测试需要有网络的环境下

dig 对应的域名查看对应秒数

在这里插入图片描述
在这里插入图片描述
在测试机中

vim /etc/resolv.conf
添加dns为nameserver为172.25.254.(dns服务器ip)
dig 相应的域名     ##观察连通的秒数

在这里插入图片描述
在这里插入图片描述

DNS资源记录

DNS区域采用资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型。

A 名称至IPV4的地址(正向解析)
AAA 名称至IPV6的地址 (正向解析)
CNAME 名称至“规范名称“(包含A/AAAA记录的另一个名称)
PTR IPV4/IPV6地址至名称(DNS反向解析0
MX 用于名称的邮件交换器(向何处发送其电子邮件)
NS 域名的名称服务其
SOA “授权起始“,DNS区域的信息(管理信息)

DNS正向解析

操作步骤:
在dns-server中

vim /etc/named.conf   ##找到解析文件

在这里插入图片描述

vim /etc/named.rfc1912.zones   ##使其访问所需要的配置文件
zone "westos.com" IN{
              type master;
              file "westos.com.zone"   ##查找该文件
              allow-update {none;};
 };

在这里插入图片描述

cd /var/named/   ##切换到该目录下,查找正向解析文件模板
named.localhost   ##正向解析文件模板
cp -p named.localhost westos.com.zone    ##-p一定要加,要将权限一起复制过去

在这里插入图片描述

vim westos.com.zone   ##编辑正向解析策略
systemctl restart named

在这里插入图片描述
测试
在测试主机中

vim /etc/resolv.conf    
nameserver 172.26.254.104(dns-serverIP)
dig www.westos.com     ##查看是否解析出对应ip

在这里插入图片描述

DNS的CNAME

域名分为内部域名和外部域名,对于用户来说,只需要知道外部域名就可以查询到该公司的所有业务;而对于公司的管理人员而言,内部域名便于对某一块业务进行管理。
一般来说,内部域名之间存在轮循转换。
CNAME的配置

cd /var/named/
vim westos.com.zones
bbs CNAME linux
linux  A 172.25.254.111
linux  A  172.25.254.222

在这里插入图片描述

systemctl restart named

测试
在dns-server上

dig  bbs.westos.com   

DNS的MX(stmp)

MX:用于名称的邮件交换器(向何处发送其电子邮件)
配置的操作步骤:

vim /etc/named/westos.com.zone
westos.com. Mx 1 172.25.254.4. 
systemctl restart named
mail root@westos.com ##向westos.com发送邮件
mailq   ##查看邮件是否发送成功
mail    ##邮件未发送成功是因为接收smtp端口:25端口没有开启
netstat -antulpe | grep 25   ##查看25端口的状态

DNS反向解析,配置PTR(通过IP解析域名)

操作步骤:
在dns-server中

vim /etc/named.conf   ##找到解析文件
vim /etc/named.rfc1912.zones   ##使其访问所需要的配置文件
zone "254.25.172" IN{                ##IP反着写
              type master;
              file "westos.com.ptr"   ##查找反向解析文件
              allow-update {none;};
 };

在这里插入图片描述
cd /var/named/ ##切换到该目录下,查找正向解析文件模板
named.loopback ##反向解析文件模板
cp -p named.loopback westos.com.ptr ##-p一定要加,要将权限一起复制过去
vim westos.com.ptr ##编辑反向解析策略
添加反向解析:
112 PTR www.westos.com.
111 PTR bbs.westos.com.
在这里插入图片描述
在这里插入图片描述

systemctl restart named

测试
在测试主机中

vim /etc/resolv.conf    
nameserver 172.26.254.104(dns-serverIP)
dig -x 172.25.254.111       ##查看是否解析出对应域名
dig -x 172.25.254.112      ##查看是否解析出对应域名

在这里插入图片描述

DNS双向解析

地址有外网地址和内网地址之分,外网用户查询到的只能是外网地址,而内网用户查询到内网地址,而双向解析就是对于同一个域名,来解析出用户是属于内网用户还是外网用户。
由DNS的正向解析可以知道DNS服务作用的流程:通过主配置文件->找到对应的/etc/name.rfc1912.zones文件->配置文件中告诉其要维护该域需要寻找下一个文件->westos.com.zone->更改配置文件中的解析策略;对于配置双向解析,我们设定内网和外网,将其区分开,按照配置DNS正向解析的逆流程进行配置。
配置DNS双向解析配置步骤
1.

cp -p westos.com.zone  westos.com.localnet
vim westos.com.localnet       ##内网解析策略,全文将172.25.254替换为192.168.0
cp -p /etc/named.rfc1912.zone /etc/named.rfc1912.localnet  
vim /etc/named.rfc1912.localnet
在文件中写入:
zone "westos.com" IN {
            type master;
            file "westos.com.localnet";
            allow-update {none; };
 };  

在这里插入图片描述
3.

vim /etc/named.conf
对文件进行以下操作;对用户进行分情况讨论,使之去寻找到相对应的解析文件
 
添加
view localnet{
                 match-clients {172.25.254.104; };
                 zone "."  IN {
                               type hint;
                               file "named.ca";
                  };
                  include   "/etc/named.rfc1912.localnet";       ##当匹配用户匹配到172.25.254.104时,查找内网解析文件
      }                 
view internet {
                 match-clients {any; };
                 zone "."  IN {
                               type hint;
                               file "named.ca";
                  };
                  include   "/etc/named.rfc1912.zones";    ##当匹配用户为除了172.25.254.104(内网用户),都查找外网解析文件
      }                 

在这里插入图片描述

systemctl restart named

分散DNS-server的压力(集群,冗余)

配置方法:
1.再找一台dns服务器作为辅助dns-server

配置IP
配yum源
下载bind服务器

2.将dns服务添加到火墙中

systemctl  start firewalld
firewall-cmd --permenant --add-service=dns
firewall-cmd --reload        ##永久添加dns服务
firewall-cmd --list-all         ##查看dns服务是否添加成功

在这里插入图片描述
3.对bind的配置文件进行修改

netstat -antulpe | grep named   ##查询此时53端口的开放情况
vim /etc/named.conf    ##bind的配置文件
listen-on port 53 {any;};  ##监听所有的53端口
allow-query    {any;};     ##允许所有主机询问
systemctl restart named   ##重启服务

在这里插入图片描述
4.

vim /etc/named.rfc1912.zones   ##使其访问所需要的配置文件
zone "westos.com" IN{
              type slave;
              masters:主DNS-server IP
              file "slaves/westos.com.zone"   ##查找该文件
              allow-update {none;};
 };

在这里插入图片描述
4.dns服务器

vim /etc/resolv.conf
添加dns为nameserver为172.25.254.(辅助dns服务器ip)

在这里插入图片描述
测试注意测试需要有网络的环境下

dig 对应的域名看服务是否搭建完成

在这里插入图片描述

辅助DNS-server同步主DNS-server的方法
当在主dns-server中改变信息,重启服务;dig;
在辅助dns-server中重启服务,dig发现辅助dns-server并没有同步主dns-server的服务
修改www.westos.com对应的ip为188
在这里插入图片描述
在主dns上dig,已更改信息
在这里插入图片描述
在辅助dns上dig,发现并没有更新
在这里插入图片描述

解决方法
第一种方法:

cd /var/named/slaves/
rm -fr westos.com.zone    ##删除原来的解析文件
sytemctl restart named  ##重启服务,重新生成westos.com.zone文件
dig      ##测试

但是上述方法对于dns-server服务器数量众多的情况并不适用,于是我们采取下列方式:
主dns服务器告知辅助dns服务器信息变动,让辅助dns服务器主动来同步主dns的信息
操作步骤:
在主DNS服务器中

vim /etc/named.rfc1912.zones
添加
also-notify {172.25.254.204}  ##提醒辅助dns服务器来同步
systemctl restart named

在这里插入图片描述
在辅助dns服务器中

systemctl restart named 
dig www.westos.com   ##发现依旧没有同步

在主DNS中更改解析文件
在这里插入图片描述
主DNS服务器dig
在这里插入图片描述
在辅助DNS中dig,发现还是没有同步
在这里插入图片描述
原因是因为主dns服务器虽然提醒辅助dns服务器信息变动来同步,但是辅助dns并没有检测到有需要同步的信息,所以没有进行同步
这一步的解决方法:
更改主DNS服务器中的westos.com.zone文件,将其中的数字进行更改,如图所示
注意:该数字不能超过十位数,而且最好是有意义的数字,例如年月日第几次更新(2019080501)
更改后重启服务
在这里插入图片描述
测试
辅助dns服务器

systemctl restart named
dig www.westos.com   ##同步需要一定的时间

在这里插入图片描述

让主DNS服务器同步某台服务器的更新
操作步骤:
在主DNS上

vim /etc/namedconf
添加
allow-update {172.25.254.4; };     ##允许谁更新
systemctl restart named   

在这里插入图片描述

在允许更新的主机上发送更新信息

nsupdate
>server 172.25.254.主dnsIP
>update add hello.westos.com 86400 A 172.25.254.123
>send

在这里插入图片描述
如果出现报错,查看日志,可能是/var/named/权限不够
在主dns服务器上

chmod  770 /var/named/

允许更新的主机重新发送更新信息,显示发送成功
在主dns服务器上直接dig先不用重启
在这里插入图片描述

在主dns服务器上发现同步更新后,查看 /var/named/下会出现 .jnl文件并且观察westos.com.zone中的文件内容
在这里插入图片描述

备份:cp -p westos.com.zone /mnt/
重启服务:systemctl restart named
dig  重新观察westos.com.zone中的内容,与原先的wetos.com.zone会有区别

在这里插入图片描述

systemctl restart named ##重启服务之后的westos.com.zone文件中的内容

在这里插入图片描述

rm -fr westos.com.zone
rm -fr westos.com.zone.jnl
重新将原wetos.com.zone复制回来
dig   发现还是可以同步更新状态

在这里插入图片描述

没有更多推荐了,返回首页