Я установил экземпляр Redhat's Openshift origin, и иногда у меня возникают проблемы с разрешением доменов отдельных приложений извне.
У меня работают две физические машины, обе со своими общедоступными IP-адресами. Один настроен как брокер (broker.cloud.example.com), другой - узел openshift (node-1.cloud.example.com). Я установил openshift origin с помощью инструмента oo-install. 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
в том, что в этих случаях запрос (к 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
Когда я спрашиваю брокера напрямую, я получаю только первое (что заставляет меня думать, что он настроен неправильно). Если я включаю рекурсивные запросы в экземпляре привязки брокера, я получаю последнее.
Но я слышал, что серверы, отвечающие на рекурсивные запросы, опасны, поэтому я снова отключил их (отсюда и мой вопрос о различиях между рекурсивной и пересылкой).
Итак, я предполагаю, что мои вопросы следующие:
Обновить
Бег 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";
cat /var/ named/oo_infrastructure.conf
// no openshift infrastructure zone