首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主机名可解析为多个IP地址是什么样子?

问主机名可解析为多个IP地址是什么样子?
EN

Server Fault用户
提问于 2019-02-11 17:19:12
回答 3查看 4.5K关注 0票数 -3

来自https://serverfault.com/a/953384/16981

主机名不对应于{ipaddress,port} tuple。主机名仅是服务器的名称,应可解析为一个或多个IP地址。端口与主机名毫无关系。

我的问题是:

(1)我只知道(而且从不假设我确实知道)主机名被解析为不超过一个IP地址。那么,主机名可解析为多个IP地址是什么样的呢?

(2)是否指定具有不同端口的主机名解析到同一个IP地址?使用不同端口指定的主机名可以调用不同的服务器吗?

谢谢。

EN

回答 3

Server Fault用户

发布于 2019-02-11 17:28:56

1)主机名可以解析为多个IP地址;这称为DNS循环,可用于负载分配、负载平衡或容错。

2)主机名与端口没有任何关系,它们只映射到一个或多个IP地址。

票数 8
EN

Server Fault用户

发布于 2019-02-11 17:31:51

Cloudfire提供的DNS名称服务就是一个例子。

代码语言:javascript
复制
$ host one.one.one.one
one.one.one.one has address 1.1.1.1
one.one.one.one has address 1.0.0.1
one.one.one.one has IPv6 address 2606:4700:4700::1111
one.one.one.one has IPv6 address 2606:4700:4700::1001

如果您尝试连接到DNS主机名,您将连接到一个或另一个IPv4或IPv6地址,通常在这两个地址之间交替。

端口与IP地址完全无关。您可以设置一些东西,比如Linux中的iptables,将特定的端口转发到不同的服务器上,但这是不寻常的。

票数 4
EN

Server Fault用户

发布于 2019-02-12 14:32:11

一种看待DNS的方法是作为一个大型的分布式键值存储。

  • 密钥由域名(例如www.google.com)和记录类型(例如“地址”的A )组成。
  • 该值基本上是一个字符串,其意义取决于记录类型。
  • 每个键可以有多个值。同样,这意味着什么取决于记录类型。

当您想向serverfault.com发出HTTP请求时,您需要做的第一件事是查找该域的A记录。因此,您查询DNS系统以找出该键的值,并返回一个地址,如216.58.206.132。

然后,你可以连接到那个地址,在任何你喜欢的端口。这可能是用户指定的端口(例如,8080用于URL http://www.google.com:8080/),也可能是您希望工作的默认端口(80用于HTTP,443用于HTTPS)。

在A记录和HTTP的情况下,没有任何工具可以让DNS告诉您要使用哪个端口。其他记录类型(例如SRV)可能指定更多信息,包括地址和端口号,甚至需要使用一组配置值来成功地与服务器对话。

如果您实际上查询了A记录中的serverfault.com,那么您实际上得到的是一个答案列表:

代码语言:javascript
复制
;; QUESTION SECTION:
;serverfault.com.               IN      A

;; ANSWER SECTION:
serverfault.com.        174     IN      A       151.101.129.69
serverfault.com.        174     IN      A       151.101.193.69
serverfault.com.        174     IN      A       151.101.1.69
serverfault.com.        174     IN      A       151.101.65.69

现在,我们只需要一个地址来连接到一个web服务器,所以我们将其解释为“选择这些地址中的任何一个”。通常,每个人都会选择第一个地址,所以DNS服务器在每次询问时都会更改顺序;这样,负载就会在不同的地址之间传播。这就是所谓的“循环DNS”。

这里有一个重要的免责声明,即DNS实际上并不像数据库:当我们查询DNS服务器时,它可以根据自己的喜好提供一个答案,就像我们查询web服务器的URL一样。例如,如果我查找google.com的地址,就会得到以下内容:

代码语言:javascript
复制
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             25      IN      A       216.58.206.78

这并不意味着只有一个IP地址服务于所有想要连接到google.com的人;相反,这意味着负责该域的服务器已经决定了它将给我的IP地址,这与它给出的地址不同。

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

https://serverfault.com/questions/953392

复制
相关文章

相似问题

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