Добрый день!
Имеется прокси сервер SQUID3, Ubuntu 12.04
Внешний интерфейс eth0 сервера смотрит в маршрутизатор, через который идет в инет. Так же на этом интерфейсе прописан dns_nameservers: 2 адреса основого провайдера и 2 адреса резервного провайдера (но в /etc/resolv.conf отображаются только 3 адреса)
Eth1 - смотрит в локалку.
В маршрутизатор заходят основной и резервный провайдер. Так же в случае пропадания основного провайдера, маршрутизатор автоматически переключается на резервный.Пока работаем на основном канале - все норм. Squid выпускает пользователей в инет и т.п. В случае когда прошло переключение на резервный канал, то при попытке пользователя выйти в инет SQUID сообщает: Невозможно определить IP адрес по имени узла. Но при этом все пингуется как по IP так и по имени сайта. traceroute 8.8.8.8 например, показывает что все нормально проходит. При этом видно, что шаги идут через адреса и шлюзы резервного провайдера.
Как только основной канал поднялся - снова становится все ОК. Пользователи выходят в Инет, traceroute 8.8.8.8 идет через ip и шлюзы основного.
Если к примеру, когда работаем на резервном канале, я захожу на proxy сервер и в файле /etc/network/interfaces в параметре dns_nameservers убираю IP основного провайдера и оставляю 2 адреса резервного, пере запускаю сеть, то все ОК. Пользователи благополучно выходят в инет с резервного канала. Но когда происходит переключение обратно на основной канал, опять SQUID говорит, что не может определить IP по имени узла. При этом ping и tracert с рабочего места проходят и по имени и по IP. Я опять правлю файл /etc/network/interfaces ставлю DNS основного провайдера и пере запускаю сеть и все снова работает.Помоги разобраться, как сделать так, чтобы мне не приходилось заходить на сервер и править /etc/network/interfaces.
PS: в squid.conf все что касается dns_ заремлено...
Ну а почему бы по событию (переход на другой канал) не перезаписывать /etc/resolv.conf разными ДНС-серверами?
> Ну а почему бы по событию (переход на другой канал) не перезаписывать
> /etc/resolv.conf разными ДНС-серверами?Да, я думал об этом...
Думал сделать скрипт, который постоянно будет пинговать шлюз основного провайдера, в случае отсутствия пинга до 2 минут, перезаписывать /etc/resolv.conf.
Но этот вариант у меня оставлен напоследок, если не найду другого решения....
>> Ну а почему бы по событию (переход на другой канал) не перезаписывать
>> /etc/resolv.conf разными ДНС-серверами?
> Да, я думал об этом...
> Думал сделать скрипт, который постоянно будет пинговать шлюз основного провайдера, в случае
> отсутствия пинга до 2 минут, перезаписывать /etc/resolv.conf.
> Но этот вариант у меня оставлен напоследок, если не найду другого решения....Пропишите в /etc/resolv.conf не нэймсерверы провайдеров, а гуглевские 8.8.8.8 и 8.8.4.4
тогда перезаписывать /etc/resolv.conf не придется.
>>> Ну а почему бы по событию (переход на другой канал) не перезаписывать
>>> /etc/resolv.conf разными ДНС-серверами?
>> Да, я думал об этом...
>> Думал сделать скрипт, который постоянно будет пинговать шлюз основного провайдера, в случае
>> отсутствия пинга до 2 минут, перезаписывать /etc/resolv.conf.
>> Но этот вариант у меня оставлен напоследок, если не найду другого решения....
> Пропишите в /etc/resolv.conf не нэймсерверы провайдеров, а гуглевские 8.8.8.8 и 8.8.4.4
> тогда перезаписывать /etc/resolv.conf не придется.Да, так работает...
>>>> Ну а почему бы по событию (переход на другой канал) не перезаписывать
>>>> /etc/resolv.conf разными ДНС-серверами?
>>> Да, я думал об этом...
>>> Думал сделать скрипт, который постоянно будет пинговать шлюз основного провайдера, в случае
>>> отсутствия пинга до 2 минут, перезаписывать /etc/resolv.conf.
>>> Но этот вариант у меня оставлен напоследок, если не найду другого решения....
>> Пропишите в /etc/resolv.conf не нэймсерверы провайдеров, а гуглевские 8.8.8.8 и 8.8.4.4
>> тогда перезаписывать /etc/resolv.conf не придется.
> Да, так работает...но только же маршруты к 8.8.8.8 и 8.8.4.4 должны быть через разных провайдеров
>[оверквотинг удален]
>>>>> /etc/resolv.conf разными ДНС-серверами?
>>>> Да, я думал об этом...
>>>> Думал сделать скрипт, который постоянно будет пинговать шлюз основного провайдера, в случае
>>>> отсутствия пинга до 2 минут, перезаписывать /etc/resolv.conf.
>>>> Но этот вариант у меня оставлен напоследок, если не найду другого решения....
>>> Пропишите в /etc/resolv.conf не нэймсерверы провайдеров, а гуглевские 8.8.8.8 и 8.8.4.4
>>> тогда перезаписывать /etc/resolv.conf не придется.
>> Да, так работает...
> но только же маршруты к 8.8.8.8 и 8.8.4.4 должны быть через разных
> провайдеровЯ прописал в dns-nameservers 8.8.8.8 и 8.8.4.4
А в dns-search прописал 4 адреса моих провайдеров.
Это правильное решение?
>[оверквотинг удален]
>>>>> отсутствия пинга до 2 минут, перезаписывать /etc/resolv.conf.
>>>>> Но этот вариант у меня оставлен напоследок, если не найду другого решения....
>>>> Пропишите в /etc/resolv.conf не нэймсерверы провайдеров, а гуглевские 8.8.8.8 и 8.8.4.4
>>>> тогда перезаписывать /etc/resolv.conf не придется.
>>> Да, так работает...
>> но только же маршруты к 8.8.8.8 и 8.8.4.4 должны быть через разных
>> провайдеров
> Я прописал в dns-nameservers 8.8.8.8 и 8.8.4.4
> А в dns-search прописал 4 адреса моих провайдеров.
> Это правильное решение?что за dns-search? Лучше покажи ip ro get 8.8.8.8 и ip ro get 8.8.4.4
подыми локальный bind (он всё-равно по идее может быть нужен для сервисов в локалке), в нем пропиши forwarders на сервера и первого и второго провайдеров.
К серверам провайдеров пропиши статические маршруты, не зависящие от состояния провайдеров.
используй свой локальный bind и радуйся жизни.