BIND(DNS) переадресация запросов к несуществующим страницам (необходима помощь в настраивании BIND(DNS) сервера)
Модераторы: SLEDopit, Модераторы разделов
-
Mc_Magister_ufo
- Сообщения: 7
BIND(DNS) переадресация запросов к несуществующим страницам
необходима помощь в настраивании BIND(DNS) сервера. чтобы он работал как простой DNS + еще вот в таком режиме:
При запросе пользователем не существующей страницы, DNS сервер определяет что запрашиваемая страница не существует, и переадресовывал пользователя на гугл или яндекс(переадресовывал не обязательно на гугл или яндекс, главное чтобы переадресовывал на какую-то страницу, которую выбрал отец одмин))))
- желательно чтобы на этой странице было реализовано что-то типа поисковика, который ищет наиболее подходящие варианты страниц схожих с запрашиваемой.
- или можно чтобы он просто переадресовывал на какую-то страницу.
у меня стоит солярка 10, а BIND версии 9.6.1-р1, думаю в данной проблеме не важна платформа))
не могли бы вы помочь мне в поиске решения данного проекта или хотя бы подсказать куда постучаться)) и как бы задача не новая, я думаю уже есть готовые решения)) может кто-нибудь знает их))
i need help:)
При запросе пользователем не существующей страницы, DNS сервер определяет что запрашиваемая страница не существует, и переадресовывал пользователя на гугл или яндекс(переадресовывал не обязательно на гугл или яндекс, главное чтобы переадресовывал на какую-то страницу, которую выбрал отец одмин))))
- желательно чтобы на этой странице было реализовано что-то типа поисковика, который ищет наиболее подходящие варианты страниц схожих с запрашиваемой.
- или можно чтобы он просто переадресовывал на какую-то страницу.
у меня стоит солярка 10, а BIND версии 9.6.1-р1, думаю в данной проблеме не важна платформа))
не могли бы вы помочь мне в поиске решения данного проекта или хотя бы подсказать куда постучаться)) и как бы задача не новая, я думаю уже есть готовые решения)) может кто-нибудь знает их))
i need help:)
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: BIND(DNS) переадресация запросов к несуществующим страницам
мне кажется, что у вас ничего не выйдет.
максимум, чего вы добъетесь это того, что при запросе, допустим
linaxforum.ru/index.php?showtopic=100761
пользователь попадет на
<ipшник google.ru>/index.php?showtopic=100761
и, есстественно ничего там не увидит.
ваша задача должна решаться скорее на прокси-сервере.
максимум, чего вы добъетесь это того, что при запросе, допустим
linaxforum.ru/index.php?showtopic=100761
пользователь попадет на
<ipшник google.ru>/index.php?showtopic=100761
и, есстественно ничего там не увидит.
ваша задача должна решаться скорее на прокси-сервере.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Mc_Magister_ufo
- Сообщения: 7
Re: BIND(DNS) переадресация запросов к несуществующим страницам
Ленивая Бестолочь писал(а): ↑25.09.2009 09:20мне кажется, что у вас ничего не выйдет.
максимум, чего вы добъетесь это того, что при запросе, допустим
linaxforum.ru/index.php?showtopic=100761
пользователь попадет на
<ipшник google.ru>/index.php?showtopic=100761
и, есстественно ничего там не увидит.
ваша задача должна решаться скорее на прокси-сервере.
1. для начала хотелось бы чтобы просто переадресовывала на другую страницу, не важно есть ли там поисковик или нету.
2. если данную задачу решать на прокси сервере, то как она даолжна решаться? вроде как функции прокси сервера это:
- безопасность(анализ контекста полученного извне).
- уменьшения трафика за счет кэширования запрашиваемых страниц.
если мне память не изменяет, то функции переадресации в нем не включены.
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: BIND(DNS) переадресация запросов к несуществующим страницам
Mc_Magister_ufo писал(а): ↑25.09.2009 09:47если мне память не изменяет, то функции переадресации в нем не включены.
есть такие штуки, называются редиректоры.
они предназначенны для того, чтобы, когда юзер идет на сайты с порнухой перенаправлять его на сайт с надписью "ай-яй-яй сюда низя".
самые известные из них: squidguard и rejik.
Mc_Magister_ufo писал(а): ↑25.09.2009 09:47для начала хотелось бы чтобы просто переадресовывала на другую страницу, не важно есть ли там поисковик или нету.
вы понимаете, что юзер ваш открывает адрес, допустим, www.site.com/index.php?a=2
все, что делает днс в данном случае - это сообщает его машине адрес www.site.com.
юзер ваш попадет на другой сервер, если хотите, но увидит там 404 not found, по тому, что на другом серере он будет искать страницу index.php?a=2.
если хотите, можно, конечно поставить свой www сервер и настроить его так, чтобы он на любую запрашиваемую страницу что-либо выводил, но в любом случае dns-ом вы не ограничитесь.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Mc_Magister_ufo
- Сообщения: 7
Re: BIND(DNS) переадресация запросов к несуществующим страницам
для начала мне необходимо чтобы все запросы на не существующие сайты переадресовывались на один существующий сайт.
если только DNS сервером не обойтись, то что еще необходимо? да и вообще как это организовать?
потом: если перенаправить запрос на несуществующий сайт например:"www.site.com/index.php?a=2" на гугл, то мне необходимо чтобы в строке поиска сайта гуг отображалось:"www.site.com/index.php?a=2".
фишка в том что squidguard и rejik не могут определить существует сайт или нет. но если получат ответ от DNS в виде сообщения что сайт не существует, то вполне смогут его перенаправить))
ок, перенаправит он пользователя на другую страницу, например на гугл,
тогда как организовать чтобы прошлый запрос вида:"www.site.com/index.php?a=2" ввелся в строчку поиска?
если только DNS сервером не обойтись, то что еще необходимо? да и вообще как это организовать?
потом: если перенаправить запрос на несуществующий сайт например:"www.site.com/index.php?a=2" на гугл, то мне необходимо чтобы в строке поиска сайта гуг отображалось:"www.site.com/index.php?a=2".
фишка в том что squidguard и rejik не могут определить существует сайт или нет. но если получат ответ от DNS в виде сообщения что сайт не существует, то вполне смогут его перенаправить))
ок, перенаправит он пользователя на другую страницу, например на гугл,
тогда как организовать чтобы прошлый запрос вида:"www.site.com/index.php?a=2" ввелся в строчку поиска?
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: BIND(DNS) переадресация запросов к несуществующим страницам
ок, тогда давайте так посмотрим на дело:
в сквиде страницы с ошибками лежат здесь (debian): /usr/share/squid3/errors/English/
там находите ERR_DNS_FAIL
и в него засовываете:
по идее должно сработать как вы хотите (не проверял).
в сквиде страницы с ошибками лежат здесь (debian): /usr/share/squid3/errors/English/
там находите ERR_DNS_FAIL
и в него засовываете:
Код: Выделить всё
<META HTTP-EQUIV="Refresh"
CONTENT="1; URL="http://www.google.ru/#q=%U>по идее должно сработать как вы хотите (не проверял).
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
TuLiss
- Сообщения: 1611
- Статус: 01100
- ОС: Gentoo,Ubuntu,MacOS X
Re: BIND(DNS) переадресация запросов к несуществующим страницам
Mc_Magister_ufo писал(а): ↑25.09.2009 16:05фишка в том что squidguard и rejik не могут определить существует сайт или нет. но если получат ответ от DNS в виде сообщения что сайт не существует, то вполне смогут его перенаправить))
А вы не думали, что большенство доменов купленны и так или реклама или предложение о перекупки.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
-
Olden Gremlin
- Сообщения: 365
- Статус: RAP22-RIPE
- ОС: Debian GNU/Linux Wheezy
Re: BIND(DNS) переадресация запросов к несуществующим страницам
DNS сервер по определению не будет проверять начилие страниц на серверах. DNS - это резолвинг мнемонического имени в ip. Максимум, что он поможет сделать, так это отдетектить отсутствие соответствующей связки - мнемоническое имя не связано ни с каким ip.Mc_Magister_ufo писал(а): ↑25.09.2009 09:11DNS сервер определяет что запрашиваемая страница не существует
Для той задачи, что ставится выше надо использовать другие средства. Может быть Squid поможет?
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
-
Mc_Magister_ufo
- Сообщения: 7
Re: BIND(DNS) переадресация запросов к несуществующим страницам
вообщем покавырявшись нашел одну темку)))
выписка из книги:
"
Если сделать один или несколько серверов площадки ретранслятора¬
ми, DNS-серверы будут посылать внешние запросы прежде всего этим
серверам. Идея состоит в том, что ретранслятор обрабатывает все
внешние запросы для площадки, параллельно занимаясь накоплени¬
ем кэшированной информации. Для произвольного запроса данных из
внешней зоны существует высокая вероятность того, что ретранслятор
в состоянии ответить на запрос данными из кэша, что избавляет про¬
чие серверы от необходимости посылать внешние запросы. Чтобы сде¬
лать конкретный DNS-сервер ретранслятором, не нужны какие-либо
специальные действия - настраивать следует все прочие серверы пло¬
щадки, чтобы они направляли свои запросы ретрансляторам.
Рабочий процесс несколько изменяется для первичного или вторичного
DNS-сервера, который настроен на использование ретранслятора.
Если клиент запрашивает записи, которые входят в область авторите¬
та DNS-сервера, либо содержатся в кэшированных данных, DNS-сер-
вер возвращает информацию самостоятельно: в этой части ничего не
изменилось. Но если записи отсутствуют в базе данных, DNS-сервер
посылает запрос ретранслятору и в течение небольшого промежутка
времени ожидает ответа, после чего начинает итеративный процесс
разрешения имени. Этот режим работы называется приоритетом ре¬
трансляции. Разница в данном случае лишь в том, что DNS-сервер посылает
ретранслятору рекурсивные запросы, ожидая, что ретранслятор
самостоятельно найдет ответ. Во всех прочих случаях DNS-сервер
посылает другим серверам нерекурсивные запросы.
"
есть такая фишка в DNS технологиях как forwarding, то есть на DNS сервере прописывается список DNS серверов на которые будет пересылаться рекурсивно запрос на resolving в том порядке в котором они будут прописаны в списке.
только возникает вопрос: насколько рекурсивен запрос? в данном случае DNS сервера, на котрые переслали рекурсивно запрос с помощью технологии forwarding, просто проверяют есть ли данная страница у них в кэше или в зонах где они авторитетны, либо они еще могут переслать запрос на рутовые, например, DNS сервера?
если они еще могут пересылать, то можно сделать такую темку:
на DNS сервере, который прописан на DNS клиенте, прописываем Forwarding на DNS А и после на DNS B.
DNS А имеет связь с рутовыми DNS серверами.
а DNS B не имеет какой-либо связи с инетом, но на нем создан список не сущестующих страниц, которые переадресовывают все на одну и туже страничку.
теперь все по стадиям:
DNS клиен запрашивает не существующую страницу.
DNS сервер ретранслирует(forwarding) запрос на DNS A.
DNS А проверяет наличие данной страницы в инете и у себЯ в зоне и в кэше. отвечает что данная страница не существует.
DNS получет сообщение о том что данная страница не существует, после чего ретранслирует запрос на DNS В.
а в DNS В прописанна данная страница и соответствующий ей IP.
правда вопрос еще один возникает: в DNS когда прописывается соответствие IP и имени, можно ли все каие существуют имена обозхначить как *?
данный метод конечно очень геморный, и тупой)) но блин искать в исходнике где там прописан ответ о том что не существует страница и его менять на IP сайта на котрый мы хотим направить юзера.
а сквид юзать не желаетльно, так как у пользователей мы не хотим прописывать строчку типа: использовать проксисервер для соединения с инетом. хотя конечно его можно постаить между 2мя DNS серверами))) и тем самым весь гемор избежать))
выписка из книги:
"
Если сделать один или несколько серверов площадки ретранслятора¬
ми, DNS-серверы будут посылать внешние запросы прежде всего этим
серверам. Идея состоит в том, что ретранслятор обрабатывает все
внешние запросы для площадки, параллельно занимаясь накоплени¬
ем кэшированной информации. Для произвольного запроса данных из
внешней зоны существует высокая вероятность того, что ретранслятор
в состоянии ответить на запрос данными из кэша, что избавляет про¬
чие серверы от необходимости посылать внешние запросы. Чтобы сде¬
лать конкретный DNS-сервер ретранслятором, не нужны какие-либо
специальные действия - настраивать следует все прочие серверы пло¬
щадки, чтобы они направляли свои запросы ретрансляторам.
Рабочий процесс несколько изменяется для первичного или вторичного
DNS-сервера, который настроен на использование ретранслятора.
Если клиент запрашивает записи, которые входят в область авторите¬
та DNS-сервера, либо содержатся в кэшированных данных, DNS-сер-
вер возвращает информацию самостоятельно: в этой части ничего не
изменилось. Но если записи отсутствуют в базе данных, DNS-сервер
посылает запрос ретранслятору и в течение небольшого промежутка
времени ожидает ответа, после чего начинает итеративный процесс
разрешения имени. Этот режим работы называется приоритетом ре¬
трансляции. Разница в данном случае лишь в том, что DNS-сервер посылает
ретранслятору рекурсивные запросы, ожидая, что ретранслятор
самостоятельно найдет ответ. Во всех прочих случаях DNS-сервер
посылает другим серверам нерекурсивные запросы.
"
есть такая фишка в DNS технологиях как forwarding, то есть на DNS сервере прописывается список DNS серверов на которые будет пересылаться рекурсивно запрос на resolving в том порядке в котором они будут прописаны в списке.
только возникает вопрос: насколько рекурсивен запрос? в данном случае DNS сервера, на котрые переслали рекурсивно запрос с помощью технологии forwarding, просто проверяют есть ли данная страница у них в кэше или в зонах где они авторитетны, либо они еще могут переслать запрос на рутовые, например, DNS сервера?
если они еще могут пересылать, то можно сделать такую темку:
на DNS сервере, который прописан на DNS клиенте, прописываем Forwarding на DNS А и после на DNS B.
DNS А имеет связь с рутовыми DNS серверами.
а DNS B не имеет какой-либо связи с инетом, но на нем создан список не сущестующих страниц, которые переадресовывают все на одну и туже страничку.
теперь все по стадиям:
DNS клиен запрашивает не существующую страницу.
DNS сервер ретранслирует(forwarding) запрос на DNS A.
DNS А проверяет наличие данной страницы в инете и у себЯ в зоне и в кэше. отвечает что данная страница не существует.
DNS получет сообщение о том что данная страница не существует, после чего ретранслирует запрос на DNS В.
а в DNS В прописанна данная страница и соответствующий ей IP.
правда вопрос еще один возникает: в DNS когда прописывается соответствие IP и имени, можно ли все каие существуют имена обозхначить как *?
данный метод конечно очень геморный, и тупой)) но блин искать в исходнике где там прописан ответ о том что не существует страница и его менять на IP сайта на котрый мы хотим направить юзера.
а сквид юзать не желаетльно, так как у пользователей мы не хотим прописывать строчку типа: использовать проксисервер для соединения с инетом. хотя конечно его можно постаить между 2мя DNS серверами))) и тем самым весь гемор избежать))
-
Olden Gremlin
- Сообщения: 365
- Статус: RAP22-RIPE
- ОС: Debian GNU/Linux Wheezy
Re: BIND(DNS) переадресация запросов к несуществующим страницам
Категорически хочу поинтересоваться известна ли тебе разница между терминами "страница" и "хост"?
DNS сервер - резолвит имена хостов в ip и наоборот. О страницах на web-серверах он никакого понятия, по определению, не имеет!
В чём различие между рекурсивными и нерекурсивными запросами, с чем едять форвардинг запросов, в чём различие кешируещего от не кеширующего dns можно попробовать почитать, например, в умной книжке издательства O'Reilly "DNS и BIND"...
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
-
Mc_Magister_ufo
- Сообщения: 7
Re: BIND(DNS) переадресация запросов к несуществующим страницам
данная книга прочитана)) разница между хостом и страницей мне известна, спешил когда печатал)) потому и ошибся
-
Mc_Magister_ufo
- Сообщения: 7
Re: BIND(DNS) переадресация запросов к несуществующим страницам
Был развернут тестовый стенд состоящий из 3-х DNS серверов на основе BIND 9.6.1p1(DNS A; DNS B; DNS C), и рабочей станции Windows, с которой производятся запросы к DNS серверу(DNS A).
На тестовом стенде DNS A настроен как ретранслирующий DNS сервер. DNS A ретранслирует запросы на DNS B, DNS C. Так же DNS А является не кэширующим DNS сервером.
В конфигурационном файле DNS В прописано что все запросы на домен sys11.ru переводятся на IP_sys11.ru.
В конфигурационном файле DNS C прописана маска переводящая все запросы на домен *.ru на IP_any.
При осуществлении запроса с рабочей станции Windows: "ping yar.ru", мы наблюдаем через сниффер что:
1. Windows направила DNS запрос на DNS А о предоставлении информации о yar.ru.
2. DNS А отправило рекурсивный запрос DNS В о наличии информации о "yar.ru".
3. DNS В ответила что данной информацией не обладает.
4. DNS А отправило рекурсивный запрос DNS С о yar.ru, на что DNS С предоставил информацию о том что данный домен находится по адресу IP_any.
5. DNS A отправила DNS ответ рабочей станции Windows что yar.ru находится по адресу IP_any.
6. Рабочая станция Windows начала отправлять ICMP запросы на IP адрес IP_any.
После осуществления данного запроса с рабочей станции Windows, данная рабочая станция запрашивает: "ping sys11.ru". при осуществлении последнего запроса наблюдается сниффером следующее:
1. Windows направила DNS запрос на DNS А о предоставлении информации о sys11.ru.
4. DNS А отправило рекурсивный запрос DNS С о sys11.ru, на что DNS С предоставил информацию о том что данный домен находится по адресу IP_any.
5. DNS A отправила DNS ответ рабочей станции Windows что yar.ru находится по адресу IP_any.
6. Рабочая станция Windows начала отправлять ICMP запросы на IP адрес IP_any.
В связи с этим возникает вопрос:
Что необходимо сделать чтобы DNS запросы от DNS A сначала обрабатывались DNS B, и только после получения отрицательного ответа обрабатывались DNS сервером DNS C?
вообщем выработал такой вот метод решения, он наверное не самый удачный, но все же))
вообщем заюзал форвардинг-онли.
сначала запрос от клиента приходит на DNS А, он его форвардит на DNS B, который выясняет существует такой домен или нет.
DNS B отвечает что данный домен не существует, и DNS A отправляет запрос DNS C, где все запросы на домен .ru преобразуются в один IP с помошью маски:
* IN A 10.0.0.1;
Но случился трабл))
видно DNS А и DNS C обмениваются информацией о том что DNS C переводит все запросы на домен .ru в один и тот же IP
теперь у меня они все проходят мимо DNS B и сразу направляются к DNS С, но если обращаюсь к домену .com, то DNS A направляет запрос сначала DNS B, а потом DNS С если DNS B ответил что не существует данный домен.
задал на DNS A запись типа max-xahxe-size 0;
и все равно наблюдаю данный трабл. думаю что трабл не в том что запросы кэшируются. видно в чем-то другом. не подскажите в чем?
На тестовом стенде DNS A настроен как ретранслирующий DNS сервер. DNS A ретранслирует запросы на DNS B, DNS C. Так же DNS А является не кэширующим DNS сервером.
В конфигурационном файле DNS В прописано что все запросы на домен sys11.ru переводятся на IP_sys11.ru.
В конфигурационном файле DNS C прописана маска переводящая все запросы на домен *.ru на IP_any.
При осуществлении запроса с рабочей станции Windows: "ping yar.ru", мы наблюдаем через сниффер что:
1. Windows направила DNS запрос на DNS А о предоставлении информации о yar.ru.
2. DNS А отправило рекурсивный запрос DNS В о наличии информации о "yar.ru".
3. DNS В ответила что данной информацией не обладает.
4. DNS А отправило рекурсивный запрос DNS С о yar.ru, на что DNS С предоставил информацию о том что данный домен находится по адресу IP_any.
5. DNS A отправила DNS ответ рабочей станции Windows что yar.ru находится по адресу IP_any.
6. Рабочая станция Windows начала отправлять ICMP запросы на IP адрес IP_any.
После осуществления данного запроса с рабочей станции Windows, данная рабочая станция запрашивает: "ping sys11.ru". при осуществлении последнего запроса наблюдается сниффером следующее:
1. Windows направила DNS запрос на DNS А о предоставлении информации о sys11.ru.
4. DNS А отправило рекурсивный запрос DNS С о sys11.ru, на что DNS С предоставил информацию о том что данный домен находится по адресу IP_any.
5. DNS A отправила DNS ответ рабочей станции Windows что yar.ru находится по адресу IP_any.
6. Рабочая станция Windows начала отправлять ICMP запросы на IP адрес IP_any.
В связи с этим возникает вопрос:
Что необходимо сделать чтобы DNS запросы от DNS A сначала обрабатывались DNS B, и только после получения отрицательного ответа обрабатывались DNS сервером DNS C?
вообщем выработал такой вот метод решения, он наверное не самый удачный, но все же))
вообщем заюзал форвардинг-онли.
сначала запрос от клиента приходит на DNS А, он его форвардит на DNS B, который выясняет существует такой домен или нет.
DNS B отвечает что данный домен не существует, и DNS A отправляет запрос DNS C, где все запросы на домен .ru преобразуются в один IP с помошью маски:
* IN A 10.0.0.1;
Но случился трабл))
видно DNS А и DNS C обмениваются информацией о том что DNS C переводит все запросы на домен .ru в один и тот же IP
теперь у меня они все проходят мимо DNS B и сразу направляются к DNS С, но если обращаюсь к домену .com, то DNS A направляет запрос сначала DNS B, а потом DNS С если DNS B ответил что не существует данный домен.
задал на DNS A запись типа max-xahxe-size 0;
и все равно наблюдаю данный трабл. думаю что трабл не в том что запросы кэшируются. видно в чем-то другом. не подскажите в чем?