(一)DNS主从同步的原理:
1、master DNS服务器每次修改完成并重启服务后,将传送notify给所有的slave DNS服务器;

2、slave DNS服务器将查询master服务器的SOA记录;

3、master DNS服务器收到请求后将SOA记录发送给Slave DNS服务器,Slave DNS服务器收到后同时对比查询结果中的serial值;

4、如果serial值不大于本机的话将结束数据同步过程;但是如果serial值大于本机的话,slave DNS将发送zone transfer请求要求(AXFR/IXFR)。Master响应zone transfer请求并传送结果,直到整个slave更新完成。

(二)DNS服务器类型
1,Primary DNS Server (Master)域主服务器:是这个域的权威服务器,所有这个域的信息都是由域的主服务器控制,改域的所有配置,更改,都在master服务器运行
2,Seconday DNS Server (Slave)域从服务器:通常是用于备份(冗余)和 负载均衡使用。所有slave的信息都是由域的主服务器控制(即域的从服务器从域的主服务器抓取zone配置文件),从服务器不进行不进行信息的修改,所有的修改与主服务器同步。查看域的zone文件是否正常抓取要到/var/named/chroot/var/named/slaves/目录中查看。
3,Cacheing only Server(DNS缓存服务器):不存在zone文件,仅仅依靠缓存为客户端提供服务。

(三)配置主从DNS

序号 IP 功能
1 192.168.99.98 Master
2 192.168.99.99 Slave

1,在Master上操作

(1),查看Master的named.conf配置

[root@server98 chroot]# cat /var/named/chroot/etc/named.conf 
options
{
        // Put files that named is allowed to write in the data/ directory:
        directory               "/var/named";           // "Working" directory

        listen-on port 53       { any; };
        allow-query         { any; };
       # notify              yes;                      #####通知从DNS全局
       #also-notify  {192.168.99.99 ;}; 
       recursion            yes;
       listen-on-v6 port 53     { ::1; };
};
zone "lqb.com"  IN  {
        type master;
        file "lqb.com.zon";
        allow-transfer {192.168.99.99;};  ####只允许通知的从服务器
        notify              yes;                   ####主从同步通知从DNS这个配置很重要       
        also-notify  {192.168.99.99 ;}; 
};

(2),在Master新建主服务器解析库文件 zone文件

[root@server98 chroot]# vim  /var/named/chroot/var/named/
data/        dynamic/     lqb.com.zon  slaves/      
[root@server98 chroot]# cat /var/named/chroot/var/named/lqb.com.zon 
$TTL 1D
$ORIGIN lqb.com.
@   IN SOA  lqb.com. admin.lqb.com. (
                    20180511; serial                  ########这个很重要,每次修改记录的时候都要修改这个数T+1(每次修改完主DNS配置后,都需要改一下serial序列号,且必须比从服务器号大才会同步。)
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H  ; minimum
)
    IN  NS  ns1.lqb.com.

mail IN  A   172.20.66.111
www2 IN  A   172.20.66.112
ns1 IN  A   192.168.99.99
www IN  A   172.20.66.110
ftp     IN   A  10.128.105.250

(3)每次添加修改dns记录时,serial值比原先的值大才能同步(建议采用T+1)。

[root@server98 chroot]# vim var/named/lqb.com.zon 
$TTL 1D
$ORIGIN lqb.com.
@   IN SOA  lqb.com. admin.lqb.com. (
                    20180513; serial             ###改值比修改前的要大,才能同步
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H  ; minimum
)
    IN  NS  ns1.lqb.com.
@    IN  NS ns1.lqb.com.
@    IN NS  ns2.lqb.com.
mail IN  A   172.20.66.111
www2 IN  A   172.20.66.112
ns1 IN  A   192.168.99.98
ns2 IN  A   192.168.99.99
www IN  A   172.20.66.110
ftp     IN   A  10.128.105.250
file     IN   A  172.20.66.112
lqb     IN   A   172.20.66.120

(4)重新加载配置文件

[root@server98 chroot]# rndc reload
[root@server98 chroot]# tail -f /var/log/messages
May 11 17:30:57 server98 named[33430]: reloading configuration succeeded
May 11 17:30:57 server98 named[33430]: reloading zones succeeded
May 11 17:30:57 server98 named[33430]: zone lqb.com/IN: loaded serial 20180513
May 11 17:30:57 server98 named[33430]: zone lqb.com/IN: sending notifies (serial 20180513)
May 11 17:30:57 server98 named[33430]: all zones loaded
May 11 17:30:57 server98 named[33430]: running
May 11 17:30:57 server98 named[33430]: client 192.168.99.99#32886 (lqb.com): transfer of 'lqb.com/IN': AXFR-style IXFR started
May 11 17:30:57 server98 named[33430]: client 192.168.99.99#32886 (lqb.com): transfer of 'lqb.com/IN': AXFR-style IXFR ended
May 11 17:30:57 server98 named[33430]: client 192.168.99.99#11716: received notify for zone 'lqb.com'

2,在slave上操作
(1)编辑slave服务器上的named.conf文件,

[root@zabbix ~]# vim /var/named/chroot/etc/named.conf

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        allow-query     { any; };
        directory "/var/named";     
        recursion yes;
                };

zone "lqb.com"   IN {
        type slave;                                   ###本机是从服务器
        file "slaves/lqb.com.zon";             ###将同步后的文件放置在哪里,这里是相对路径绝对路径是/var/named/chroot/var/named/slaves/
        masters { 192.168.99.98; };         ###指定主服务器的ip地址         
};

(2),给slaves赋读写权限并修改该目录的所有者为named用户

[root@zabbix ~]# chown -R named:named /var/named/chroot/var/named/slaves/
[root@zabbix ~]# chmod -R 777 /var/named/chroot/var/named/slaves/
[root@zabbix ~]# ll /var/named/chroot/var/named/
总用量 24
drwxrwxrwx 2 root  root     6 5月  11 11:40 data
-rw-r--r-- 1 root  root    56 5月  11 11:40 my.external.zone.db
-rw-r--r-- 1 root  root    56 5月  11 11:40 my.internal.zone.db
-rw-r--r-- 1 root  root  2281 5月  11 11:40 named.ca
-rw-r--r-- 1 root  root   152 5月  11 11:40 named.empty
-rw-r--r-- 1 root  root   152 5月  11 11:40 named.localhost
-rw-r--r-- 1 root  root   168 5月  11 11:40 named.loopback
drwxrwxrwx 2 named named   25 5月  11 15:41 slaves

(3)检查语法,并在master和slave重启下服务
[root@zabbix ~]# named-checkconf /var/named/chroot/etc/named.conf
[root@zabbix ~]# systemctl restart named-chroot

(4)查看从服务器是否有文件同步进来,注意该文件是用vim 打不开的。
[root@zabbix ~]# ll /var/named/chroot/var/named/slaves/
总用量 4
-rw-r--r-- 1 named named 340 5月 11 16:05 lqb.com.zon

(5)用从服务器解析 (‘@’后面指定dns 服务器的地址,就可以不用改本机的dns了)

[root@localhost var]# dig file.lqb.com @192.168.99.99      

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.2 <<>> file.lqb.com @192.168.99.99   
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,status: NOERROR,id: 55636
;; flags: qr aa rd ra; QUERY: 1,ANSWER: 1,AUTHORITY: 1,ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; ednS: version: 0,flags:; udp: 4096
;; QUESTION SECTION:
;file.lqb.com.          IN  A

;; ANSWER SECTION:
file.lqb.com.       86400   IN  A   10.128.105.251

;; AUTHORITY SECTION:
lqb.com.        86400   IN  NS  ns1.lqb.com.

;; ADDITIONAL SECTION:
ns1.lqb.com.        86400   IN  A   192.168.99.99

;; Query time: 1 msec
;; SERVER: 192.168.99.99#53(192.168.99.99)
;; WHEN: Fri May 11 16:25:53 CST 2018
;; MSG SIZE  rcvd: 91

备注:如果没有同步文件,则一般的检查步骤如下:
1,确认ntp时间是否同步
2,samples文件夹的属主是否是named用户,是否具有读写权限。
3,是否启用了notify功能,该功能也可以在全局项options内配置,只不过全局配置是针对所有域的。
4,每次修改dns解析的记录,需要修改series值,采用T+1算法。

日志信息如下:

[root@zabbix named]# tail -f /var/log/messages
May 11 17:30:57 zabbix named[33420]: client 192.168.99.98#18648: received notify for zone 'lqb.com'
May 11 17:30:57 zabbix named[33420]: zone lqb.com/IN: Transfer started.
May 11 17:30:57 zabbix named[33420]: transfer of 'lqb.com/IN' from 192.168.99.98#53: connected using 192.168.99.99#32886
May 11 17:30:57 zabbix named[33420]: zone lqb.com/IN: transferred serial 20180513
May 11 17:30:57 zabbix named[33420]: transfer of 'lqb.com/IN' from 192.168.99.98#53: Transfer completed: 1 messages,13 records,316 bytes,0.001 secs (316000 bytes/sec)
May 11 17:30:57 zabbix named[33420]: zone lqb.com/IN: sending notifies (serial 20180513)
备注:
DNS相关解释:
DNS查询类型:
    递归查询:
    迭代查询:
DNS名称解析方式:
    域名--IP:正向解析
    IP--域名:方向解析
区域(zone)和域(domain):
    FQDN --> IP正向解析库;区域
    IP --> FQDN反向解析库;区域
区域数据库文件:
    资源记录:Resource Record,简称rr、记录类型如下:
1、SOA: Start Of Authority,起始授权记录,一个区域解析库有且只能有一个SOA记录,而且必须
放在第一条,而且在编写时不能使用“@”符号,使用“.”符号代替,后续有示例:
2、NS: Name Service,域名服务记录,一个区域解析库可以有多个NS记录,其中一个为主的,任何
一个NS记录后面的服务器名字,都应该在后续有一个A(地址记录);
3、A:  Address,地址记录,FQDN --> IPv4(正向解析库);
4、AAAA: 地址记录, FQDN --> IPv6(正向解析库);
5、CNAME:Canonical Name,别名记录;
6、PTR: Pointer,IP --> FQDN(反向解析库),IP有特定格式,把IP地址反过来写,1.2.3.4,
要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
7、MX: Mail eXchanger,邮件交换器,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
    优先级:0-99,数字越小优先级越高;

CentOS7.4下建立DNS主从服务器二的更多相关文章

  1. HTML5 Web缓存和运用程序缓存(cookie,session)

    这篇文章主要介绍了HTML5 Web缓存和运用程序缓存(cookie,session),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. ios – Objective-C中的Google用户serverAuthCode nil

    我正在尝试将GoogleSignIn框架集成到iOS应用程序中,并对服务器上的用户进行身份验证.我设法登录用户,但在–(void)signIn:(GIDSignIn*)signIndidSignInForUser:(GIDGoogleUser*)用户withError:(NSError*)错误委托方法,user.serverAuthCode为nil,我需要通过此服务器身份验证代码,嗯,验证服务器上

  3. ios – 错误域= NSURLErrorDomain代码= -1003“找不到具有指定主机名的服务器

    当我尝试在设备上运行应用程序时出现此错误.当我在模拟器上运行它并且post请求正常工作时,我没有收到此错误.这是我的代码片段:任何帮助表示赞赏.谢谢解决方法此错误通常会提示DNS相关问题.检查设备上的DNS设置并确认您可以使用Safari或其他浏览器浏览互联网.如果有一个url,你可以在同一台服务器上获取,尝试直接在设备上的Safari中访问它.

  4. 将POD规范属性与其Xcode配置中的不同构建设置相关联(例如,发布,调试)

    我正在尝试为现有的库项目创建POD规范.在Xcode项目中,构建设置为不同的构建配置定义了不同的预处理器宏例如:对于“调试”配置:对于“发布”配置:如何将这些设置映射到相应的POD规范?

  5. ios – 200在xcode 7中生成DSMM警告

    解决方法我有同样的问题.Facebook表示他们已经意识到这一点并且不是高优先级,因为它不会影响应用程序.我回退到4.7.1警告问题不再存在.我不认为它会被拒绝但不能确定.

  6. xamarin.ios – Facebook iOS SDK:应用程序在启动时找不到“找不到符号:_ACFacebookAppIdKey.”仅在iOS 5中崩溃

    解决方法这是一个已修复的knownbug.目前唯一已知的解决方法是使用较旧版本的FacebookSDK.

  7. osx – 无法创建目录/ var / teamsserver

    OpenSSH_6.2p2,OSSLShim0.9.8r8Dec2011debug1:Readingconfigurationdata/etc/ssh_configdebug1:/etc/ssh_configline20:Applyingoptionsfor*debug1:Connectingto1.2.3.4[1.2.3.4]portPORT.debug1:Connectionestablished.Couldnotcreatedirectory‘/var/teamsserver/.ssh’.debug

  8. ios – 如何在Xcode 4.5中完成代码签名

    解决方法事实证明,从AppStore升级XCode并不会自动升级所有内容.转到首选项/下载,并确保安装最新的命令行工具.

  9. xcode7 – 谁在创建文件“/private/var/tmp/Untitled-*.uicatalog”?

    我正在调查为什么TeamCity构建代理程序用完了磁盘,并且在/private/var/tmp中找到了超过11,000个文件,它们都以Untitled-.uicatalog行命名.每个文件至少0.6MB.总磁盘占用空间约为4GB.这些文件可以追溯到几个月,所以他们能够重新启动.谁在创造他们?Xcode在编译至少有一个图像的xcassets目录时创建这些目录.我可以删除它们吗?

  10. ios – Client.ipa不包含文件

    从过去的几天开始,我就把这头发错了.当我尝试提交基于cordova的iOS应用程序时,我收到一个错误,即符号工具失败.这就是我在日志中的内容:以下是尝试提交到应用商店时所述错误的屏幕截图:请帮忙.解决方法我有同样的错误,因为应用程序包中错误地包含了几个静态库(libXXX.a).它们显示在主.App下的最终上传确认框(列出权利和证书)中.我的解决方案是从项目中删除对这些静态库的所有引用,在链接器标

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部