DNS 域名解析

目录

DNS服务器类型:

本机解析配置文件:

修改DNS优先级

查找过程:

正向解析

BIND软件

正向解析实验:

SOA 记录

语法:

NS 记录

A 记录

反向解析

主从复制

分离解析

CDN(Content Delivery Network)内容分发网络

作用:

分类:


应用层协议

设备间进行通信,依赖并利用于IP地址实现的,但数字IP不利于记忆

DNS可将文字域名(例:www.taobao.com)和IP地址(例:221.229.203.156)相互转换

  • 正向解析:域名转换成IP地址

  • 反向解析:IP地址转换成域名

DNS服务器类型:
  • 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率, 但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他 DNS 服务器作为解析来源。

  • 主域名服务器:管理和维护所负责解析的域内解析库的服务器

  • 从域名服务器:从主服务器或从服务器"复制"(区域传输)解析库副本,与主域名服务器同步

序列号:解析库版本号,主服务器解析库变化时,其序列递增

刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

通知机制:主服务器解析库发生变化时,会主动通知从服务器

本机解析配置文件:

Linux:/etc/hosts

windows:c/windows/system32/drivers/etc/hosts

修改DNS优先级
[root@localhost test2]#vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
#格式:IP地址 域名

[root@localhost test2]#vim /etc/nsswitch.conf
#hosts:     db files nisplus nis dns
hosts:      files dns myhostname
#修改files和dns的先后,优先级就会改变
例:
39 hosts:      files dns myhostname
#不建议修改

域名等级:

  • . :根域

  • com./net./edu.等:顶级域或一级域

  • magedu/google等:二级域

  • www./study.等:三级域

  • 最多可达127级域名

查找过程:

host文件(没有)——>DNS缓存服务器(回复有或没有)

缓存服务器中没有:

询问根域服务器(迭代查询)——>回复缓存服务器,指向顶级域服务器(迭代查询)——>回复缓存服务器,指向二级域服务器(迭代查询)——>回复缓存服务器,指向三级域服务器(迭代查询)——>三级服务器直接发送给缓存服务器(递归查询)——>DNS服务器将结果发送给客服端

迭代查询:根服务器中没有域名信息,但查询到该域名归属于顶级域服务器管理,会向DNS缓存服务器指明顶级域服务器,缓存服务器将结果发送给客户端,DNS缓存服务器需再向顶级域服务器发送查询信息

递归查询:三级域服务器包含查找的域名,可以直接将域名发送给DNS缓存服务器,DNS服务器将结果缓存并将结果发送给客服端

服务器解析内容:

  • 根域服务器:主机名+根域名

  • 顶级域服务器:主机名+一级域名+根域名

  • 二级域服务器:主机名+二级域名+一级域名+根域名

  • 三级域服务器:主机名+三级域名+二级域名+一级域名+根域名

正向解析

  • 将域名转换成IP地址

BIND软件
  • 应用最广泛的DNS服务程序

  • 官方网址:ISC - ISC

  • 安装命令:yum install bind bind-utils -y

软件名:bind

服务名:named

执行程序/usr/sbin/named

默认监听端口:53

主配置文件/etc/named.conf

区域配置文件/etc/named.rfc1912.zones

数据库文件/var/named/kcg.com.zone需注意该文件的权限,属主及属组必须是named

安装后会自动生成named文件,家目录位于/var/named

[root@loaclhost test1]#yum install bind bind-utils -y
[root@loaclhost test1]#rpm -ql bind
/etc/logrotate.d/named
/etc/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/rwtab.d/named
/etc/sysconfig/named
/run/named
......
/var/log/named.log
/var/named
/var/named/data
/var/named/dynamic
/var/named/named.ca
#根服务器位置
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
/var/named/slaves

[root@loaclhost test1]#vim /etc/syscongif/network-scripts/ifcfg-ens33
DNS1=192.168.190.129
#DNS服务器需指向自己建立的服务器,将DNS修改为本机IP

[root@loaclhost test1]#systemctl restart network
[root@loaclhost test1]#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.190.129

[root@loaclhost test1]#vim /etc/named.conf
//		listen-on port 53 { 192.168.190.129; };
#将listen on 后IP改为本机ip或any
#还可以将此行变成注释,在此行前加//
//		allow-query		{ any; };
#将{}内改为any,或将此行变为注释,加//

[root@loaclhost test1]#systemctl stop firewalld
[root@loaclhost test1]#setenfoce 0
#防火墙及安全机制必须关闭


建立域名
[root@loaclhost test1]#vim /etc/named.rfc1912.zones
zone "xiao.com" IN {
#自定义域名
		type master;
		#指明主服务器为本机
		file "xiao.com.zone";
		#指明配置文件名
};
#可以复制zone下五行配置内容,将“ ”内修改为自己需要的域名
#file后“ .zone”域名必须与上面一致,表示数据库文件
#IN表示internet服务

zone "." IN {
#.表示根
		type hint;
		file "named.ca";
		#指明数据库文件,位于/var/named下
};

[root@localhost test1]# cd /var/named
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@loaclhost named]#cp -a named.localhost wang.com.zone
#-a保留权限复制

区域解析库配置
[root@loaclhost named]#vim wang.com.zone
#编辑数据库文件,解析记录对应关系
$TTL 1D
@		IN SOA  master.xiao.com. admin.xiao.com. (

										0			; serial
										1D			; refersh
										1H			; retry
										1W			; expire
										3H )		;  minimum
		NS		master						
master	A		192.168.190.129
#主机必须是本机的IP,A表示正向解析
www		A		192.168.190.10
ftp		A		192.168.190.100
#别名地址可自定义

[root@loaclhost named]#chown named.named wang.com.zone
#必须将权限修改为named
[root@loaclhost named]#systemctl restart named
#重启named服务
[root@loaclhost named]#host www.wang.com
www.xiao.com has address 192.168.190.10
[root@loaclhost named]#host master.wang.com
master.xiao.com has address 192.168.190.129
[root@loaclhost named]#host ftp.wang.com
ftp.xiao.com has address 192.168.190.100
正向解析实验:
  • 安装bind程序

  • 查看安装文件

  • 配置DNS获取IP

  • 修改主配置文件

  • 修改区域配置文件

  • 配置新的域名

  • 重启named服务,并测试

SOA 记录

语法:
 name     [TTL]    IN           rr_type    value
#域名      缓存     Internet协议  资源类型     值
#name: 当前区域的名字,例如"zhongli.com."
#value: 有多部分组成
#TTL可从全局继承缓存时间
#使用 "@" 符号可用于引用当前区域的域名
#同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
#同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

例:
[root@loaclhost named]#vim zhongli.com.zone
$TTL 1D(统一的ttl定义1天,不写D 是秒)
@		IN SOA  master.zhongli.com. admin.zhongli.com. (
                当前服务器的名称       邮箱地址
                                            0       ; serial   
                                            #是否有更新  版本号 更新文件 手动把 0 加1
                                        	1D      ; refresh  
                                        	#刷新时间 拉取时间
                                        	1H      ; retry    
                                        	#失败后一个小时 后再试一次
                                        	1W      ; expire   
                                        	#过期时间,老是拉取不了,1周以后过期
                                        	3H )    ; minimum  
                                        	#老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到

注意

1、当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字

2、当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用 . 替换

例如:admin.kgc.com

3、主从服务区域传输相关定义以及否定的答案的统一的TTL

NS 记录

例:
master IN NS kgc.com.

master IN NS kgc.com.

		NS  master
#name: 当前区域的名字
#value: 当前区域的某DNS服务器的名字,例如: ns.zhongli.org.

注意:

1、相邻的两个资源记录的name相同时,后续的可省略

2、对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

3、一个区域可以有多个NS记录

A 记录

例:
www.zhongli.com. IN   A 1.1.1.1
www.zhongli.com. IN   A 2.2.2.2
www.zhongli.com. IN   A 3.3.3.3
www.zhongli.com. IN   A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@   IN   A 6.6.6.6
#代表不需要名字

#name: 某主机的域名解析,例如:www.kgc.com
#value:主机名对应主机的IP地址

注意:避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址

反向解析

  • 将IP地址转换成域名

PDR记录

[root@loaclhost named]#vim /etc/named.rfc1912.zone
zone "190.168.192.in-addr.arpa" IN {
#将域名修改为IP地址,格式是反过来的
		type master;
		#指明本机为域名
		file "zhongli.com.zone";
		#指明数据文件名
		allow-update { none; };
}

[root@loaclhost named]#cp -a xiao.com.zone zhongli.com.zone
[root@loaclhost named]#vim zhongli.com.zone
$TTL 1D
@		IN SOA  master.zhongli.com. admin.zhongli.com. (

										0			; serial
										1D			; refersh
										1H			; retry
										1W			; expire
										3H )		;  minimum
		NS		master.zhongli.com.					
master	A		192.168.190.129
#主机必须是本机的IP
100 IN PTR		www.zhongli.com.
#IN PRT表示反向解析
88	IN PTR		ftp.zhongli.com

主从复制

实验:

#主服务器IP地址:192.168.190.129
#从服务器IP地址:192.168.190.130

#主服务器配置
[root@loaclhost test1]#systemctl stop fireword
[root@loaclhost test1]#setenfoce 0
[root@loaclhost test1]#yum install bind bind-utils -y
[root@loaclhost test1]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.190.129

[root@loaclhost test1]#systemctl restart network
[root@loaclhost test1]#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.190.129

[root@loaclhost test1]#vim /etc/named.conf
//		listen-on port 53 { 192.168.190.129; };
#将listen on 后IP改为本机ip或any
#还可以将此行变成注释,在此行前加//
//		allow-query		{ any; };
#将{}内改为any,或将此行变为注释,加//
[root@localhost test1]# vim /etc/named.rfc1912.zones
zone "zhongli.com" IN {
        type master;
        file "zhongli.com.zone";
};

[root@localhost test1]#rndc reload
#刷新配置文件
[root@localhost test1]# cd /var/named
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@loaclhost named]#cp -a named.localhost zhongli.com.zone
[root@loaclhost named]#vim zhongli.com.zone
#将更新次数改为1,并在配置文件中添加从服务器的IP
$TTL 1D
@		IN SOA  master.zhongli.com. admin.zhongli.com. (

										1			; serial
										1D			; refersh
										1H			; retry
										1W			; expire
										3H )		;  minimum
		NS		master
		NS		slave
master	A		192.168.190.129
slave	A		192.168.190.130
www		A		192.168.190.129
ftp		A		192.168.190.129

[root@localhost named]#dig -t axfr zhongli.com
#查看配置信息

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.15 <<>> -t axfr zhongli.com
;; global options: +cmd
zhongli.com.		86400	IN	SOA	master.zhongli.com. admin.zhongli.com. 1 86400 3600 604800 10800
zhongli.com.		86400	IN	NS	master.zhongli.com.
zhongli.com.		86400	IN	NS	slave.zhongli.com.
ftp.zhongli.com.	86400	IN	A	192.168.190.100
master.zhongli.com.	86400	IN	A	192.168.190.129
slave.zhongli.com.	86400	IN	A	192.168.190.130
www.zhongli.com.	86400	IN	A	192.168.190.101
zhongli.com.		86400	IN	SOA	master.zhongli.com. admin.zhongli.com. 1 86400 3600 604800 10800
;; Query time: 0 msec
;; SERVER: 192.168.190.129#53(192.168.190.129)
;; WHEN: 一 11月 13 23:46:06 CST 2023
;; XFR size: 8 records (messages 1, bytes 231)

[root@localhost named]#systemctl start named
[root@loaclhost named]#chown named.named wang.com.zone
#必须将权限修改为named
[root@loaclhost named]#host www.zhongli.com
www.zhongli.com has address 192.168.190.10


#从服务器配置
[root@loaclhost test2]#systemctl stop firewalld
[root@loaclhost test2]#setenfoce 0
[root@loaclhost test2]#yum install bind bind-utils -y
[root@loaclhost test2]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.190.129
DNS1=192.168.190.130
#DNS填写主从两个IP

[root@loaclhost test2]#systemctl restart network
[root@loaclhost test2]#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.190.129
nameserver 192.168.190.130

[root@loaclhost test2]#vim /etc/named.conf
//		listen-on port 53 { 192.168.190.129; };
#将listen on 后IP改为本机ip或any
#还可以将此行变成注释,在此行前加//
//		allow-query		{ any; };
#将{}内改为any,或将此行变为注释,加//

[root@loaclhost test2]#vim /etc/named.rfc1912.zones
zone "zhongli.com" IN {
#自定义域名
		type slave;
		#指明类型为从
		file "slaves/zhongli.com.zone";
		#指明配置文件名在/var/named/slaves/下
		masters { 192.168.190.129 };
		#指明主服务器地址
};

[root@loaclhost test2]#systemctl start named
[root@loaclhost test2]#ls /var/named/slaves
zhongli.com.zone

[root@loaclhost test2]#host www.zhongli.com
www.zhongli.com has address 192.168.190.10

主从复制及同步实验:

  • 主服务器IP地址:192.168.190.129

    从服务器IP地址:192.168.190.130

  • 在主服务器上配置正向解析

  • 配置从服务器

分离解析

实验:

需同时开启Linux和windows
Linux需配置两块网卡:
ens33:192.168.190.129
ens35:12.0.0.10

需要两台Windows做内外网:
内网:192.168.190.100
外网:12.0.0.100

[root@loaclhost network-scripts]#cp -a ifcfg-ens33 ifcfg-ens35
[root@loaclhost network-scripts]#vim ifcfg-ens33
#删除DNS

[root@loaclhost network-scripts]#vim ifcfg-ens35
#删除UUID及DNS
IPADDR=12.0.0.10
#添加IP地址
GATEWAY=12.0.0.2
#修改网关

[root@loaclhost network-scripts]#systemctl restart network
#重启网络服务,重新加载配置文件

[root@loaclhost test1]#yum install bind* -y
[root@loaclhost test1]#systemctl start named
[root@loaclhost test1]# vim /etc/named.conf 
#修改配置文件
//		listen-on port 53 { any; };
//		allow-query     { any; };
#将以上两行变为注释,或将{}内改为any,等会需要使用的根配置文件

zone "." IN {
        type hint;
        file "named.ca";
};
#删除以上四行

[root@loaclhost test1]# vim /etc/named.rfc1912.zones
#编写配置文件
#100dd删除\\下所有行
view "lan" {
        match-clients { 192.168.190.0/24; };
		#匹配网段
        zone "xiao.com" IN {
          type master;
          file "xiao.com.lan";
        };

        zone "." IN {
          type hint;
          file "named.ca";
        };

};

view "wan" {
        match-clients { 12.0.0.0/24; };
        zone "xiao.com" IN {
          type master;
          file "xiao.com.wan";
        };

        zone "." IN {
          type hint;
          file "named.ca";
        };

};

[root@loaclhost test1]#cd /etc/named
[root@loaclhost mamed]#ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@loaclhost named]#cp -a named.localhost xiao.com.lan 
[root@loaclhost named]# vim xiao.com.lan 
$TTL 1D
@       IN SOA  master.xiao.com. admin.xiao.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.190.129
www     A       192.168.100.10
sftp    A       192.168.100.20

[root@loaclhost named]#cp -a named.localhost xiao.com.wan
[root@loaclhost namd]#vim xiao.com.wan 
$TTL 1D
@       IN SOA  master.xiao.com. admin.xiao.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       12.0.0.10
www     A       12.0.0.10
sftp    A       12.0.0.10
~

[root@loaclhost namd]#systemctl restart named

在windows上配置DNS为本机IP
一台设置内网IP:192.168.190.100,DNS为192.168.190.129
#配置完成ping 192.168.190.129,可以ping通

一台设置外网IP:12.0.0.100,DNS为12.0.0.10
#检测nslookup www.xiao.com,可以解析出IP

CDN(Content Delivery Network)内容分发网络

作用:
  • 增加缓存,加快访问速度

  • 提高原服务器安全性

分类:
  • 静态资源(查看内容时,与服务器缓存内容一致)

  • 动态资源(查看内容时,与服务器缓存不一致)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值