LINUX.ORG.RU
ФорумAdmin

DNS-сервер и перенаправление IP-адресов


0

1

Здравствуйте! Имеется DNS-сервер на FreeBSD (обслуживает зону третьего уровня). Настроен и запущен Bind, есть файл зоны «our_shop.ru», в котором указаны записи для сайтов our_city.our_shop.ru , city2.our_shop.ru , city3.our_shop.ru - все они ссылаются на одинаковый ip-адрес: 88.777.666.555 (этот Web-сервер находится в другом городе). Сайт our_city.our_shop.ru предназначен для клиентов нашего города, остальные для клиентов других городов. В нашем городе оплата за трафик не взимается только за «городской интернет». Поэтому для клиентов нашего города посещение сайта our_city.our_shop.ru по трафику оказывается платным (а хотелось бы сделать бесплатным - за счет нашего сервера DNS).

Каким образом можно решить задачау, чтобы наш DNS-сервер принимал запросы от клиентов сайта our_city.our_shop.ru и уже от своего имени делал запрос на сайт our_city.our_shop.ru (т.е. выступал в роли промежуточного звена между клиентами и web-сервером)

Какие способы существуют и каким способом проще всего это сделать и самое главное как ?

(в линукс-юникс системах новичок, почитал и понял, что способов много; squid-ом, используя реверс прокси, не получилось) Спасибо.

> используя реверс прокси, не получилось

продолжай попытки. Apache+mod_proxy, Nginx.

thesis ★★★★★
()

А в чём профит? Хотите немножечко обмануть провайдера на деньги (ибо от снижения оплаты за трафик, перетарифицированный как внутригородской, плата провайдера за подключение к магистралям не снизится - но снизится маржа, медленнее будет дешеветь доступ для конечных пользователей, улучшаться качество, и т.д., и т.п., и см. на обороте)?

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

Никто никого обманывать не собирается. Цель - чтобы наш сервер ДНС вместо клиентов от своего имени делал web запросы и принимал все данные от web-сервера и передавал их обратно клиенту. В этом случае: 1) мы (владельцы сервера) будем оплачивать «внешний» трафик 2) клиенты, находясь на работе, смогут делать заказы (web-сервер это интернет магазин), а иначе внешка зачастую у клиентов на работе отключена. В итоге должно быть так: помощью DNS вместо адреса web-сервера 88.777.666.555, мы клиенту отдаем 1.2.3.4, тогда на машине (на ДНС-сервере) с ip 1.2.3.4 (например с помощью pf, natd ) мы делаем rdr на 88.777.666.555 и nat для правильного хождения ответов и тогда владелец 1.2.3.4 оплачивает весь трафик.

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

> Цель - чтобы наш сервер ДНС вместо клиентов от своего имени делал web запросы

Ну тогда это не DNS-сервер, всё-таки. Этим «DNS» Вы только сбиваете людей с толку - я только сейчас понял, что это описание его текущей функциональности. Ж;-)

По сути получается, что вам желательно поднять (как уже говорили) reverse proxy (просто перенаправление тоже можно - но тогда счета за трафик, выставляемые вашей организации, будут выше, да и время отклика может увеличиться) и заменить адреса в зоне магазина на адрес этого reverse proxy (как Вы написали выше).

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

Я первым делом попробовал запустить реверс прокси с помощью Squid (показалось простым решением и с наименьшим количеством записей, которые нужно было выполнить). Но, к сожалению, в логе access.log пусто. Если прописать адрес прокси сервера (исключительно делал для проверки) непосредственно в интернет браузере, то начинает работать (но ведь клиент не будет же у себя дома каждый раз прописывать в ИЕ проксю только для этого сайта).
То, что я добавил в стандартный squid.conf:

http_port 80 accel defaultsite=gorod.magazin.ru vhost
cache_peer 88.777.666.555 parent 80 0 no-query originserver
name=myAccel

acl our_sites dstdomain gorod.magazin.ru
http_access allow our_sites
cache_peer_access myAccel allow our_sites
cache_peer_access myAccel deny all

Вы можете мне помочь с настройкой реверс прокси с целью решить задачу с эти «пробросом», если это не сложно?
Может чего еще не хватает в сквиде?
Слышал, что прокси должен быть прозрачным, чтобы клиент, не зная об этом, использовал этот самый прокси. Но добавление строки: " http_port 80 transparent " ничего не изменило (access.log - пуст).

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

Это как раз потому, что он не reverse получился, а обычный. Так тоже можно - но как раз возникает проблема с необходимостью прописывать его у клиентов. Быстро вряд ли помогу - крайне редко его трогаю, но могу предложить ссылку по настройке Squid в режиме reverse proxy: http://wiki.squid-cache.org/SquidFaq/ReverseProxy.

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