目录
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)内容分发网络
作用:
-
增加缓存,加快访问速度
-
提高原服务器安全性
分类:
-
静态资源(查看内容时,与服务器缓存内容一致)
-
动态资源(查看内容时,与服务器缓存不一致)