繁体   English   中英

如何从网站的DNS获取负载均衡器的URL或IP?

[英]How to get the URL or IP of a load balancer from DNS of a website?

nslookup是一种网络管理命令行工具,可用于许多计算机操作系统,用于查询域名系统(DNS)以获取域名或IP地址映射或任何其他特定DNS记录。

因此,nslookup返回url的端点。 但是,如果我需要获得中间url / ip,我该怎么办?

例如。 如果www.example.com托管在ELB(弹性负载均衡器)后面的AWS上的2个实例上,那么

nslookup www.example.com

将返回2个实例的IP。 有没有办法获得负载均衡器的dns / ip?

我在C中使用以下函数来解析到端点的URL。

int getaddrinfo(const char *node, const char *service,
                const struct addrinfo *hints,
                struct addrinfo **res);

有没有办法在C中获取负载均衡器的URL / IP?

我认为你对nslookup返回的IP地址感到困惑。 这些IP地址是ELB的实际地址,而不是平衡实例。

负载均衡器提供多个地址的原因基本上是提供后备,覆盖不同的可用区域(如果您在3个不同的可用区域中有3个实例,则会看到3个IP)等。但请记住这些IP地址不固定并且可能随时更改,因此在适用时使用提供的DNS作为平衡器。

除此之外,你使用getaddrinfo在正确的轨道上。

nslookup和C getaddrinfo将返回在DNS中配置的IP(IPv4 -A记录或IPv6 -AAAA记录)地址。 如果配置的地址是一个实例的IP地址或两个实例的两个IP地址,它将返回该地址。 如果配置的IP地址是分配给ELB的弹性IP,则nslookup(和getaddrinfo)将返回ELB的EIP。 您可以在DNS系统中为权威名称服务器配置以返回相应的IP地址,也可以在hosts文件中编写映射。

关于ELB。 创建ELB时,它适用于指定区域中的任何可用区域,并且将在内部附加到它的所有实例之间进行负载平衡。 为此,您需要跨区域负载平衡。 这些实例可以位于同一地区的不同可用区域中。

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/how-elb-works.html#request-routing http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-internet -facing的负载balancers.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM