DNS和CDN
1、DNS
1、常见的DNS有
114.114.114.114(中国电信)
8.8.8.8(谷歌)
8.8.4.4(谷歌)
223.5.5.5(阿里)
2、WINDOWS中配置DNS
1、进入控制面板\网络和 Internet\网络连接
2、打开属性
3、找到ipv4,并打开属性
4、选择使用下面的DNS服务器地址就可以添加DNS
3、LINUX中配置DNS
1、在vim /etc/resolv.conf 一般会在这个文件里面进行配置。
例:nameserver 8.8.8.8
2、在网卡里面配置DNS
例:DNS=8.8.8.8
4、DNS服务体系
1、DNS与域名
由于ip地址比较难记所以一般使用域名进行管理。域名分为三部分,用“.”分割。严格来说域名最后还有一个“.”,但是一般省略不写。
例:www.baidu.com
www:主机名
baidu:域名
com:类型
DNS就是用来在IP和域名之间进行转换的服务。
2、DNS体系结构
DNS是一个分层的分布式名称对应系统,类似计算机的目录树型结构。别称为域名空间
树的最大深度不能超过127层,树中的每个节点都有一个可以长达63字节的文本
3、架构模型
DNS采用的是C/S架构模型。LINUX中解析有以下几种方式
1、/etc/hosts文件 。一般不在这个文件进行解析。因为在查DNS前都会先查看这个文件,所以黑客可能会通过修改这个文件,让用户进入一些钓鱼网站。
2、/etc/networks文件
4、DNS查询命令
客户端
1、host可以用于查询
例:host www.baidu.com
host -t A www.baidu.com 正向解析,查询A记
host 192.168.116.136 反向解析 查询PTR记录
2、dig可以进行查询。使用此命令前要安装 yum insatll bind-utils
dig www.baidu.com
dig @192.168.116.145 www.xingyun.com 使用指定的DNS
命令host、dig都不会使用/etc/nsswitch.conf的配置,只有会通过/etc/resolv.conf进行dns查询。
3、nslookup可以进行查询
nslookup www.baidu.com
nslookup 192.168.116.200
或者这种查询
服务端
DNS是一个树状结构,查询的时候根据域名从左到右查询,域名每一级有独立的一个或多个服务器。
5、DNS查询类型
DNS查询类型有两种
1、迭代查询
2、递归查询
递归查询存在缺陷:用递归模式查询会在每一级的服务器上生成大量的缓存信息,因为他要等待查询返回,可能会占用大量的内存。
6、DNS解析记录
1、域名解析时会添加解析记录。这些记录有
A记录:将域名指向一个IPV4地址
AAAA记录:将域名指向一个IPV6地址
PRT记录:是A记录的
CNAME:将域名指向另外一个域名
NS:将子域名指定其他DNS服务器解析
MX:将域名指向邮件服务器地址
SRV:记录提供特定的服务的服务器
TXT:文本长度限制512,通常做SPF记录(反垃圾邮件)
显性URL转发记录:将域名指向一个http(s)协议地址,访问域名时自动跳转至目标地址。(相当于地址重写)。
隐性URL转发记录:将域名指向一个http(s)协议地址,访问域名时自动跳转至目标地址。隐性转发会隐藏真实的目标地址。
2、主机记录
www:解析后的域名为www.aliyun.com
@:直接解析主域名aliyun.com。
*:泛解析,匹配其他所有域名。
mail:将域名解析为mail.aliyun.com,通常用于解析邮箱服务器。
二级域名:
手机网站:
DNS命名规范
1、26个英文字母
2、“0-9”十个数字
3、“-”(英文中的连词号)
4、最多63字节长度
7、DNS服务器搭建
1、程序安装
yum install bind bind-utils bind-libs bind-chroot
2、实现正向解析 (从域名解析到IP地址)
图示
配置DNS主配置文件 /etc/named.conf(也可以在其扩展文件中配置/etc/named.rfc1912.zones中进行配置本实例在扩展文件中配置)
zone “xingyun.com” IN {
type master; //定义为主域名解析服务器
file “xingyun.com.zone”; //指定域数据库文件名,(文件路径在该配置文件上)
};
在该配置文件中要注意每行后面都有分号
配置DNS正向解析数据库文件
vim /var/named/xingyun.com.zone
$TTL 600 //配置解析记录保持时间以s为单位
@ IN SOA @ root( 2019112000 1H 15M 1W 1D ) //配置域名解析服务器记录(必须配置)2019112000版本号 1H 主辅同步时间 15M重试时间 1W过期时间 1D缓存时间
//配置域名解析服务器记录,用来指定该域名有那个DNS服务器解析。
@ IN NS dns
dns IN A 192.168.116.145
//配置需要解析的普通记录
www IN A 10.0.0.8
//@表示配置的域名
@ IN A 10.0.0.9
在客户端测试
dig @192.168.116.145 www.xingyun.com
dig @192.168.116.145 www.baidu.com
3、实现反向解析 (从IP地址解析到域名)
图示
配置DNS主配置文件 /etc/named.conf(也可以在其扩展文件中配置/etc/named.rfc1912.zones中进行配置本实例在扩展文件中配置)
zone “116.168.192.in-addr.arpa” {
type master;
file “192.168.116.zone”;
};
配置DNS反向解析数据库文件 /var/named/192.168.116.zone
$TTL 600
@ IN SOA xingyun.com. admin.xingyun.com.(2019112100 1H 15M 1W 1D )
IN NS xingyun.com.
10 IN PTR www.xingyun.com.
11 IN PTR www.anttech.com.
12 IN PTR mail.xingyun.com.
注意:反向解析和正向解析不一样。SOA后不能在用@变量表示。
重启服务
实例测试
4、主从DNS配置
图示
1、三步走(修改主机名、关闭防火墙、同步时钟源)
2、配置主从服务器
主服务器
zone “xingyun.com” IN {
type master;
file “xingyun.com.zone”;
allow-transfer { 192.168.116.146; }; //容许向从服务器转发,配置的是从服务器的地址
};
zone “116.168.192.in-addr.arpa” {
type master;
file “192.168.116.zone”;
allow-transfer { 192.168.116.146; };
};
配置从服务器
zone “xingyun.com” IN{
type slave;
file “slave/xingyun.com.zone”;
masters { 192.168.116.145; };
};
zone “116.168.192.in-addr.arpa” {
type slave;
file “slave/192.168.116.zone”;
masters { 192.168.116.145; };
};
注意一定要将配置文件写正确如果出错可以用 named-checkconf检查错误。
重启主机和丛机服务
systemctl start named
实例测试
在/etc/resolve.conf文件做一下配置
nameserver 192.168.116.145
nameserver 192.168.116.146
会在/var/named/slaves下产生同步文件
在节点*问域名解析
手动停掉主机上的服务再次访问服务解析
systemctl stop named
在进行测试此时将会跳到丛机上进行解析
8、DNS缓存
在访问网页时,需要通过DNS服务器去解析网站地址,解析时间很短,但是当DNS访问量非常大时,会导致访问网页响应时间变长,影响服务质量。为了增加访问效率,计算机有域名缓存机制,当访问过某个网站并得到其IP后,会将域名和IP缓存下来,当下一次访问的时候,就不需要在请求域名服务器获取IP,直接使用缓存中的IP,提高了响应的速度。当然缓存存在时间限制,当过了有效时间后,再次请求网站,还需要先请求域名解析。
windows上查看DNS缓存 ipconfig /displaydns
清理缓存 ipconfig /fulshdns
9、bind中的基础安全配置
1、访问控制列表
访问控制列表(acl):把一个或多个地址归并到一个命名的集合,随后通过此名称对此集合内的所有主机实现统一调度;
acl acl_name{
ip ;
net/prelen;
};
bind中有四个内置acl分别是:none:没有一个主机;any:任意主机;local:本机;localnet:本机的IP同掩码运算后得到的网络地址。
注意:acl,先定义后使用,一般定义在配置文件中的option前面
2、访问控制的指令
allow-query{}; //允许查询的主机(白名单)
allow-transfer{}; //允许区域传送的主机(白名单)
allow-recursion{}; //允许递归的主机(通常全局option)、
allow-update{}; //允许更新区域数据库中内容
事例:
acl mynet{
192.168.116.145;
192.168.116.146;
192.168.116.147;
};
options {
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
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”;
recursing-file “/var/named/data/named.recursing”;
secroots-file “/var/named/data/named.secroots”;
//allow-query { localhost; };
allow-query { mynet; };
当前查询仅能提供权威区域及缓存的查询。通过根提示区域或转发(Forward)使DNS服务器能够向其它DNS查询。
转发forward
acl mynet{
192.168.116.145;
192.168.116.146;
192.168.116.147;
};
options {
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
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”;
recursing-file “/var/named/data/named.recursing”;
secroots-file “/var/named/data/named.secroots”;
//allow-query { localhost; };
//allow-query { mynet; };
forwarders {114.114.114.114;
8.8.8.8;
};
事例
根提示
vim /etc/named.conf
zone “.”{
type hint;
file “name.ca”;
};
就可以了
2、CDN
1、分布式缓存
缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。
CDN(反向代理缓存)主要解决静态文件,或用户请求资源的缓存,书记源一般为静态文件或动态文件生成的文件(有缓存头标识)。
分布式缓存,主要指缓存用户经常访问数据的缓存,数据源为数据库。一般起到热点数据访问和减轻数据库压力的作用。
2、缓存架构示例
请求过程
3、CDN核心架构
CDN即内容分发网络。其核心为CACHE(缓存)层。
解决了由于的网络带宽小、用户访问量大、网点分布不均等原因造成网站访问时间过长的问题,提高用户访问网站的响应速度。
4、CDN工作原理
1、回源原理
回源大致是指浏览器在发送请求报文时,响应该请求报文的是源站点的服务器,而不是个节点上的缓存服务器,那么这个过程相对于通过各节点上的缓存服务器来响应的话就称作为回源。
2、回源比
回源比越高,说明缓存系统的缓存命中率低。回源比分为回源请求数比例和回源流量比两种。
(1)回源请求数比例:收集所有边缘节点上的请求记录,没有缓存或缓存过期的请求以及不可缓存的请求均被作为回源请求,发往源站点服务器响应。其他的请求则由缓存系统直接使用缓存响应。
(2)回源流量比:即用户所产生的流量当中,有多少流量是直接有源站点服务器响应。
3、多级缓存处理机制
(1)CDN实现原理
(2)工作方式(3)CDN层级划分
(4)缓存缺点
当网站更新时,如果CDN节点上数据没有及时更新,即便用户在浏览器使用Ctrl+F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问异常。
(5)CDN缓存策略