zoukankan      html  css  js  c++  java
  • DNS

     
     
     
       • dig解析路径查询
            – dig www.baidu.com +trace
            – 查询从根域名到指定域名可能经过的所有域名服务器 
     
     
    一、DNS原理
    1.DNS(Domain Name System)
        • 将网站的域名转换为相应的IP。 
        • 如何映射
            – 每个PC保持一个hosts文件
                » www.58.com 10.10.10.10
                » 访问是本地hosts查找IP
                » hosts文件越来越大
                » 没规定命令规则,主机名会冲突 
                » 维护映射关系代价高
            – 应用场景
                » 线下测试
        • 解决上述问题,1983年Paul Mockapetris提出域名系统
        • 分布式数据库系统
        • 一种层次的、基于域的命名方案
        • 一个完整的请求过程如下:
            – 应用程序->DNS服务器发起DNS请求
            – DNS服务器返回该域名对应的IP地址
            – 应用程序根据返回的IP地址请求对应的服务,获取数据
      
    2.  • DNS协议
            – Domain_name Time_to_live Class Type Value
                » Domain_name: 指出这条记录适用于哪个域名;
                » Time_to_live: 用来表明记录的生存周期,也就是说最多可以缓存该记录多长时间(后面会讲到缓存机制);
                » Class: 一般总是IN;
                » Type: 记录的类型;
                » Value: 记录的值,如果是A记录,则value是一个IPv4地址。
     
        • 所有域名记录由DNS服务器集群存储
        • 用户计算机不用存储所有的域名->IP映射,hosts文件不大 
        • 规定了域名的命令规则,保证了主机名字不会重复
        • DNS是一个层次的的分布式数据库服务集群 

    3.– DNS(Domain Name System)解析过程
        • 首先查找本地域名服务器(Local Server)【运营商:电信、联通等】
        • Local Server没有,查找Root服务器
        • Root服务器返回权威服务器地址
        • Local Server继续查找权威服务器
        • 找到后由Local Server返回给用户
        
    – 和快递原理一样
        • 中国->城市->区域->商区->小区->门牌号
        • 中国->北京市->朝阳区->酒仙桥->酒仙桥北路甲10号院->58赶集总部
    – 域名缓存
        • 不变缓存时间可长期
        • 可变缓存时间短
        • Time to Live字段灵活控制
     
    二、DNS分析工具
    – 域名查找对应IP工具(Linux平台) 
        • dig命令查询A记录
            – digwww.baidu.com-tA+short 

    三、DNS劫持
    DNS劫持
        – 区域域名服务器负责用户解析请求
        – 没有机制保证域名映射是否准确
        – “流氓的域名服务器”更改一些域名的解析结果 
        – 或者区域域名服务器被黑客攻击,恶意修改
        – 引导用户一个错误的目标IP地址
        – 这就是DNS劫持
        – 劫持目标
            • 阻止用户访问某些特定网站
            • 引导用户到广告页面
     
    – 如何验证域名服务器有没有干坏事
        • nslookup命令(linux)
            – nslookup www.baidu.com
     

    – whois61.135.169.121
                » 看看是不是百度的 
     
    防DNS劫持解决方案
        – 直接使用IP地址
            • 客户端处理负责均衡 
            • 移动端(Android、iOS)
        – 使用HttpDNS
            • DNS协议->HTTP协议
            • 使用HTTP协议的80端口,取代DNS协议的53端口
            • 绕过DNS协议请求,解决运营Local DNS劫持问题 
     
    四、高可用DNS设计
        – 移动方向
            • 选用HttpDNS
            • 基于IP地址直连 
        – 其他方向
            • 使用IP地址直连
            • 监控
                – nslookup   
                – 不符合预期的IP,及时报警处理
     
     
    最佳实践
        – 三种方式结合
            • 尽可能选用HttpDNS
            • 基于IP直接方式
            • 传统DNS监控,及时报警,商务推动 
  • 相关阅读:
    学Java,上这个网站就够了
    父类如果不写无参构造方法,子类会报错
    Java中instanceof的用法
    Spring,SpringMVC,Mybatis等配置文件报错解决(Referenced file contains errors)
    初识Java
    JavaSE课程知识体系总结
    Java中awt和swing的关系和区别
    ServiceMesh实验室——00之实验室搭建
    Microservices==>Service Mesh==>Serverless,走马观花
    领域驱动(DDD)之我见,基于Golang实现
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/7503156.html
Copyright © 2011-2022 走看看