Zentyal. Оптимизация работы модуля WAN failover

В серверный Linux-дистрибутив Zentyal входит модуль WAN failover, предназначенный обеспечение бесперебойного доступа в Интернет посредством переключения на резервный канал связи. Событие переключения происходит по результатам опроса датчиков трех типов: ping до хоста, разрешение имени домена, доступ к сайту по протоколу http.

В простейшем случае возможностей модуля достаточно, однако на практике могут возникнуть сложности. Например, когда у провайдера возникают технические проблемы или заканчивается оплата услуги, выводится информационное сообщение, подменяя реальное содержимое сайта. В результате описанные выше режимы становятся не эффективным.

Одним из способов оценки работоспособности WAN-канала может быть анализ содержимого страницы, полученной по протоколу http. Например, поиск на странице ya.ru подстроки yandex.st, которая вряд ли встретится в сообщении провайдера о необходимости оплатить счет или сменить mac-адрес.

Чтобы добавить данную проверку в модуль WAN failover сервера Zentyal, следует отредактировать файл /usr/share/perl5/EBox/Event/Watcher.Gateways.pm

В тексте процедуры _runTest # (type, host)
заменить
} elsif ($type eq 'http') {
my $command = "wget $host --tries=1 -T 5 -O /dev/null";
$result = system($command);
}

на
} elsif ($type eq 'http') {
my $command = "wget --tries=1 -T 15 -O - ya.ru | grep yandex.st > /dev/null"
$result = system($command);
}

Следует учесть, что для корректной работы датчиков доступности сети подсистема Zentyal должна успевать разрешить доменное имя, по которому происходит обращение, а также загрузить содержимое web-страницы для анализа до истечения timeout команды. Это во многом зависит от приоритета DNS-серверов — запросы к серверу имен одного провайдера с ip-адреса другого могут не выполняться или проходить долго, поэтому стоит использовать универсальные адреса, например DNS Google — 8.8.8.8 или 8.8.4.4. Также время таймаута для опроса страницы не должно быть больше значения частоты проверки канала, указываемой в web-интерфейсе Zentyal.

Метки: , , ,

Комментарии запрещены.