Нужно реализовать такую штуку: В сети есть шлюз, выпускающий пользователей в инет и сервер, на котором стоит Apache + сайт.. (оба сервака на винде) Нужно сделать так, что бы при отвале шлюза, все запросы по 80 порту перенаправились на на определенную страницу внутреннего сайта. Дописываем в DHCP второй шлюз (сервер Apach), теперь если падает 1-й шлюз, запросы пойдут на Apache...(ничего не напутал?). Но вот как в Apache сделать, что бы при запросе, например, ya.ru пользователь попадал на http://apache.local/index.html где будет написано что инет временно не работает?
Штука называется "прозрачный прокси", вся проблема в "оба сервака на винде". Штатными средствами винда сомнительно, что такое умеет. А вот фаервол от Kerio - очень может быть.
посавить на оба сервака *Unix, взять нормального админа и не гемороиться.. средствами винды вы эту проблемы наврятли решите.. "Дописываем в DHCP второй шлюз" ето ваще бред, т.к при активныйх двух шлюзах может возникнуть такая ситуация.. как бы её правильно описать, что у тебя весь поток трафы пойдёт через один из шлюзов, в том числе и локальный траф.. !!! а такое не каждый Linux выдержит, я про Винду молчу..
На шлюзе стоит KWF, поднят NAT и собирается статистика по трафику....лепить второй KWF на сервант с апачем??? Думаю, есть проще решение...</div>
Я сам и есть Админ , правда *Unix не в зуб ногой... И что должно случится, что бы локальный траф попёр через шлюз?...Какая разница, ну есть один шлюз, он отрубился, винда начинает ломиться на другой...и все...если можно то поподробнее...</div>
Короче, надо писать скрипт, который периодически проверяет наличие шлюза. И при отсутствии менять днс. Можно ли это сделать под виндой, не знаю. Менять при отвале шлюза что либо в дхцп уже поздно, т.к. адреса все уже получили.
Ну, в смысле, должен быть свой днс-сервер. При пропадании инета он на все запросы должен отдавать адрес сервера с апачем.
ну это тогда должен быть "свой в доску" DNS-сервер. Т.е. вплоть до того что собранный из сорцов предварительно отредактированных руками. Да и то поможет далеко не всегда, ибо на виндовых клиентах есть служба DNS Client которая кеширует ДНС-ответы и не спрашивает у ДНС-сервера, если данные еще не протухли.</div>
а с чего оно полезет на другой? если тупо прописать два шлюза на клиентах, то будет юзаться только один из них. Даже если метрика будет одинаковая, то все равно только один из них. Если уж со шлюзами хочется заморачиваться, тогда надо ставить один главный маршрутизатор который будет отслеживать наличие интернета и маршрутизировать либо в интернет либо на http://apache.local/index.html</div>
Тогда пардон....Я чего то думал, что если прописать второй шлюз, то будет как с первичным и вторичным ДНС...</div>
когда-то давно пробовал - у меня не получилось. возможно надо что-то в реестре на клиентах прописать чтобы несколько шлюзов задействовать именно по схеме "когда первый лежит - шлем на второй"</div>
Георгий, все зависит от того, что понимать под словами "в дауне" и "ляжет". Схема с несколькими шлюзами с одинаковой(бред)/разной метрикой будет балансировать траффик только если пропадает физический линк (L1) По поводу http://apache.local/index.html я бы написал скрипт, который слушает 53 порт и выдает статический IP сервера apache.local из локальной подсети. Причем комп с этим скриптом надо прописывать последним в списка DNS серверов.
Ага, скрипт, под виндами? Нет, конечно это можно сделать, но это в принципе кривое решение, т.к. ДНС - это не самое последнее звено и слушанье 53-го порта может вообще не пригодиться, если клиент закешировал ДНС-ответ и больше на задает вопросов ДНС-серверу. если нужно более ровное решение - тогда ставится линукс в качестве основного (и единственного) маршрутизатора и просто по факту отсутствия интернета (а это определить несложно) автоматом запускается команда iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 80 а на 80-м порту находится апач который на все запросы (независимо от URL) отдает страничку "извините, интернета нет".</div>
Вообще не понимаю заморочки. Поставить прокси, и пусть он пишет сам, что интернета нет. При чём тут ваще апач, второй шлюз и прочая такая ерунда?
Георгий, А какие проблемы с запуском скриптов под виндами? Все скриптовые языки (в т.ч. Perl) имеют виндовые компиляции. ActivePerl может скрипты инсталить как стандартные службы. <div class='quotetop'>Цитата</div><div class='quotemain'>iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 80[/quote] Это будет работать только в случае, когда имеется выход на нормальный DNS. Т.е. нет инета - нет DNS - невозможно получить IP адрес - нечего редиректить.</div>
Георгий, на второй шлюз перекинется только если до первого нет коннекта, а не с него линк в нет лёг, но вот я ради эксперемента поднимал 2 шлюза в одной подсети и на один модем, получилось полная карявка.. т.к ссовершенно непонетно было какой он шлюз юзает. + ещё и траф внутри сети через шлюз пёр.. винда по определению кривая в маршрутизации.. at_hacker, ну как собственно я и предлагал: всё на одной машине.. в squid можно свои страницы ошибок подставлять.. (ну ты и сам знаешь что там можно ) Den_S., Хотите надёжный инет канал: а) учите linux, б) пригласите спеца в) просто хотите дальше..
да тут любое решение - кривое. Хоть через DNS хоть через редирект - всего не предусмотришь. сквид - это костыли, хотя конечно же самое очевидное и простое решение. да и вообще заморочка не стоит усилий по ее реализации. Ну нет интернета - юзер это и сам поймет без редиректа на local.apache а просто ради красоты делать - слишком дорого. я бы просто тупо забил на такое задание. Не, ну если конечно бюджет огромный, то можно аппаратные решения поискать. Ведь делают же Wi-Fi операторы фичу, когда при попытке выхода в интернет клиент попадает на страницу оператора где ему предлагается оплатить кредитной картой доступ в интернет. Т.е. решение существует и оно очевидно настолько стандартное, что реализовано наверняка в виде отдельного маршрутизатора возможно в связке с каким-нибудь RADIUS-сервером.
Только прозрачный прокси -- это кривой вариант. Сквид в режиме прозрачного прокси с https не может работать. ВО всяком случае, я интернет на эту тему курил -- решения никто не предложил.</div>
Понятно...кароче без линуха или какого то дополнительного маршрутизатора не обойтись....просто я думал, что можно все сделать гораздо проще при помощи "первичного" и "вторичного" шлюзов.. Задумывалась вся эта канетель для того, что бы не приходилось 50раз отвечать на один и тот же вопрос: "А что инет отвалился?" Мысль понята. Всем спасибо за ответы...
Den_S., ну так сделай страничку на которой путем пинга интернета проверяется "не отвалился ли инет". Всем юзерам разослать инструкцию, что отваливание интернета проверять на страничке по адресу ....
Апупеть. Страдать такой фигней для показа странички... Вы чего там курите? По теме: Поставить на роутер ISA-сервер, там в случае отсутствия инета есть специальные страницы.