域名服务器 (DNS)用于名称解析的任何主机。 主DNS服务器( 主服务器 )是原始区域的数据处理和从DNS服务器( 备用服务器 )只是用来复制从主服务器相同的区域信息的备份服务器。 主服务器将解析我们在区域数据库中定义的每个主机的名称,并使用UDP协议,因为UDP协议从不使用确认过程,而tcp使用确认。 DNS服务器还使用UDP协议最早解决查询请求。
在RHEL / CentOS 6.5中设置主从DNS
DNS的工作原理?
了解DNS可能对新手有点混乱。 以下是DNS工作原理的简要说明。
让我们说,如果我们需要访问任何网站,我们会做什么? 就在浏览器中输入www.google.com,然后回车。 这是我们所有的知识,但事实是,DNS痛苦,同时查询我们。 当我们输入www.google.com时,系统会寻找www.google.com。 当我们键入一些域名,还有一个。( 点 )在那说来搜索命名空间的根服务器www.google.com的结束。
在全球范围内有可用于解决查询13个根服务器 。 首先,当我们按www.google.com的身份进入时,我们的浏览器会向我们的本地解析器传递一个请求,其中包含有关我们的主DNS服务器信息和从属DNS服务器信息的条目。 如果他们没有对此类请求的查询信息,他们将请求传递给该顶级域名(TLD),如果TLD说我不知道请求,可能是权威服务器知道你的请求,它会转发给权威服务器,这里只有www.google.com被定义为地址72.36.15.56。
同时,权威服务器将给出TLD的答案,TLD将传递到根服务器,root将向浏览器提供信息,因此浏览器将缓存DNS请求以供将来使用。 因此,这些长过程将以毫秒为单位解决。 如果他们不知道请求,他们将回复为NXDOMAIN。 这意味着,在区域数据库中找不到任何记录。 希望这使您了解DNS的工作原理。
皇家另外 : 在Ubuntu安装DNS缓存服务器
我的测试环境
对于本文,我使用3台机器,2为服务器设置(主和从)和1为客户端。
--------------------------------------------------- Master DNS Server --------------------------------------------------- IP Address : 192.168.0.200 Host-name : masterdns.youcllocal.com OS : Centos 6.5 Final
--------------------------------------------------- Slave DNS Server --------------------------------------------------- IP Address : 192.168.0.201 Host-name : slavedns.youcllocal.com OS : Centos 6.5 Final
--------------------------------------------------- Client Machine to use DNS --------------------------------------------------- IP Address : 192.168.0.210 Host-name : node1.youcllocal.com OS : Centos 6.5 Final
需求包
bind, bind-utils, bind-chroot
使用的配置文件
config file : /etc/named.conf script file : /etc/init.d/named
端口和协议使用
53, UDP
设置主DNS服务器
首先,在转发设置之前,验证主DNS服务器的IP地址,主机名和分发版本。
$ sudo ifconfig | grep inet $ hostname $ cat /etc/redhat-release
验证主配置
一旦,您确认以上设置是正确的,它的时间前进到安装所需的包。
$ sudo yum install bind* -y
安装绑定包
安装和配置绑定
安装包后需要,现在在主配置“ 的named.conf”文件中定义区域文件。
$ sudo vim /etc/named.conf
下面给出的是我的named.conf文件项,配置文件更改根据自己的需要。
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.0.200; }; # Here we need to add our Master DNS Server IP. 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; 192.168.0.0/24; }; # subnet range where my hosts are allowed to query our DNS. allow-transfer { localhost; 192.168.0.201; }; # Here we need to our Slave DNS server IP. recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; ## Define our forward & reverse Zone file here for youcllocal.com. zone"youcllocal.com" IN { type master; file "youcllocal.fwd.zone"; allow-update { none; }; }; zone"0.168.192.in-addr.arpa" IN { type master; file "youcllocal.rev.zone"; allow-update { none; }; }; ##### include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
在DNS中创建区域文件
以下是我们在上面的文件中使用的每个配置的解释。
- 监听端口53 -这是用于DNS中可用的接口听。
- 主DNS -定义,你的主DNS IP地址,监听查询。
- 从DNS -定义你的MinionDNS,这是用来同步我们的区信息师父解决主机。
- 递归没有 -如果它设置为YES,递归查询将会使服务器进入DDOS攻击。
- 区域名称 -定义这里被定义为tecminlocal.com您的区域名称。
- 型主 -作为这个系统配置主服务器,为即将到来的从属服务器,这将是Minion。
- youcllocal.fwd.zone -该文件有此区域的主机信息。
- 允许更新无 -如果没有将设置。 它不会使用动态DNS(DDNS)。
创建主区域文件
首先,我们定义正向查找区域条目。 在这里,我们需要的是什么,我们在下面的named.conf文件都定义名称创建区域文件。
youcllocal.fwd.zone youcllocal.rev.zone
我们使用示例配置文件创建正向区域文件,为此,我们必须复制示例配置文件。
$ sudo cp /var/named/named.localhost /var/named/youcllocal.fwd.zone $ sudo cp /var/named/named.loopback /var/named/youcllocal.rev.zone
复制区域文件
有一次,您复制配置文件,现在使用vim编辑器编辑这些区域文件。
$ sudo vim /var/named/youcllocal.fwd.zone
在正向区域文件中定义主机信息之前,首先快速查看示例区域文件。
示例区域文件
这是我的正向区域配置,附加以下条目,并根据您的需要进行更改。
$TTL 86400 @ IN SOA masterdns.youcllocal.com. root.youcllocal.com. ( 2014090401 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ) ; minimum ; Name server's @ IN NS masterdns.youcllocal.com. @ IN NS slavedns.youcllocal.com. ; Name server hostname to IP resolve. @ IN A 192.168.0.200 @ IN A 192.168.0.201 ; Hosts in this Domain @ IN A 192.168.0.210 @ IN A 192.168.0.220 masterdns IN A 192.168.0.200 slavedns IN A 192.168.0.201 node1 IN A 192.168.0.210 rhel1 IN A 192.168.0.220
保存并使用WQ退出文件! 编辑前锋查找后,它看起来像下面,使用TAB键来获得区域文件一个体面的格式。
配置转发区域
现在,创建反向查找文件,我们已经在youcllocal.rev.zone的名称进行环回文件的副本。 所以,我们使用这个文件来配置我们的反向查找。
$ sudo vim /var/named/youcllocal.rev.zone
在反向区域文件中定义我们的主机信息之前,先快速了解示例反向查找文件,如下所示。
样品反向查找区
这是我的反向区域配置,追加以下条目,并根据您的需要进行更改。
$TTL 86400 @ IN SOA masterdns.youcllocal.com. root.youcllocal.com. ( 2014090402 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ) ; minimum ; Name server's @ IN NS masterdns.youcllocal.com. @ IN NS slavedns.youcllocal.com. @ IN PTR youcllocal.com. ; Name server hostname to IP resolve. masterdns IN A 192.168.0.200 slavedns IN A 192.168.0.201 ;Hosts in Domain node1 IN A 192.168.0.210 rhel IN A 192.168.0.220 200 IN PTR masterdns.youcllocal.com. 201 IN PTR slavedns.youcllocal.com. 210 IN PTR node1.youcllocal.com. 220 IN PTR rhel1.youcllocal.com.
保存并使用WQ退出文件! 编辑反向查找后,它看起来像下面,使用TAB键来获得区域文件一个体面的格式。
配置反向查找区域
在检查配置中的任何错误之前,检查正向查找和反向查找文件的组所有权。
$ sudo ls -l /var/named/
在这里,我们可以看到这两个文件都在root用户的所有权,因为这是我们进行复印,从样本文件文件在/ var /命名/可用。 使用以下命令将组更改为两个文件上的命名。
$ sudo chgrp named /var/named/youcllocal.fwd.zone $ sudo chgrp named /var/named/youcllocal.rev.zone
在对文件设置正确的所有权后,请再次验证。
$ sudo ls -l /var/named/
验证区域文件
现在,在启动DNS服务之前检查区域文件中的错误。 首先检查named.conf文件,然后再检查其他区域文件。
$ sudo named-checkconf /etc/named.conf $ sudo named-checkzone masterdns.tecminlocal.com /var/named/youcllocal.fwd.zone $ sudo named-checkzone masterdns.tecminlocal.com /var/named/youcllocal.rev.zone
检查错误区域文件
默认情况下,iptables正在运行,我们的DNS服务器被限制为localhost,如果客户端想要从我们的DNS服务器解析名称,那么我们必须允许入站请求,因为我们需要为端口53添加iptables入站规则。
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
现在,验证规则已在INPUT链中正确添加。
$ sudo iptables -L INPUT
接下来,保存规则并重新启动防火墙。
$ sudo service iptables save $ sudo service iptables restart
在防火墙上打开DNS端口
启动指定的服务并使其持久化。
$ sudo service named start $ sudo chkconfig named on $ sudo chkconfig --list named
启动DNS服务器
最后,测试配置的主DNS区域文件(正向和反向),使用DIG和NSLOOKUP的工具。
$ dig masterdns.youcllocal.com [Forward Zone]
测试前转DNS区域
$ dig -x 192.168.0.200
测试反向DNS区域
$ nslookup youcllocal.com $ nslookup masterdns.youcllocal.com $ nslookup slavedns.youcllocal.com
测试DNS区域
凉! 我们已经配置了主DNS,现在我们需要设置一个从DNS服务器。 让我们继续设置一个从服务器,这不需要太多的时间作为主设置。
设置从属DNS服务器
在从机,我们还需要安装相同的绑定包,如Master所示,所以让我们使用下面的命令安装它们。
$ sudo yum install bind* -y
安装DNS绑定
打开并编辑“ 的named.conf'文件为我们的区域数据库和监听端口。
$ sudo vim /etc/named.conf
根据您的要求进行更改,如图所示。
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.0.201}; # Our Slave DNS server IP 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; 192.168.0.0/24; }; recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; ## Define our slave forward and reverse zone, Zone files are replicated from master. zone"youcllocal.com" IN { type slave; file "slaves/youcllocal.fwd.zone"; masters { 192.168.0.200; }; }; zone"0.168.192.in-addr.arpa" IN { type slave; file "slaves/youcllocal.rev.zone"; masters { 192.168.0.200; }; }; ##### include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
配置从属DNS
使用启动DNS服务。
$ sudo service named start
重新启动绑定服务后,我们没有单独定义区域的信息,因为我们允许转移将复制从主服务器的区域信息如下图所示的图像中。
$ sudo ls -l /var/named/slaves
使用cat命令验证区域信息。
$ sudo cat /var/named/slaves/youcllocal.fwd.zone $ sudo cat /var/named/slaves/youcllocal.rev.zone
验证从属区域文件
接下来,iptables的开放DNS端口53,允许入站连接。
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
保存iptables规则并重新启动iptables服务。
$ sudo service iptables save $ sudo service iptables restart
使服务在系统引导时保持持久。
$ sudo chkconfig iptables on
Check whether persistent set for run-levels .
$ sudo chkconfig --list iptables
打开DNS端口
而已!。 现在时间来配置我们的客户端机器并检查主机名。
配置客户机
在客户端,我们需要指定主要(192.168.0.200)和网络设置辅助DNS(192.168.0.201)项获得分配一个主机名。 为此,请运行setup命令定义所有这些条目,如图所示。
$ setup
添加DNS条目
否则,请编辑“/etc/reslov.conf”文件,并添加以下条目。
$ vim /etc/resolv.conf
search youcllocal.com nameserver 192.168.0.200 nameserver 192.168.0.201
现在,验证ip,主机名和Nameservers查找。
$ ifconfig | grep inet $ hostname $ nslookup youcllocal.com
验证DNS条目
现在,使用查看正向和反向DNS查找。
$ dig masterdns.youcllocal.com $ dig -x 192.168.0.200
检查DNS信息
挖掘输出:
- 头 -这是说的一切我们都问及如何结果。
- 状态 -状态没有错误,这意味着它通过发送我们的查询请求成功,没有任何错误。
- 的问题 -这是我们所作的查询,在这里我的查询语句masterdns.youcllocal.com。
- 答案 -如果有可用的信息查询请求解决。
- 权威 -域和区域的Nameservers的响应。
- 其他 -附加信息的关于域名的服务器,如主机名和IP地址。
- 查询时间 -经过多久才解决因上述服务器的名称。
最后检查我们的节点并进行ping。
$ dig node1.youcllocal.com
检查客户端DNS信息
$ ping masterdns.youcllocal.com -c 2 $ ping slavedns.youcllocal.com -c 2 $ ping 192.168.0.200 -c 2 $ ping 192.168.0.201 -c 2
Ping DNS服务器
最后,设置完成,在这里我们已成功配置主(主)和从(第二)DNS服务器成功,希望大家都设置没有任何问题,随时提出评论,如果你在设置时遇到任何问题。