首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一个DNS上多个服务器的冗余

同一个DNS上多个服务器的冗余
EN

Server Fault用户
提问于 2021-09-13 07:42:58
回答 1查看 59关注 0票数 -2

我有一个像api.test.com这样的域名。我还有三台服务器。

我希望在这段时间内有一个修改,所以如果一个服务器离线,域名api.test.com将不会重定向到它,但只对其他服务器。

我发现在相同的域名上我们可以有多个A/AAAA记录,但是如果计算机ping或不使用它是不需要计算的,只是随机地给出所有可用IP中的一个。

我怎么才能让它变得红润呢?我是否应该获得另一个重定向所有请求的服务器,如代理?

EN

回答 1

Server Fault用户

发布于 2021-09-13 09:01:57

不,不是这样的。可以将多个不同类型和名称的记录配置到区域中。客户端通常不知道这一点;它请求一个特定的名称和类型(例如,浏览器请求输入A、AAAA类型的地址框中的名称)。

如果返回多条记录,则随机选择一条,并尝试在那里连接。如果有另一条记录,则由客户端重试连接到另一条记录。服务器也鼓励这种行为,每次用不同的记录排序来回答相同的查询。因此,即使某些客户“总是选择第一个”,服务器上的随机化仍然会发生。这样就实现了负载平衡的基本形式。

特殊的DNS负载平衡器返回一个TTL很低的记录,因此它们会很快过期;因此,服务器可以通过从答复中省略它们的地址来对突然的负载高峰或后端节点中断作出快速反应。如果您试图解决Zoom的视频会议服务器,您可以看到这一点;它们使用这种技术。但是这需要这个特殊的软件,一个DNS负载均衡器,来管理这个名字的DNS,这只是故事的开始。

通常,如果第一次尝试IP在A记录没有回答,web客户端通常返回失败,即使有其他IP尝试。有些软件真的会再试一次,例如,OpenVPN可以无限期地再试一次,但这是特例。

DNS通过完全不同的机制提供冗余,同样地,期望一个足够聪明的客户端。有特殊类型的DNS记录,称为SRV (服务),它有4个数据字段:优先级、权重、端口、名称。

名称是最简单的: SRV记录描述的A记录的名称。端口是请求的服务驻留在该名称的服务器上的TCP或UDP端口。这必须是一个与A或AAAA记录相关联的名称;CNAME是不允许的。如果有一个以上的A或AAAA记录的名称,我们将有通常的“尝试一次”的DNS行为对这个特定的SRV记录(但客户应该尝试其他SRV记录,如果有,例如,较高的优先级值)。

权重可以更深入地控制负载平衡:如果有几个具有相同优先级的记录,客户端应该尝试根据它们的权重来分配负载。这通常是以概率的方式进行的。

优先级用于冗余:首先必须尝试具有最低值的记录,然后是下一个优先级,依此类推。但再一次,重试取决于客户。

记录的内容如下:

代码语言:javascript
复制
_kerberos._tcp.example.net. SRV 0 100 88 dc.example.net.

下划线实际上是记录名称中的字面下划线。它说,"kerberos“服务是在dc.example.net端口88通过TCP提供的。dc.example.net必须是A或AAAA记录。此示例来自MS,它严重依赖DNS进行正确操作,并将其用于ldap (目录)和kerberos (安全框架)。如果您有多个AD域控制器,则会有更多这样的记录,指向不同的DC。

这种类型的记录用于例如ldap、kerberos、kpasswd (kerberos密码更改)、xmpp (jabber)、sip (ip电话)和其他一些服务。

MX类似于“SRV的特例”,它与25端口相连,只有“优先级”字段,没有“权重”。这只是一种“旧风格”,它是在SRV之前发明的(并启发了它)。而且它只用于电子邮件。

SRV无法帮助您进行web服务。它只对客户端知道使用SRV记录来发现服务器的服务有帮助;web客户端从不这样做。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1077390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档