3 DNS域名劫持解决方案
- 域名劫持
域名劫持又称DNS劫持,是指在劫持的网络范围内拦截域名解析的请求,域名劫持通常相伴的措施是封锁正常DNS的IP, 这样就可以采用虚假的IP来代替真实的IP。
常见的域名劫持问题:
- 广告劫持:用户正常页面指向到广告页面。
- 恶意劫持:域名指向IP被改变,将用户访问流量引到挂马,盗号等对用户有害页面的劫持。
- 本地DNS缓存:为了降低跨网流量及用户访问速度进行的一种劫持,导致域名解析结果不能按时更新。
- HTTPDNS解决方案
HTTPDNS是仅面向移动App域名劫持解决方案,具有域名防劫持、精准调度的特性。
优势特性:
- 域名防劫持
域名解析请求直接发送至HTTPDNS服务器,绕过运营商Local DNS,避免域名劫持问题。 - 调度精准
- 直接获取客户端 IP ,基于客户端 IP 获得最精准的解析结果,让客户端就近接入业务节点。
- 实时生效
可以实现毫秒级低解析延迟的域名解析效果。
- 使用配置
- 流程:
4 CDN剖析
4.1 CDN原理
- 当终端用户(北京)向
www.a.com
下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。 - LDNS检查缓存中是否有
www.a.com
的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询
- 当授权DNS解析
www.a.com
时,返回域名CNAMEwww.a.tbcdn.com
对应IP地址。 - 域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。(用户从北京访问,返回最近的北京节点信息。)
- LDNS获取DNS返回的解析IP地址。
- 用户获取解析IP地址。
- 用户向获取的IP地址发起对该资源的访问请求。
- 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户。
- 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。
可以根据缓存策略做相应配置(针对静态资源配置指定目录和文件后缀名的缓存过期时间和优先级,资源过期后,自动从CDN节点删除。)
4.2 缓存过期配置处理流程
4.3 缓存配置规则
默认的缓存时间计算规则, 要符合3个条件:
- t =(curtime-last_modified)*0.1 【结果是时间差的10%】
- t = max(10s,t) 【最小要大于10S】
- t = min(t,3600s)【最大不能超过3600s】
缓存规则示例解析:
- 如果last-modified
为
20140801 00:00:00,当前时间为20140801 00:01:00
, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s(因为最小值要大于10s)。 - 如果
last-modified
为20140801 00:00:00
,当前时间为20140802 00:00:00
,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s。 - 如果last-modified
为
20140801 00:00:00,当前时间为
20140801 00:10:00`,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s。