设为首页 收藏本站
查看: 593|回复: 0

[经验分享] Linux学习之CentOS(三十五)--配置域从DNS服务器以及缓存DNS服务器

[复制链接]

尚未签到

发表于 2015-3-7 02:48:55 | 显示全部楼层 |阅读模式
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。
如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦   
如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377@qq.com  / lzp501395377@gmail.com
如果需要转载,请注明出处,谢谢!!
  
  在上一篇随笔中Linux学习之CentOS(三十四)--配置域主DNS服务器,详细讲解了如何在Linux环境下配置一个域的主DNS服务器,在本篇随笔中将讲解如何配置一个域的从DNS服务器以及缓存DNS服务器
  一、域从DNS服务器的作用
  我们在之前上一篇随笔里有提到,DNS服务器一般有三种类型,一个是Primary DNS Server(主DNS服务器),一个是Secondary DNS Server(从DNS服务器),还有一个就是Caching DNS Server,我们配置一个域的DNS服务就是给其配置一个主DNS服务器,那么从DNS服务器主要是用来干嘛的呢?
  配置一个域的从服务器一般是为了进行备份以及负载均衡使用,例如在生产环境中,我们给一个域配置的主DNS服务器崩溃了或者被恶意攻击了,那么这个时候如果没有配置从DNS服务器的话,我们的DNS服务器就不能提供DNS服务了,也就无法解析服务器上配置的域名了,或者说主服务器的访问量特别大,此时我们配置从服务器来达到负载均衡的效果,因此我们通常在配置了一个主DNS服务器以后,还需要为其配置多个从DNS服务器
  我们知道,我们为一个域配置的文件都是由主DNS服务器来控制的,我们的从服务器上的信息都是通过从主服务器上抓取得来的,当域slave服务器启动的时候就会从域master服务器上抓取指定域的zone文件,所以我们配置从服务器的步骤就非常的简单了
  二、配置域从DNS服务器
  我们这里通过虚拟机模拟了两台Linux主机,一台主机就是昨天已经配置好的主DNS服务器,另外一台主机作为从DNS服务器来使用。
  在进行域从DNS服务器配置之前,我们首先需要在主DNS服务器上进行一些配置:
  (1)开放主DNS服务器上的53、953端口
  因为我们的从服务器要通过网络去抓取主服务器上的zone文件,所以我们要在iptables里面增加两个规则,开放本机的53和953端口,这里为了实验方便,就直接先将iptables清空了
  

[iyunv@xiaoluo etc]# iptables -F
[iyunv@xiaoluo etc]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
  (2)将我们的SELinux设置成permissive

[iyunv@xiaoluo etc]# getenforce
Enforcing
[iyunv@xiaoluo etc]# setenforce 0
[iyunv@xiaoluo etc]# getenforce
Permissive
  (3)修改一下主配置文件 named.conf
  因为我们从服务器要通过网络来访问主服务器进行zone文件的抓取,所以我们要在 named.conf 主配置文件里面添加从服务器的IP地址进去,因为我们默认是指定了本机IP,这样就只能我们的本机使用BIND服务,所以我们需要将从服务器的IP地址也写进去,或者说不指定开放53、953端口的IP地址,这样其他主机也就能够通过网络访问到这台主机的DNS服务了
  这是昨天配置的named.conf文件,我们这里就将 listen-on port 那两行代码删除即可

/*
Sample named.conf BIND DNS server 'named' configuration file
for the Red Hat BIND distribution.
See the BIND Administrator's Reference Manual (ARM) for details, in:
file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
its manual.
*/
options
{
// Put files that named is allowed to write in the data/ directory:
directory         "/var/named";        // "Working" directory
//listen-on port 53    { any; };
listen-on port 53    { 127.0.0.1; };
//listen-on-v6 port 53    { any; };
listen-on-v6 port 53    { ::1; };
};
zone "iyunv.com"
{
type master;
file "iyunv.com.zone";
};
  
  修改后:

[iyunv@xiaoluo etc]# vim named.conf
/*
Sample named.conf BIND DNS server 'named' configuration file
for the Red Hat BIND distribution.
See the BIND Administrator's Reference Manual (ARM) for details, in:
file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
its manual.
*/
options
{
// Put files that named is allowed to write in the data/ directory:
directory         "/var/named";        // "Working" directory
};
zone "iyunv.com"
{
type master;
file "iyunv.com.zone";
};
  (4)开启我们的主DNS服务器的BIND服务

[iyunv@xiaoluo etc]# service named start
Starting named: named: already running                     [  OK  ]
  主DNS服务器的配置就基本这样子,接下来就是我们配置从DNS服务器的步骤了:
  ①首先我们也需要在从服务器上安装BIND服务,这块就省略了,具体安装上一篇随笔有详细讲解 Linux学习之CentOS(三十四)--配置域主DNS服务器
  ②在bind主配置文件中添加指定域的信息
  我们只需要在named.conf配置文件下面添加如下信息就可:

zone "iyunv.com"
{
  type slave;
  masters { 192.168.198.129; };
  file "slaves/iyunv.com.zone"
};
  

[iyunv@slave etc]# cat named.conf
/*
Sample named.conf BIND DNS server 'named' configuration file
for the Red Hat BIND distribution.
See the BIND Administrator's Reference Manual (ARM) for details, in:
file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
its manual.
*/
options
{
directory         "/var/named";        // "Working" directory
};
zone "iyunv.com"
{
type slave;  // 指定这是从DNS服务器
masters { 192.168.198.129; };  // 因为从DNS服务器要抓取主DNS服务器上的zone文件,这里要指定主DNS服务器的IP地址,注意:IP地址要用{}括起来,且以;结尾,前后都有空格
file "slaves/iyunv.com.zone";  //  从服务器默认抓取到的zone文件通常都保存在了 slaves 这个目录下
};
  ③关闭从服务器上的SELinux
  因为要通过网络来访问主服务器,所以这里也需要将我们的SELinux设置成 permissive

[iyunv@slave etc]# getenforce
Enforcing
[iyunv@slave etc]# setenforce 0
[iyunv@slave etc]# getenforce
Permissive
  【注意:】因为我们从主服务器上抓取文件到 slaves 这个目录下是由 named 这个系统用户来完成的,所以我们要保证slaves要有可写权限,同时slaves的所属用户、所属组都是 named

[iyunv@slave named]# ls -l
总用量 32
drwxr-xr-x. 2 root root 4096 6月   6 22:52 data
-rw-r--r--. 1 root root   56 6月   6 22:52 my.external.zone.db
-rw-r--r--. 1 root root   56 6月   6 22:52 my.internal.zone.db
-rw-r--r--. 1 root root 1892 6月   6 22:52 named.ca
-rw-r--r--. 1 root root  152 6月   6 22:52 named.empty
-rw-r--r--. 1 root root  152 6月   6 22:52 named.localhost
-rw-r--r--. 1 root root  168 6月   6 22:52 named.loopback
drwxr-xr-x. 2 root root 4096 6月   6 22:52 slaves
[iyunv@slave named]# chown named slaves/
[iyunv@slave named]# chgrp named slaves/
[iyunv@slave named]# ls -l
总用量 32
drwxr-xr-x. 2 root  root  4096 6月   6 22:52 data
-rw-r--r--. 1 root  root    56 6月   6 22:52 my.external.zone.db
-rw-r--r--. 1 root  root    56 6月   6 22:52 my.internal.zone.db
-rw-r--r--. 1 root  root  1892 6月   6 22:52 named.ca
-rw-r--r--. 1 root  root   152 6月   6 22:52 named.empty
-rw-r--r--. 1 root  root   152 6月   6 22:52 named.localhost
-rw-r--r--. 1 root  root   168 6月   6 22:52 named.loopback
drwxr-xr-x. 2 named named 4096 6月   6 22:52 slaves
  
  ④启动我们从服务器上的BIND服务,或刷新我们的BIND服务配置

[iyunv@slave etc]# service named start
Generating /etc/rndc.key:                                  [确定]
启动 named:                                               [确定]
  ⑤查看域的zone配置文件是否正常被抓取到了 /var/named/chroot/var/named/slaves/ 这个目录当中

[iyunv@slave slaves]# ls -l
总用量 12
-rw-r--r--. 1 named named 381 6月   6 23:20 iyunv.com.zone
-rw-r--r--. 1 root  root   56 6月   6 22:52 my.ddns.internal.zone.db
-rw-r--r--. 1 root  root   56 6月   6 22:52 my.slave.internal.zone.db
  我们看到,iyunv.com.zone文件已经从主DNS服务器上抓取下来了

[iyunv@slave slaves]# cat iyunv.com.zone
$ORIGIN .
$TTL 86400    ; 1 day
iyunv.com        IN SOA    iyunv.com. rname.invalid. (
0          ; serial
86400      ; refresh (1 day)
3600       ; retry (1 hour)
604800     ; expire (1 week)
10800      ; minimum (3 hours)
)
NS    iyunv.com.
A    127.0.0.1
MX    10 mail.iyunv.com.
AAAA    ::1
$ORIGIN iyunv.com.
mail            A    192.168.1.222
www            A    192.168.1.111
  ⑥将从DNS服务器的指向当前主机
  这个时候我们的从DNS服务器已经配置好了,我们这时修改 /etc/resolv.conf 文件然后将 nameserver 指向本机

[iyunv@slave slaves]# vim /etc/resolv.conf
nameserver 127.0.0.1
  ⑦通过 host 或者 dig 命令来验证我们的从DNS服务器是否能够正常解析

//    查询www.iyunv.com的IP地址
[iyunv@slave slaves]# dig www.iyunv.com
;  DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6  www.iyunv.com
;; global options: +cmd
;; Got answer:
;; ->>HEADERHEADERHEADER

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-44077-1-1.html 上篇帖子: Linux Namespaces机制 下篇帖子: Linux socket编程(三) 简单的多线程聊天室
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表