关于 IP 反查和 CDN 的一些问题
0x01 旁站
曾经有一种攻击思路叫做旁站,也就是说一个网站可能不好攻击,然后找到同一个 IP 的其他网站,如果能拿下服务器那么就相当于拿下了这个网站
这种思路其实讲的是一个虚拟服务器上可能部署了多个网站(同一个人部署的),采用的技术是 apache 或者是 nginx 的虚拟主机技术,都将域名解析到 80 端口,然后可以根据访问来源的域名判断解析到哪个 web 目录
这种场景是不涉及到网关的,就是一个裸 ip
0x02 cdn
1.概念原理
现在的大多网站都使用了 cdn 的技术,cdn 全称为内容分发网络,下面是 阿里云 cdn 的一个例子
假设您的加速域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下图所示。
所以此时的 cdn 就相当于一个网关,访问网站的时候,会先解析到一个 cname,然后这个 cname 再解析到 cdn 的 ip,这种情况下,你从不同地区查询一个网站的 ip 就会有多个结果,因为 cdn 的 cname 会去返回离你最近的 cdn ip ,https://www.17ce.com/ 网站就能模拟多地访问,看看一个域名是不是开了 cdn
同样的道理,我们反查一个 ip 的绑定域名有哪些,可能会出现多个网站,这种情况下也可能这个 IP 就是一个 cdn 的 ip
2.检测方法
由此我们就引出了判断一个域名是不是开了 cdn 的方法
(1)ping 域名,然后看 cname
(2)通过 17ce 从多地进行测试,看网站是不是解析到不同的ip,如果是则说明开了 cdn(这个条件并不是一个决定因素,因为还有叫做智能dns和 dns 负载均衡的技术)
(3)ip 反查,查看 ip 上是不是很多网站绑定,如果是则说明这个是 cdn 的 ip
(4)查看 ip 的运营商,如果是阿里云或者腾讯云这种肯定是没有cdn 的,基本就是真实 ip
0x03 智能双线 dns 解析 与 cdn
双线双IP方式,用户在自己的服务器上接双网卡设双IP,然后电信网通两条线分别接服务器的两个网卡,这时配合智能DNS技术,可以根据用户访问来源的不同,智能地指向电信或者网通线路所对应的IP地址。其原理为用户申请一个域名,然后在域名注册商处将该域名解析地址分别设为电信与网通线路的IP地址。当用户访问该域名时,他的IE浏览器向服务器提交了一个URL地址,DNS服务器智能分析用户的线路,如果属于电信线路,就把域名的电信IP解析给用户,也同理解析网通的IP地址。
CDN服务,其实就是把静态页面缓存到不同地区很多台专门的缓存服务器上,然后根据用户线路所在的地区自动选择一个最近的缓存服务器让用户访问,以此提高速度, 这种方案对静态页面效果非常好,同时它也需要智能DNS的帮助才能实现把用户引导到离自己最近的缓存服务器上。
智能DNS本身并没有加速功能,说白了就是自动识别网通、电信各线路的用户,然后解析到不同的IP,起到一个引导作用。 但是由于国内各地域、各系统的网络环境各不相同,并不仅仅是简单的电信、网通两种资源,所以会有域名做了智能DNS后,其用户访问速度反而下降的情况发生。但是使用智能DNS,客户源站是动态还是静态内容则没有影响,效果一样。
CDN的优点是内容缓存并分发,根据布点的范围,基本可以解决所有ISP互通问题和网络链路问题,减轻了源站服务器的压力,同时可以具有有效抗DDOS攻击的能力,还可以节约骨干网资源,CDN目前大多是对静态内容进行加速,而对动态内容加速效果不如静态内容。另外,CDN的内容缓存和同步周期有一定的滞后,可通过手工推送或自动推送进行加速节点的内容更新。
总结一下就是 智能 dns 不是一个分发网络,而是主动识别来源 ip 然后解析到一个多 ip 服务器的对应 ip 上
0x04 dns 负载均衡
dns 本身具有负载均衡的功能,只要将一个域名配置多个 ip 地址就可以实现
由上图可以看出,在DNS服务器中应该配置了多个A记录,如:
www.apusapp.com IN A 114.100.20.201;
www.apusapp.com IN A 114.100.20.202;
www.apusapp.com IN A 114.100.20.203;
每次域名解析请求都会根据对应的负载均衡算法计算出一个不同的IP地址并返回,这样A记录中配置多个服务器就可以构成一个集群,并可以实现负载均衡
0x04 常见的关于 dns 的问题
1.多个域名解析到一个 iP
一个 IP 可以绑定多个域名。
(1)多个域名解析到一个网站
如您需要实现多个域名访问同一个网站,只需就不同域名添加 A 记录指向同一个 IP 即可。
(2)多个域名解析到不同网站
如您需要实现多个域名访问同一虚拟服务器上不同网站,也需要就不同域名添加 A 记录指向 IP,然后在您的主机提供商完成域名绑定设置(虚拟主机设置),或利用主机头设置、端口号方式实现访问。
(3)cdn
这种就不是真实网站的 ip 而是 cdn 的ip,所以就可能有多个网站的 cdn 的 ip 是一样的,
2.一个域名解析到多个 ip
(1)子域名解析到不同 ip
如果您需要同一顶级域名的不同二级域名指向不同 IP 地址,您可以在设置域名解析时,选择需要解析的域名增
加多条 A 记录,不同的主机记录对应不同的 IP 地址。
(2)双线路智能解析
如果是来自不同线路的 IP 地址,只需在解析线路选择对应线路即可。
(3)dns 负载均衡
dns 解析记录可以配置多条A记录,每次域名解析请求都会根据对应的负载均衡算法计算出一个不同的IP地址并返回,这样A记录中配置多个服务器就可以构成一个集群,并可以实现负载均衡。
(4) cdn
这种情况返回的就不是真实的 ip ,而是 cdn 的 ip,因为 cdn 有负载均衡的功能,所以不同地方获取到的 cdn 的 ip 是不一样的,
3.反向 dns 解析
域名反向解析指从 IP 地址到域名的映射。由于在域名系统中,一个 IP 地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在 Internet上有庞大的域名结构,遍历整个域名树无法实现。
为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域。这样域解析的 IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名结尾。
两种表达方式中 IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而 IP地址结构是自顶向下(从网络到主机)的。
实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。
邮件服务器的反向域名解析功能,目的在于拒绝接收所有没有注册域名的地址发来的信息。在邮件服务器上拒绝接收来自没有域名的站点发来的信息可以大大降低垃圾邮件的数量。
参考
https://help.aliyun.com/document_detail/27112.html?spm=a2c4g.11186623.6.575.75df57507j6Sw1
https://help.aliyun.com/document_detail/122172.html?spm=a2c4g.11186623.2.21.321ce9c3dWlZq1#concept-678821
https://wenku.baidu.com/view/5a6225acb14e852459fb572d.html#
http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/pdf/alidns-faqs-cn-zh-2019-03-07.pdf
http://www.mamicode.com/info-detail-1632528.html
https://blog.csdn.net/weibo1230123/article/details/82946179