Ubuntu 16.04,Couchbase 服务器,正在将内部 ip 解析为外部客户端
Ubuntu 16.04, Couchbase Server, internal ip being resolved to external client
我有一个有趣的场景,我的 Couchbase 服务器(6.0.0 社区版)(托管在 Ubuntu 16.04 的 AWS 上,具有内部 AWS IP 和外部 public IP)正在返回内部 IP 在外部客户端连接时返回给外部客户端。
过程是这样的:
- 客户端使用解析为 public IP 3.x.x.x
的 bootstrap DNS my.dns.com 连接到服务器
- Couchbase 服务器收到连接并returns返回一个节点 IP 地址列表,应该 是 3.x.x.x 但不是内部地址 10.x.x.x
- 然后客户端切换到使用 "preferred" IP 地址,但因为它是私有地址,所以所有 SDK 请求都挂起。
有人遇到过这个吗?这是 Ubuntu 16.04 并降级到 14.04 会有帮助吗?这是 Couchbase 服务器问题吗?
经过大量挖掘,我发现了问题所在!
- 从内部网络(在本例中为 AWS)向 Couchbase 添加节点时,我使用的是私有 IP 地址,然后从网络外部向客户端报告该地址
- 解决方案是创建 DNS 记录,例如dev.node1.mydomain.com 在本例中解析为 public DNS,由 AWS
提供
- 当网络内的一台机器访问此 DNS 时,它将解析为私有 IP
- 当机器 外部 网络访问此 DNS 时,它将解析为 public IP
在 Couchbase 服务器的服务器部分,您应该看到您为其指定的 dns 名称不是内部 IP 地址
现在,当客户端连接到 Couchbase 时,服务器将报告此 DNS 名称而不是 IP 地址。
我有一个有趣的场景,我的 Couchbase 服务器(6.0.0 社区版)(托管在 Ubuntu 16.04 的 AWS 上,具有内部 AWS IP 和外部 public IP)正在返回内部 IP 在外部客户端连接时返回给外部客户端。
过程是这样的:
- 客户端使用解析为 public IP 3.x.x.x 的 bootstrap DNS my.dns.com 连接到服务器
- Couchbase 服务器收到连接并returns返回一个节点 IP 地址列表,应该 是 3.x.x.x 但不是内部地址 10.x.x.x
- 然后客户端切换到使用 "preferred" IP 地址,但因为它是私有地址,所以所有 SDK 请求都挂起。
有人遇到过这个吗?这是 Ubuntu 16.04 并降级到 14.04 会有帮助吗?这是 Couchbase 服务器问题吗?
经过大量挖掘,我发现了问题所在!
- 从内部网络(在本例中为 AWS)向 Couchbase 添加节点时,我使用的是私有 IP 地址,然后从网络外部向客户端报告该地址
- 解决方案是创建 DNS 记录,例如dev.node1.mydomain.com 在本例中解析为 public DNS,由 AWS 提供
- 当网络内的一台机器访问此 DNS 时,它将解析为私有 IP
- 当机器 外部 网络访问此 DNS 时,它将解析为 public IP
在 Couchbase 服务器的服务器部分,您应该看到您为其指定的 dns 名称不是内部 IP 地址
现在,当客户端连接到 Couchbase 时,服务器将报告此 DNS 名称而不是 IP 地址。