Назад | Перейти на главную страницу

Внутреннее разрешение DNS в системе Java AppEngine

Как и многие организации, у нас есть обширная внутренняя инфраструктура, которая отображается за внутренними именами DNS (int.organization.com). Это пространство имен DNS настроено в конфигурации разделенного DNS, где устройства ВНУТРИ нашего брандмауэра могут использовать наши DNS-серверы для разрешения внутренних имен, а внешние системы не могут их разрешить.

По мере того, как наши команды расширяются до использования AppEngine, у нас возникают проблемы с поиском схемы, в которой мы можем продолжать использовать внутренние / защищенные записи DNS (config.int.organization.com) вместо того, чтобы непреднамеренно подвергать нашу инфраструктуру общедоступному DNS.

Обычно на облачных инстансах (ВМ) мы просто перезаписываем /etc/resolv.conf, чтобы использовать наши внутренние DNS-серверы (через VPN). Это прекрасно работает.

Для AppEngine (управляемых виртуальных машин) и механизма контейнера у нас, похоже, нет возможности переопределить resolv.conf (он отображается в режиме только для чтения с хоста докеров). Мы вкратце рассмотрели возможность переопределения DNS-серверов в Java и не смогли подтвердить эту функциональность.

Разве использование внутренних / частных DNS-серверов не является шаблоном, совместимым с AppEngine / ContainerEngine? Какие шаблоны используют люди для защиты своей инфраструктуры / именования?

Специфический DNS для Java

Вы также можете переопределить DNS-серверы специально в своем приложении, используя:

sun.net.spi.nameservice.nameservers=<server1_ipaddr,server2_ipaddr ...>

За http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html

Вы можете использовать директивы в Dockerfile из Гибкая среда (когда-то «Управляемая виртуальная машина») для редактирования системных файлов, таких как /etc/resolv.conf.