LINUX.ORG.RU
ФорумAdmin

BIND9. Редирект на уровне DNS.

 , , ,


1

1

Сайт BBB.RU хостится на CloudFlare (CDN). NS-адрес сайта - zelda.ns.cloudflare.com

Поднял DNS-сервер с помощью BIND9. Что прописать в DNS-зонах, чтобы с AAA.RU перенаправляло на BBB.RU ?



Последнее исправление: doccccc (всего исправлений: 3)

поставь какой-нибудь вебсервер типа nginx и в нем сделай перманентный редирект с AAA.RU на BBB.RU

Да, bind зря поставил, бро :)

v9lij ★★★★★
()
Ответ на: комментарий от anc

А http заголовки кто переписывать будет?

Браузер при соединении сначала резолвит url, подключается на полученный IP, но в заголовке http всё-равно передаёт указанный url. Собственно так реализуются все virtual-hosting на одном IP.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

Не вижу проблемы, если в виртуал хостах прописан и AAA.RU. Вот например у меня прописано н-цать имен на один и тот же реальный сайт, при этом все по dns резолвят один ip, и усе работает. Повторюсь, в чем проблема?

anc ★★★★★
()
Ответ на: комментарий от anc

Ээм, во-первых, ТС не указал, что оба домена принадлежат ему. Во-вторых, перенаправление делается http-сервером для консистентности, чтоб в истории браузера правильно сохранялся адрес и аналогично в закладки можно было добавлять при миграции сайта. В третьих, в чём ваш последний комментарий противоречит тому, что я написал?

nickleiten ★★★
()

так понимаю, что надо прописать, что бы AAA.ru указывал туда же куда и BBB.ru и на веб сервере создать виртуал хост AAA.ru с редиректом на BBB. Если используется DNS хостинг для домена AAA, то и bind ставить не надо.

для apache можно как то так:

<VirtualHost *:80>
    ServerAdmin admin@BBB.ru
    DocumentRoot "/var/www/html/dummy_host_AAA.ru/"
    ServerName AAA.ru
    ServerAlias *.AAA.ru
                                                                                                                                                                  
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia full

    <proxy *>
           Order allow,deny
           Allow from all
    </proxy>

    ProxyPass        /  http://BBB.ru:80/
    ProxyPassReverse /  http://BBB.ru:80/
</VirtualHost>

samson ★★
()
Ответ на: комментарий от nickleiten

Нифига не понял причем здесь еще и закладки. Допустим у меня есть один конкретный сайт, но на него можно зайти по именам host.domain1.ru host.domain2.ru .... host.domainN.ru в dns прописан один адрес, в апаче serveralias. Повторю в чем проблема?

anc ★★★★★
()
Ответ на: комментарий от anc

Повторю в чем проблема?

У nickleiten все пункты верны, можно начать с первого: надо быть владельцем доменов domain2.ru ... domainN.ru

vodz ★★★★★
()
Ответ на: комментарий от vodz

можно начать с первого: надо быть владельцем доменов domain2.ru ... domainN.ru

Я с этим и не спорил. Можно быть владельцем домена, но не иметь доступа к хостингу сайта... продолжать играть в догадки можно бесконечно. Однако ТС описал задачу c bind-ом и я предполагаю что это все-таки его домены.

anc ★★★★★
()
Ответ на: комментарий от anc

Однако ТС описал задачу

Отписал к сожалению очень плохо, потому и гадаем, перечисляя проблемы, которые надо решить.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от vodz

Ого тут дискуссия развернулась:) Возможно ошибся с термином «редирект», но смысл-то понятен. Интересует перенаправление с AAA.RU на BBB.RU именно средствами DNS. А именно через DNAME-запись. Вот тут пример https://krash.be/node/23 Какбы всё понятно, но дело в том, что ip-адрес BBB.RU динамический, к тому же реальный ip скрывается с помощью cloudflare. Поэтому и не знаю что прописывать в конфигах. Напомню, NS-адрес сайта BBB.RU - zelda.ns.cloudflare.com AAA.RU - не мой домен. BBB.RU - мой домен.

doccccc
() автор топика
Ответ на: комментарий от anc

Проше
ServerName BBB.ru
ServerAlias *.AAA.ru

Ну да.

В спешке содрал с сервака который перенаправляет на другой веб сервер. Долго ржал сам над собой, ведь в том же конфиге алиасы были))

Но нельзя называть это «редиректом»

Так это же как, я понимяю, какраз и есть редирект - перенаправляет на др. сервер, или виртуалхост (я про proxy а не ServerAlisas). Или я не прав?

Можно еше

Redirect permanent / http://BBB.ru
или через mod_rewrite

samson ★★
()
Ответ на: комментарий от doccccc

AAA.RU - не мой домен.

а как вы тогда для него собираетесь что-либо прописать?

«редиректить» то надо именно с него на что то...

samson ★★
()
Последнее исправление: samson (всего исправлений: 1)
Ответ на: комментарий от doccccc

Интересует перенаправление с AAA.RU на BBB.RU именно средствами DNS.
AAA.RU - не мой домен.

А почему так скромно AAA.RU? Чего не google.com сразу завернуть?

anc ★★★★★
()
Ответ на: комментарий от doccccc

Так зону на своем bind вы создадите. А как пропишете ns сервера для домена AAA.ru, если он не ваш?

samson ★★
()
Ответ на: комментарий от anc

Прочитайте, пожалуйста, оба моих комментария медленно до просветления, вплоть по словам. И ещё раз уточняю - вы хотите со мной о чём-то поспорить? Я не вижу противоречий в том, что я сказал и в вашем ответе на мои слова, соответственно предмета спора, или как вы выражаетесь «проблемы» нет совсем.

ЗЫ. Что за ущербная логика/психология, отвечать подтверждением точки зрения и пытаться провоцировать спор на голом месте?

nickleiten ★★★
()
Ответ на: комментарий от doccccc

Средствами одного DNS это нереализуемо, т.к. адрес хоста передаётся в заголовках http, точка. Если хотите сделать перенаправление - ставьте nginx/lighttpd или вовсе скрипт с сокетами пишите, который будет отдавать HTTP 302 код с адресом нужного сайта.

nickleiten ★★★
()
Ответ на: комментарий от doccccc

А можно смысл действия и чуть деталей? Если это DNS в локальной сети (recursive DNS)и через него ресолвятся имена, то можно просто создать зону AAA.ru и в ней прописать CNAME. Если это что-то другое, то нужно всё в подробностях писать в OP.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Да, и наврал - нужно CNAME или A запись на reverse proxy или веб-сервер с редиректом.

slapin ★★★★★
()
Ответ на: комментарий от doccccc

Уточнение, если вы хотите с чужого домена перенаправлять на свой сайт не имея доступа к управлению доменом aaa.ru - это невозможно. В случае применения cloudflare на домене bbb.ru, вам потребуется перевести домен aaa.ru тоже на cloudflare, т.к. cloudflare - то не только DNS, но ещё и http-reverse-proxy, который выступает frontendом для указанных в нём сайтов. Если вы в панели управления cloudlfare не добавите AAA.ru, то соответственно frontend не будет обслуживать AAA.ru и пошлёт вас лесом.

Единственный возможный вариант - иметь управление доменом aaa.ru, для прописывания нужных адресов на http-redirect сервер, который будет уже перенаправлять на сайт bbb.ru

А вообще, чувствуется или непонимание области применимости стандартов/протоколов, раз возникают такие вопросы. Я не говорю о полном знании стандартов, но хотя бы понимание, что для чего применяется нужно иметь.

nickleiten ★★★
()

Редирект на уровне DNS.

такого нет.

int13h ★★★★★
()
Ответ на: комментарий от slapin

Ну да, нужно было подробней расписать проблему...

Работаю в небольшой организаций, занимающейся металлоконструкцией. У этой организации есть сайт (AAA.RU). Подрядчики, которые верстали и поддерживали этот сайт обиделись и контроль над сайтом уже несколько дней утерян. Есть похожий сайт BBB.RU, который хостится на cloudflare. Фишка cloudflare в том, что он скрывает реальный ip BBB.RU, а по «поддельному» ip на BBB.RU на зайти.

Начальник-фантазер дал задачу сделать так чтобы с AAA.RU перенаправляло на BBB.RU.

Всё это нужно реализовать только на трех десятках машин, которые не в локалке и выходят в инет «обычным способом» через маршрутизаторы.

Вот для этой цели и поднял DNS-сервер, чтобы потом ip-адрес этого сервера прописать в каждом маршрутизаторе. Этот DNS-сервер будет резолвить только эти два имени.

Что писать в зоне ВВВ.RU ?

А что писать в зоне AAA.RU ? Может это?:

AAA.RU. IN NS zelda.ns.cloudflare.com.

AAA.RU. IN DNAME BBB.RU.

Напомню, что ip-адрес BBB.RU динамический и всё работает через https, поэтому А-запись на reverse proxy не сработает. И повторюсь, контроля над AAA.RU пока нет.

Вот такая вот задачка...

doccccc
() автор топика
Ответ на: комментарий от doccccc

В DNS пишешь машину, которая сделает HTTP redirect, так как если у тебя на cloudflare не прописано отдавать и на aaa.ru и на bbb.ru то же самое, то оно ответит что виртхоста с таким именем нету. Если настроек на cloudflare есть, настрой свой второй домен по инструкции от cloudflare. Инчае сетапишь какой-нить любимый web-сервер, в нём заводишь виртуальным хостом aaa.ru и для этого хоста делаешь редирект на bbb.ru. Ресурсные записи DNS тебе нужны только A, SOA, и NS. A ставишь на IP-адрес машины-редиректора, SOA - настраиваешь по документации, NS - имя (не IP-адрес) этой же машины. В качестве доки можешь использовать утилиты dig и host от bind, например:

$ dig kernel.org

; <<>> DiG 9.9.5-9-Debian <<>> kernel.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16267
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 3, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;kernel.org.			IN	A

;; ANSWER SECTION:
kernel.org.		600	IN	A	149.20.4.69
kernel.org.		600	IN	A	199.204.44.194
kernel.org.		600	IN	A	198.145.20.140

;; AUTHORITY SECTION:
kernel.org.		86400	IN	NS	ns4.kernel.org.
kernel.org.		86400	IN	NS	ns0.kernel.org.
kernel.org.		86400	IN	NS	ns2.kernel.org.

;; ADDITIONAL SECTION:
ns0.kernel.org.		85180	IN	A	198.145.29.143
ns2.kernel.org.		85180	IN	A	149.20.4.80
ns2.kernel.org.		85180	IN	AAAA	2001:4f8:1:10::1:1
ns4.kernel.org.		85180	IN	A	199.204.44.194

$ dig soa kernel.org

; <<>> DiG 9.9.5-9-Debian <<>> soa kernel.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34341
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;kernel.org.			IN	SOA

;; ANSWER SECTION:
kernel.org.		600	IN	SOA	ns0.kernel.org. hostmaster.ns0.kernel.org. 2017030302 600 150 604800 600

;; AUTHORITY SECTION:
kernel.org.		85591	IN	NS	ns2.kernel.org.
kernel.org.		85591	IN	NS	ns0.kernel.org.
kernel.org.		85591	IN	NS	ns4.kernel.org.

;; ADDITIONAL SECTION:
ns0.kernel.org.		85069	IN	A	198.145.29.143
ns2.kernel.org.		85069	IN	A	149.20.4.80
ns2.kernel.org.		85069	IN	AAAA	2001:4f8:1:10::1:1
ns4.kernel.org.		85069	IN	A	199.204.44.194

;; Query time: 190 msec
;; SERVER: 192.168.24.1#53(192.168.24.1)
;; WHEN: Wed Mar 08 15:55:02 MSK 2017
;; MSG SIZE  rcvd: 216
$ dig ns kernel.org

; <<>> DiG 9.9.5-9-Debian <<>> ns kernel.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32541
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;kernel.org.			IN	NS

;; ANSWER SECTION:
kernel.org.		85513	IN	NS	ns2.kernel.org.
kernel.org.		85513	IN	NS	ns0.kernel.org.
kernel.org.		85513	IN	NS	ns4.kernel.org.

;; ADDITIONAL SECTION:
ns0.kernel.org.		84991	IN	A	198.145.29.143
ns2.kernel.org.		84991	IN	A	149.20.4.80
ns2.kernel.org.		84991	IN	AAAA	2001:4f8:1:10::1:1
ns4.kernel.org.		84991	IN	A	199.204.44.194

;; Query time: 24 msec
;; SERVER: 192.168.24.1#53(192.168.24.1)
;; WHEN: Wed Mar 08 15:56:20 MSK 2017
;; MSG SIZE  rcvd: 169

Теперь ты знаешь формат всех ресурсных записей.

Фабрикуешь некую свою зону:

aaa.ru 
$TTL 86400
$ORIGIN aaa.ru.
aaa.ru. INS SOA ns.aaa.ru. hostmaster.aaa.ru. (
                                                        201703101
                                                        3600
                                                        300
                                                        86400
                                                        3600 )
       3600 IN NS ns.aaa.ru.
       3600 IN A 1.2.3.4
ns     3600 IN A 1.2.3.4

в IN A подсовываешь свой IPшник. Мог накосячить так что проверь по докам. в конфиг бинда даобавляешь

zone "aaa.ru" { type master; file "/etc/bind/primary/aaa.ru"; };
после file путь к файлу. И кавычки с точками с запятой не забываем. потом релоадишь бинд и смотриш лог. Если загрузилось будет сериал номер в логе. Захочешь что поправить - не забывай увеличивать серийник и релоадить зону. Вроде по DNS всё. С остальным я думаю сам разберёшься.

slapin ★★★★★
()
Ответ на: комментарий от slapin

да, и если нужен IPv6, то адрес там в AAAA, в остальном так же.

slapin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.