重要内容:
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)
域名署理/注册/购买服务商
- 新网,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服务的重要功能包罗:
- 域名剖析:BIND将人类可读的域名(如www.example.com)转换为盘算机可明白的IP地址(如192.0.2.1),这是互联网通讯的基础。
- 权势巨子名称服务器:BIND可以设置为权势巨子名称服务器,负责特定域名的剖析。权势巨子名称服务器存储并提供特定域名的DNS记录。
- 递归名称服务器:BIND也可以设置为递归名称服务器,为客户端提供完整的域名剖析服务。递归服务器会代表客户端查询其他DNS服务器,直到找到所需的IP地址。
- 缓存名称服务器: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设置文件
- 主设置文件:/etc/named.conf //设置负责剖析的域名(需要提前备份)
- 地址库文件:/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服务器根本思路
- 安装软件包bind、bind-chroot
- 备份并修改主设置文件/etc/named.conf
- 复制模板并建立地址库文件/var/name/.. ..
- 检测主设置文件、地址库文件语法是否错误named-checkconf、namd-checkzone
- 重启服务named
- 检测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的域名,需要举行子域授权。
- [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
复制代码
- [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结构特点:
- 在内网中搭建本地的缓存DNS服务器,无需访问外网缓存DNS服务器
- 本地的缓存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:毕竟两个人的智慧大于一个人的智慧,如果你不明白本章节的内容或需要相关条记、视频,可私信小安,请不要害羞和回避,可以向他人讨教,花点时间直到你真正的明白
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |