裂脑DNS(Split DNS)的那点旧事研究

 
 

昨天夜里发生的事情


       今天看到了老黄在夜里1点多更新了blog,并针对运维业务知识谈来自己的看法,这种很好的理念促动了我懒惰的双手.今天想对一个几乎是所有拥有自己DNS服务器的企业来说都存在的一个问题,如何设计和规划DNS,乍看起来我们要谈的题目有些大,所以我缩小了这个范围,将上一次和学生讨论的Split DNS问题在这里澄清.
       这个国人翻译过来叫裂脑DNS的东西在很多书中没有进行深入大讨论,也不会在你参加的培训中有人会结合下面的情况进行实际分析,不过各位在设置DNS转发时老师可能都会提到.你也会看到一切企业网络中的内部DNS和外部的DNS会存在两种不同的名字,甚至他们的后缀都根本搭不上遍.我认为这是使用非常好的安全防护手段,这就像公司(普遍都这么做)的帐本,肯定都存在着两本不同的账目.我现在不想向刚学习的朋友们灌输一些技术的枝梢末节,这也就对应了老黄blog中提到的可行性方案的条目,也许这依然是那句老话:“只会安装的人领子永远是蓝色的”格言.
我身边发生的事情

         我们都知道DNS本身是一个很呆傻的网络服务体系,如果它发现了一个与自己查找名字相同的区域名称来匹配的区域文件,那么这台服务器就不再向其他网点查找了,这里面有一个和我身边的一个用户有关,他喜欢将自己的主机名称设置为 “WWW” ,这是因为她叫: 吴菀文 .那么她抱着笔记本来到你们公司的时候,如果你没有规划Split DNS,反而有启用了DNS自动更新的朋友可要小心,你们公司的内网用户们将不能访问你们放置在DMZ的Web服务器了.(假设这个web服务器叫做www,一般也都这么叫).
         这个故事告诉我们在不同的网络区域中, 内部DNS和外部的DNS会存在两种不同的名字.这个故事发生在你身边机会是:假设你本地DNS服务器就是vfast.com.cn解析服务器,而是上端的管理员则为你设置好了一个vfast.com.cn的区域,用于向内发布web站点.

微软曾经发生的事情

仔细考虑一下其实上面这种情况还是有可能发生的,因为我觉得80%(有点保守)的以上Active Directory 都在使用了裂脑或者叫分离DNS技术,微软设计了AD必须从DNS中查找它的数据,至少你必须从DNS中获取叫做SRV的记录来实现kerberos 验证。,这就是说任何能看到你DNS的人都能看到你DC的准确位置,而微软之前的做法是让这个区域成为“动态”,而且很多人不限制dns的区域传输,那么保护AD的方法就是让别有用心地人根本不知道它的存在。这在IDC设计时非常常见,设计者会采用Split DNS技术来把DNS系统划分为内部和外部两部分,其中外部DNS系统位于公共服务区,负责IDC正常对外解析工作,如IDC的Web服务器、IDC用户的Web服务器等解析工作全由外部DNS服务器来完成,一般采用Bind系统假设在unix和linux主机上。而内部DNS系统主要有两项工作,一是负责解析IDC内部网络的主机,如目录服务器、邮件服务器等,另一工作是负责当内部要查询Internet上域名时,其把查询任务转发到外部DNS服务器上,然后由外部DNS服务器完成查询任务,返回结果。由于把DNS系统分内外两部分,Internet上用户只能看到外部DNS系统中的服务器,而看不见内部的服务器,而且只有内外DNS服务器之间交换DNS查询信息,从而保证了系统的安全性。
这一下,我就能回答上次讲课时的那个学生的具体问题了,为什么我们的老师要讲两边dns的配置,分别在Windows和linux上了。
那么剩下的就是具体的配置问题了,关于转发器的配置,你可以到blog上看看其他人的图文并茂,不过有人会问,这不是把鸡蛋放在一个篮子里了吗?如果转发不成功,我们就上不了网了,sorry,不是你想的那样,随便看一下转发器设置的那个界面,在他的右下方,你会发现一个转发超时的默认配置时间,如果真的过了这个时间,你的DNS Server 回绕道而行的。如果你的网络确实比较大的话,还是在转发器里面多设几个IP地址吧,这样会减轻你的转发器缓存压力。
断网以后发生的事情

我们做了很多试验,也包括安全试验,因为一些特殊的代码会造成系统的嘎然,那么这种练习环境多在vpc或者vm中,并且自己隔离在Internet之外了。过了几天,我忽然发现在Active Direcotry中配置dns时发现提示及转发器为灰色,造成客户端上网时无法进行internet域名解析。这在公司搬家的时候也有可能发生,只要你新家没有连到Internet上。此时,你的DNS服务器傻的吧唧的认为自己是世界上唯一的根了,因为这是DNS体系决定的,它在没有找到那13个大哥的时候,认为自己可以当大哥了,于是决定自己成立一个“专用”的根。这种情况也会出现在AD和DNS集成的时候,最令人烦闷的是他认为永远不能和Internet连接了。发生最多的情况是在第一种环境下(长期没有联网),这不像Linux的name.ca,既然有这种情况也就有解决的办法,那么你可以使用 dnscmd /zonedelete . (注意有个空格),如果和AD已经集成了,还得加一个 /dsdel ,然后重启dns services 就可以了。当然还有两种方法,一种是打开正向搜索区域文件夹,删除 “ . ”, 如果和AD集成了就更麻烦些,还得先改区域的属性,唉。最后一种方法是找注册表
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\DNS Server\Zones\.
有钱和没有钱的事

有钱你可以按照微软的MSA CDC 分离-分离式 DNS 设计,如果你也是Contoso公司的话,哈哈。没钱就可以在单台服务器上启用Split DNS分离解析服务配置,方法也是很简单的。
交待一下睡觉前的事
还有很多东西,写着写着发现很晚了,大周末不较劲了,而且老婆不让写了,让睡觉,身体健康重要呀。在条件转发中还有另外一种脑裂工具,当然在防火墙设计中也包含了脑裂DNS的管理,这可以和转发/辅助设置等多方面结合,确保DNS的安全。有空继续了。
本文转自张琦51CTO博客,原文链接: http://blog.51cto.com/zhangqi/170156如需转载请自行联系原作者

裂脑DNS(Split DNS)的那点旧事研究相关推荐

  1. 微软zone DNS服务器,DNS 策略概述

    DNS 策略概述 01/05/2021 本文内容 适用于:Windows Server 2022.Windows Server 2019.Windows Server 2016 可以使用本主题了解 D ...

  2. GlusterFS下如何修复裂脑文件?(续一)

    关于网上一些修复GlusterFS裂脑文件的说明 1.Fixing a GlusterFS split-brain https://inuits.eu/blog/fixing-glusterfs-sp ...

  3. DNS及DNS有什么作用

    什么是DNS,DNS有什么作用: DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直 ...

  4. GlusterFS下如何修复裂脑文件?

    恢复GlusterFS文件裂脑步骤 1. 执行如下命令,获取裂脑文件的路径. # gluster volume heal VOLNAME info split-brain 客户端访问裂脑文件会报I/O ...

  5. DNS(1) DNS基本概念和域名系统

    本文将首先介绍一些DNS相关的基本概念和域名系统架构. DNS (Domain Name System) 域名服务器的存在是由于IP地址往往难以记忆,所以通常使用域名来对其进行管理,例如www.goo ...

  6. 百度DNS/阿里DNS/114DNS/谷歌DNS/OpenDNS 对比评测

    国内最早有114DNS,后有阿里DNS.百度DNS,国外则有谷歌DNS以及OpenDNS.这五个公共DNS,又都是大企业的产品,究竟选哪个好呢?下面下载吧小编就从功能.分布节点.解析速度等方面进行对比 ...

  7. 计算机id dns知识,DNS 事件 ID 4013 疑难解答 - Windows Server | Microsoft Docs

    DNS 事件 ID 4013 (DNS 服务器无法加载与 AD 集成的 DNS 区域) 09/08/2020 本文内容 本文解析在 DNS 服务器角色启动后承载 DNS 服务器角色的域控制器的 DNS ...

  8. DNS劫持 DNS污染 介绍 与 公共DNS 推荐

    我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ISP 的正常上网设置无法通过域名取得正确的 IP 地址.常用的手段有:DNS劫持 和 DNS污染.DNS劫持 和 DNS污 ...

  9. 什么是 DNS? | DNS 的工作方式

    DNS 可让用户使用域名而不是 IP 地址连接到网站.了解 DNS 的运作方式. 什么是 DNS? 域名系统 (DNS) 是互联网的电话簿.人们通过例如 nytimes.com 或 espn.com ...

最新文章

  1. jump game java_Jump Game II leetcode java
  2. 抽奖算法-指定概率的随机
  3. 你所不知道的 Transformer!
  4. Qt 加载QML 文件的几种方式
  5. windows下如何访问linux下的oracle数据库
  6. iOS7(+) 图像资源Images Assets使用
  7. 解决python使用happybase连接hbase报错thriftpy2.transport.base.TTransportException....TSocket read 0 bytes
  8. 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287
  9. android 上传头像工具类,Android开发中如何实现头像的更换与上传
  10. vue+elementUI的el-form的回车键登录
  11. switch里面变量吗c语言,讨教一下关于switch语句中变量定义的相关问题
  12. 需要一个用于Postgres的UUID生成器?这里有两种设置方法
  13. EP100的局部地址、逻辑地址和全局地址
  14. 详解:Java的重载方法与示例
  15. Python爆破RAR密码
  16. 那些年收藏的技术文章(二)-云笔记篇
  17. JAVA应用生产问题排查步骤
  18. 解决Chrome无法访问此网站或无法显示此网页问题
  19. 浙师大数学与计算机科学学院,王维凡 - 浙江师范大学 - 数学与计算机科学学院...
  20. Android 使用Arcore 实现多点测距

热门文章

  1. 【CQOI2009】跳舞
  2. 知识产品经理需要掌握什么知识?
  3. MyEclipse激活不成功的解决办法
  4. 第一批90后已经爬上胡润富豪榜了,第一批90后已经秃了......
  5. 最速下降法(适用于求二阶极小值)
  6. 20200110(已解决)powerdesigner 的一些操作
  7. daterangepicker时间插件控制起始和截至日期的选择范围
  8. 流密码:线性同余生成器 LCG
  9. 服务器租用好还是托管好?
  10. QA问答系统总体介绍