Мы переносим наши веб-приложения на AWS. Чтобы соединить нашу локальную сеть и AWS, мы создали VPN-соединение. Это работает без проблем.
Локально у нас есть MS AD (2008 R2), который является официальным сервером (среди прочего) для ourcompany.tld (не фактическое имя домена;))
В AWS мы хотим, чтобы все внутренние службы назывались следующим образом: * .dev.ourcompany.tld. Этот DNS должен быть разрешен внутренним маршрутом53.
На AWS общедоступные ресурсы называются * .ourcompany.tld. Этот DNS разрешается нашими собственными серверами имен. (работает)
В нашей локальной сети мы хотим иметь возможность разрешать someserver.dev.saa.nl. Для этого нашему MS ActiveDirectory нужно указать, что нужно выполнить поиск в AWS для этого доменного имени.
Внутренний маршрут AWS53 доступен только из AWS VPC. AD не может связаться с этим напрямую.
Внутренний маршрут AWS53 доступен только через сервер пересылки VPC DNS, который не является авторитетным.
MS AD требует авторитетного источника для stub-зон и условных серверов пересылки.
Что мы сделали / попробовали
искал документы AWS. Единственное правильное решение, которое мы нашли, это https://aws.amazon.com/blogs/security/how-to-set-up-dns-resolution-between-on-premises-networks-and-aws-using-aws-directory-service-and-amazon- маршрут-53 / Однако во франкфуртском регионе (к которому мы связаны правилами) нет простого AD. Полная версия MS AD на AWS также будет работать, но мы не готовы платить 300+ евро в месяц за пересылку DNS.
Обратитесь в службу поддержки AWS. После недели долгого ожидания они, кажется, все еще не понимают сути проблемы. У нас есть план поддержки бизнеса.
Может ли кто-нибудь дать несколько советов о том, как мы можем решить эту проблему с помощью нашей существующей AD?
Обновить: Маршрутизация другого домена на внутренний маршрут 53 AWS работает путем простого игнорирования ошибки с помощью условной пересылки. Однако для поддомена нам нужно будет сделать делегирование, которое, в свою очередь, выдает SERVFAIL при запросе.
Обновление 2: Кажется, это невозможно. Также отказалась техническая поддержка AWS. Теперь мы зарегистрировали другое доменное имя для всех наших серверов и сервисов и использовали фиксированный DNS в нашей AD для настройки сервисов, используемых другими, кроме ИТ-отдела. с прокси в EC2, который переводит его в имена LB DNS.
Если я правильно понял, у нас есть два ограничения:
С этими ограничениями мы должны разработать решение, которое 1) заставит AD думать, что он общается напрямую с Route53 и 2) заставит Route53 думать, что запросы DNS поступают с IP в VPC.
Один из возможных ответов: NAT - преобразование сетевых адресов, вот как бы я это сделал:
Создайте небольшой экземпляр EC2, например, Amazon Linux и Отключить "Проверка источника / назначения" в сетевых настройках экземпляра. Возможно, также дайте ему фиксированный частный IP-адрес. И разрешите входящий TCP и UDP-порт 53 в группе безопасности.
Разрешить переадресацию IP в /etc/sysctl.conf
установив net.ipv4.ip_forward=1
Настроить iptables
на экземпляре для перенаправления всего входящего трафика с порта 53 на Route53, т.е. VPC-CIDR + 2. Что-то вроде:
iptables -t nat -A PREROUTING -p tcp --dport 53 \
-s <on-prem-cidr> -j DNAT --to <VPC-CIDR+2>
iptables -t nat -A PREROUTING -p udp --dport 53 \
-s <on-prem-cidr> -j DNAT --to <VPC-CIDR+2>
Укажите AD на частный IP-адрес этого экземпляра. Трафик DNS будет преобразован в NAT и перенаправлен на Route53, который будет думать, что он исходит от VPC, и ответит на него. Также AD будет доволен, потому что ответ придет непосредственно от авторитетного сервера имен.
Надеюсь, это поможет :)
Сделать это можно следующим образом:
У меня была такая же ситуация, хотя авторитетный сервер не был MS AD в нашей локальной среде. Для решения вопроса написал плагин для CoreDNS который ведет себя как авторитетный сервер имен, используя Amazon VPC DNS в качестве бэкэнда. Теперь это работает в нашей среде.