标签: round-robin

DNS Round Robin:浏览器只要在线就坚持一个IP吗?

如果大多数浏览器从 DNS 服务器获得多个 A 记录,它们会如何表现?只要可以访问就坚持使用一个IP(并且只有在IP关闭时才使用另一个)?或者他们总是无缘无故地切换?

如果当前的大多数浏览器都坚持使用一个 IP,那么 DNS-RR 作为一种简单的故障转移解决方案对我来说就足够了。

domain-name-system failover high-availability round-robin

19
推荐指数
3
解决办法
2万
查看次数

是否可以使用 /etc/hosts 文件进行循环 DNS?

是否可以在以下配置中使用循环 DNS /etc/hosts

192.168.4.10 shaakunthala.local
192.168.4.20 shaakunthala.local
Run Code Online (Sandbox Code Playgroud)

我在 Linux 上。

domain-name-system hosts-file round-robin

15
推荐指数
2
解决办法
3万
查看次数

通过 TTL 加权循环 - 可能吗?

我目前使用 DNS 循环进行负载平衡,效果很好。记录看起来像这样(我的 TTL 为 120 秒)

;; ANSWER SECTION:
orion.2x.to.        116 IN  A   80.237.201.41
orion.2x.to.        116 IN  A   87.230.54.12
orion.2x.to.        116 IN  A   87.230.100.10
orion.2x.to.        116 IN  A   87.230.51.65
Run Code Online (Sandbox Code Playgroud)

我了解到并非每个 ISP/设备都以相同的方式处理此类响应。例如,一些 DNS 服务器随机地轮换地址或总是循环它们。一些只是传播第一个条目,其他人尝试通过查看 IP 地址来确定哪个是最好的(区域附近)。

但是,如果用户群足够大(分布在多个 ISP 上,等等),它的平衡就会很好。从最高负载到最低负载的服务器的差异几乎都超过 15%。

但是,现在我遇到的问题是,我正在向系统中引入更多服务器,而且并非所有服务器都具有相同的容量。

我目前只有 1 Gbps 服务器,但我也想使用 100 Mbps 和 10 Gbps 服务器。

所以我想要的是我想引入一个权重为100的10 Gbps服务器,一个权重为10的1 Gbps服务器和一个权重为1的100 Mbps服务器。

我之前添加了两次服务器来为它们带来更多流量(效果很好——带宽几乎翻了一番)。但是向 DNS 添加 100 次 10 Gbps 服务器有点荒谬。

所以我考虑使用TTL。

如果我给服务器 A 240 秒的 TTL 和服务器 B 仅 120 秒(这大约是循环使用的最小值,因为如果指定了较低的 TTL,许多 DNS 服务器设置为 120(所以我听说过))。我认为在理想情况下应该会发生这样的事情:

First 120 …
Run Code Online (Sandbox Code Playgroud)

networking domain-name-system load-balancing ttl round-robin

11
推荐指数
1
解决办法
7904
查看次数

循环 DNS 是实现高可用性的可能解决方案吗?

假设我有给定域的 2 个 IP(循环 DNS)。
如果一个 IP 变得无响应,客户端是否会尝试连接到另一个 IP?或者他们将无法与域建立通信?

domain-name-system high-availability redundancy fault-tolerance round-robin

9
推荐指数
2
解决办法
1万
查看次数

持久性负载平衡最佳实践

我们运行一个 Web 应用程序,为越来越多的客户端提供 Web API。首先,客户端通常是家庭、办公室或其他无线网络,向我们的 API 提交分块的 http 上传。我们现在已经扩展到处理更多的移动客户端。文件从几千到几场不等,分解成更小的块并在我们的 API 上重新组装。

我们当前的负载均衡是在两层执行的,首先我们使用轮询 DNS 为我们的 api.company.com 地址通告多个 A 记录。在每个 IP 处,我们托管一个 Linux LVS:http : //www.linuxvirtualserver.org/,负载均衡器查看请求的源 IP 地址以确定将连接交给哪个 API 服务器。这个 LVS 盒子配置了 heartbeatd 来相互接管外部 VIP 和内部网关 IP。

最近,我们看到了两个新的错误条件。

第一个错误是客户端在上传中摇摆或从一个 LVS 迁移到另一个。这反过来会导致我们的负载均衡器失去对持久连接的跟踪,并将流量发送到新的 API 服务器,从而破坏跨两个或更多服务器的分块上传。我们的目的是让下游缓存名称服务器、操作系统缓存层和客户端应用程序层遵守 api.company.com 的循环 DNS TTL 值(我们已将其设置为 1 小时)。大约 15% 的上传会出现此错误。

我们看到的第二个错误要少得多。客户端将向 LVS 盒发起流量并路由到它后面的 realserver A。此后,客户端将通过 LVS 框无法识别的新源 IP 地址进入,从而将正在进行的流量路由到也在该 LVS 后面的真实服务器 B。

鉴于我们上面部分描述的架构,我想知道人们对更好的方法有什么经验,这将使我们能够更优雅地处理上述每个错误情况?

2010 年 5 月 3 日编辑:

这看起来是我们需要的。源 IP 地址上的加权 GSLB 哈希。

http://www.brocade.com/support/Product_Manuals/ServerIron_ADXGlobalServer_LoadBalancingGuide/gslb.2.11.html#271674

domain-name-system load-balancing lvs round-robin

8
推荐指数
1
解决办法
8619
查看次数

跨不同数据中心的多个 VPS 集的负载平衡/故障转移

我知道已经问过这个问题的许多变体,但我仍然找不到满足我需求的好答案。

我想要做的是设置几个(至少 2 个)VPS来托管我的网络应用程序。我想提供一些负载平衡(使用 Varnish 很容易实现)和相对较高的可用性 - 这是我的问题。

使用负载平衡器(我需要在其中一个 VPS 上托管)会引入单点故障,这几乎与只有一台机器来提供内容一样糟糕。

http://i.stack.imgur.com/lFafj.png

而且 AFAIK DNS 循环方法不仅是负载平衡的坏主意,而且不提供故障转移机制。如果其中一台服务器出现故障,一些人(使用缓存的 DNS IP)仍会尝试连接到不可用的服务器。忘记短 TTL - 这不是正确的解决方案。

http://i.stack.imgur.com/mTLRf.png

需要考虑的一件非常重要的事情:我希望将我的VPS 划分到多个数据中心,这样如果一个数据中心的电力或 ISP 出现故障,网站就不会关闭。

我能想到的唯一 2 个解决方案是依赖 dns 循环(如果服务器出现故障,至少将内容提供给一定比例的用户直到恢复),或者在数据中心购买专用服务器,为停电​​做好准备并配备有几个互联网连接(与租用甚至 10 个 VPS 相比,这是非常昂贵的)。

所以问题是:在拥有多个负载平衡 VPS 时避免单点故障的正确方法什么?

请原谅图片。它们只是我的意思的基本示例。

domain-name-system vps high-availability load-balancing round-robin

5
推荐指数
1
解决办法
3244
查看次数

带有 SSL 和粘性会话的 HAProxy

我们正在尝试设置 HAProxy (v1.5.1) 以使用 SSL。

虽然我们设法做到了这一点,但我们在循环设置方面遇到了一些问题:

我们确实想要棒会话,但是 haproxy 似乎将所有会话(来自不同浏览器)发送到同一个节点 ( my.vm.2),即使另一个节点 ( my.vm.1) 也可用。所以看起来循环设置不能正常工作。

这是我们当前的配置,我们将不胜感激一些帮助/想法。:):

global
   debug
   stats socket /etc/haproxy/haproxysock level admin
   tune.ssl.default-dh-param 2048

defaults
   mode http
   balance roundrobin
   timeout connect 5s
   timeout queue   300s
   timeout client  300s
   timeout server  300s

frontend https_frontend
   bind *:8443
   mode tcp
   reqadd X-Forwarded-Proto:\ https
   default_backend my_backend


backend my_backend
   mode tcp
   stick-table type ip size 200k expire 30m
   stick on src
   default-server inter 1s
   server my.vm.1 my.vm.1:8443 check id 1 maxconn 500
   server …
Run Code Online (Sandbox Code Playgroud)

ssl haproxy sticky-sessions round-robin

5
推荐指数
2
解决办法
3万
查看次数

具有多个 A 记录的 PowerDNS CNAME 会产生意外结果

据我所知,这个问题与 PowerDNS 无关。这些服务器运行两个软件包pdns-static-3.0.1-1.i386.rpmpdns-recursor-3.3-1.i386.rpm运行最新版本的 Amazon Linux。

亚马逊 ec2 负载均衡器分配有多个主机的 CNAME。下面是实际行为的示例。请注意主机如何始终保持相同的顺序。

[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has address aaa.aaa.aaa.aaa
xxxxx.us-east-1.elb.amazonaws.com has address bbb.bbb.bbb.bbb
[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has address aaa.aaa.aaa.aaa
xxxxx.us-east-1.elb.amazonaws.com has address bbb.bbb.bbb.bbb
[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has address aaa.aaa.aaa.aaa
xxxxx.us-east-1.elb.amazonaws.com has address bbb.bbb.bbb.bbb
Run Code Online (Sandbox Code Playgroud)

主机的预期行为是循环赛

[root@localhost ~]# host cache.domain.com
cache.domain.com is an alias for xxxxx.us-east-1.elb.amazonaws.com.
xxxxx.us-east-1.elb.amazonaws.com has …
Run Code Online (Sandbox Code Playgroud)

a-record cname-record powerdns round-robin

3
推荐指数
1
解决办法
6840
查看次数

Linux 上的网络绑定模式 balance-rr / 802.3ad layer3+4

balance-rrxmit_hash_policy 设置为 layer3+4 的802.3ad 什么区别。

https://www.kernel.org/doc/Documentation/networking/bonding.txt

layer3+4:此算法不完全符合 802.3ad。包含分段和未分段数据包的单个 TCP 或 UDP 会话将看到跨两个接口的数据包。这可能会导致无序交付。大多数流量类型不符合此标准,因为 TCP 很少对流量进行分段,并且大多数 UDP 流量不涉及扩展对话。802.3ad 的其他实现可能会也可能不会容忍这种不合规性。

load-balancing bonding round-robin

3
推荐指数
1
解决办法
2076
查看次数

我的 BIND 区域真的提供冗余和负载平衡吗?

我们有以下 IP 地址(例如):

1.1.1.1
2.2.2.2
Run Code Online (Sandbox Code Playgroud)

每个托管相同的网站,但在不同的服务器上。我们希望通过让 Web 用户对每个请求访问不同的 IP 地址来做一些非常简单的负载平衡。我们的应用程序完全支持这一点,因此不存在身份验证等技术问题。

我想我已经开始工作了,但我不确定。如果我使用 nslookup 来查询区域,那么 IP 会以循环方式交替,这很酷。

Addresses:  1.1.1.1
      2.2.2.2
Run Code Online (Sandbox Code Playgroud)

...

Addresses:  2.2.2.2
      1.1.1.1
Run Code Online (Sandbox Code Playgroud)

我观察到如果 http 服务器在第一个 IP 上不可用,Web 浏览器将只使用第二个 IP,这也很酷。

然而,这似乎真的很难测试,因为一旦浏览器有了 IP(例如 Chrome),它就会坚持下去。也许这是一件好事?那么,根据我的解释,这听起来像它可以作为具有冗余的负载平衡器吗?

domain-name-system bind high-availability round-robin

2
推荐指数
1
解决办法
851
查看次数

DNS Round Robin 仅在出现故障时才出现?

我有两台服务器,在处理能力和负载方面具有相同的能力。我想要完成的是:(我已经拥有并运行 DNS 服务器,所以这应该不是问题)。

服务器 A 将向 sub.domain.com 的所有传入请求提供服务,服务器 B 仅在服务器 A 停机时提供服务,如果需要等待片刻来决定,那没关系。

是否可以?加权循环不能满足我的需要,常规循环也不能,因为如果第一个请求成功传递,它只会前进到下一个服务器。

有没有办法让它在服务器 A 上的 sub.domain.com 不可用时转发到服务器 B,直到 A 上线?

谢谢,这真的有助于我的项目的一致性。

domain-name-system load-balancing uptime round-robin

2
推荐指数
1
解决办法
2194
查看次数

使用循环 DNS 进行 DDoS 缓解?

好的,所以我和我的朋友正在建立一个新网站。我们预计会有严重的 DDoS 攻击,所以我们的计划是使用 nginx 从各种云服务器进行代理,这样人们就无法找到我们实际服务器的 IP。

然而,我们需要将所有这些代理服务器链接到一个域,这样当域(我们会说 domain.com)被请求时,它会选择一个代理服务器来发送用户并将它们粘贴在那里。然而,它还需要检查它发送给用户的服务器是否真的启动并运行(并且有互联网连接)。如果将用户发送到的服务器受到攻击,那么首先就违背了代理服务器的目的。

关于如何做到这一点的任何想法?

domain-name-system proxy ddos round-robin

-2
推荐指数
1
解决办法
1121
查看次数