高可用架构设计DNS四

DNS Domain Name System  域名ip关系。

Hosts文件 存储了 域名ip的对应关系。服务器内部把域名指向了内部ip。

DNS协议:

Domain name 指出这个条鱼适用于那个域名;

Time to live用来表情记录的生存周期,也就是最多可以魂村记录多长时间;

Type:记录的类型 a记录 cname;

Value:a记录是ip ,cname是域名

DNS解析过程 先查找本地域名服务器localserver【电信,联通等】,localserver没有,查找Root服务器。Root服务器返回权威服务器地址,localserver继续查找权威服务器,如果没有再去root请求另外的权威服务器,直到在最后找到,再有localserver返回给用户

linux dig命令查询A记录 dig www.baidu.com -t A+short

linux dig解析路径查询 dig www.baidu.com + trace 查询从根域名到指定域名可能经过的所有域名服务器

传统的域名有什么问题

区域域名服务器负责用户解析请求

没有机制保证域名映射是否正确

流氓域名服务器个该一些域名的解析结果

区域域名服务器被黑客攻击,恶意修改

引导用户一个错误的日志IP地址

以上就是DNS的劫持,目的是阻止用户访问某些特定的网站,引导用户到广告页面。

验证是否被劫持 nslookup命令 nslookup www.baidu.com whois网站去查 xxx.xxx.xxx.xxx这个ip是否是百度的。

DNS欺骗

用一个假的DNS应答来欺骗DSN请求用户。让其相信返回的假地址,并且抛出真正的DNS应答。具体步骤:

用户主机发出DNS请求,等待应答

如果此时有一个看起来正确的应答包(拥有和DNS请求一样的序列号),TA信以为真,并且抛弃稍晚到达应答包。

这个DNS欺骗的关键在于伪造一个特定序列号的应答包,对个人难度大,对骨干网络组织易如反掌。

验证是否被劫持 nslookup命令 nslookup www.baidu.com whois网站去查 xxx.xxx.xxx.xxx这个ip是否是百度的。

DNS解决方案

直接使用IP,客户端“android,ios”负责均衡处理(从服务器iplist中随机的选择服务器,iplist可以有版本号,根据版本号判断是否要更新,每个ip可以权重,来做有策略的均衡,或者把某个ip在iplist写两次)

使用HttpDNS-->HTTP协议(通过一个ip的方式访问自己的服务器,服务器中存储了IP列表,再返回要交互的ip)。使用HTTP协议的80端口,取代DNS协议的53端口。绕过DNS协议请求,解决运营local DNS劫持问题

流量劫持:DSN劫持,CDN劫持,网关劫持

最佳实践:尽可能选用HttpDNS,IP直连,监控。
高可用架构设计DNS四_第1张图片
 

你可能感兴趣的:(高可用架构)