这个问题完全是关于让一个客户端请求一个域: example.com到两个可用的服务器之一。 如何处理这个问题是另一个需要解决的问题,因此不应该在答案中提及。
我可用的工具是分布在位于另一个物理位置的两个不同数据中心( data center A和data center B )的两个专用服务器( server A和server B )。 server A的纯虚拟 IP地址表示为aaaa , server B的IP地址表示为bbbb 。 两台服务器都有一个Linux发行版,这并不重要。
由于我想自己控制事物,我不希望使用任何第三方服务(托pipeDNS,CDN等)。 因此,这些是我唯一的工具。
我所指望的这场灾难是在我正确地在两台服务器上正确设置好一个星期之后,氢弹消灭了两个数据中心之一。 我希望我的域名example.com在任何时候都可用,尽pipe我不打扰几秒钟甚至几分钟的停机时间,因为服务器非常可靠,甚至可能一年不会超过一次。 另外一个显示“我们正在忙着解决问题”的简单页面可以将这个可以接受的停机时间延长到一个小时左右。
我问这个问题已经有一段时间了,现在我有一个合理的冗余设置。 由于它是封闭的,我不能张贴这个答案:(
这两个服务器结果都有相同的example.com域的DNSlogging:
# DNS records for both server A and server B example.com. NS ns1a.example.com. example.com. NS ns1b.example.com. example.com. NS ns2a.example.com. example.com. NS ns2b.example.com. ns1a.example.com. A aaaa ns2a.example.com. A aaaa ns1b.example.com. A bbbb ns2b.example.com. A bbbb www.example.com. CNAME example.com. example.com. A aaaa example.com. A bbbb
两台服务器都运行脚本,每分钟检查一次是否可用。 这两个服务器都是example.com域的名称服务器,所以它们都可以更改DNSlogging。 如果遇到问题,仍然在线的服务器将检测到这一点,并从DNSlogging中删除另一台服务器。 在此之后,当另一台服务器仍在DNSlogging中时,浏览器将在2秒内自动备份到另一台服务器(使用Mozilla Firefox进行testing)! 这是一个非常有用的function。
因为server A通过example.com拥有“权限”,所以我不知道如何将server B添加为能够控制DNS。 事实certificate,您可以为任何域添加logging,但是只有当首先使用DNSlogging注册该域时,才会将该服务器作为域名服务器添加到DNSlogging中的“NS”中。
我希望这对一些有类似问题的人有用。
不可能。 就这样。 DNS不是为此而做的。
如果符合以下条件,您可以伪造
DNS本身没有高可用性机制 – 它以循环方式分配应答,并将它们caching起来,所以通常需要TIME来翻转。
通过使两个服务器使用相同的IP来处理高可用性 – 为此您需要一个以上的IP地址(存在技术限制),然后使用路由协议将该IP转移到另一个数据中心。
1:不
2:你告诉我。 从逻辑上讲,数据中心B的IP地址空间变得无法访问。 这是所有 – 没有其他的DNS发生,人们仍然去那里连接到服务器。
3:你告诉我。 从逻辑上来说,数据中心A的IP地址空间变得无法访问。 这是所有 – 没有其他的DNS发生,人们仍然去那里连接到服务器。
4:如何? 将一半的人送到A和一半的人到B–无论(A)和B是否在线? DNS有高可用性的ZERO规定。
5:不,你的注册服务机构什么都不做。 你去你的注册商,并指定一个IP地址的名称。 一个人通过检查你是否足够聪明地正确进入数据库,“知道”正确的入口在那里。 您的注册商可能不在乎。 现在,所有权 – 这是一个法律问题。 您的注册商已经将您的域名出售给了您,通知了根域名注册机构。 他们给你一个用户名和密码。 谁“拥有”您的密码到本网站?
我build议你阅读一本关于DNS如何工作的书。 Andd忘记解决DNS的可用性问题 – DNS不是为高可用性而devise的。 哦,投票结束 – 初级问题不欢迎在这里常见问题。 在这种情况下不是一个好的决定,但规则是站得住脚的。