我已经设置了 redhat 的 Openshift 来源实例,有时无法从外部解析各个应用程序的域。
我有两台物理机器正在运行,它们都有自己的公共 IP 地址。一台设置为代理 (broker.cloud.example.com),另一台是 openshift 节点 (node-1.cloud.example.com)。我使用 oo-install 工具安装了 openshift origin。oo-install 在代理上设置绑定。
这些应用程序在自己的域(我们称之为 example-cloud.com)上运行,因此它们的名称是«app»-«namespace».example-cloud.com
。代理上的绑定将其正确解析为CNAME
node-1.cloud.example.com.
。我已将代理设置为 example-cloud.com 的权威服务器。代理不对 example.com 或 cloud.example.com 区域负责。
大多数情况下,此设置都运行良好。但有时,应用程序的名称无法解析。我发现dig
,在这些情况下,查询(向我的 ISP 的 DNS 服务器)会产生以下结果:
;; ANSWER SECTION:
«app»-«namespace».example-cloud.com. 14400 IN CNAME node-1.cloud.example.com.
而在正常情况下(当解析工作正常时),答案部分包含一行附加行:
;; ANSWER SECTION:
«app»-«namespace».example-cloud.com. 14400 IN CNAME node-1.cloud.example.com.
node-1.cloud.example.com. 14400 IN A x.x.x.x
当我直接询问代理时,我只得到前者(这让我相信它的配置不正确)。如果我在代理的绑定实例上启用递归查询,我会得到后者。
但我听说回答递归查询的服务器很危险,所以我再次禁用了它(因此我的关于递归和转发之间的区别的问题)。
所以我想我的问题如下:
- 我是否对代理进行了错误配置?
- 如果是这样…
- 我如何解决它?
- 有没有办法允许对 *.cloud.example.com 进行递归查询但不允许对其他域进行递归查询?
- 这是 oo-install 中的一个错误吗?
- 如果不…
- cloud.example.com 的 DNS 可能有故障吗?
- 我该如何测试呢?
- 如果是这样…
- 或者,以 openshift 无关的方式表述(因为 DNS 专家的数量可能比 openshift 专家的数量还多):如果某个服务器对某个区域具有权威性,并且它在另一个区域中返回 CNAME,是否也需要(递归地)解决这个问题?
更新
依靠oo-accept-broker
经纪商收益
PASS
绑定配置文件
猫/etc/named.conf
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
// NOTE: I’ve added the public IP addresses of the broker and the node to this list.
// This is where I put “any” to “enable recursive queries on the broker’s bind instance” (see above)
allow-recursion {x.x.x.x;y.y.y.y;"localhost";"localnets";};
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
// set forwarding to the next nearest server (from DHCP response
forward only;
include "forwarders.conf";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// use the default rndc key
include "/etc/rndc.key";
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
include "/etc/named.rfc1912.zones";
include "example-cloud.com.key";
zone "example-cloud.com" IN {
type master;
file "dynamic/example-cloud.com.db";
allow-update { key example-cloud.com ; } ;
};
// create a place for openshift infrastructure ip/name mapping
include "oo_infrastructure.conf";
猫/var/named/oo_infrastructure.conf
// no openshift infrastructure zone