//
вы читаете...
Автоматизация, Алгоритмизация, Протоколы, Системное администрирование

Mikrotik: мотивация пользователей на выполнение инструкций и предписаний

Наконец-то появилось время для написания статьи.

Сегодня я хочу порассуждать о наболевшем… Как часто в нашей практике случается такое, что пользователи не хотят выполнять предписания отдела информационных технологий и даже руководства…

Итак, с чем я столкнулся.

Ситуация. В один прекрасный день MS Office Communicator перестал добавлять новых пользователей. Вот не хочет и все. И что только с ним ни делали, и как только ни спрашивали интернет по этому поводу. Все одно – не принимает. В итоге через некоторое время половина пользователей остались без корпоративного средства мгновенного обмена сообщениями. Все стали просить включить им mail-агент, ибо надо. Эта  капля переполнила мою чашу терпения. Порыскав в интернете, почитав отзывы, попробовав различные сервисы, мы остановились OpenFire. Все развернуто, клиенты расставлены на большинстве машин. Но вот беда: не хотят пользователи туда переходить. Мотивируют это тем, что в Communicator’е все еще много кто сидит, а в нашем Jabber-сервере еще мало кто сидит… В общем, замкнутый круг.

Решение. Самое обидное то, что для «старожилов» компании Communicator все еще нормально работает. И вот однажды за чашкой кофе в голову постучалась мысль.

— Bugaga0112358, сделай так, чтобы Communicator стал работать хуже — сказала она.

— Но ведь тогда пользователи будут доставать нас тем, что он вчера работал, а сегодня уже нет — ответил я.

— Сделай, сделай, сделай… — повторяла и повторяла мысль.

И вдруг меня осенило. Ведь можно сымитировать переменное качество работы сервиса!

Реализация. Итак, с помощью фаерволла мы можем отбрасывать пакеты с некоторой вероятностью. Но вероятность нам нужна переменная, иначе неинтересно. Реализуем это с помощью расписания!

В моем распоряжении был роутер Mikrotik на базе ПО RouterOS, через который проходили пакеты в сторону коммуникатора от всех корпоративных пользователей.

Этап 1. Создаем правило

Инструкцию по использованию RouterOS писать не буду, покажу только суть настройки.

На вкладке General задаем цепочку FORWARD, адрес нашего сервера и порты, используемые для передачи сообщений: 5060 и 5061.

001 - Правило отброса. General

Вкладка General. Общие сведения о пакетах.

На вкладке Advanced задаем вероятность отброса пакета равной, допустим, 27% (ну нравится мне это число).

002 - Правило отброса. Advanced

Вкладка Advanced. Подробные сведения о пакете.

На вкладке Action задаем действие REJECT.

003 - Правило отброса. Action

Вкладка Action. Политика пакета.

004 - Правило отброса. Вид в списке

Правило отброса пакета в общем списке.

Внимание! Если вы не гуру командного интерпретатора RouterOS, важно предоставить этому правилу такую позицию в общем списке, чтобы в будущем оно не сдвинулось.

Этап 2. Буря в стакане

Напишем скрипт, чтобы значение Random менялось по формуле Random=SEC+10, где SEC – значение секунд текущего времени. Чтобы получать различные значения, зададим период срабатывания  скрипта 00:05:10.

005 - Скрипт в расписании

Автоматизация смены значения Random

Текст скрипта:

# Получаем значение системного времени в переменную TT
:local TT [/system clock get time];
# Определяем длину строки
:local TTlen [:len $TT];
# Вытаскиваем два последних символа – секунды - в переменную SEC
:loсal SEC [:pick $TT ($TTlen-2) $TTlen];
# Записываем (SEC + 10) в Random нашего правила (номер 1 в общем списке)
/ip firewall filter set random=($SEC+10) numbers=1;
# Вывод переменной SEC. Можно использовать при отладке.
#:put $SEC;

Небольшое замечание к скрипту. Правильнее, конечно, работать не от номера правила, а от его содержимого. RouterOS предоставляет такие возможности, но у меня не было желания ощутить полное погружение в интерпретатор, поэтому я использовал обращение по номеру правила.

Этап 3. Наслаждение

Включаем правило и замечаем, что пользователи не спрашивают, что с Communicator’ом, ведь периодически он работает нормально. Но все просят установить и включить им Jabber. Цель достигнута!

Послесловие

Так как RouterOS есть обычный линукс, только немного подпиленный, то все вышеописанное при должых усердии и фантазии можно реализовать на линуксовой машине с помощью iptables и cron. Дерзайте!

Реклама

Обсуждение

Комментариев нет.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: