Linux中的DNS服务
2021/10/12 7:18:18
本文主要是介绍Linux中的DNS服务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 一、DNS简介
- 1.1DNS名词介绍
- 1.2DNS系统的作用
- 1.3DNS服务器类型
- 1.4DNS查询类型及原理
- 1.5 查询方式
- 1.6本地域名解析文件
- 1.7DNS正向解析查询原理过程
- 二、正向解析
- 2.1资源记录
- 2.1.1SOA记录
- 2.1.2NS记录
- 2.1.3 MX记录
- 2.1.3记录
- 2.1.4PTR记录
- 2.1.5CNAME别名记录
- 2.1.6小贴士
- 2.2正向解析服务器配置方法
- 2.3反向解析服务器配置方法
- 2.4主从复制配置示例
一、DNS简介
1.1DNS名词介绍
域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是:把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。
实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)。
1.2DNS系统的作用
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名
- DNS系统的分布式数据结构:
1.3DNS服务器类型
- 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。
- 主域名服务器:管理和维护所负责解析的域内解析库的服务器
- 从域名服务器 从主服务器或从服务器"复制"(区域传输)解析库副本 序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
1.4DNS查询类型及原理
- 主要的一级DNS服务器:负责一级域名的解析
一级域名 | |
---|---|
.com | 工商企业 |
.cn | 中国国家域名 |
.org | 团体组织 |
- 二级DNS服务器:专门负责二级域名的解析
二级域名:
.net.cn
.com.cn
.edu.cn
- 子域名DND服务器:专门负责子域名的解析也称为三级域名
三级域名:
ina.com.cn
.pku.edu.cn
- 主机站点
主机名:
tts9
tts6
www
1.5 查询方式
- 递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,
若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得 到最终的肯定或否定的结
果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手) - 迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
1.6本地域名解析文件
Linux: /etc/hosts windows:c/windows/system32/drivers/etc/hosts
[root@localhost ~]#vim /etc/nsswitch.conf #修改dns的优先级 hosts: files dns myhostname #修改 files和 dns的先后 优先级就不同。如果files在前面,那么file优先级就比较高
[root@localhost ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2.此时DNS服务器生效
[root@localhost ~]# vim /etc/hosts [root@localhost ~]# ping www.baidu.com PING www.wshifen.com (103.235.46.39) 56(84) bytes of data. 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=1 ttl=128 time=207 ms 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=209 ms 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=3 ttl=128 time=208 ms 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=4 ttl=128 time=209 ms 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=5 ttl=128 time=211 ms ^C --- www.wshifen.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4003ms rtt min/avg/max/mdev = 207.936/209.404/211.239/1.264 ms
1.7DNS正向解析查询原理过程
①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
windows系统查询dns缓存命令:ipconfig /displaydns windows
系统清理dns缓存命令:ipconfig /flushdns
二、正向解析
2.1资源记录
2.1.1SOA记录
name: 当前区域的名字,例如"kgc.com."
value: 有多部分组成
注意:
- 当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
- 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换 例如:admin.kgc.com
- 主从服务区域传输相关定义以及否定的答案的统一的TTL
范例:
$TTL 1D @ IN SOA master.kgc.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
2.1.2NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
- 相邻的两个资源记录的name相同时,后续的可省略
- 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
- 一个区域可以有多个NS记录
范例: master IN NS kgc.com. master IN NS kgc.com.
2.1.3 MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
范例:
<span style="background-color:#f8f8f8">范例: mail IN MX 10 mx1.wlw.org. IN MX 20 mx2.wlw.org. mx1 A 192.168.59.10 mx2 A 192.168.59.10</span>
2.1.3记录
name: 某主机的域名解析,例如:www.wlw.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例: www.wlw.com. IN A 1.1.1.1 www.wlw.com. IN A 2.2.2.2 www.wlw.com. IN A 3.3.3.3 www.wlw.com. IN A 4.4.4.4 * IN A 5.5.5.5 #代表泛域名 @ IN A 6.6.6.6 #代表不需要名字
2.1.4PTR记录
name: IP,有特定格式,把IP地址反过来写,192.168.59.100,要写作100.59.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:100.59.168.192.in-addr.arpa. value: FQDN
2.1.5CNAME别名记录
name: 别名的FQDN value: 真正名字的FQDN
ftp.wlw.com. IN CNAME www.wlw.com
2.1.6小贴士
1.TTL可从全局继承
2.使用 “@” 符号可用于引用当前区域的域名
3.同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
4.同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
2.2正向解析服务器配置方法
**1.安装主软件和配置包管理软件** [root@localhost ~]# yum install bind bind-utils -y **2.关闭防火墙** [root@localhost ~]#systemctl stop firewalld.service [root@localhost ~]#setenforce 0 **3.开启服务并查看是否查看成功** [root@localhost ~]#systemctl start named [root@localhost ~]#netstat -ntap |grep named **4.修改网卡的DNS服务地址并重启网卡** [root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=127.0.0.1 [root@localhost ~]#systemctl restart network [root@localhost ~]# cat /etc/resolv.conf **5.ping测试,看是否可以解析出百度的ip** [root@localhost ~]# ping www.baidu.com **6.修改配置文件/etc/named.conf** [root@localhost ~]#rpm -qc bind 查询安装服务的配置文件 [root@localhost ~]#vim /etc/named.conf 进入修改配置文件 <font color='cornflowerblue'>#可以修改配置,注释,或者删除这两行</font> listen-on port 53 { any; }; allow-query { any; }; **7.重新加载DNS服务** [root@localhost ~]#rndc reload(也可以实验systemctl restart named) server reload successful **8.ping测试,看是否可以解析出百度的ip** [root@localhost ~]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 180.101.49.11 www.a.shifen.com has address 180.101.49.12 **9.编写域名,在配置文件/etc/named.rfc1912.zones下 ** [root@localhost named]#vim /etc/named.rfc1912.zones zone "wlw.com" { type master; file "wlw.com.zone"; }; **10.切换至named文件夹,拷贝named.localhost变成根域名文件** [root@localhost named]# cd /var/named/ [root@localhost named]# cp -p named.localhost ./wlw.come.zone **11.修改成根域名文件** [root@localhost named]# vim wlw.come.zone $TTL 1D @ IN SOA master.wlw.com. admin.wlw.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master.wlw.com. master IN A 192.168.59.100 www IN A 192.168.91.20 MX 10 mail1.wlw.com. MX 20 mail2.wlw.com. mail1 IN A 192.168.59.28 mail2 IN A 192.168.59.30 ftp IN CNAME www *IN A 192.168.59.10 泛指域名解析: **12.重新加载DNS服务并测试** [root@localhost named]# rndc reload 重新加载DNS服务 测试: [root@localhost named]# host mail1.wlw.com 测试
2.3反向解析服务器配置方法
#先修改区域配置文件 [root@localhost named]#vim /etc/named.rfc1912.zones zone "59.168.192.in-addr.arpa" IN { type master; file "yxp.com.zone"; allow-update { none; }; }; [root@localhost named]#cp -p kgc.com.zone ky15.com.zone #复制正向解析文件 [root@localhost named]# cp -p wlw.com.zone yxp.com.zone #修改配置文件 [root@localhost named]# vim yxp.com.zone $TTL 1D @ IN SOA master.yxp.com admin.yxp.com ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master.yxp.com. master IN A 192.168.59.100 100 IN PTR www.yxp.com. 88 IN PTR ftp.yxp.com. 测试: [root@localhost named]# host 192.168.59.100
2.4主从复制配置示例
#1.首先配置2.2的正向解析,这是作为主服务器 ###配置从服务器 #2.配置从服务器,首先准备一台服务器,关闭防火墙并安装软件 [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# yum install bind bind-utils.x86_64 -y #3./etc/named.conf 文件里两段注释掉 [root@localhost etc]# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; #4./etc/named.rfc1912.zones添加从服务器配置文件 vim /etc/named.rfc1912.zones zone "wlw.com" IN { type slave; #类型从 file "slaves/wlw.com.zone"; #文件地址在/var/named/slaves/ 下 masters { 192.168.59.102; }; #申明主服务器的地址 }; 5.验证:在从服务器上 [root@localhost named]# dig www.wlw.com @192.168.59.117 192.168.59.117是从服务器的地址 6.主服务器修改的内容 [root@localhost named]# vim /var/named/wlw.com.zone www IN A 192.168.59.11 此时从服务器的刷新还是原来的 192.168.59.10 7.在主服务器中配置从服务器立刻可以拉取到修改后的地址 [root@localhost named]# vim /var/named/wlw.com.zone 1 ; serial slave IN A 192.168.59.117
1.按照2.2的步骤将正向解析做好。wlw.come.zone中配置如下:
2.准备一台从服务器。关闭防火墙并安装软件,安装软件
3./etc/named.conf 文件里两段注释掉
4./etc/named.rfc1912.zones添加从服务器配置文件
5.验证:在从服务器上
在主服务器上cat wlw.come.zone ,此时都解析出来了
6.
这篇关于Linux中的DNS服务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法