Я в этой статье хотел написать о проблемах, с которыми столкнулись многие институты ДВО РАН, после того, как вся власть (и деньги) по телекоммуникационной программе оказались в руках одного человека. Но передумал. Во первых писать много, а во вторых все в ДВО и так про это знают. Прочувствовали на своей шкуре. Вместо этого предлагаю прочесть проект программы и угадать почему у данного поста такой странный заголовок. Свои мысли пишите в комментарии. Первый угадавший получает приз – канделябром по голове.
Подстава в 10000$
Значит стала наша старая циска (2621) не справляться с возросшим трафиком и настала пора покупать новую. Требования были такие:
- устойчивое терминирование не менее 200 pppoe сессий
- dot1q вланы
- поддержка AAA-SESSION-MIB-DISCONNECT
- совместимость с платой NM8-AM (8 ми порвый аналоговый модем) установленной в нашем старой маршрутизаторе
Разослал я значит письма во всякие уважаемые компании. Ответ пришел только от Ланит ДВ. Некто Roman Pustovoyt ответил мне:
Вашим требованиям по количеству одновременных сессий отвечает маршрутизатор Cisco 3825 c увеличенным объемом оперативной памяти.
Поддержка AAA-SESSION-MIB-DISCONNECT осуществляется поддержкой всего дерева AAA-SESSION-MIB на уровне программного обеспечения S382SPSK9-12420T.
802.1q, NAT и NM модули само собой поддерживаются + 2 GE-порта.
Почитал я интернет, вроде все правильно.
Побились немного с отделом закупок и купили новую cisco 3825 , 128 мб flash , 256 mb ram. Работает раз в 10 быстрее чем 2621, просто мечта а не маршрутизатор, но вот с модемной платой проблема. Значит втыкаю я ее, захожу в консоль, пытаюсь закачать кусок конфига с предыдущей cisco.
line 33 40
location dial-in pool Dial
exec-timeout 5 0
no flush-at-activation
modem InOut
modem autoconfigure type mica
transport preferred none
transport input all
autoselect during-login
autoselect ppp
Но после первой же строчки засада
config t
Enter configuration commands, one per line. End with CNTL/Z.
dvgi_3825(config)#line 33 40
No physical hardware support for line 33
Однако. Засада. И лампочка EN на плате не загораеться и sh ver заветные 8 terminal line(s) не видит.
немного подумав даю команду
dvgi_3825#sh inven
NAME: “3825 chassis”, DESCR: “3825 chassis”
PID: CISCO3825 , VID: V05 , SN: FCZ1325703ZNAME: “Unknown on Slot 1″, DESCR: “Unknown”
PID: NM-8AM= , VID: 1.0, SN: 18114139
Вот оно, плата по разъемам электрически совметима с данным маршрутизатором, а вот на уровне ios – нет.
Современному маршрутизатору требуется карточка NM-8AM-V2. Вот так. Жаль что покупали через запрос котировок и поэтому купили не у Ланита а у малоизвестной московской компании. Я бы Ланиту мозг вынул, причем буквально.
В общем, я воткнул карточку обратно в старый маршрутизатор и настроил его на работу в режиме сервера доступа для модемный пользователей. А pppoe и vlanы перенес на новую cisco. На этом все. Все работает.
Вещание видео из apache
Итак у меня была задача :
- сделать так чтобы люди могли смотреть видеофайлы на нашем сайте
- работала перемотка к произвольному месту файла
- для просмотра должно хватать даже самого простого безлимита
- совместимость со всеми браузерами
- бесплатность
Если следовать только первому пункту число возможных решений практически не ограниченно.
Из остальных ясно что вещать нужно в формате flv. Сделать это можно несколькими способами, поставить Flash Media Server , Nginx, Lighttpd, на крайняк по ламерски просто поставить VLC. Но первое решение стоит очень немало денег, которых в бюджете нет, последнее мне не нравиться по многим причинам. Ставить же сторонний http сервер при наличии работающего апатча, по меньшей мере глупо. Но в стандартном апатче не реализована обработка flv файлов, а именно нет возможности по команде плеера начать отдавать файл с произвольного места. Т.е. видео будет идти только сначала без возможности перемотать его на произвольный фрагмент. Это не имеет значения, если длина ролика маленькая, а если, как у нас, фильмы по полтора часа… К счастью Paul Querna написал модуль для апатча который выполняет обработку flv файлов. Для его установки нужно (предварительно установив apache) :
- загрузить модуль
- скомпилировать, для этого дать команду /usr/local/apache2/bin/apxs -i -a -c mod_flvx.c
- в файл httpd.conf добавить сточку AddHandler flv-stream .flv
- перезагрузить апатч service httpd restart
На этом настройка завершена, можно ставить flv плеер и проверять как это работает.
Спамооборона
Значит настало время ставить коммерческую версию спамообороны, загружаю дистрибутив (SO-2.3-Fedora-i386.tar), распаковываю, ставлю, пытаюсь обновить шинглы – долгая пауза и “Update failure”. Лезу в интернет,и оказывается что что яндексоиды, после генерации ключа открывают для этого клиента дырочку на файрволле, но делают это не сразу, а по истечении некоторого времени. Ложусь спать, на утро вроде соединяется, но шинглы все равно не качает. Включаю quiet вывод и получаю следующее :
Устанавливается соединение с cso.yandex.ru|213.180.204.67|:443... соединение установлено.
ОШИБКА: невозможно проверить сертификат cso.yandex.ru, запрошенный `/DC=ru/DC=yandex/DC=ld/CN=YandexExternalCA':
Невозможно локально проверить подлинность запрашивающего.
Чтобы небезопасно подключиться к cso.yandex.ru, используйте `--no-check-certificate'.
Невозможно установить соединение SSL.
В общем ребята молодцы, продают продукт за немалые деньги, а купить нормальный сертификат не могут, экономят наверное. Ну лезем в файл /etc/spamooborona/scripts/cron_rul, находим там строчку FETCH_OPTS=”-mq -nd -T 60 -t 3″ и меняем на FETCH_OPTS=”-mq -nd -T 60 -t 3 –no-check-certificate“. Все, обновление шинглов работает.
Подключаю спамооборону к exim. Для этого в local/makefile прописал
> LOCAL_SCAN_SOURCE=Local/local_scan.c
> LOCAL_SCAN_HAS_OPTIONS=yes
Делаю make makefile затем make и получаю отлуп
> > gcc local_scan.c
> > ../Local/local_scan_1024.c: В функции 'local_scan'
> > ../Local/local_scan_1024.c:582: предупреждение: incompatible implicit declaration of built-in function 'exit'
Если после этого сделать make install и запустить exim, то он долго (несколько минут) думает а потом выдает ошибку > “421 fegi.ru local verification problem – closing connection.” и рвет связь. Идей нет, приходиться писать в техпотдержку, они отзываются быстро и советует пересобрать exim, добавив в local_scan.c строчку “#include <stdlib.h>”. Компилиться на ура, вот только почта все равно не ходит. После значительной (около 5 минут) паузы сервер сообщает: ” fegi.ru local verification problem – closing connection.” Такое чуство что функция local_scan не видит процесс sp-daemon.
После танцев с бубнами внимательного прочтения документации раскоментировал строчку #define SO_UNIXSOCKET в функции local_scan.c
Все теперь оно работает.