• 云原生学习筑基 ~ 组网必备知识点 ~ DNS服务


    @

    一、为啥写这篇文章?

    DNS(domain name system)域名管理

    说一下为啥会整理这么一篇文章,难道工作会用到嘛?不不不,作为CRUD工程师,日常工作那是一准用不到本文跟大家分享的知识。

    但是当你想学云原生技术栈时,你无论如何都不能跳过这篇文章所分享的DNS等计算机网络的知识点。所以这其实是一篇筑基的文章。

    二、DNS的作用

    TCP/IP网络协议要求想要互联的机器要有唯一的IP地址,因为TCP/IP协议是基于IP地址通信的。

    但是ip地址是一大长串数据,也不好记。所以就衍生出一个叫主机识别码的东西来。这个主机识别码ip地址一样,都是唯一存在的。比如:www.qq.com就是一个主机识别码

    TCP/IP这道坎,主机识别码就不能独立存在,我们需要一个机制,可以帮我们将主机识别码转换成ip地址DNS系统扮演的就是这个角色。

    本专题公众号首发,感兴趣可以考虑关注,不迷路:

    点击阅读原文,体验感更好哦......

    点击阅读原文,体验感更好......

    三、域

    域名是分层的

    比如齐鲁工业大学的域名是:qlu.edu.cn

    其实cn后面还有个. 表示根域名服务器,但是都省略了

    其中的cn表示中国,edu表示教育,qlu是齐鲁工业大学的名字。这样大家看到这个域名时,即使不知道它具体是哪所高校,但是起码知道它代表一所学校。

    qlu.edu.cn 还可以继续往下分,如www.qlu.edu.cnpaper.qlu.edu.cnfamily.qlu.edu.cn等等

    四、DNS工作原理

    一说DNS服务器大家都感觉云里雾里,感觉DNS服务器很高大上的样子。

    它确实是台服务器,确切的说是专门运行着有域名解析功能的某个软件的服务器(比如后文中的bind软件),既然是个软件,那软件启动后肯定得监听某个端口,这个端口

    讲一下当我们在浏览器输入:www.baidu.com时,它时如何找到域名对应的ip地址的!

    1、首先浏览器会缓存域名、ip的对应关系。

    2、浏览器中没缓存,就会查找电脑本地的hosts文件,这里面会配置域名和ip的对应关系。

     ~ % cat /etc/hosts
    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1	localhost
    255.255.255.255	broadcasthost
    ::1             localhost
    

    3、如果本地hosts文件中也没有域名对应的ip地址,我们的主机就会像它的dns服务器发起询问。在mac系统可以查看:网络偏好设置 ,找到dns服务器的相关信息。

    然后点击高级,查看当前我的mac的DNS服务器地址

    在mac或者linux中都可以通过如下的命令查询dns服务器的位置

    ~ % cat /etc/resolv.conf
    

    在mac或者linux中都可以通过如下的命令对域名进行解析

    # 会使用resolv.conf记录的dns服务器,对域名进行解析
    ~ % nslookup baidu.com
    Server:		172.22.1.253
    Address:	172.22.1.253#53
    
    Name:	baidu.com
    Address: 220.181.38.148
    Name:	baidu.com
    Address: 220.181.38.251
    

    4、免费的DNS服务器ip

    ip 公司
    8.8.8.8 谷歌
    114.114.114.114 百度

    5、DNS服务器接受到域名解析的请求后,就会查询该域名对应的ip是多少,而且他本身也存在缓存机制,如果它确定自己不能找到域名对应的ip地址的话,就会将这个dns解析请求转发给根DNS服务器,根域名域名服务器会告诉我们的DNS服务器说:我知道 com. 域名服务器的位置,你去问他吧!

    然后我们的DNS服务器找到com.域名服务器说:你知道www.baidu.com 对应的ip地址吗? 然而com.服务器会说:我知道baidu.com.域名服务器在哪里,你去问他吧!

    然后我们的DNS服务器找到baidu.com.域名服务器说:你知道www.baidu.cn 对应的ip地址吗? baidu.com.服务器会说:www.com.com 的ip地址是 xxx.xxx.xxx.xxx

    五、搭建DNS服务器

    5.1、Bind

    Bind是一款开源的DNS软件,全称:Berkeley Internet Name Domain 由美国加州大学伯克利分享开发、维护。

    支持unix、window。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发和维护。

    那下文主要就是记录如何使用Bind软件搭建DNS服务以及搭建主从DNS服务。软件人家已经写好了,对使用者来说都很友好,只要改一改配置文件然后启动就OK(重点是理解那些参数都是啥意思)。

    DNS域名解析会使用:udp/53

    主从DNS服务之间的数据传输使用:tcp/53

    其实如果你没有自建dns域名解析服务的需求,看到这里就可以结束了。如果以后可能会有这个记得收藏。

    5.2、系统环境准备

    • 调整yum源
    yum install epel-release -y
    
    • 关闭SELinux、firewalld
    # 临时关闭SELinux
    setenforce 0
    
    # 永久关闭SElinux
    vi /etc/selinux/config
    #SELINUX=enforcing #注释掉
    #SELINUXTYPE=targeted #注释掉
    SELINUX=disabled #增加
    # 重启
    
    # 关闭防火墙,注意一定要关闭防火墙
    # 不然后面使用bind9自建dns时其他的服务器无法和自建的dns服务器通信~
    # 不然etcd集群也没法搭建起来~
    systemctl stop firewalld
    # 为了不在重启后再去手动的关闭防火墙,所以直接将其禁用掉~
    systemctl enable firewalld
    
    • 安装必要的工具
    yum install wget net-tools telnet tree nmap sysstat dos2unix bind-utils -y
    

    5.3、安装

    在hdss7-11上执行命令:

    yum install bind -y
    

    检测bind版本

    rpm -qa bind
    

    查看bind都有哪些文件

    rpm -ql bind
    

    了解配置文件

    man 5 xxx.conf
    

    5.4、查看bind的相关文件

    通过如下命令可以找到Bind的主配置文件named.conf的位置

    # 软件名叫bind,但是bin文件进程名称叫named
    [root@localhost ~]# rpm -ql bind | grep etc
    /etc/logrotate.d/named # 日志轮转的配置
    /etc/named
    /etc/named.conf # 主配置文件
    /etc/named.iscdlv.key
    /etc/named.rfc1912.zones # zone文件,用于定义域
    /etc/named.root.key
    /etc/rndc.conf
    /etc/rndc.key
    /etc/rwtab.d/named
    

    查看程序常用bin文件位置

    [root@localhost ~]# rpm -ql bind | grep sbin
    /usr/sbin/named # 程序启动文件
    /usr/sbin/named-checkconf # 检查配置文件语法(named.conf、named.rfc1912.zones)
    /usr/sbin/named-checkzone # 检查区域文件语法的命令
    

    查看服务的日志文件位置

    [root@localhost ~]# rpm -ql bind | grep named.log
    /var/log/named.log
    

    其他动态文件的位置

    [root@localhost ~]# rpm -ql bind | grep var
    /var/log/named.log # 日志文件
    /var/named
    /var/named/data
    /var/named/dynamic
    /var/named/named.ca # 根域名服务器配置(所有DNS服务器都知道根域名服务器在哪里)
    /var/named/named.empty 
    /var/named/named.localhost # 正向解析区域文件的模版
    /var/named/named.loopback # 反向解析区域文件的模版
    /var/named/slaves # 从DNS服务器的下载文件的默认路径
    

    5.5、查看bind的主配置文件

    [root@localhost ~]# cat /etc/named.conf
    
    options {
      /*
      	监听方式,服务监听指定ip的53号端口
      	服务器可能有多张网卡,any表示所有网卡监听53端口的DNS解析请求
      	todo 可以个实验:1、ip指定为本机ip。2、ip指定为同网段随便的ip
      */
    	listen-on port 53 { 127.0.0.1; any;}; /**/
    	
    	/*数据文件目录*/
    	directory 	"/var/named";
    	
    	/*DNS缓存位置*/
    	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";
    	recursing-file  "/var/named/data/named.recursing";
    	secroots-file   "/var/named/data/named.secroots";
    	
    	/*
    		允许哪些client来查询dns服务,默认是localhost。
    		any表示所有人都能进行dns查询
    	*/
    	allow-query     { localhost;any; };
    
    	/*是否递归*/
    	recursion yes;
    
    	/*DNS安全扩展机制,默认开启,直接关闭即可*/
    	dnssec-enable no;
    	dnssec-validation no;
    
    	/* Path to ISC DLV key */
    	bindkeys-file "/etc/named.root.key";
    
    	managed-keys-directory "/var/named/dynamic";
    
    	pid-file "/run/named/named.pid";
    	session-keyfile "/run/named/session.key";
    };
    
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    
    /*之所以全部DNS服务器都知道根域名服务器的位置,就是下面的配置在生效*/
    zone "." IN {
    	type hint;
    	file "named.ca";
    };
    
    /*子配置文件*/
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    

    修改完主配置文件后使用如下命令检验是否改错了

    [root@localhost ~]# named-checkconf
    

    5.6、查看域配置文件 - named.rfc1912.zones

    [root@localhost ~]# cat /etc/named.rfc1912.zones
    
    // 正向模版,从域名=>ip地址
    // localhost.localdomain 为域名
    // named.localhost为该域对应的配置文件,它位于/var/named/
    // allow-update表示是否允许slave更新master的区域文件
    zone "localhost.localdomain" IN { 
    	type master;
    	file "named.localhost";
    	allow-update { none; }; 
    };
    
    // 反向模版,从ip地址=>域名
    // 1.0.0.127 看着怪怪的,其实他是ip地址反过来写了。而且也要求反过来写
    zone "1.0.0.127.in-addr.arpa" IN {
    	type master;
    	file "named.loopback";
    	allow-update { none; };
    };
    

    5.7、查看某个具体的域的配置文件

    [root@localhost ~]# ll /var/named/
    总用量 16
    drwxrwx--- 2 named named    6 4月  29 22:05 data
    drwxrwx--- 2 named named    6 4月  29 22:05 dynamic
    -rw-r----- 1 root  named 2253 4月   5 2018 named.ca
    -rw-r----- 1 root  named  152 12月 15 2009 named.empty
    -rw-r----- 1 root  named  152 6月  21 2007 named.localhost
    -rw-r----- 1 root  named  168 12月 15 2009 named.loopback
    drwxrwx--- 2 named named    6 4月  29 22:05 slaves
    

    看一个正向解析的域的配置文件named.localhost

    [root@localhost ~]# cat /var/named/named.localhost
    $TTL 1D # 缓存的生命周期,默认1D表示1天
    @	IN SOA	@ rname.invalid. ( # ()中是slave相关配置
    					0	; serial # 更新序列号,当这个文件有变动时,需要将这个序列号+1,然后slave会向master同步数据
    					1D	; refresh # slave从master中同步最新数据的时间间隔
    					1H	; retry # slave从master中下载数据失败之后,隔多久的时间再重试
    					1W	; expire # slave中区域文件的过期时间,w是周
    					3H )	; minimum # salve上缓存的最小有效时间
    	NS	@
    	A	127.0.0.1
    	AAAA	::1
    	
    # @:表示当前域,也就是 named.rfc1912.zones 中的zone的名称
    # IN:表示Internet,互联网
    # SOA:表示开始授权
    # rname.invalid.  是邮箱地址,因为@符号有特殊含义,所以这里的邮箱使用.分隔
    # NS: 全称NameServer 表示DNS服务器
    # A:正向的Ipv4解析
    # AAAA:IPv6
    

    看一个反向解析的域的配置文件named.loopback

    [root@localhost ~]# cat /var/named/named.loopback
    $TTL 1D
    @	IN SOA	@ rname.invalid. (
    					0	; serial 
    					1D	; refresh
    					1H	; retry
    					1W	; expire
    					3H )	; minimum
    	NS	@
    	A	127.0.0.1
    	AAAA	::1
    	PTR	localhost.
    
    # 大部分参数和第一个文件相同
    # PTR表示反向解析
    

    5.8、实验前提前抛出一个问题

    可以通过下面的方式配置网卡的dns服务器的地址

    [root@localhost named]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=none
    DEFROUTE=yes
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=10.4.7.7
    NETMASK=255.255.255.0
    GATEWAY=10.4.7.2
    DNS1=10.4.7.2
    

    比如网卡配置文件中指定的dns服务器地址是:10.4.7.2

    另外系统上还运行着NetworkManager进程,它的作用之一将DHCP中获取的DNS信息写入/etc/resolv.conf

    [root@localhost named]# ps -elf | grep NetworkManager
    4 S root       6172      1  0  80   0 - 137970 poll_s 08:18 ?       00:00:00 /usr/sbin/NetworkManager --no-daemon
    0 S root       7237   7080  0  80   0 - 28181 pipe_w 09:00 pts/0    00:00:00 grep --color=auto NetworkManager
    

    也就是将我们设置的dns服务器地址,更新进下面的文件

    [root@localhost named]# cat /etc/resolv.conf
    nameserver 10.4.7.2
    

    那么问题来了:

    我们本机的ip是10.4.7.7,然后我们在本机自建的dns服务时又需要指定dns服务的ip地址,那既然本机就是dns服务器,那指定的dns服务的地址肯定是本机的ip地址10.4.7.7,那这和NetworkManager更新入/etc/resolv.conf的ip地址是不同的。

    而且通过nslookup ${域名} 进行域名解析时,它会去使用/etc/resolv.conf里面的dns去解析域名,而不是我们自己在本机搭建的dns服务。

    如果你非想用nsloopup验证我们自己的dns服务是否正常,可以使用如下命令

    [root@localhost named]# echo nameserver 10.4.7.7 >  /etc/resolv.conf
    

    5.9、实验:搭建DNS正向解析服务

    实验目的:实现将www.meng.com解析成192.168.1.2

    1、修改/etc/named.conf中的监听方式为全网监听、允许所有人访问dns服务、关闭安全验证机制

    2、修改子配置文件/etc/named.rfc1912.zones添加meng.com域。注意这个meng.com域也会往下分层,比如:www.meng.comwiki.meng.comfamily.meng.com

    [root@localhost etc]# vi /etc/named.rfc1912.zones
    
    // 添加如下配置
    zone "meng.com" IN {
            type master;
            file "named.meng.zone";
            allow-update { none; };
    };
    

    3、创建named.meng.zone配置文件,meng.com域分层的详细逻辑就在这个named.meng.zone配置文件中定义。

    [root@localhost etc]# rpm -ql bind |  grep named.localhost
    /usr/share/doc/bind-9.11.4/sample/var/named/named.localhost
    /var/named/named.localhost
    [root@localhost etc]# cp /var/named/named.localhost /var/named/named.meng.zone
    
    # 注意将named.meng.zone文件的所属组改成named
    # 否则会以为named无法使用root文件而导致DNS服务不能解析meng.zone域
    [root@localhost named]# chown -R root:named named.meng.zone
    [root@localhost etc]# vi /var/named/named.meng.zone
    # 按需修改配置文件
    
    $TTL 1D
    @       IN SOA meng.com. rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    # 下面这两行指定了dns服务器的nameServer是meng.com、ip地址是10.4.7.7(它自己)
    # dns1是自定义的dns服务的名称,叫啥都行
    @       NS      dns1.meng.com.
    dns1    A       10.4.7.7
    # 在meng.com域中添加一个www主机,A记录表示是一个正向解析。解析结果为192.168.1.2
    www			A				192.168.1.2 
    

    4、检查配置文件

    [root@localhost etc]# rpm -ql bind | grep sbin/named
    /usr/sbin/named
    /usr/sbin/named-checkconf
    /usr/sbin/named-checkzone
    /usr/sbin/named-compilezone
    /usr/sbin/named-journalprint
    
    [root@localhost etc]# named-checkconf named.conf
    [root@localhost etc]# named-checkconf named.rfc1912.zones
    [root@localhost named]# named-checkzone named.meng.zone named.meng.zone
    zone named.meng.zone/IN: loaded serial 0
    OK
    

    5、开启服务

    [root@localhost named]# rpm -ql bind | grep named
    /etc/logrotate.d/named
    /etc/named
    ...
    /usr/sbin/named
    /usr/sbin/named-checkconf
    [root@localhost sbin]# systemctl start named
    [root@localhost sbin]# systemctl enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
    
    [root@localhost sbin]# netstat -luntp | grep 53
    tcp        0      0 10.4.7.7:53             0.0.0.0:*               LISTEN      25833/named
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      25833/named
    tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      25833/named
    tcp6       0      0 ::1:953                 :::*                    LISTEN      25833/named
    udp        0      0 10.4.7.7:53             0.0.0.0:*                           25833/named
    udp        0      0 127.0.0.1:53            0.0.0.0:*                           25833/named
    

    6、查看或修改本机的dns服务器地址+验证实验效果

    [root@localhost named]# echo nameserver 10.4.7.7 >  /etc/resolv.conf
    [root@localhost named]# nslookup www.meng.com
    Server:		10.4.7.7
    Address:	10.4.7.7#53
    
    Name:	www.meng.com
    Address: 192.168.1.2
    

    通过dig命令验证

    [root@localhost named]# dig @10.4.7.7 www.meng.com
    
    ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> @10.4.7.7 www.meng.com
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65534
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.meng.com.			IN	A
    
    ;; ANSWER SECTION:
    www.meng.com.		86400	IN	A	192.168.1.2
    
    ;; AUTHORITY SECTION:
    meng.com.		86400	IN	NS	dns1.meng.com.
    
    ;; ADDITIONAL SECTION:
    dns1.meng.com.		86400	IN	A	10.4.7.7
    
    ;; Query time: 0 msec
    ;; SERVER: 10.4.7.7#53(10.4.7.7)
    ;; WHEN: 四 8月 19 08:32:16 CST 2021
    ;; MSG SIZE  rcvd: 92
    
    

    通过host命令查看

    [root@localhost named]# host www.meng.com
    www.meng.com has address 192.168.1.2
    

    5.10、实验:搭建DNS反向解析服务

    1、修改/etc/named.conf中的监听方式为全网监听、允许所有人访问dns服务、关闭安全验证机制

    2、修改子配置文件/etc/named.rfc1912.zones添加meng.com域反向解析

    [root@localhost named]# vi /etc/named.rfc1912.zones
    zone "1.168.192.in-addr.arpa" IN {
            type master;
            file "named.meng.loopback";
            allow-update { none; };
    };
    

    3、创建、编辑子配置文件named.meng.loopback

    [root@localhost named]# cp -p named.loopback named.meng.loopback
    [root@localhost named]# vi named.meng.loopback
    $TTL 1D
    @       IN SOA  meng.com. rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    # 下面这两行也可以简写成一行:@       NS      dns1.meng.com.
    # 之所以能简写是因为dns1在正向解析配置中已经定义好了
    @       NS      dns2.meng.com.
    dns2    A       10.4.7.7
    2       PTR     www.meng.com. # 2是1.168.192网段的最后一位,(192.168.1.2)
    

    4、重启服务

    [root@localhost named]# systemctl  restart named
    

    5、验收

    [root@localhost named]# dig -x 192.168.1.2 @10.4.7.7
    
    ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> -x 192.168.1.2 @10.4.7.7
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4572
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;2.1.168.192.in-addr.arpa.	IN	PTR
    
    ;; ANSWER SECTION:
    2.1.168.192.in-addr.arpa. 86400	IN	PTR	www.meng.com.
    
    ;; AUTHORITY SECTION:
    1.168.192.in-addr.arpa.	86400	IN	NS	dns2.meng.com.
    
    ;; Query time: 0 msec
    ;; SERVER: 10.4.7.7#53(10.4.7.7)
    ;; WHEN: 四 8月 19 08:57:51 CST 2021
    ;; MSG SIZE  rcvd: 98
    

    或者

    [root@localhost named]# nslookup 192.168.1.2
    2.1.168.192.in-addr.arpa	name = www.meng.com.
    
    [root@localhost named]# host 192.168.1.2
    2.1.168.192.in-addr.arpa domain name pointer www.meng.com.
    

    六、搭建主从DNS服务

    主从DNS服务其实就是在多台相同环境机器上,都安装好Bind软件,再按照一定的规则修改主从的配置文件。

    要求主从DNS服务器的时间要相同,关于时间如何同步,可以参考下面的ntp

    6.1、搭建时间同步服务器-ntp

    10.4.7.9上安装时间同步服务器

     ~]# yum install -y ntp
    

    修改配置文件ntp.conf

    ~]# rpm -ql ntp | grep conf
    /etc/ntp.conf
    /etc/sysconfig/ntpd
    /usr/share/man/man5/ntp.conf.5.gz
    ~]# vi /etc/ntp.conf
    

    启动

    [root@ntp-server ~]# rpm -ql ntp | grep bin
    /usr/bin/ntpstat
    /usr/sbin/ntp-keygen
    /usr/sbin/ntpd
    /usr/sbin/ntpdc
    /usr/sbin/ntpq
    /usr/sbin/ntptime
    /usr/sbin/tickadj
    [root@ntp-server ~]# systemctl start ntpd
    [root@ntp-server ~]# systemctl enable ntpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
    

    在客户端验证时间同步服务器是否正常启动

    # 登陆10.4.7.0所在的其他网段的机器,验证如下
    ~]# ntpdate 10.4.7.9
    20 Aug 08:37:47 ntpdate[8399]: adjust time server 10.4.7.9 offset -0.017571 sec
    

    在主从机器上添加crontab定时任务同步时间

    参考之前的笔记:https://www.cnblogs.com/ZhuChangwu/p/11519940.html

    ~]# crontab -e
    */2 * * * * ntpdate 10.4.7.9 &> /dev/null
    
    [root@localhost ~]# crontab -l
    */2 * * * * ntpdate 10.4.7.9 &> /dev/null
    

    6.2、开始搭建

    dns-master:10.4.7.7

    dns-slave: 10.4.7.8

    6.2.1、在master上的操作

    1、设置允许哪些slave向自己同步数据

    # 之前的配置如下
    zone "meng.com" IN {
            type master;
            file "named.meng.zone";
            allow-update { none; };
    };
    
    # 可以将allow-update { none; };删掉
    # 也可以改写成: allow-update { 10.4.7.8; };
    

    2、重启

    6.2.2、在slave上的设置

    1、使用crontab像时间同步服务器同步时间

    2、修改/etc/named.conf配置文件(同master)

    3、修改/etc/named.rfc1912.zones

    # master的named.rfc1912.zones自定义正向zone配置如下
    
    zone "meng.com" IN {
            type master;
            file "named.meng.zone";
            allow-update { none; };
    };
    
    # 响应的slave的追加配置如下
    ~]# vi /etc/named.rfc1912.zones
    
    zone "meng.com" IN {
            type slave;
            # 因为slave的zone文件是从master中拉取过来的
            # 所以slaves其实是个相对路径
            # 全路径是:/var/named/slaves/named.meng.zone , /var/named在named.conf中有定义
            file "slaves/named.meng.zone"; 
            # 指定master位置
            masters {10.4.7.7;};
    };
    

    4、重启

    6.2.3、客户端的设置

    为客户端设置两个dns服务。

    echo nameserver 10.4.7.7 > /etc/resolv.conf
    echo nameserver 10.4.7.8 > /etc/resolv.conf
    

    这样,当需要进行域名解析时,优先使用master。当master挂了后,客户端会使用备用的dns服务解析域名。

  • 相关阅读:
    思考:如何保证服务稳定性?
    svn:Item is out of date解决办法
    MAC OS 10.15 Lucene 源码分析环境搭建
    防止数据重复提交的6种方法(超简单)!
    6种快速统计代码执行时间的方法,真香!
    漫画:Integer 竟然有 6 种比较方式?
    IDEA 不为人知的 5 个骚技巧!真香!
    自由职业半年之后,我又滚回职场了...
    为什么建议你使用枚举?
    ESP8266
  • 原文地址:https://www.cnblogs.com/ZhuChangwu/p/15241211.html
Copyright © 2020-2023  润新知