bind搭建DNS服务构建依赖域名的测试环境

bind搭建DNS服务构建依赖域名的测试环境,第1张

     背景: 在很多时候,有没有经常遇到过,线上部署的系统依赖二级或三级域名,而测试环境又因没有多的域名而无法真实的进行测试,最终线上出现各种有关域名配置的错误导致不可用,为了解决此问题而又不需重新申请测试域名,以下使用bind搭建DNS服务器(Linux)来解决此问题。

     介绍: DNS域名解析服务(DomainNameSystem)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:

正向解析:根据主机名(域名)查找对应的IP地址。

反向解析:根据IP地址查找对应的主机名(域名)。

工作形式上又分主服务器、从服务器和缓存服务器。

主服务器: 在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系。

从服务器: 从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况。

缓存服务器: 通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率

首先准备一台linux服务器(192.168.0.85)作为dns服务主机, 同时需放开防火墙对公网的udp/53端口。

step1(安装bind):

step2(主配置文件):

step3(配置zone,新增一个域名映射):

正向解析的作用是根据主机名(域名)查找到对应的IP地址,区域文件中已有一些默认信息,可不必理会,直接在下面追加即可。

step4(配置具体域名-IP解析信息):

可直接复制正向解析模板文件:"/var/named/named.localhost",填写信息后即可直接使用。

step5(重启named服务让配置文件立即生效):

默认日志查看

step6(检验解析结果):

将本机的DNS设置为本机的IP 192.168.0.85

# Generated by NetworkManager

nameserver 192.168.0.85

nameserver 192.168.0.85

options timeout:2 attempts:3 rotate single-request-reopen

使用nslookup 命令用于检测能否从网络DNS服务器中查询到域名与IP地址的解析记录,检测named服务的解析能否成功,此为查询DNS服务器的信息:

[root@Centos named]# nslookup

>ems.music.com

Server:        192.168.0.85

Address:    192.168.0.85#53

Non-authoritative answer:

Name:  ems.music.com

Address: 120.77.x.x

至此,DNS服务器就已搭建成功。

step7(在windows下配置此dns服务器用于测试环境模拟线上域名调试):

然后打开cmd, ping ems.music.com 查看响应ip就是 120.77.x.x 这个ip,至此所有操作成功完成。

参考文献1

参考文献2

域名服务(DNS)是一种Internet服务,可将IP地址和标准域名(FQDN)相互映射。这样,DNS减轻了记住IP地址的需要。运行DNS的计算机称为名称服务器。Ubuntu附带了BIND (Berkley Internet Naming Daemon),BIND是用于在Linux上维护名称服务器的最常用程序。

在终端提示符下,输入以下命令安装 dns:

dnsutils 软件包是测试和解决 DNS 问题非常有用的。 这些工具通常已经安装,但是要检查或安装 dnsutils,请输入以下内容:

有许多方法可以配置BIND9。一些最常见的配置是缓存名称服务器,主服务器和辅助服务器。

DNS配置文件存储在 /etc/bind 目录中。主要配置文件是 /etc/bind/named.conf ,在软件包提供的布局中仅包括这些文件。

可以将同一服务器配置为缓存名称服务器,主要和辅助名称服务器:这都取决于它所服务的区域。服务器可以是一个区域的授权开始(SOA),同时为另一区域提供辅助服务。同时为本地LAN上的主机提供缓存服务。

默认配置充当缓存服务器。只需取消注释并编辑 /etc/bind/named.conf.options 即可设置ISP的DNS服务器的IP地址:

要启用新配置,请重新启动DNS服务器。在终端提示下:

在本节中,将BIND9配置为域的主服务器 example.com 。只需 example.com 用您的FQDN(完全合格的域名)替换即可。

要将DNS区域添加到BIND9,将BIND9变成主服务器,请首先编辑 /etc/bind/named.conf.local :

现在,使用现有的区域文件作为模板来创建 /etc/bind/db.example.com 文件:

编辑新的区域文件, /etc/bind/db.example.com 然后更改 localhost.为服务器的FQDN,.在末尾保留其他文件。更改 127.0.0.1 为名称服务器的IP地址和 root.localhost 有效的电子邮件地址,但用 . 代替通常的 @ 符号,并再次.在末尾保留。更改注释以指示此文件所针对的域。

为基本域创建 A 记录 example.com 。此外,创建一个 A 记录的 ns.example.com ,在这个例子中,域名服务器:

每次更改区域文件时,都必须增加序列号(Serial)。如果在重新启动BIND9之前进行了多次更改,只需增加一次串行。

现在,您可以将DNS记录添加到区域文件的底部。有关详细信息,请 参阅公共记录类型 。

对区域文件进行了更改之后,需要重新启动BIND9以使更改生效

现在已经设置了区域并将名称解析为IP地址,现在需要添加反向区域以允许DNS将地址解析为名称。

编辑 /etc/bind/named.conf.local 并添加以下内容:

现在创建 /etc/bind/db.192 文件:

接下来编辑 /etc/bind/db.192 ,更改与 /etc/bind/db.example.com 相同的选项:

每次更改时,“反向”区域中的序列号也需要增加。 对于您在 /etc/bind/db.example.com 中配置的每个A记录(即针对另一个地址),您需要在 /etc/bind/db.192 中创建一个PTR记录。

创建反向区域文件后,重新启动BIND9

一旦配置了主服务器,强烈建议使用辅助服务器,以在主服务器不可用时维持域的可用性。

首先,在主服务器上,需要允许区域传输。将 allow-transfer 选项添加到示例正向和反向区域定义中 /etc/bind/named.conf.local :

在主服务器上重新启动BIND9:

接下来,在辅助服务器上,以与主服务器相同的方式安装bind9软件包。然后编辑, /etc/bind/named.conf.local 并为正向和反向区域添加以下声明:

在辅助服务器上重新启动BIND9:

在其中, /var/log/syslog 您应该看到类似以下内容的内容(为了适应本文档的格式,对某些行进行了拆分):

测试BIND9的第一步是将名称服务器的IP地址添加到主机解析器。应该配置主要名称服务器以及另一个主机,以仔细检查。有关将名称服务器地址添加到网络客户端的详细信息,请参阅DNS客户端配置。最后,您的 nameserver 一行 /etc/resolv.conf 应指向, 127.0.0.53 并且您应该 search 为您的域指定一个参数。像这样:

要检查您的本地解析器正在使用哪个DNS服务器,请运行:

如果安装了dnsutils软件包,则可以使用DNS查找实用程序dig测试设置:

安装完BIND9之后,请对环回接口使用dig来确保它正在侦听端口53。从终端提示符下:

您应该在命令输出中看到类似于以下内容的行:

如果您已将BIND9配置为缓存名称服务器,则“挖掘”外部域以检查查询时间:

注意查询时间接近命令输出的末尾:

经过第二次挖掘后,应该有所改进:

现在演示应用程序如何使用DNS解析主机名,使用ping实用程序发送ICMP回显请求:

这测试名称服务器是否可以将名称解析为 ns.example.com IP 地址。 命令输出应类似于:

测试区域文件的一种好方法是使用 named-checkzone 与bind9软件包一起安装的实用程序。使用此实用程序,可以在重新启动BIND9并使更改生效之前确保配置正确。

要测试我们的示例正向区域文件,请从命令提示符处输入以下内容:

如果一切配置正确,您应该会看到类似以下的输出:

同样,要测试反向区域文件,请输入以下内容:

输出应类似于:

BIND9有多种可用的日志记录配置选项,但是两个主要的选项是 channel 和 category ,它们分别配置日志的去向和要记录的信息。

如果未配置任何日志记录选项,则默认配置为:

让我们将BIND9配置为将与DNS查询相关的调试消息发送到单独的文件。

我们需要配置一个通道以指定要将消息发送到的文件,以及一个category。在此示例中,类别将记录所有查询。编辑 /etc/bind/named.conf.local 并添加以下内容:

由于命名守护程序以绑定用户身份运行,因此 /var/log/named 必须创建目录并更改所有权:

现在重新启动BIND9,以使更改生效:

您应该看到文件中 /var/log/named/query.log 填充了查询信息。这是BIND9日志记录选项的简单示例。

在之前的spark on yarn集群配置中,感觉最麻烦的就是各个机器之间的网络配置了,一直想简化这部分的工作。

一开始的办法是一台机器一台机器的编辑 /etc/network/interfaces 文件和 /etc/hosts 文件使各台机器都有固定的ip和通过机器名称可以转换成对应的ip,这样一旦集群中一台机器发生变动,各台机器都要过一遍,很是麻烦。

现在一般的家用路由器上都有根据mac地址分配固定ip的功能,所以只要在路由器上配置dhcp分配的规则,将各个机器的网卡mac地址填入就可以将机器的ip固定住了。

接下来就是机器之间互相识别的事了,这里我们在集群内选定一台主机,作为dns服务器,其他的机器只要将dns服务设定为这台机器,就可以识别其他机器名称所对应的ip了。

按惯例,给出操作环境:

首先安装bind

安装完毕之后开始配置。

先要说一些基本认知:

然后我们开始配置bind,参照 ubuntu的bind中文wiki 。

修改 named.conf.local

添加一个zone节点,这里我们的zone名字是“mwnet”:

然后将“db.local”文件复制成“db.mwnet”,并修改之:

其中第5、11行就是将"localhost"修改成了自己的zone名称。

第12行是必须的,指定默认的域名解析到的ip,包括“ns.mwnet”的解析。

从第13行开始就是机器名称的解析了。

接着增加一个反向解析的配置,这一步必须要做,否则hdfs的datanode启动会失败。

同样修改 named.conf.local

添加一个zone节点:

然后将 db.127 文件复制成 db.192.168.3 ,并修改之:

注意这里PTR记录和 db.mwnet 里面的A记录是一一对应的。

保存修改之后重启服务。

接下来修改各台机器的dns服务器设置,需要改动 /etc/resolvconf/resolv.conf.d/base 文件:

第1行写search是为了在寻找主机的时候,自动在主机名称后面加上“.mwnet”,以便dns服务器解析。

第2行写domain是为了让本机加入"mwnet"域,这样完整的主机名就变成了设备名称+“.mwnet”。

第3行指定了dns服务器的地址。

需要注意的是这个改动必须重启机器后生效。

如果之前没有改动过 /etc/hosts 文件,需要注意一点就是把系统自动添加机器名称解析到127.0.1.1的记录删除,很多事情都坏在这条记录上。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/281833.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存