DNS域名解析服务
DNS功能:将域名转化为ip地址
目的:便于记忆
实现:
方法一:本地host文件(分散式)(添加方式慢,)
方法二:安装软件服务
DNS系统的分布式数据结构
管理方式发展过程:
分散式管理:每个机器都有host文件,不方便管理 集中式管理:集中在一台服务器上,谁俩管理 分布式管理:dns服务器太多千千万万
DNS系统的分布式数据结构:
www——主机名
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
1、DNS原理与查询方式
涉及两种解析方式:递归、迭代
递归查询:但看用户与缓存服务器;用户发出请求,缓存服务器返回结果。
特点:笼统描述发问与获取,忽视细节,好比计划方向。
迭代查询:缓存服务器自己没有结果信息,它先向根服务器询问并获取结果,通过结果指引询问下一级服务器,一遍遍的询问直到找到结果。这一段询问过程视为迭代。
特点:方式固定,描述过程,好比具体手段。
2、原理(解析域名流程)
1、问自己:当客户端需要知道域名时(解析域名),先去本地找host文件,文件里有对应地址则直接访问,没有去找DNS缓存服务器;
2、问缓存服务器:DNS缓存服务器中,有就直接,没有去问根服务器;
-
根域服务器管理的主机域名类型——只管“主机名.”(主机名+根)他不会直接告诉你答案,会让你去找理“.com”的域名服务器;(因为根域服务器不可能存放所有域名地址对应关系,但也不能没有不然就找不到了)
-
缓存服务器根据线索找到".com"的域名服务器,它只能解析“www.com”、"mail.com",这样的域名,会让你找".baidu"的域名服务器;
-
缓存服务器根据线索找到.baidu服务,倘若正好找到,就直接反馈结果,这个反馈结果的域名服务器可称权威服务器
3、缓存服务器获取结果返回给客户端。
3、DNS软件bind
软件功能,自己来当“缓存服务器”,自己解析域名与IP地址对应关系
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
-
bind:服务器
-
bind-libs:相关库
-
bind-utils: 客户端
-
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
#配置三处 主配置文件:/etc/named.conf 域名文件:/etc/named.rfc1912.zones 保存DNS解析记录的数据文件位于(注意权限):/var/named/*.zone(自定义,在域名配置文件定义的) 软件名:bind 程序名:named /etc/rndc.conf#可利用此文件重加载“rndc reload”(不关机再启动,刷新)
3.1 正向解析
简述资源记录
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
-
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
-
A(internet Address):作用,域名解析成IP地址
-
AAAA(FQDN): --> IPV6
-
PTR(PoinTeR):反向解析,ip地址解析成域名
-
NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器
-
CNAME : Canonical Name,别名记录
-
MX(Mail eXchanger)邮件交换器
-
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
SOA记录
name: 当前区域的名字,例如"kgc.com."
value: 有多部分组成
注意:
-
当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
-
当前区域管理员的邮箱地址;但地址中不能使用“@”符号,一般用“.”替换
例如:admin.kgc.com
-
主从服务区域传输相关定义以及否定的答案的统一的TTL
范例:
name [TTL] IN rr_type value 域名 缓存 Internet协议 资源类型 值 1. TTL可从全局继承缓存时间 2. 使用 "@" 符号可用于引用当前区域的域名 3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应 4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机 $TTL 1D(统一的ttl定义1天,不写D 是秒) @ IN SOA master.yml.com. admin.yml.com. ( 当前服务器的名称 邮箱地址 0 ; serial #是否有更新 版本号 更新文件 手动把 0 加1 1D ; refresh #刷新时间 拉取时间 1H ; retry #失败后一个小时 后再试一次 1W ; expire #过期时间,老是拉取不了,1周以后过期 3H ) ; minimum #老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到
NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
-
相邻的两个资源记录的name相同时,后续的可省略
-
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
-
一个区域可以有多个NS记录
范例
master IN NS yml.com. master IN NS yml.com. NS master
MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
-
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
-
对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
范例:
mail IN MX 10 mx1.yml.org. IN MX 20 mx2.yml.org. mx1 A 192.168.91.10 mx2 A 192.168.91.10
A记录
name: 某主机的域名解析,例如:www.yml.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:
www.yml.com. IN A 1.1.1.1 www.yml.com. IN A 2.2.2.2 www.yml.com. IN A 3.3.3.3 www.yml.com. IN A 4.4.4.4 * IN A 5.5.5.5 #代表泛域名 @ IN A 6.6.6.6 #代表不需要名字View Code
PTR记录
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa. value: FQDN
例子:
3.2.1.in-addr.arpa. IN PTR www.kgc.org. #如1.2.3为网络地址,可简写成: 4 IN PTR www.kgc.com#反向解析
CNAME别名记录
name: 别名的FQDN value: 真正名字的FQDN
例子:
#固定格式 name [TTL] IN rr_type value 缓存时间 internet记录 区域解析库 值 $TTL 1D @ IN SOA master.yml.com. admin.yml.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master.kgc.com. master A 192.168.91.100 www A 192.168.91.103 db A 192.168.91.101 IN MX 10 mail.kgc.com. mail A 192.168.91.10 ftp CNAME www $TTL 1D #有效解析记录的生存周期 @ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名 0 ; serial #更新序列号,可以是10位以内的整数 1D ; refresh #刷新时间,重新下载地址数据的间隔 1H ; retry #重试延时,下载失败后的重试间隔 1W ; expire #失效时间,超过该时间仍无法下载则放弃# 3H) ; minimum #无效解析记录的生存周期, NS benet.com. #记录当前区域的DNS服务器的名称 A 192.168.80.10 #记录主机IP地址 IN MX 10 mail.benet.com. #MX为邮件交换记录,数字越大优先级越低 www IN A 192.168.80.10 #记录正向解析www.benet.com对应的IP mail IN A 192.168.80.11 #MX为邮件交换记录,数字越大优先级低 ftp IN CNAME www #CNAME使用别名,ftp 是www的别名 * IN A 192.168.80.100 #泛域名解析,“*"代表任意主机名View Code
特殊应用
负载均衡
访问同一域名是,分配不同地址,在访问路径上划分开提高速度
www IN A 192.168.177.100 www IN A 192.168.177.101 www IN A 192.168.177.102
泛域名解析
域名不正确的全指向该地址
* IN A 192.168.177.106
语法检查
named-checkconf
[root@31yml named]#named-checkconf -z /etc/named.conf zone yml.com/IN: loaded serial 0 zone yml.com/IN: loaded serial 0
named-checkzone
[root@31yml named]#named-checkzone yml.com yml.com.zone zone yml.com/IN: loaded serial 1 OK
安装、配置三处操作:
第一处
#centos-1里 #1、下载 [root@31yml ~]#yum install bind* -y#安装软件,自带网络解析功能,更改监听地址范围为any,更改分配地址权限为any #2、更改配置文件 #改为重启配置文件,使其生效 #提前 [root@31yml ~]#systemctl stop firewalld.service [root@31yml ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=127.0.0.1 [root@31yml ~]#systemctl restart network [root@31yml ~]#vim /etc/named.conf #可以修改配置,注释,或者删除这两行 listen-on port 53 { any; }; allow-query { any; }; [root@31yml ~]#rndc reload #重新加载DNS服务 server reload successful
更改范围、权限
测试:别的机器可以只通过本地地址访问外网
展示:
解析需要根域服务器地址,早已在软件里配置
第二处
#再添加配置文件 [root@31yml ~]#vim /etc/named.rfc1912.zones #编写域名 zone "yml.com" { type master; file "yml.com.zone"; };
第三处
cp -a named.localhost *.*.zone#复制时保留权限,非常重要 #保留权限复制
[root@31yml ~]#vim yml.com.zone #编辑数据库文件,解析记录对应关系
[root@31yml named]#vim yml.com.zone #打开文件进行配置 #编辑数据库文件,解析记录对应关系
泛域名
3.2 反向解析
[root@31yml named]#vim /etc/named.conf #第一次老地方,改范围、权限
[root@31yml named]#vim /etc/named.rfc1912.zones #先修改区域配置文件
[root@localhost named]#cp -p yml.com.zone lmy.com.zone #复制正向解析文件#注意权限 [root@31yml named]#vim lmy.com.zone
展示
3.3 主从复制
###从服务器的配置 [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 #从服务器安装bind软件 [root@localhost ~]# yum install bind bind-utils.x86_64 -y #两段改成any [root@localhost etc]# vim /etc/named.conf listen-on port 53 { any; }; allow-query { any; };
[root@localhost etc]# vim /etc/named.rfc1912.zones #添加从服务器的配置文件 zone "yml.com" IN { type slave; #类型从 file "slaves/yml.com.zone"; #文件地址在/var/named/slaves/ 下 masters { 192.168.91.100; }; #申明主服务器的地址 }; [root@localhost etc]# ls /var/named/slaves kgc.com.zone [root@localhost etc]# systemctl start named #主服务器配置好后再启动
#主服务器配置 [root@localhost etc]# vim /etc/named.rfc1912.zones zone "yml.com" IN { type master; file "yml.com.zone"; allow-transfer { 192.168.91.103; }; #添加从服务器的地址 }; [root@localhost etc]#rndc reload
验证:
#在从服务器上 [root@localhost etc]# echo "nameserver 192.168.177.103" > /etc/resolv.conf #将DNS指向自己 [root@localhost etc]#host www.yml.com #或者 [root@localhost ~]# dig www.yml.com @192.16
8.177.100 解析命令 域名 @你的dns服务器地址
数据库文件不同步:同步需要修改 版本,添加从服务器
3.4 分离解析
练习环境:
将linux服务器配置两块网卡,
ens33:192.168.177.100
ens37:12.0.0.1
win7做为外网: 12.0.0.100/24
win10 作为内网:192.168.177.123/24
[root@31yml ~]# vim /etc/named.conf #修改配置文件 listen-on port 53 { any; }; allow-query { any; }; #等会需要使用的 根配置文件 zone "." IN { type hint; file "named.ca"; };View Code
[root@31yml ~]# vim /etc/named.rfc1912.zones #编写配置文件 view "lan" { match-clients { 192.168.100.0/24; }; #匹配网段 zone "yml.com" IN { type master; file "yml.com.lan"; }; zone "." IN { type hint; file "named.ca"; }; }; view "wan" { match-clients { 12.0.0.0/24; }; zone "yml.com" IN { type master; file "yml.com.wan"; }; zone "." IN { type hint; file "named.ca"; }; };View Code
[root@31yml ~]# vim yml.com.lan $TTL 1D @ IN SOA master.yml.com. admin.yml.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master master A 192.168.100.1 www A 192.168.100.88 sftp A 192.168.100.99 [root@31yml ~]# vim kgc.com.wan $TTL 1D @ IN SOA master.yml.com. admin.yml.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master master A 12.0.0.1 www A 12.0.0.1 sftp A 12.0.0.1View Code
展示:
4、域名解析工具
4.1 nslookup
格式: nslookup 域名 [域名服务器]
1 [root@31yml named]#nslookup www.baidu.com 8.8.8.8 2 Server: 8.8.8.8 3 Address: 8.8.8.8#53 4 5 Non-authoritative answer: 6 www.baidu.com canonical name = www.a.shifen.com. 7 Name: www.a.shifen.com 8 Address: 180.101.50.188 9 Name: www.a.shifen.com 10 Address: 180.101.50.242 11 12 [root@31yml named]#nslookup www.baidu.com 13 Server: 192.168.177.100 14 Address: 192.168.177.100#53 15 16 Non-authoritative answer: 17 www.baidu.com canonical name = www.a.shifen.com. 18 Name: www.a.shifen.com 19 Address: 180.101.50.242 20 Name: www.a.shifen.com 21 Address: 180.101.50.188View Code
4.2 dig
格式:nslookup 域名
[root@31yml named]#dig www.yml.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.14 <<>> www.yml.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14829 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.yml.com. IN A ;; ANSWER SECTION: www.yml.com. 86400 IN A 192.168.177.101 ;; AUTHORITY SECTION: yml.com. 86400 IN NS master.yml.com. ;; ADDITIONAL SECTION: master.yml.com. 86400 IN A 192.168.177.100 ;; Query time: 0 msec ;; SERVER: 192.168.177.100#53(192.168.177.100) ;; WHEN: 日 8月 06 15:14:38 CST 2023 ;; MSG SIZE rcvd: 93View Code
推荐大哥:(https://blog.csdn.net/K346K346/article/details/127648589)
推荐网站:(https://linux265.com/course/linux-command-dig.html)
4.3 host
格式:nslookup 域名
[root@31yml named]#host www.yml.com www.yml.com has address 192.168.177.101
推荐网站:(https://www.linux265.com/course/linux-command-host.html)
CDN(Content Delivery Network)内容分发网络
直观感受上加快了数据传输,它需要大量的服务器,利用“缓存”加快传输,同样成本巨大。
使用原因:存放资源的服务器特别远,利用传输路上搭建的服务器,提高效率
资源:主要是网页一类需要快速响应的数据资源。资源分静态资源、动态资源,静态只长期不用更改的数据;动态指经常在改变的数据。
具体详情可见百度百科(https://baike.baidu.com/item/%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9C/4034265?fr=ge_ala)
番剧推荐:
《亡骸游戏》,历经诸多阴谋的死灵法师化身为灾厄,转生魔法的发动,让他获得了重启人生的计划,这一次不会再退让一步......
——感谢萌娘百科(https://mzh.moegirl.org.cn/亡骸游戏)
标签:www,named,服务,root,域名解析,DNS,服务器,com,yml From: https://www.cnblogs.com/bacolate/p/17609487.html