换一种视角看DNS

我们尽量用精炼的语言,尽可能的规划DNS的全貌(当然笔者水平有限,如有错误请不吝赐教)。

通常啊我们在个人PC中能看到DNS的配置身影就是在上网的时候,通常如果你不配置DNS可能找不到IP地址等等,那这是我们就回去配置一个DNS服务器,我们可以吧DNS服务器理解为地址簿,没错漫游在全网的地址簿;那你想过没有它背后的作用呢?我们继续看。

1、什么是DNS服务?

DNS服务全程Domain Name System,中文译名为域名系统。就是互联网中地址簿,通常我们PC端都是自动获取,有过管理服务器的效果版一般手工配置的多。

DNS是一个超大的地址簿,但是呢统一管理太麻烦怎么办呢?分层管理,非常类似郡县制,然后一层一层划分下去,我们以百度的域名为例说一下:

www.baidu.com.

上面这个字符串就是域名,也就是我们熟知百度的域名,眼尖的小伙伴可能发现最后怎么多了一点,没错这个点就是最高层的管理者也就是,当然我们默认情况下都是隐藏的,我们拆分来看下:

  • com:这个顶级域名,是有一个家域名发行商管理,当然类似的还有io, cn, hk 等等;
  • baidu:在顶级域名下面,我们称之为一级域名,这个域名都是用户或者公司进行购买,需要付出费用;
  • www:接着就是www,我们称之为二级域名,这个完全是由一级域名所有者进行管理的。

看到这里有的小伙伴有些懵,那么简单来说下规则:

.(根) --> com(顶级域名) --> baidu(一级域名) --> www(二级域名)

一般情况下就是这样的一个分层构建了我们看到的DNS服务。

2、DNS应用场景

场景:就是地址簿....

场景一:域名管理

这也是最常见的情况,在购买一级域名后你可以进行配置你的域名记录,域名指向你的实际地址我们称之为A记录,相关的常用记录还有:

  • A记录,一般作用于域名-->IP的直接解析也是企业最常用的;
  • CNAME,就是别名解析,一般多用于CDN的场景下,相当于域名和主机之间增加了一个桥梁;
  • MX,邮件解析记录,这个笔者接触也不多;
  • NS,指定你的DNS服务器地址,刚才我们说过了域名是自上而下的管理,你需要一个老大哥来罩着你,这个DNS就是你大哥地址,默认情况下购买域名后默认给你配置;
  • TXT,这个记录一般多用于域名验证,判断域名是否有管理权限。

好用的DNS,如万网或者DNSPOD 会有 A记录负载均衡以及智能DNS的功能。

  • A记录负载均衡,当你的入口服务器一台机器扛不住的情况下,这个是非常赞的功能;
  • 智能DNS,可以根据用户来源的DNS位置进行解析不同的记录,这样就可以实现用户分流了(从源头控制很舒心,多用于跨境服务以及CDN)。

场景二:企业内部DNS

上周还在吐槽,公司内部测试环境服务器通过IP+端口来划分,记忆混乱整个人都难受,平白无故都发也稀少了,这样我们就可以通过构建一台内部DNS解决这个问题了

还有一个非常重要的事情就是,集群内部环境,当我们使用外部服务器的DNS,如果他们DNS抽风或者网络的种种原因我们最好在自己机房做一个DNS服务,来保证内部服务的通畅。

笔者认识的小伙伴就因为某DNS服务商除了问题,整个内部服务有一多半出现非常卡顿的问题。

3、DNS踩过的坑

Q: 我配置的DNS为啥没有效果呢?

A: DNS默认生效是有周期行知的默认都在10分钟以内,如果更改的级别越高比如你修改了NS服务则需要24小时甚至更长。(所以笔者建议,在切割DNS时特别注意这一点,以免造成服务不可访问)

Q: 为什么我明明配置的DNS解析记录,然而还是搜寻不到呢?

A: 鉴于国内行情DNS和运营商的的缓存刷新还不一致,你可以指定你服务器配置的DNS Server测试一下

Q: 智能DNS 为什么解析的服务器不是对应地区的呢?

A: 这个智能DNS能够获取到的是用户PC上配置的DNS地址,所以你懂的(所以测试的小伙伴需要注意了)

Q: DNS 负载均衡怎么不是1V1?

A: DNS服务商也想啊,但是实力不允许啊,能够做到相对轮训的,可靠地不用担心(只是负载均衡,没有健康检查,Bro 特别注意)

Q: 我配置了CDN 但是经常出现404,尤其是配置HTTPS的情况下?

A: 这个呢是CDN服务器宕机或者智能调度到其他Server,但是运营商的缓存没有刷新;建议联系你的CDN的销售经理帮助你换到更加稳定服务器哦。

其实最大的坑,莫过于运营商和DNS服务商的缓存刷新了

4、DNS两种解析机制

鉴于网上有比较好的文章了,我就不水了,传送门:https://blog.51cto.com/13570193/2105393

换一种视角看DNS(采坑篇)的更多相关文章

  1. Html.fromHtml采坑篇

    在显示复杂的文本样式时,通常采用SpannableString和Html.formHtml来解决需求. 在使用html过程中,通常会出现以下问题: 1.提示Html.formHtml方法过时 解决 使 ...

  2. 从源码看Spring Security之采坑笔记(Spring Boot篇)

    一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring S ...

  3. 换种眼光看Spring之bean是怎么诞生的(一)

    Java的世界里处处存在了对象,有时候换一种眼光往往会给自己带来与之前大不一样的理解. 一个对象的出现离不开字节码,拿classforname来讲,classforname("...&quo ...

  4. Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式

    封面:洛小汐 作者:潘潘 一直以来 他们都说为了生活 便追求所谓成功 顶级薪水.名牌包包 还有学区房 · 不过 总有人丢了生活 仍一无所获 · 我比较随遇而安 有些事懒得明白 平日里问心无愧 感兴趣的 ...

  5. alert大法看执行流程(一次采坑)

    页面的dom元素加载完了,给元素一次性添加事件. 收获:事件都是一次性给添加好的,不是点击一次,................................................... ...

  6. Redis集群搭建采坑总结

    背景 先澄清一下,整个过程问题都不是我解决的,我在里面就是起了个打酱油的角色.因为实际上我负责这个项目,整个过程也比较清楚.之前也跟具体负责的同事说过,等过段时间带他做做项目复盘.结果一直忙,之前做的 ...

  7. Charles 抓包工具安装和采坑记录

    Charles 抓包工具安装和采坑记录 网络抓包是解决网络问题的第一步,也是网络分析的基础.网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常.做网络爬虫,第一步就是通过抓包工具对目 ...

  8. PS切图采坑

    博客记录我的各种采坑,有的坑很水,比如下面这个 谨记录自己的坑,以后作为入门笑料. 拿到设计师的psd设计图,理清事件逻辑,接下来就要切图啦.结果PS老是crash!检查了PS版本,也不低啊2017. ...

  9. axios采坑之路

    POST请求设置Content-Type 由于后端采用的是form表单形式上送参数,需要设置Content-Type axios设置如下 const _axios = axios.create(con ...

随机推荐

  1. 认识PHP8

    PHP 团队于2020年11月26日宣布 PHP 8 正式发布!这意味着将不会有 PHP 7.5 版本.PHP8 目前正处于非常活跃的开发阶段,所以在接下来的几个月里,情况可能会发生很大的变化.我也分 ...

  2. 软件工程UML第一次作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/ 这个作业要求在哪里 https://edu.cnblogs.com/campus/f ...

  3. UNraid学习随手记:显示主板、CPU传感器温度

    话不多说直接开始 首先安装NerdTools 地址: https://raw.githubusercontent.com/dmacias72/unRAID-NerdPack/master/plugin ...

  4. postgresql-从表中随机获取一条记录

    目录 postgresql如何从表中高效的随机获取一条记录 随机获取一条记录random() 改写1 改写2 改写3 对比 注意 结语 postgresql如何从表中高效的随机获取一条记录 selec ...

  5. swoole中websoket创建在线聊天室(php)

    swoole中websoket创建在线聊天室(php) swoole现仅支持Linix,macos 创建websocket服务器 首先现在服务器创建一个websocket服务器 <?php // ...

  6. 串的模式匹配算法1 BF算法

    BF算法 字符串的模式匹配不一定要从主串的第一个位置开始,可以指定主串中查找的起始位置 pos. 2. 算法步骤: 1)分别利用计数器指针 i 和 j 指定主串和模式串即小字符串待比较的位置,初始化为 ...

  7. Hystrix-服务降级-服务熔断-服务限流

    Hystrix简介 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时.异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致 ...

  8. IDEA一步步创建Maven管理的Spring入门程序

    目前,做Java开发的很多人都在使用IDEA了,而有些人也选择用Eclipse,我这里介绍一下IDEA一步步创建Maven项目的步骤,并创建一个Spring的入门程序(Java项目,非Web项目),讲 ...

  9. 修改hosts文件后不生效,该怎么办

    对于web开发来说,经常需要修改hosts文件,用来将域名与ip对应匹配.但是有时候发现hosts文件明明已经改了,但就是不生效,页面还会跳到某个丧心病狂的私人小站.hosts文件不生效有很多种原因, ...

  10. pytest学习笔记(pytest框架结构)

    一.pytest框架中使用setup.teardown.更灵活按照用例级别可以分为以下几类: 1.模块级:(setup_module.teardown_module)在模块始末调用 2.函数级:(se ...