DNS服务器主从同步Windows主+Linux从(三)

(一)简介
由于公司DNS服务器是以windows为主,由于经常打补丁,造成几次故障,故需要迁移到Linux,由于添加的记录过多,故采用以windows为主负责添加,修改解析记录,而Linux同步后进行接受业务请求的访问。

序号 IP 功能 系统
1 10.128.105.171 Master Windows
2 172.20.66.132 Slave- Linux

(二)具体的步骤
(1),windows安装配置省略

(2)Linux的具体步骤如下:

2.1安装bind
[[email protected] slaves]# yum install bind-chroot bind-utils -y

2.2修改配置文件
    [[email protected] 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 about the
 configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
*/

options
{
    // Put files that named is allowed to write in the data/ directory:
    directory       "/var/named";       // "Working" directory
    dump-file       "data/cache_dump.db";
        statistics-file     "data/named_stats.txt";
        memstatistics-file  "data/named_mem_stats.txt";

    /*
      Specify listenning interfaces. You can use list of addresses (‘;‘ is
      delimiter) or keywords "any"/"none"
    */
    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; };

    /*
      Access restrictions

      There are two important options:
        allow-query { argument; };
          - allow queries for authoritative data

        allow-query-cache { argument; };
          - allow queries for non-authoritative data (mostly cached data)

      You can use address, network address or keywords "any"/"localhost"/"none" as argument
      Examples:
        allow-query { localhost; 10.0.0.1; 192.168.1.0/8; };
        allow-query-cache { ::1; fe80::5c63:a8ff:fe2f:4526; 10.0.0.1; };
    */

    allow-query     { any; };
    //allow-query-cache { localhost; };

    /* Enable/disable recursion - recursion yes/no;

     - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
     - If you are building a RECURSIVE (caching) DNS server, you need to enable
       recursion.
     - If your recursive DNS server has a public IP address, you MUST enable access
       control to limit queries to your legitimate users. Failing to do so will
       cause your server to become part of large scale DNS amplification
       attacks. Implementing BCP38 within your network would greatly
       reduce such attack surface
     */
    recursion yes;

    /* DNSSEC related options. See information about keys ("Trusted keys", bellow) */

    /* Enable serving of DNSSEC related data - enable on both authoritative
       and recursive servers DNSSEC aware servers */
    dnssec-enable yes;

    /* Enable DNSSEC validation on recursive servers */
    dnssec-validation yes;

    /* In RHEL-7 we use /run/named instead of default /var/run/named
       so we have to configure paths properly. */
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";

    managed-keys-directory "/var/named/dynamic";
};

logging  //配置相关的日志信息
{
/*      If you want to enable debugging, eg. using the ‘rndc trace‘ command,
 *      named will try to write the ‘named.run‘ file in the $directory (/var/named).
 *      By default, SELinux policy does not allow named to modify the /var/named directory,
 *      so put the default debug log file in data/ :
 */
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
     channel gsquery {
                file "data/query.log"   versions 3 size 20m;
                severity info;
                print-time yes;
                print-category yes;
                print-severity yes;
        };
        category queries { gsquery; };
};

//配置同步的主服务器的某个域,如果有多个域同步可以继续添加,也可以使用include 引用某个文件把所有的域添加到文件中
include "/etc/named.lqb.com.zones";

zone "lqb.com" IN {
    type slave;
    file "slaves/lqb.com.zone";
    masters { 10.128.105.171; };
   };

2.3 检查相关配置文件是否配置正确

[[email protected] named]# named-checkzone lqb.com /var/named/chroot/var/named/lqb.com.zone
zone lqb.com/IN: loaded serial 2
OK
[[email protected] named]#  named-checkconf /var/named/chroot/etc/named.conf

2.4 重启服务,并查看是否有报错

[[email protected] slaves]# systemctl restart named-chroot
[[email protected] slaves]# systemctl status named-chroot
● named-chroot.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-06-14 18:46:55 CST; 16h ago
  Process: 4090 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 4378 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 4375 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 4380 (named)
   CGroup: /system.slice/named-chroot.service
           └─4380 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot

Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: vm_win7_7.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: vm_win7_8.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: vm_win7_9.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: WIN7_1.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: WIN7_VM1.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: WIN7_VM2.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: win7_vm_1.corp.ppdai.com/A: bad owner name (check-names)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: transferred serial 2045499
Jun 15 11:42:28 DNS-Slave named[4380]: transfer of ‘corp.ppdai.com/IN‘ from 10.128.105.171#53: Transfer completed: 19 messages...es/sec)
Jun 15 11:42:28 DNS-Slave named[4380]: zone corp.ppdai.com/IN: sending notifies (serial 2045499)
Hint: Some lines were ellipsized, use -l to show in full.

2.5 查看从服务器是否有同步的文件出现

[[email protected] slaves]# ll /var/named/chroot/var/named/slaves/lqb.com.zon
-rw-r--r-- 1 named named 381 Jun 14 16:52 /var/named/chroot/var/named/slaves/lqb.com.zon

原文地址:http://blog.51cto.com/liqingbiao/2129760

时间: 2024-07-30 21:20:44

DNS服务器主从同步Windows主+Linux从(三)的相关文章

架设DNS服务器 实战指南(主、从、子、定向转发多图)

一.DNS基础知识(先科普一下): 1.DNS出现的环境: TCP/IP协议通信是基于IP地址的,但是网络管理员无法记住那一串串单调的数字.因此大家基本上是通过访问计算机域名,然后通过 DNS服务器将计算机域名解析为IP地址来实现的.     2.什么是DNS: DNS:域名系统(Domain  Name  System)用于命名组织到域层次结构中的计算机和网络服务.DNS命名用于TCP/IP网络中,通过用户友好的名称查找计算机.当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与

[记录]CentOS搭建SVN服务器(主从同步)

CentOS搭建SVN服务器(主从同步)1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: #/usr/bin/svnversion --version2.创建svn版本库目录 #mkdir -p /var/svn/svnrepos3.创建版本库 #svnadmin create /var/svn/svnrepos4.进入/var/svn/svnrepos/conf目录 1)authz文件是权

mysql5.7.25主从同步图解(主:CentOS7.5,从win10)

环境说明: 主服务器:CentOS7.5 从服务器:Windows10(本地测试机) 1. 配置master(主服务器,CentOS7.5) 1.1 首先查看CentOS上面的MySQL是否启动 systemctl status mysqld 1.2 修改MySQL配置文件 vi /etc/my.cnf 添加以下内容: #服务器唯一id,默认是1(主从都必须不一样) server-id=1000 #启动二进制日志名称为mysql-bin log-bin=mysql-bin #binlog-do-

Linux 下DNS服务器主从配置

注意: 关闭防火墙 关闭selinux 在客户端配置vim /etc/resolv.conf的DNS 安装 yum install -y bind bind-chroot bind-utils master 配置 vim /etc/named.conf options项 listen-on port 53 { any; }; allow-query{ any; }; 注示掉 recursion yes; dnssec-enable yes; dnssec-validation yes; dnss

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,然后再利用网络copy,重复性很大,就想着能不能写一个小脚本帮我同步 逻辑:比对本地和服务器文件的md5,如果md5不一致,则备份服务器上的文件,将本地的给上传上去 代码分为windows端和服务器端,有些东西,都让python一个做了,写着有点累,就想着,能否服务端提供一个端口,windows去调用这个接口,来完成一部分工作 python代码如下: 需要额外安装的包为是paramiko,安装方

Python 一键同步windows和linux数据(基于pscp.exe)

outline 项目中需要把 windows server 上的数据同步到 linux server,方法很多,这里记录下自己采用的一种比较简单的方法. 准备工作 首先确保你 windows server 上装有 pscp.exe . 下载地址: 可去PuTTY官方的下载页中,找到PSCP,下载. 也可以直接下载 PuTTY 内置的就有 PSCP 了. 安装之后进到 pscp.exe 所在目录下,查看使用帮助: # 基本用法: -p 拷贝文件的时候保留源文件建立的时间. -q 执行文件拷贝时,不

MySQL主从同步与主主同步

MySQL复制: MySQL内建的复制功能是构建大型,高性能应用程序的基础.将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将mysql的某一台主机的数据复制到其它主机(slave)上,并重新执行一遍来实现. 复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循坏,这些日志可以记录发送到从服务器的更新.当一个从服务器 连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器

分布式部署应用时主从同步时候主键重复

原因: 解决方法: 用redis生成主键 /** * * @Title: getContractId * @user: zzx * @time: 2016年11月15日下午5:36:15 * //DESC 获取订单ID * @param param step:步长 * @return 当前分布式环境下最新ID * @return String 返回类型 * @throws */ public String getContractId(JSONObject param){ int step = p

从Windows到Linux(三):拥抱命令行

一直很困惑很多人都说在Linux上命令行是极有用处和极好用的.对于前者,本人表示赞同,的确在Linux上离开命令行简直没法活了.但是好用就要打个问号了.首先,对于刚刚开始使用的人根本就不知道要使用什么命令.随便从网上找几个apt-get之类的命令,用了也是知其然不知其所以然的.然后于是乎到网上搜索一番,找到一大堆的常用命令.然而似乎也并没有什么用.就拿ls命令来说,对于日常工作似乎并没有什么实际用处.类似的工作,用图形界面不是更好么. 但是不管怎么说,命令行就在那里,不管我们懂不懂,喜不喜欢,他