我已经做了足够的研究,我觉得没有针对我的问题的解决方案,或者我无法找到一个简单的选择。所以我将使用第三方 Web 服务为我的客户提供托管服务。我面临的问题与自定义名称服务器有关。由于我将向我的客户提供 VPS 机器,所以我想为每个 VPS 注册自定义名称服务器,并且名称服务器应该在我的主域上。域名注册商提供注册自定义名称服务器或主机名的功能,但是否可以使用 DNS 服务器注册我的自定义名称服务器?注册商是唯一可以为我处理此问题的实体吗?如果有解决方案,请帮忙。
答案1
注册商是唯一可以帮我处理此事的实体吗?
是的。甚至不是“注册商”,而是您客户域名使用的“每个注册商”(他们可以自由地在任何地方注册域名,还是您自己处理一切?您的问题不清楚...)
您似乎对“注册”名称服务器的含义感到困惑,这很容易(感到困惑),因为存在很多错误信息。因此,下文将只回答该特定部分,但除此之外,如今,在没有任何低级 DNS 协议工作、shell 脚本、监控、自动化等经验的情况下,为任何类型的非平凡设置执行 DNS 可能不是一个好主意,尤其是使用 DNSSEC 等更复杂的技术。
首先,您可能不喜欢的警告是:这样做通常是出于虚荣心和/或试图隐藏真正的托管,这两种情况都行不通。因此,真正解决您问题的方法是将您的名称服务器提供给客户,而ns1.my-shiny-hosting-company.example
不必ns2.my-shiny-hosting-company.example
为每个托管网站创建名称服务器。然后,通过采用这种更简单的方法,您可以节省大量时间和理智。
现在,如果您仍想这样做,或者至少想更好地理解这是什么,那么关于注册名称服务器的更多详细信息。
首先需要注意一些重要的区别:
- 这取决于所考虑的 TLD(使用这些名称服务器的域的 TLD,而不是名称服务器的 TLD)
- 这取决于是否使用“辖区内”名称服务器,即名称位于域名之下的名称服务器他们是权威的(此条款非常重要)。如果使用它作为权威名称服务器,则
ns1.example.com
属于其管辖范围。example.com
example.com
显然,如果您想为任何域名托管一个网站,并且还希望使用相同名称的名称服务器,那么所有这些名称服务器都是“管辖范围内的”,并且您会立即以最复杂的方式来注册它们,现在让我们看看为什么。
注册中心使用两种不同的模型来处理名称服务器:作为对象或作为属性。gTLD 使用对象,许多/大多数 (?) ccTLD 使用属性。有时情况会发生变化(例如.FR
最近从属性变为对象)。您的注册中心通常会向您隐藏这些信息。
但在典型的“对象”情况下,事情是这样的:
- 你去一些登记处
- 您注册了域名 X
- 在设置一些名称服务器之前,您需要注册这些名称服务器:它们需要作为对象存在于注册数据库中,因此注册商需要先创建它们,然后将它们关联到您的域
- 当然,一个好的注册商会向你隐藏所有这些:它会询问你的域名服务器,然后透明地执行所需的操作
- 发生3种情况:
- 如果名称服务器名称位于注册表之外的另一个 TLD 中,则它被称为“外部”名称服务器,并且只需要其名称即可将其创建为注册表
- 如果名称服务器名称位于注册表的一个 TLD 中,则它当然是“内部”名称服务器,因此需要其名称,并且可能需要或不需要其 IP 地址:
- 如果名称服务器直接位于其必须具有权威性的域名之下(即上面解释的“辖区内”情况),则必须使用 IP 地址创建名称服务器(为了使以后的解析能够正常工作,这就是在注册中心创建“粘合”记录的原因
- 如果没有,则可能会或可能不会使用 IP 地址创建它,因为现在不需要它们,但一旦它与域关联为权威,就可能需要它们。
简而言之,注册商除了会要求您提供名称服务器名称之外,还可能会要求您提供 IP 地址,然后发挥其魔力在注册中心正确创建内容。
如您所见,您至少需要对每个(注册商,注册中心)对执行此操作:在某些注册中心中,每个注册商都会创建外部名称服务器,在其他一些注册中心中,有一个对象供所有人共享。
如果您转到“属性”情况,上面关于 IP 地址等的讨论仍然成立,唯一不同的是名称服务器不是作为注册数据库中的单独对象创建的,它们只是作为属性提供给创建或更新域名的任何命令。
ns1
但在所有情况下,如果您决定采用“让我们创建一个并ns2
在我们托管的所有域下”的路线,那么所有这些的缺点都意味着:
- 您需要访问处理这些域名的注册商,以便定义这些名称及其 IP 地址。因此,您要么需要让您的客户执行此操作(如果您不为他们管理域名注册),祝您好运,为他们解释上述所有内容,当然每个注册商网站都不同,因此要知道去哪里注册名称服务器将取决于:我知道有些注册商只有一个链接,可以将给定的名称服务器注册到“所有”注册中心(即所有认可此特定注册商的注册中心),这在大多数情况下肯定是您不想要的,而有些注册商没有 GUI 来执行此操作,您需要询问支持人员),或者为他们执行此操作,但您需要他们访问注册商面板(巨大的安全风险)
- 并且您需要更新所有这些,除了特殊情况(例如,如果您处理所有客户的域名注册,并且它们都在同一个注册商处),没有批量操作。所以,当您需要创建一个新的 时
ns3
,您将需要在任何地方都进行此操作(但如果您只创建 ,情况确实相同ns3.my-shiny-hosting-company.example
),但是当您需要更改名称服务器的 IP 地址时(因为这总是会发生),问题就更大了,因为根据在它们具有权威性的域名下创建它们的定义,它们属于管辖范围,因此您需要更新 IP 地址,而不是两次(在您自己的区域文件中,也许在 的注册处my-shiny-hosting-company.example
),而是与它们一样多的次数,再次询问您的每个客户在注册商网页面板上哪里可以做到这一点或者为他们做到这一点。
这条路会给你带来很多麻烦。特别是如果你还不是 DNS 托管和域名注册业务方面的专家。
答案2
因此我将使用第三方网络服务为我的客户提供托管服务。
我将向我的客户提供 VPS 机器。
那么您将提供网站和 VPS 托管服务吗?
如果是这样,请不要管他们的 DNS!
从技术角度来说,您不应该托管他们的 DNS。如果您没有托管其 DNS 所需的高可用性和全球多样化基础设施,并且您不具备托管其 DNS 所需的知识和经验(从您的问题可以看出您不具备),那么您就不应该托管其 DNS。
这并不是在侮辱你。将 DNS 托管留给拥有基础设施和经验的实体。你没有理由为你的客户托管 DNS,你也不应该为你的客户托管 DNS。
答案3
通常,人们只注册一组名称服务器(同样通常是在您的域名下),然后您的所有客户域都会引用这些名称服务器作为权威名称服务器。虽然您可以为每个客户域注册不同的名称服务器,但这是不必要的,而且管理和迁移起来也很麻烦。当您有三四个域时,缺点可能看起来很小,但当您有 20 个或 200 个域时,注册单独的名称服务器(通常每个域至少 2 个)很快就会变得难以处理。