假设我有一个根域名“mysite.com”。该域名及其子域名的 DNS 由外部服务提供 - 我们称之为 Setwork Nolutions。如果这家外部公司遭受 DDoS 攻击,我在该域名下的内部托管网站将无法再通过“mysite.com”或“*.mysite.com”访问,即使这些网站已完全启动并正常运行。
我该如何缓解此类问题以让最终用户满意?
我公司其他人想出的唯一解决方案是创建第二个域名 - 即“mysite2.com”,并将其 DNS 托管在另一家公司,然后告知所有最终用户这是他们应该使用的网站。我认为这太荒谬了,只会导致一系列其他问题。
我想找到一个解决方案,让我们能够使用相同的 URL 指向相同的网站,而无需原始 DNS 主机运行。
有什么想法吗?
答案1
您可以在 SN 之外设置其他 DNS 服务器,然后将这些名称服务器注册为该域的权威服务器。
我强烈推荐的一家这样的 DNS 提供商叫做超级DNS。
这将解决所有问题。而不是:
mysite.com ns ns1.sn.com
mysite.com ns ns2.sn.com
你会拥有:
mysite.com ns ns1.sn.com
mysite.com ns ns2.sn.com
mysite.com ns ns3.ultradns.com
如果你真正的问题是仅有的内部托管的网站,您可以通过为您的域设置本地缓存名称服务器,然后将您的 LAN 机器指向这些缓存名称服务器,来部分缓解您的权威名称服务器的任何中断。
http://www.tldp.org/HOWTO/DNS-HOWTO-3.html
将其与稍长的 TTL 相结合(比如说,只要您希望生存的中断时间 * 2),您应该能够很好地生存下来。
最后,哦,糟糕,我们失败了,永远记住本地 /etc/hosts 条目(或等效条目)可以帮助您摆脱困境。
答案2
任何服务器遭受 DDOS 攻击的域都会遇到此问题。如果您自己的域的服务器遭受 DDOS 攻击,则更有可能被看到和追踪。
在您自己的网络上设置一个或多个缓存名称服务器,并将您的计算机配置为使用这些服务器进行 DNS 解析,应该可以解决问题,除非 DDOS 持续时间极长。我使用域名系统在 Linux 服务器上,并在 OpenWRT 路由器上运行它。它还将从/etc/hosts
和/或其他相同格式的文件中读取值。
如果您的外部 DNS 主机支持此功能,您可以运行本地绑定服务器作为隐藏从属服务器。这将提供您无需本地托管 DNS 即可获得的最佳保护。或者,您可以将 bind 作为本地缓存名称服务器运行。