Linux云计算 |【第一阶段】SERVICES-DAY2

news2024/9/23 2:32:24

主要内容:

DNS服务基础及搭建、特殊解析(针对地址库文件:DNS轮询 DNS泛域名解析 DNS别名)、缓存DNS(全局转发forwarders)、DNS递归迭代(子域授权)、DNS主从架构搭建、DNS主从数据同步

一、DNS工作原理

DNS域名解析系统(Domain Name System)

介绍:域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。

功能:

  • 正向解析:根据注册的域名查找其对应的IP地址;
  • 反向解析:根据IP地址查找对应的注册域名,不常用;

DNS服务器分类:

根域名服务器(权威DNS仅13台)、一级DNS服务器、二级DNS服务器、三级DNS服务器

DNS的分布式结构(大型,分布式的互联网DNS解析库)

根域名:即域名结尾的点(DNS域名默认会补全结尾的【.】)

例如:  www.qq.com —>  www.qq.com.

补充:根域名服务器负责专门维护结尾的点;

常见的顶级/一级域名:

  • ① 国家/地区域:.cn .us .kr .hk .tw ...
  • ② 组织域:.com .net .edu .org .gov .mil ...

FQDN完全合格主机名(Full Qualified Domain Name)

完全合格主机名 = 站点名.注册域名后缀

例如:站点名. .. .二级域.一级域.

DNS域名管理(了解)

IANA互联网数字分配机构(Internet Assigned Numbers Authority)

  • 整个域名系统的最高权威机构
  • 主管DNS根、.int、.arpa等国际化域名资源

CNNIC中国互联网络信息中心(China Internet Network Information Center)

  • 主管国家顶级域.cn

域名代理/注册/购买服务商

  • 新网,http://www.xinnet.com
  • 万网,http://www.net.cn
  • 中国互联,http://hulian.top

二、BIND服务分析

BIND(Berkeley Internet Name Domain)是一种开源的域名系统(DNS)软件,用于将域名转换为IP地址,从而实现互联网上的主机名解析。BIND由加州大学伯克利分校开发,现在由Internet Systems Consortium(ISC)维护和开发。

BIND服务的主要功能包括:

  1. 域名解析:BIND将人类可读的域名(如www.example.com)转换为计算机可理解的IP地址(如192.0.2.1),这是互联网通信的基础。

  2. 权威名称服务器:BIND可以配置为权威名称服务器,负责特定域名的解析。权威名称服务器存储并提供特定域名的DNS记录。

  3. 递归名称服务器:BIND也可以配置为递归名称服务器,为客户端提供完整的域名解析服务。递归服务器会代表客户端查询其他DNS服务器,直到找到所需的IP地址。

  4. 缓存名称服务器:BIND可以缓存查询结果,以提高后续相同查询的响应速度,减少网络流量。

BIND的工作原理基于客户端-服务器模型:

  • DNS客户端:通常是操作系统或应用程序,发送DNS查询请求。
  • DNS服务器:运行BIND软件的计算机,接收并处理DNS查询请求,返回相应的IP地址或其他DNS记录。

BIND支持多种配置选项和安全特性,如DNSSEC(DNS Security Extensions),用于增强DNS的安全性,防止DNS欺骗和缓存投毒等攻击。

1)BIND服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 系统服务:named
  • 所需软件包:bind(主程序)、bind-chroot(提供牢笼政策,安全,监控bind程序)
  • 默认端口:TCP/UDP 53
  • 运行时的虚拟根环境:/var/named/chroot

2)DNS配置文件

  1. 主配置文件:/etc/named.conf     //设置负责解析的域名(需要提前备份)
  2. 地址库文件:/var/named/..     //完全合格的主机名与IP地址对应关系

注意:主配置文件的3种注释方法:[ // ]或[ /* 内容 */ ]或[ # ]

注意:每一个[ {}; 及 ;]分号后面严禁多空格,但空行可以

注意:每一个[ {}; ]成对出现

3)/etc/named.conf主配置文件

全局配置部分,设置监听地址/端口、地址库存放位置等

关键信息解析:

[Directory]   定义地址库文件的默认存放路径

注意:allow-query{any;};中的any,代表任何人查询,该条记录不加也默认全部

注意:listen-on port 53 { any; };可以使本机所有地址可以响应,删除该条记录后,没有指定则默认允许所有地址监听53端口;

区域配置部分,定义DNS区域、类型、地址文件路径等

关键信息解析:

[Zone]   定义解析域名区域

[IN]  表示Internet

[Type]  类型:master(主)或slave(从)

[File]   指定地址库文件(建议文件名:解析域名开头.zone结尾)

4)地址库文件(默认在/var/named/下)

建立地址库文件条件:

① 保证named用户对地址库文件有读取权限

② 所有的域名都要以点作为结尾,如果没有以点作为结尾,那么默认补全主配置文件负责的域名;

全局TTL配置项及SOA记录:

  • $TTL(Time To Live生存时间)
  • SOA(Start Of Authority授权信息开始)
  • 分号”;”开始的部分表示注释

关键信息解析:

[NS]   域名服务器(Name Server)记录

[A]   地址(Address)记录,仅用于正向解析区域(ipv4地址解析记录)

[AAAA]   地址(Address)记录,ipv6地址解析记录

5)检查配置语法

① 检测主配置文件是否正确(仅供参考)

命令:named-checkconf 主配置文件(/etc/named.conf)

[root@svr7 ~]# named-checkconf /etc/named.conf

如图:

② 检测地址库文件是否正确(仅供参考)

命令:named-checkzone 解析域名 地址库文件

[root@svr7 ~]# named-checkzone tedu.cn /var/named/tedu.cn.zone
zone tedu.cn/IN: loaded serial 0
OK

如图:

6)软件包bind-utils提供以下域名查询工具 :

① 使用Host测试命令,指定DNS地址

命令:host 查询域名或IP地址 [DNS服务器地址]

② nslookup域名解析测试

命令:nslookup 查询域名或IP地址 [DNS服务器地址]

③ dig深度挖掘查询工具

命令:dig 查询域名或IP地址 [@DNS服务器地址] [-t 资源类型]

示例:构建DNS服务器  

步骤1:安装软件包

[root@svr7 ~]# yum -y install bind bind-chroot.x86_64
[root@svr7 ~]# rpm -q bind bind-chroot
bind-9.9.4-61.el7.x86_64
bind-chroot-9.9.4-61.el7.x86_64

步骤2:备份DNS的主配置文件

[root@svr7 ~]# cp /etc/named.conf /root/     //备份主配置文件

步骤3:修改主配置文件内容

[root@svr7 ~]# cat /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.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
 
options {
listen-on port 53 { 127.0.0.1; };      //监听端口53和本机的IPv4地址
listen-on-v6 port 53 { ::1; };          //监听端口53和本机的IPv6地址
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; };     //允许本机参与
 
/*
 - 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-enable yes;     //安全的DNS配置
dnssec-validation yes;
 
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.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;
        };
};
 
zone "." IN {
type hint;
file "named.ca";
};
 
include "/etc/named.rfc1912.zones";       //Include可调用其它配置文件
include "/etc/named.root.key";

删除并保留关键配置信息:

[root@svr7 ~]# vim /etc/named.conf
options {
        directory       "/var/named";
};
zone "." IN {
        type hint;    //hint针对于根域名
        file "named.ca";
};

 修改相关关键配置:

options {
        directory       "/var/named";     //定义地址库文件默认存放路径
};
zone "tedu.cn" IN {           //定义负责的解析tedu.cn域名(定义正向区域)
        type master;          //权威主DNS服务器(区域类型为主DNS)
        file "tedu.cn.zone";    //地址库文件
};

步骤4:通过复制named.localhost模板,建立地址库文件

[root@svr7 ~]# cd /var/named/
[root@svr7 named]# ls
chroot  dynamic   named.empty      named.loopback
data    named.ca  named.localhost  slaves
[root@svr7 named]# cp named.localhost tedu.cn.zone      //错误方式
[root@svr7 named]# ls -l tedu.cn.zone
-rw-r-----. 1 root root 152 3月  17 10:59 tedu.cn.zone
注意:DNS服务需要以named身份运行,不能Root权限运行,假设DNS被攻击,权限太大后果严重,且named不属于属主root,属组root,其他人也没有r权限

[root@svr7 ~]# id named     //自动生成用户
uid=25(named) gid=25(named) 组=25(named)
[root@svr7 named]# ls -l named.localhost       //权限为640,属组named
-rw-r-----. 1 root named 152 6月  21 2007 named.localhost
[root@svr7 named]# ls -l /etc/named.conf       //权限为640,属组named
-rw-r-----. 1 root named 498 3月  17 10:54 /etc/named.conf
 
[root@svr7 named]# cp -p named.localhost tedu.cn.zone    //保持权限进行复制
cp:是否覆盖"tedu.cn.zone"? yes
[root@svr7 named]# ls -l tedu.cn.zone
-rw-r-----. 1 root named 152 6月  21 2007 tedu.cn.zone

注意1:地址库文件的命名,必须按照/etc/named.conf主配置文件中指定的地址库文件修改;

注意2:DNS软件包安装后会自动生成named 用户,所有的DNS运行会以named身份运行,且所有相关的配置文件权限为640,属组都为named,在此情况下建议修改新建的地址库文件的属组,使其有r权限;补充:cp -p保持权限和归属关系不变进行复制

步骤5:修改地址库文件

[root@svr7 ~]# cat /var/named/tedu.cn.zone     //查看地址库文件内容
$TTL 1D      //$TTL(Time To Live生存时间)
@ IN SOA @ rname.invalid. (      //SOA(Start Of Authority授权信息开始)
            0 ; serial       //分号”;”开始的部分表示注释
            1D ; refresh
            1H ; retry
            1W ; expire
            3H ) ; minimum
NS @        //NS,域名服务器(Name Server)记录
A 127.0.0.1   //A,ipv4地址解析记录
AAAA ::1       //AAAA,ipv6地址解析记录

修改相关关键配置:

[root@svr7 ~]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
            0 ; serial
            1D ; refresh
            1H ; retry
            1W ; expire
            3H ) ; minimum
tedu.cn.    NS svr7     //建议写主机名svr7.tedu.cn(保证上下一致)
svr7     A 192.168.4.7     //svr7解析结果为192.168.4.7
www      A   1.1.1.1
ftp      A   2.2.2.2

解释:tedu.cn域名区域 — NS名字服务器声明 — 由svr7.tedu.cn负责

  • 注意1:NS前面的域名区域可以空白不写,因主配置文件zone已定义【tedu.cn】,所以在地址库文件的域名区域位置会自动补全tedu.cn.
  • 注意2:地址库文件要求完全合格主机名,所以必须要以[ . ]点结尾(例如:tedu.cn.),若不加点,会按照主配置文件定义自动补全tedu.cn.,一般建议只需写站点名即可;
  • 注意3:由上NS声明记录,至下A正向解析记录(NS记录必须在A记录前面)
  • 注意4:主配置文件要求域名区域不能以【.】结尾,地址库文件要求必须以【.】结尾(默认补全);

步骤6:检测主配置文件和地址库文件是否正确

[root@svr7 ~]# named-checkconf /etc/named.conf     //无输出则无错误
[root@svr7 ~]# named-checkzone tedu.cn /var/named/tedu.cn.zone
zone tedu.cn/IN: loaded serial 0
OK

步骤7:重启服务

[root@svr7 ~]# systemctl restart named

步骤8:服务验证(主机A或主机B都可以,都需要修改/etc/resolv.conf)

[root@svr7 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf  //指定DNS解析
[root@svr7 ~]# cat /etc/resolv.conf
nameserver 192.168.4.7

[root@svr7 ~]# nslookup svr7.tedu.cn      //nslookup域名解析测试
Server: 192.168.4.7     //来自192.192.168.4.7回应
Address: 192.168.4.7#53     //53端口
Name: svr7.tedu.cn
Address: 192.168.4.7
 
[root@svr7 ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.1.1.1
 
[root@svr7 ~]# nslookup ftp.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: ftp.tedu.cn
Address: 2.2.2.2

常见报错:超时报错

  • 原因1:未配置/etc/resolv.conf或找不到指定解析的DNS服务器,则将解析请求指向127.0.0.1去解析,如果本机不是DNS则解析超时;
  • 原因2:地址库文件权限不足
  • 原因3:防火墙与SELinux限制
[root@svr7 ~]# nslookup ftp.tedu.cn
;; connection timed out; no servers could be reached
  • 补充:nslookup测试解析时,默认先查看/etc/resolv.conf里是否有指定的DNS服务器可以去进行解析测试;当/etc/resolv.conf没有指定使用的DNS服务器,则尝试将请求给回本机127.0.0.1,假如本机是一台DNS服务器,则由本机进行解析,如果本机不是DNS服务器,则回复超时;
  • 补充:/etc/hosts文件为本地解析(没有DNS情况下使用),相比/etc/resolv.conf文件,优先级最高

常见报错:拷贝到地址库权限不足(cp -p)

[root@svr7 named]# nslookup www.lol.cn
Server:		192.168.4.7
Address:	192.168.4.7#53

** server can't find www.lol.cn: SERVFAIL

常见报错:检查地址库配置语法时,输入的区域不存在则报错

[root@svr7 named]# named-checkzone lol22.com lol.cn.zone 
lol.cn.zone:8: ignoring out-of-zone data (lol.cn)
zone lol.com/IN: has no NS records
zone lol.com/IN: not loaded due to errors.

常见报错:has no NS reords.. 地址库文件的域名没有加根域名[ . ]

[root@svr7 named]# named-checkzone lol22.com lol.cn.zone 
lol.cn.zone:8: ignoring out-of-zone data (lol.cn)
zone lol.com/IN: has no NS records
zone lol.com/IN: not loaded due to errors.

解决办法:

[root@svr7 ~]# vim /var/named/tedu.cn.zone
gz.tedu.cn.      NS      pc207
pc207   A       192.168.4.207
www     A       14.14.14.14

DNS查询测试

方法1:

[root@pc207 ~]# host www.lol.com 192.168.4.207
Using domain server:
Name: 192.168.4.207
Address: 192.168.4.207#53
Aliases:
www.lol.com has address 11.12.13.14

方法2:

[root@pc207 ~]# nslookup www.lol.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Name: www.lol.com
Address: 11.12.13.14

总结:快速搭建DNS服务器基本思路

  1. 安装软件包bind、bind-chroot
  2. 备份并修改主配置文件/etc/named.conf
  3. 复制模板并建立地址库文件/var/name/.. ..
  4. 检测主配置文件、地址库文件语法是否错误named-checkconf、namd-checkzone
  5. 重启服务named
  6. 检测DNS解析nslookup

案例:多区域域名解析(在主配置文件中,每新增一个zone,则对应一个地址库文件)

[root@svr7 ~]# vim /etc/named.conf     //修改主配置文件
options {
        directory       "/var/named";
};
zone "tedu.cn" IN {
        type master;
        file "tedu.cn.zone";
};
zone "lol.com" IN {          //新增加一个解析区域
        type master;
        file "lol.com.zone";
};
 
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# cp -p tedu.cn.zone lol.com.zone   //复制地址库文件
[root@svr7 named]# vim lol.com.zone   //建立地址库文件
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
lol.com.        NS      svr7    //NS声明记录
svr7    A       192.168.4.7
www     A       4.4.4.4     //正向解析记录
vip     A       5.5.5.5
 
[root@svr7 named]# named-checkconf /etc/named.conf    //检查配置语法
[root@svr7 named]# named-checkzone lol.com /var/named/lol.com.zone
zone lol.com/IN: loaded serial 0
OK
[root@svr7 named]# systemctl restart named   //重启服务
 
[root@svr7 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@svr7 ~]# cat /etc/resolv.conf
nameserver 192.168.4.7

[root@svr7 ~]# nslookup svr7.lol.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: svr7.lol.com
Address: 192.168.4.7

注意:主配置文件里,不同的域名不能共用同一个地址库文件

三、特殊解析(针对地址库文件)

1)DNS轮询

基于DNS的站点负载均衡,一个域名对应多个不同解析IP,每个IP提供镜像服务内容;

补充:生产环境中不会用该方式进行负载均衡(了解)

例如:

[root@svr7 ~]# vim /var/named/lol.com.zone
[root@svr7 ~]# cat /var/named/lol.com.zone
...
lol.com. NS svr7
svr7    A       192.168.4.7
www     A       192.168.4.10      //站点名相同,解析的IP地址不同
www     A       192.168.4.20
www     A       192.168.4.30
...
[root@svr7 ~]# systemctl restart named
[root@svr7 ~]# nslookup www.lol.com
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.lol.com
Address: 192.168.4.20
Name: www.lol.com
Address: 192.168.4.30
Name: www.lol.com
Address: 192.168.4.10
 
[root@svr7 ~]# ping www.lol.com
PING www.lol.com (192.168.4.20) 56(84) bytes of data.
...
[root@svr7 ~]# ping www.lol.com
PING www.lol.com (192.168.4.30) 56(84) bytes of data.
...
[root@svr7 ~]# ping www.lol.com
PING www.lol.com (192.168.4.10) 56(84) bytes of data.
...

2)DNS泛域名解析

匹配本域内未定义的任何主机地址,可以直接以[ * ]条目匹配,一般只用在正向区域文件中(最低优先级匹配,即使输入站点名错误,也可匹配)

例如:

[root@svr7 ~]# vim /var/named/tedu.cn.zone
...
tedu.cn. NS svr7
svr7 A 192.168.4.7
...
*       A       6.6.6.6       //注意[ * ]不代表通配符,表示任意站点名
tedu.cn. A      7.7.7.7
[root@svr7 ~]# systemctl restart httpd
 
[root@svr7 ~]# nslookup sss.tedu.cn       //输入不存在或未定义站点名
Server: 192.168.4.7
Address: 192.168.4.7#53
 
Name: sss.tedu.cn
Address: 6.6.6.6
 
[root@svr7 ~]# nslookup tedu.cn     //不写完整合格域名也可匹配(例如qq.com不写www)
Server: 192.168.4.7
Address: 192.168.4.7#53
 
Name: tedu.cn
Address: 7.7.7.7

3)DNS的解析记录的别名

[CNAME]  解析记录的别名,解析结果与已存在的记录解析结果一致

注意:解析记录必须是已存在的

例如:

[root@svr7 ~]# vim /var/named/tedu.cn.zone
...
tedu.cn. NS svr7
svr7 A 192.168.4.7
...
ftp     A       2.2.2.2
vip     CNAME   ftp      //解析结果与ftp一致
[root@svr7 ~]# systemctl restart named
[root@svr7 ~]# nslookup vip.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
 
vip.tedu.cn canonical name = ftp.tedu.cn.
Name: ftp.tedu.cn
Address: 2.2.2.2

四、递归/迭代查询(递归/迭代解析)

  • 递归查询:客户端发送请求给首选DNS服务器,首选DNS服务器与其他的DNS服务器交互,最终将解析结果带回来过程;
  • 迭代查询: 客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址;

DNS查询的工作方式:(经历一次递归,多次迭代)

例如:

  • 主机1构建DNS服务器负责tedu.cn
  • 主机2构建DNS服务器负责bj.tedu.cn

条件:主机1需要与主机2能够正常通行

[root@pc207 ~]# yum -y install  bind  bind-chroot
[root@pc207 ~]# vim /etc/named.conf
options {
        directory       "/var/named";
};
zone "bj.tedu.cn" IN {
        type master;
        file "bj.tedu.cn.zone";
};

[root@pc207 ~]# cd /var/named/
[root@pc207 ~]# cp -p named.localhost bj.tedu.cn.zone
[root@pc207 ~]# vim bj.tedu.cn.zone
...
bj.tedu.cn.     NS   pc207
pc207         A    192.168.4.207
www          A    9.9.9.9

[root@pc207 ~]# systemctl restart named
 
[root@pc207 ~]# nslookup www.bj.tedu.cn 192.168.4.7  //nslookup支持指定DNS服务器地址
Server:   192.168.4.7
Address:  192.168.4.7#53
** server can’t find www.bj.tedu.cn: NXDOMAIN

补充:由于想让DNS主机1去解析主机2的bj.tedu.cn,在未做子域授权情况下,主机1是无法解析主机2的域名,需要进行子域授权。

  • 主机1:子域授权
[root@svr7 /]# vim /var/named/tedu.cn.zone
tedu.cn.    NS    svr7
bj.tedu.cn.  NS    pc207     //增加主机2的NS说明记录
svr7        A    192.168.4.7
pc207       A      192.168.4.207     //增加主机2的解析记录
www         A      192.168.4.20
ftp         A      2.2.2.2
*           A      4.4.4.4
tedu.cn.    A      5.5.5.5
vip        CNAME  ftp
[root@svr7 /]# systemctl restart named
  •  主机2:测试
[root@pc207 /]# nslookup   www.bj.tedu.cn      192.168.4.7
Server:         192.168.4.7
Address:        192.168.4.7#53
 
Non-authoritative answer:    //非权威解答(不是主机1的回答)
Name:   www.bj.tedu.cn
Address: 9.9.9.9

1)开启/禁用递归

命令:[ recursion yes; ]  开启递归(递归查询默认开启)

命令:[ recursion no; ]  禁用递归

2)验证迭代查询

使用dig命令,更专业的DNS测试工具

由软件包 bind-utils 提供

格式:dig @DNS服务器 目标地址

五、缓存DNS概述

作用:缓存解析结果,加快访问,也可做访问限制;全球公共的缓存DNS:8.8.8.8、114.114.114.114

 - 主用适用环境:互联网出口带宽较低的企业局域网络、IPS服务商的公共DNS服务器

缓存DNS结构特点:

  1. 在内网中搭建本地的缓存DNS服务器,无需访问外网缓存DNS服务器
  2. 本地的缓存DNS服务器转发指定的公共DNS服务器,把解析结果反馈客户端,并把解析结果记录在本地的内存,提高查询访问速度,重启后缓存数据丢失(类似递归)

注意:缓存DNS可以有区域配置和地址库文件,也可没有区域配置和地址库文件,有则专门进行解析了,没有则递归指定的DNS服务器解析。

解析记录来源:

方式1:全局转发,将请求转发给指定的公共DNS(其他缓存DNS),请求递归服务;

方式2:根域迭代,依次向根、一级、二级...域的DNS服务器迭代

六、全局转发式缓存

基本配置步骤:

1.建立named.conf主配置文件

命令:[ forwarders { 公共DNS; }; ]    转发器

2.重启named服务

3.验证缓存DNS服务器

例如:(主机A不做任何操作,只针对主机B操作)

[root@pc207 ~]# vim /etc/named.conf     //只保留全局配置,删除区域配置
options {
    directory "/var/named";
    forwarders {192.168.4.7; };      //转发给192.168.4.7
};
[root@pc207 ~]# systemctl restart named     //重启服务

[root@pc207 ~]# nslookup www.lol.com 192.168.4.207  //指定4.207,转发给4.7解析
Server: 192.168.4.207
Address: 192.168.4.207#53

Non-authoritative answer:        //非权威解答(转发给4.7解析了)
Name: www.lol.com
Address: 1.1.1.1

七、DNS主/从架构概述

作用:提高可靠性,从DNS服务器备份主DNS服务器的数据

① 主域名服务器

  • 特定DNS区域的官方服务器,具有唯一性;
  • 负责维护该区域内所有的“域名IP地址”记录;

② 从域名服务器

  • 也称为辅助域名服务器(可以没有)
  • 其维护的“域名地址”记录取决于主域名服务器

案例环境:

  • 主DNS服务器的IP地址为192.168.4.7/24
  • 从DNS服务器的IP地址为192.168.4.207/24
  • 其中任何一台都能提供lol.com域的主机查询,返回相同的解析结果

— 建立主DNS服务器:

步骤1:添加访问控制

- 在主配置文件,授权从DNS服务器,允许其下载地址记录

[root@svr7 ~]# man named.conf    //可参考man帮助
[root@svr7 ~]# vim /etc/named.conf
options {
    directory "/var/named";
    allow-transfer { 192.168.4.207; };   //允许进行传输数据(未授权主机将不能作为从DNS)
};
zone "tedu.cn" IN {
    type master;
    file "tedu.cn.zone";
};
zone "lol.com" IN {
    type master;
    file "lol.com.zone";
};

注意:allow-transfer { 192.168.4.207; }; 需要注意必须有空格

步骤2:调整主DNS的解析记录

- 在地址库文件,设置主、从NS记录,并提供相应的A记录

[root@svr7 ~]# vim /var/named/lol.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
            0 ; serial
            1D ; refresh
            1H ; retry
            1W ; expire
            3H ) ; minimum
lol.com. NS svr7
lol.com. NS pc207    //增加从DNS服务器的NS声明
svr7    A       192.168.4.7
pc207   A       192.168.4.207
www     A       4.4.4.4
vip     A       5.5.5.5
[root@svr7 ~]# systemctl restart named

 步骤3:测试主DNS服务器

[root@svr7 ~]# nslookup pc207.lol.com
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: pc207.lol.com
Address: 192.168.4.207

— 建立从DNS服务器:

步骤1:安装软件包

[root@pc207 ~]# yum -y install bind bind-chroot.x86_64
[root@pc207 ~]# ls /var/named/
chroot  dynamic   named.empty      named.loopback
data    named.ca  named.localhost  slaves
[root@pc207 ~]# ls -ld /var/named/slaves/
drwxrwx---. 2 named named 6 4月  13 2018 /var/named/slaves/

补充:由于地址库文件默认存放在/var/named/目录下,而该目录对DNS的生成用户named只有r权限,需要wx权限,才能将主DNS下载的地址库文件保存;slave目录为主从配置准备,默认770权限

步骤2:从DNS的区域定义

[root@pc207 ~]# vim /etc/named.conf
options {
    directory "/var/named";
};
zone "lol.com" IN {
    type slave;       //区域类型为从服务器
    file "/var/named/slaves/lol.com.slave";    //指定地址库文件(确保named用户有读写执行权限)
    masters { 192.168.4.7; };     //指定主DNS服务器
    masterfile-format text;        //地址库文件明文存储(不加此项,地址库文件为加密)
};
  • 补充:从服务器根据指定的192.168.4.7即主服务器,请求并下载lol.com的地址库文件,命名为file指定的地址库文件名(不建议于主服务器地址库同名),因为是从服务器,建议命名为.salve结尾的文件;
  • 补充:因无rwx权限,无法存放在/var/named目录,需指定存放目录/var/named/slaves/;
  • 补充:可写相对路径salve/lol.com.salve

注意:指定主服务器的字段是:masters,type类型是master

步骤3:重启服务

[root@pc207 ~]# ls /var/named/slaves/     //显示为空
[root@pc207 ~]# systemctl restart named   //重启从DNS服务
[root@pc207 ~]# ls /var/named/slaves/     //找到主DNS把相应的地址库文件进行下载
lol.com.slave

步骤4:验证服务

[root@pc207 ~]# vim  /etc/resolv.conf    //指定DNS解析IP
nameserver 192.168.4.7
nameserver 192.168.4.207

[root@pc207 ~]# nslookup pc207.lol.com
Server: 192.168.4.7
Address: 192.168.4.7#53
 
Name: pc207.lol.com
Address: 192.168.4.207

常见问题:若不在/etc/resolv.conf增加DNS解析IP,则由本机DNS进行解析

[root@pc207 ~]# nslookup pc207.lol.com
Server: 127.0.0.1
Address: 127.0.0.1#53
 
Name: pc207.lol.com
Address: 192.168.4.207

补充:/etc/resolv.conf  最多写3条

八、DNS主从数据同步

主机1:(主DNS服务器)

[root@svr7 /]# vim /var/named/lol.com.zone
...
     2021031701     ; serial   //数据的版本号,由10个数字组成
           1D      ; refresh   //每隔1天主从进行数据交互
           1H      ; retry     //失效之后的时间间隔每一个1小时
           1W      ; expire    //真正的失效时间,1周
           3H )    ; minimum   //失效记录的记忆时间3小时
lol.com.    NS   svr7
lol.com.    NS   pc207
svr7          A     192.168.4.7
pc207       A     192.168.4.207         
www         A     11.12.13.14      //修改记录
[root@svr7 /]# systemctl restart named

主机2:(从DNS服务器)

[root@pc207 /]# nslookup www.lol.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
 
Name: www.lol.com
Address: 11.12.13.14

补充:数据的版本号 数字越大越新

注意:数据版本更新,都要在主DNS服务器操作,否则导致服务失败

扩展:DNS记录类型介绍

1)NS记录

NS记录 NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。 您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,NS记录是指定由哪个DNS服务器解析你的域名

2)A记录

A记录 A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置域名的子域名。通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。 简单的说,A记录是指定域名对应的IP地址

3)MX记录

MX记录 MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上

4)CHAME记录(—>DNS的解析记录的别名)

CNAME记录 CNAME(Canonical Name )别名记录,允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为 “host.mydomain.com”(A记录),它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL, 这两个别名的全称就“www.mydomain.com”和“mail.mydomain.com”,实际上他们都指向 “host.mydomain.com”

扩展:/etc/hosts 和 /etc/resolv.conf

1)/etc/hosts文件(负责ip地址与域名快速解析的文件)

用途:将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址;(不同的linux版本,文件名也可能不同,比如Debian的对应文件是/etc/hostname)

hosts文件包含了ip地址和主机名之间的映射,包括主机名的别名,在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用DNS服务程序来解决;通常可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问

2)优先级:dns缓存 > hosts > dns服务 

3)/etc/resolv.conf文件(可以提供DNS服务器域名和IP地址,帮助解析)

用途:/etc/resolv.conf是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。

/etc/resolv.conf文件的关键字

  • - nameserver    //定义DNS服务器的IP地址
  • - domain       //定义本地域名
  • - search        //定义域名的搜索列表
  • - sortlist        //对返回的域名进行排序

小结:

本篇章节为 【第一阶段】SERVICES-DAY2 的学习笔记,可以初步了解到 DNS服务基础及搭建、特殊解析(针对地址库文件:DNS轮询 DNS泛域名解析 DNS别名)、缓存DNS(全局转发forwarders)、DNS递归迭代(子域授权)、DNS主从架构搭建、DNS主从数据同步。除此之外推荐参考相关学习网址:

  • 什么是 DNS_DNS如何工作_权威性DNS服务器 | Cloudflare 中国官网 | Cloudflare

Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1944540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Element UI内置的Select下拉和Tree树形组件,组合封装的树状下拉选择器

目录 简述 效果 功能描述 代码实现 总结 简述 基于Element UI内置的Select下拉和Tree树形组件,组合封装的树状下拉选择器。 效果 先看效果: 下拉状态: 选择后状态: 选择的数据: 功能描述 1、加载树结构&…

Python 使用TCP\UDP协议创建一个聊天室

server端代码: #encodingutf-8 # 服务端代码 import socketdef server():server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)host socket.gethostname()port 12345server_socket.bind((host, port))server_socket.listen(5)print(等待客户端连接…

如何通过一条SQL变更多个分库分表?

数据库发展到今天,分库分表已经不是什么新鲜话题了,传统的单节点数据库架构在数据量和访问频次达到一定规模时,会出现性能瓶颈和扩展性问题,而分库分表技术通过将数据分散到多个数据库实例中来分担负载,从而提升系统的…

粮信甄选·非凡凸现|携手中粮期货、国信证券共同见证数智交易前沿力量

近日,中粮期货、国信证券联合非凸科技在深圳举办了“粮信甄选,非凡凸现”主题机构洽谈会,与行业专家、私募管理人共同探讨如何推进产业与金融的深度融合,以及实现科技创新与生态合作的新模式。 近年来,国信证券始终聚…

开源物联网网关ThingsBoard IoT Gateway

前几天测试了Neuron,这是一个令人印象深刻的平台,不过它不能算是完全免费的平台,因为它还是有商业许可要求的,挺贵的,大几万的,而且它有走向闭源的趋势。所以也在寻找它的替代方案。 今天看到一个ThingsBo…

最新全新UI异次元荔枝V4.4自动发卡系统源码

简介: 最新全新UI异次元荔枝V4.4自动发卡系统源码 更新日志: 1增加主站货源系统 2支持分站自定义支付接口 3目前插件大部分免费 4UI页面全面更新 5分站可支持对接其他分站产品 6分站客服可自定义 7支持限定优惠 图片: 会员中心截图&…

王春城 | TPM是如何减少设备停机时间的?

在快节奏的生产环境中,设备停机时间无疑是每个企业都头疼的问题。它不仅影响生产效率,还可能造成巨大的经济损失。那么,有没有一种神奇的方法能够一键减少设备停机时间呢?答案就是--TPM(全面生产维护)&…

【区块链+绿色低碳】双碳数字化管控平台 | FISCO BCOS应用案例

地方政府、园区及企业实现“双碳”目标过程中存在一些挑战与难点: 1. 管理者难以掌握完整、准确、全面的碳排放数据进行科学决策:由于碳排放核算需要对数据的来源、核算方法 的规范性和采集方法的科学性有严格要求,当前面临碳排放数据数据采…

什么是PCB盲孔、埋孔和电镀孔?

PCB有不同类型的孔,根据孔贯穿PCB内外层的层次,孔可分为通孔、埋孔和盲孔。 如您所知, PCB 由堆叠在一起的铜箔层组成.这些“过孔”连接PCB上的不同电路层。它类似于具有相互连接的隧道的地下系统。如果你玩过电子游戏“超级马里奥”&#xf…

基于web的物流配送管理系统/基于客户时间窗变化的物流配送管理系统/快递配送管理系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

springboot集成redis之字典缓存

什么是redis的字典缓存? Redis的缓存是Redis内部用于存储键值对数据结构的一种基础数据结构。在Redis中,所有的键值对都是通过字典这种数据结构来存储的。字典在Redis中扮演着核心角色,因为它不仅用于数据库中的键值对存储,还用于…

React 学习——条件渲染、遍历循环、事件绑定

React特点: 声明式的设计高效,采用虚拟DOM来实现DOM的渲染,最大限度减少DOM的操作灵活,跟其他库灵活搭配使用JSX,俗称JS里面写HTML,JavaScript语法的扩展组件化,模块化,代码容易复用…

SQL labs-SQL注入(二)

环境搭建参考 SQL注入(一) 一,SQL labs-less2。 http://192.168.61.206:8001/Less-2/?id-1 union select 1,2,group_concat(username , password) from users-- 与第一关没什么太大的不同,唯一区别就是闭合方式为数字型。 二…

苹果笔记本电脑如何优化系统 苹果电脑系统优化软件哪个好 cleanmymac x怎么用

随着时间的推移,你可能会发现你的MacBook运行速度变慢,甚至在执行一些基本任务时也会感觉到卡顿。这不仅影响了工作效率,也大大降低了使用体验。但别担心,优化你的Mac系统比做早餐还简单。本文将用一种轻松的风格向你介绍7种简单易…

AI绘画入门实践|Midjourney:使用 --seed 制作情侣头像与漫画

在 Midjourney 中,seed 是指一个种子,用于生成图像时的起点或基础。 使用格式:--seed 获取的seed值 获取 seed 值 使用 seed 生成图像 a cute boys avatar, background with blue sky and white cloud, Ghibli Studio style, Hayao Miyazaki…

2024最新手机软件APP下载排行网站源码 软件下载站PHP源码

源码介绍 这是一款简洁蓝色的手机软件下载应用排行、平台和最新发布网站源码,主要包括主页、APP列表页、APP详情介绍页、新闻资讯列表、新闻详情页、关于我们等模块页面。 软件下载站PHP网站源码,简单的部署上线,访问首页安装程序&#xff…

Docker Desktop安装

0 Preface/Foreward 1 安装 1.1 运行docker安装包 安装完Docker Desktop后,运行Docker Desktop,出现WSL 2安装不完整情况,具体情况如下: 解决方法:旧版 WSL 的手动安装步骤 | Microsoft Learn 也可以直接下载新的安…

rce漏洞-ctfshow(50-70)

Web51 if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\|\%|\x09|\x26/i", $c)){ system($c." >/dev/null 2>&1"); } Nl,绕过tac,cat,绕…

YOLOv8高效涨点之改进主干RepLKNet

这篇文章讨论了在现代卷积神经网络(CNN)设计中使用大卷积核的优势,并提出了一种新的CNN架构RepLKNet。以下是对文章内容的分条说明: 大卷积核的优势:文章提出使用大卷积核(例如3131)而不是传统的小卷积核(如33)可以提供更强大的特征提取能力。 灵感来源:这种设计思路…

AI智能名片微信小程序在品牌战略与私域流量构建中的应用与深度探索

摘要:在数字经济时代,私域流量的价值日益凸显,成为企业和个人实现可持续增长的重要驱动力。品牌,作为私域流量的核心,其稳定性和影响力直接关系到流量的质量与转化效率。AI智能名片微信小程序,作为数字营销…