单个IP地址的负载如何平衡?


21

我知道“轮询DNS”负载平衡,但是如何对单个IP地址进行负载平衡?

Google的DNS服务器,例如8.8.8.88.8.4.4。Wikipedia的负载平衡文章指出:

对于Internet服务,负载平衡器通常是一个软件程序,该程序正在侦听外部客户端连接访问服务的端口。负载平衡器将请求转发到“后端”服务器之一,该服务器通常会回复负载平衡器。

..当与循环DNS一起使用时似乎是合理的,但是对于Google的DNS服务器之类来说,这似乎不是一个非常冗余或功能强大的设置。


IP伪装/ NAT?将整个网络隐藏在单个IP后面
Daniel W.

Answers:


32

http://en.wikipedia.org/wiki/Anycast

任播是一种网络寻址和路由方法,其中将来自单个发送器的数据报路由到一组潜在接收器中拓扑最近的节点,尽管它可以发送到多个节点,所有节点均由同一目标地址标识。

...

几乎所有Internet根名称服务器都使用任播寻址实现为主机群集。13个根服务器AM中的12个位于多个位置,其中11个位于多个洲。(根服务器H位于美国的两个位置。根服务器B位于单个未指定的位置。)具有多个位置的12个服务器使用任播地址公告来提供分散服务。这加速了在美国以外的物理(而非逻辑)根服务器的部署。RFC 3258记录了使用任播寻址提供权威DNS服务的过程。许多商业DNS提供商已切换到IP任播环境,以提高查询性能,冗余并实现负载平衡。


5
任播是一个复杂的主题,但是DNS(主要)在UDP上运行,这使得任播相对简单。要进行任播,TCP服务需要非常专业的网络设置,或者客户端可以容忍其连接在路由变化时随时断开。
hobbs 2014年

问题专门提到单个ip地址,这使该答案与问题无关。
TuncayGöncüoğlu2014年

@TuncayGöncüoğlu:请参阅我对以下类似声明的评论。
MadHatter支持Monica 2014年

3
@TuncayGöncüoğlu问题提到了8.8.8.8,这是一个IP地址,该地址将使用任播路由到Google的许多数据中心之一。您没有意识到任播并不意味着它不存在,如果您有兴趣了解它,我已经链接了源资料。
ceejayoz

0

一个(或多个)IP上的服务的负载平衡与DNS解析无关。它与路由器(或充当路由器的服务器)一起使用,侦听外部接口上的端口,该端口作为单个服务器(例如,www.someplace.com)传播,然后将流量重新路由到内部服务器,从而平衡在自己的设置中定义的规则。因此,客户端始终连接到负载平衡路由器,然后流量仅传播到内部服务器,这与轮询DNS平衡相反,后者将客户端直接连接到DNS引用的服务器之一。


1
根据我的回答,“ RFC 3258记录了使用任播寻址提供权威DNS服务的过程”。www.google.com肯定不是 “单个服务器”。
ceejayoz 2014年

1
这只是一个地址的例子。
2014年

@ceejayoz我也觉得您的答案与问题无关。问题是关于单个IP地址,而不是重定向到最接近的节点,该节点将具有不同的ip。
TuncayGöncüoğlu2014年

3
@TuncayGöncüoğlu:最后的陈述是错误的。Google的DNS(可能是互联网上最著名的任播服务)确实确实在全球多个站点中的单个IP地址上运行。没错,存在单站点解决方案,该解决方案在单个IP地址后面提供多个服务器而没有任何广播,并且您在上面进行了描述,但是由于OP特别询问了8.8.8.8,所以我发现ceejayoz的答案很难过错。
MadHatter支持Monica 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.