龙空技术网

CentOS7 - 将BIND设置为解析DNS服务器

小白熊工作室 394

前言:

而今兄弟们对“centos7vi回退”大体比较注意,同学们都需要分析一些“centos7vi回退”的相关内容。那么小编也在网上搜集了一些对于“centos7vi回退””的相关知识,希望小伙伴们能喜欢,咱们一起来学习一下吧!

将BIND设置为解析DNS服务器

此配方教您如何使用BIND设置解析DNS服务器。域名服务(DNS)是互联网的无名主力,它将令人难忘的名称(如facebook.com和google.com)转换为IP地址,如172.217.18.238和31.13.76.68。

通过Internet进行的通信使用IP地址来识别系统,但人们难以记住数字。例如,我们更容易记住google.com而不是172.217.18.238(或IPv6地址2607:f8b0:4006:80e :: 200e)。因此,当您在浏览器的地址栏中键入google.com时,系统会查询DNS服务器以将名称解析为其IP地址,然后从该地址的Web服务器请求该页面。编写电子邮件时,DNS服务器会在发送邮件之前检索收件人邮件服务器的IP地址。

由服务提供商维护的解析DNS服务器可能是第一个接收此类查找请求的服务器,如果它已经知道该地址,它将立即响应。如果没有,它将联系请求域的父区域中的DNS服务器,并接收对所请求域的权威DNS服务器的引用或DNS层次结构中下一个区域中的服务器。如果请求到达层次结构的顶部而未被引用到权威服务器,则该域不存在。否则,权威服务器将地址发送回您的解析服务器。解析器然后缓存响应,以便将来的查找更快完成.

根据您的网络以及解析地址涉及的服务器数量,DNS查找可能会成为延迟的重要来源。 地址记录应该在前一个或两个跃点内找到,并且解析服务器应该在物理上靠近用户以获得最佳性能。 因此,设置本地DNS服务器以缓存查找结果可以极大地改善用户体验网络速度的方式.

准备

此配方需要具有有效网络连接的CentOS系统。 它假定系统配置了IP地址192.168.56.10。 通过使用root帐户登录或使用sudo,还需要管理权限.

怎么做

请按照以下步骤将BIND安装为解析DNS服务器:

安装bind和bind-util包:

yum install bind bind-utils
使用文本编辑器在/etc/named.conf中打开BIND的配置文件:
vi /etc/named.conf
在选项的大括号内找到listen-on选项。 更新其列表以反映BIND将使用的系统IP地址:
listen-on port 53 { 127.0.0.1; 192.168.56.10; };
如果要为IPv6请求提供服务,请同样更改listen-on-v6的值。 否则,将值更新为none:
listen-on-v6 port 53 { none; }
使用允许BIND接受请求的IP地址列表更新allow-query选项:
allow-query { localhost; 192.168.56.0/24; };
将更改保存到配置文件并关闭它。使用systemctl启动BIND,可选择使其在系统重新启动时自动启动:
systemctl start named.servicesystemctl enable named.service
启用FirewallD的dns服务以打开端口53到TCP和UDP流量:
firewall-cmd --zone=public --permanent --add-service=dnsfirewall-cmd --reload
使用dig请求查找以测试配置:
dig @192.168.56.10 google.com A
工作原理

BIND默认配置为解析DNS服务器,但我们仍希望更新一些选项以定义它如何接受查找请求。 第一个更改是选项部分中的listen-on *选项,它指定BIND侦听请求的端口和网络接口。 listen-on适用于IPv4网络,listen-on-v6适用于IPv6。 在这两种情况下,DNS流量的标准端口是端口53:

listen-on port 53 { 127.0.0.1; 192.168.56.10; };listen-on-v6 port 53 { none; }

接下来,我们更新了allow-query选项,提供了BIND可以接受来自的系统的白名单。 地址可以单独提供,也可以用CIDR表示法编写:

allow-query { localhost; 92.168.56.0/24; }

使用预定义的值(例如any,localhost,localnets和none)也是可以接受的。 直观地,any表示所有地址,允许BIND监听所有系统配置的地址或接受来自任何源的请求,而没有一个不允许所有地址。 localhost表示系统的所有地址,localnets表示系统所属的所有网络上的所有地址。

注意

请注意localhost和localnets中的本地不会给您带来虚假的安全感。 如果您的系统连接到多个网络(例如,公共网络(例如Internet)和专用内部网络),则它们都被视为本地网络。 如果没有必要的安全措施,允许来自不受信任的网络的访问是一个严重的风险,因为打开的DNS服务器可能会被意图执行多种类型的拒绝服务攻击的恶意用户滥用。

在BIND的配置更新并启动并运行之后,我们可以通过发送带有dig的查找请求并检查响应来测试所有内容:

dig @192.168.56.10 google.com A

通过提供以@为前缀的目标服务器地址,可以将请求发送到具有dig的特定DNS服务器。 如果调用中未提供DNS服务器,dig会将请求发送到系统的/etc/resolve.conf文件中列出的服务器。

在DNS服务器的地址之后,我们给出了我们感兴趣的资源名称,然后是所需的记录类型。 在前面的示例中,搜索了google.com的地址(A)记录。 也可以查询其他类型,例如名称服务器(NS)和邮件交换(MX)记录.

挖掘查询DNS服务器并显示其响应

dig的响应分为几个部分。 答案部分显示我们要求的A记录。 AUTHORITY SECTION列出为请求的域配置的权威DNS服务器,ADDITIONAL SECTION显示权威服务器的IP地址。 整个过程中都包含各种元数据,例如请求中设置了哪些标志,查询了哪个DNS服务器,以及查找完成的时间。

如果对测试结果满意,则可以配置网络上的系统以使用新的DNS服务器。 这通常通过在每个系统的/etc/resolv.conf文件中添加一个名称服务器条目来完成,该文件提供DNS服务器的地址:

nameserver 192.168.56.10

resolv.conf可以动态生成,具体取决于系统接口的配置方式。 如果是这种情况,您在文件中所做的任何更改都将被覆盖。 您需要检查接口的配置文件(例如,/ etc / sysconf / network-scripts / ifcfg-enp0s3),如果PEERDNS设置为yes,则网络管理器维护resolv.conf。 在界面配置中添加DNS条目,DNS服务器的地址将在下次启动界面时进入resolve.conf:

DNS=192.168.56.10

更新配置后退回界面以使更改生效并验证resolve.conf的内容:

ifdown enp0s3 && ifup enp0s3cat /etc/resolv.conf

解析DNS服务器有时称为递归服务器,因为它们将查找请求发送到区域层次结构中的每个级别,直到找到答案。 转发DNS服务器的功能类似于解析/递归服务器,因为两种类型都接受查找请求并缓存结果以方便使用; 但是,转发服务器将其请求发送到另一个DNS服务器并等待响应,委派解决方案进程而不是跟踪答案本身。 这可以卸载解析DNS服务器尝试为请求提供服务所产生的大量网络聊天.

要将BIND配置为作为转发DNS服务器运行,请再次打开/etc/named.conf并将转发器和转发选项添加到选项块:

forwarders { 8.8.8.8; 8.8.4.4; };forward only;

转发器选项提供负责解析查找请求的DNS服务器列表。 该示例标识了Google的公共DNS服务器,但您的服务提供商还应维护您可以使用的公共DNS服务器(如果您愿意)。

forward仅强制BIND将请求转发给转发器中列出的负责服务器。 只有当负责的服务器无法返回地址或引用时,BIND才会联系域的权威DNS服务器的根服务器并为请求本身提供服务。 转发服务器上的递归并未完全关闭,但它大大减少了.

See also

The following resources will provide you with more information on how DNS works and how to configure BIND:

The dig manual page (man 1 dig)An Introduction to DNS Terminology ()DNS for Rocket Scientists ()How DNS Works ()BIND 9 Administrator Reference Manual ()RHEL 7 Networking Guide: BIND ()DNS & BIND by Cricket Liu and Paul Albitz ()

标签: #centos7vi回退 #centos68ip设置 #centos7的dns重置 #bind缓存服务器centos