понедельник, 2 мая 2011 г.

Телефонный сторож



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

Итак, было сформировано техническое задание:
1 система должна независеть от полярности в линии
2 система должна запитываться от телефонной линии
3 система не должна влиять на качество связи
4 система не должна закорачивать линию
5 система должна устанавливаться в квартире
6 система должна блокировать наборы в импульсном режиме
7 система должна блокировать наборы в тональном режиме
8 система должна выдавать индикацию об отсутствии питания на линии
9 система должна выдавать индикацию о попытке подключения


Получившаяся схема делится на несколько функциональных блоков:
Блок питания и определения питания на линии
Блок определения занятия линии
Блок определения санкционированного занятия линии
Блок управления
Блок блокирования линии
Блок индикации
Блок выдачи блокирующих тонов

Разработка устройства началась с поиска решения для индикатора санкционированного занятия линии, а по простому - индикатор поднятия трубки. Индикатор должен не зависеть от полярности линии и вносить как можно меньше помех. После перебора всех известных решений была придумана простая и в тоже время эффективная схема. Индикатор построен на четырех диодах и двух оптронах. Идея заключатся в том, что при поднятии трубки через пару диодов, включенных последовательно, начинает протекать ток, и падение напряжения на них составляет примерно 1,2 вольта, чего вполне
достаточно для зажигания светодиода. Т.е. при подъеме трубки часть тока потечет через светодиод оптрона, что в свою очередь откроет транзистор.

Реализация блока питания и блока определения занятия линии свелась к двум классическим микромощным стабилизаторам. При занятии линии напряжение падает до 15 вольт и ниже. Это позволило применить для блока определения занятия линии схему отсечки напряжения на стабилитроне. Как только происходит занятие линии напряжение падает ниже напряжения стабилизации стабилитрона, ток перестает поступать на микромощьный стабилизатор, что приводит к разряду конденсатора на его выходе. Данная схема плюс схема задержки дали в сумме схему определения занятия линии. Информация о отсутствии питания берется с того же стабилизатора, что и питание системы.

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

Блоки индикации выполнены по схеме аналога однопереходного транзистора, что позволило
заряжать конденсатор малым током и при достижении порогового, зажигать светодиод.

вторник, 19 апреля 2011 г.

Acme Packet - это просто. Дополнение к Части II.

При эксплуатации системы была обнаружена особенность при работе системы защиты от DDoS. Если уровень доверия выставлен в LOW, то уровень контроля может упасть до denied, при поступлении сообщений, которые отвергаются сервером или игнорируются по причине отсутствия ответа от сервера. Для изменения уровня контроля необходимо, чтобы было получено от сервера регистрации сообщение 200OK(Register), но есть особенность, при получении первого 200OK уровень изменяется на untrusted, и только при получении второго 200OK уровень изменяется на trusted. Это значит, что если произошел сбой на сервере регистраций и абонент был заблокирован, то для перехода на уровень trusted должно быть получено два сообщения 200OK. Т.к. второе сообщение генерируется по истечении таймера перерегистрации, а абонент может уже набрать номер и установить разговор после первого сообщения, то возникает ситуация, что IP адрес абонента опять превысит порог untrusted-signal-threshold и попадет в denied список. При малом пороге untrusted-signal-threshold может возникнуть ситуация, когда многопортовый шлюз не сможет перейти в trusted, т.к. для перехода в trusted два сообщения 200OK должны быть получены от одной учетной записи, а для перехода в denied достаточно любого сообщения с этого IP адреса, соответственно сообщения Register от соседних портов будут переводить весь шлюз на уровень denied. Для исключения этой ситуации изменим метод расчета untrusted-signal-threshold.

Учтем, что для успешной регистрации каждой учетной записи необходимо 2 сообщения Register, а также предусмотрим 10 сообщений для установления одного успешного разговора.

untrusted-signal-threshold = Количество портов * 2 +10

вторник, 29 марта 2011 г.

Acme Packet - это просто. Часть IV.

Upgrade

Находим новый софт, например, за пиво.
Далее софт нужно закачать на acme, прописать и перезагрузиться.
Если acme две, то начинаем с резервной.
Если начать с резервной, то потребуется только один переход между акмами, и будет один разрыв текущих сессий.

sftp admin@192.168.2.2
cd /code/images/
ls
nnCX_diags109.gz nnSCX620m5p4.xz nnSCX620p3.xz

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

rm nnSCX620p3.xz
put nnSCX620m6.xz

Далее изменяем bootparam
SBC-1# conf t 
SBC-1(configure)# bootparam '.' = clear field;  '-' = go to previous field;  q = quit 

file name               : /code/images/nnSCX620m5p4.xz /code/images/nnSCX620m6.xz 


Acme скажет, что система неактивна, но на это не надо обращать внимания.
Измененя в bootparam вступают в силу без записи.

Перезагружаемся.
Процесс загрузки, рекомендуется, контролировать с консоли.
Если загрузка прошла успешно, переводим сервисы на acme с новым софтом.

notify berpd force


Повторяем на второй acme.