getaddrinfo目标地址选择逻辑

时间:2016-08-25 10:05:02

标签: c glibc

我正在尝试使用DNS服务器在8个节点之间进行负载平衡。设置就像我将映射一个主机名,比如my.example.com和8 ip,并为我的DNS服务器配置ttl为1。

ips就像是10.9.20.31 - 34和10.9.20.21 - 24.期望就像每一秒后我将获得31-34和21-24的新ip,而我决定使用getaddrinfo。但我看到只有33和34得到解决,所有其他IP都没有得到解决。 (即)getaddrinfo的排序逻辑总是更喜欢33和34.

是否可以使getaddrinfo使用所有的ips。我浏览了/etc/gai.conf但不太确定设置。有人可以给我一些帮助来克服这一点。

谢谢,

1 个答案:

答案 0 :(得分:0)

原来,IP地址排序逻辑是getaddrinfo库函数最重要的特性。它根据RFC3484工作,并且主要阻碍我们使用的是目标地址选择的规则#9。

我们不能拒绝。但我们可以配置我们的IP这样的方式,以便这种排序算法不会被触发。我做的一种方法是在不同的子网中使用源和目标IP。