Релиз Carbon Reductor 7.0.0

Фильтрация HTTPS-ресурсов с активной динамической сменой IP адресов

Мы почти две недели готовили решение проблемы с ресурсами, часто меняющими IP адрес и, наконец, готовы выпустить новую мажорную версию 7.0.0! (На CentOS 7 она работать не будет, если что, а то мало ли, что подумаете).

  • Благодаря этому появляется возможность заредиректить пользователя на заглушку при обращении к HTTPS ресурсу
  • Помимо этого решается проблема с ресурсами, часто меняющими IP адреса
  • Возможно, благодаря этому можно будет отключить резолвер
  • На текущий момент поддерживается только A и AAAA записи для IPv4 запросов по UDP
  • На текущий момент генерируется пакет с TTL = 1 минуте, чтобы абоненты с кэшированием DNS не страдали долго из-за теоретических ошибочных блокировок.
  • Проверено: 100% юнит-тестов проходят, а модуль обкатан на серверах 5 провайдеров размером от 500 до 100000 абонентов.
  • Модуль интеграции с биллингом теперь тоже поддерживает использование нового модуля, что особенно важно для блокировки youtube.com / google.com и других ресурсов, использующих QUIC (HTTPS over UDP).

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

Из задумок, что сделать дальше:

  • Поддержка IPv6-запросов
  • Поддержка ответа с несколькими IP адресами
  • «Рандомизация» TTL чтобы не вызывать лишних подозрений
  • Поддержка TCP’шных DNS-запросов

Типовое решение для веб-сервера-заглушки

Поскольку модуль подмены DNS-ответов может редиректить абонентов только на IP, а не на конкретный URL, приходится немного модифицировать веб-сервера с заглушками. Поскольку клиентов много, мы постарались максимально автоматизировать этот процесс, а также учли несколько нюансов и проблем, возникающих при большом количестве обращений к серверу. Подробная инструкция по настройке и установке: https://github.com/carbonsoft/reductor_blockpages

P.S: Мы в скором времени сделаем поддержку такой заглушки прямо на Carbon Reductor, пока релизим так, чтобы те, кто ждал этой возможности не ждали её ещё несколько дней. Праздники же скоро, всё такое. Скорее всего необходимо будет добавить на Carbon Reductor ещё один IP адрес, доступный всем абонентам.

Упрощение файрвола и ненадобность части хуков

Теперь оптимизация подсистемы роутинга отключена по умолчанию, а при включении затрагивает только трафик, который попадает на интерфейсы, находящиеся в бриджах. Иными словами, чтобы разрешить доступ к какому-либо порту редуктора по интерфейсу для менеджмента достаточно просто добавить правило в filter INPUT с помощью хука, а mangle PREROUTING трогать не надо. Отрезание лишнего трафика происходит там же, где и применение правил NOTRACK (если опция включена) — в raw PREROUTING, цепочка — mirror_traffic.

Примечание — работает только с L2-зеркалами. L3 нужно будет настраивать вручную с помощью хуков. (пока что).

Веб-интерфейс

Помимо самого редуктора мы обновили веб-интерфейс до версии 1.1.8. Там много мелких улучшений в удобстве использования.

  • Видно какая вкладка/список сейчас открыты.
  • Вывод информации о сервере более стал унифицированным и читаемым.
  • У части графиков удалена ненужная легенда
  • И вообще местами текст переработан, исправлена куча орфографических ошибок (которых от себя даже не ожидали, очень стыдно), каша из английского и русского текста.

Иными словами смотреть в вебку стало немного приятнее. Обновить её нужно вручную, автоматическое обновление для неё мы пока не прикрутили, но в скором времени запилим и это. :)

Прочее

  • Для того чтобы диагностика и выгрузки не ругались на отсутствие сертификата теперь достаточно указать, что выгрузка идёт с собственного сервера (не нужно указывать дополнительно опцию skip_sign_request).
  • Диагностика при исправлении проблемы с актуальностью списков запускает выгрузку списков с timeout (≈55 минут) аналогично cron, в результате это защищает от зависания этого процесса.
  • Устранён небольшой Warning по поводу использования устаревшего BaseException в резолвере.
  • Увеличены TTL для записей нерезолвящихся доменов с 1 до 3 часов (для резолвящихся максимальный TTL остаётся 1 час). Ранее из-за большого числа таких доменов резолвер циклился. Впрочем, скоро он скорее всего всё равно станет не нужен.
  • Число тредов резолвера можно задать через QDNS_THREADS=8 ./bin/reload_ip.sh Повышена отказоустойчивость в случае проблем с /var/log/
  • Удалён fallback-режим (-134 строчки кода, ура).

Релиз Carbon Billing 5.16.01

Привет! Вышла новая версия флагманского продукта Carbon Billing. Появилось много классных фич. Расскажем обо всем по порядку.

1. Ни для кого не новость, что биллинг интегрирован с 1C, но в этом релизе мы существенно доработали эту интеграцию. Теперь при выгрузке учитывается агентская схема.

2. Супер новость! Появилась интеграция с UserSide. Это система автоматизации для ISP. Веб-ориентированный программный комплекс, который позволяет управлять множеством процессов в компании. Взаимодействие с биллингами, учет абонентов и их тарифов, работа с оборудованием, ВОЛС, складом, бухгалтерией и персоналом.

3. И еще одна отличная новость. Теперь интегрироваться с IPTVPORTAL стало еще проще благодаря стандартной схеме.

4. Мы доработали расширенный поиск, добавив дополнительные поля. Теперь можно искать отдельно по улице, номеру дома и корпусу.

5. Доработана система бекапов. Теперь помимо базы данных и конфигурации бекапятся еще и настройки личного кабинета.

6. Не обошлось без добавления новых платежных систем. Добавили аж 2 штуки: City-Pay и ПлатеЖКа.

7. Доработаны отчеты для директора. Добавлена возможность учитывать заблокированных абонентов для диаграммы популярности тарифов.

8. И в конце приятная новость, которая позволит вам увеличить прибыль. В Carbon Billing появилась интеграция с RentSoft. Рентсофт предлагает вам запустить на своем абонентском портале новую услугу подписки на программное обеспечение: SaaS, антивирусы и т.д. Предложите это своим абонентам и получите % с продаж.

А еще, мы исправили все ошибки, о которых вы нам любезно сообщили.

Отчет о внедрениях за март 2016

Привет! Уже середина апреля, но мы никак не успевали подготовить отчет о внедрениях и опубликовать новые отзывы от клиентов. Активно занимаемся обновлением промо-страницы Carbon Billing 5, чтобы еще подробнее раскрыть все преимущества этого замечательного продукта. Да и теплая погода немного расслабляет наших копирайтеров :) Ну да ладно, это все лирика — пора переходить к делу.

Наш фильтр трафика Carbon Reductor продолжает набирать популярность. Казалось бы, чем больше у продукта пользователей, тем стремительнее падает качество технической поддержки, потому что возникает больше заявок. Но мы уже давно решили эту проблему создав систему мониторинга, которая не спит и кормить ее не нужно. Идеальный «сотрудник». Опасаемся, что скоро она эволюционирует в нечто ужасное и начнет просить зарплату…

В марте Carbon Reductor начали использовать еще 16 компаний: ОАО «Ураласбест», ООО «Форт», ООО «ЮМОС ЦЕНТР», ООО «Домовые Телекоммуникационные Сети», ООО «Южная телефонная компания», ООО «КОНЦЕПТ КОММ», ООО «ТелеНэт», ООО «КОРВЕТ-ТЕЛЕКОМ», ООО «Региональные ТелеСистемы Групп», ООО НПФ «НЕРСИ», ООО «ЕДПнет», ООО «Агросвязь», ООО «АтелРыбинск», ООО «ХайЛинк», ООО «Региональные сети» и  ООО «ОнЛайн»

Это довольно много. Спасибо этим замечательным компаниям за доверие.

У Carbon Billing 5 все тоже хорошо. Мы приготовили вам небольшой сюрприз, про который расскажем в начале мая. Биллинг, как продукт, сложнее, внедряется медленнее, поэтому список новых клиентов чуть меньше.

Но внедрить аж 7 компаний за один месяц — неплохой результат, согласитесь? Вот списочек: LAVIDELON SERVICE LTD, ООО «Директ Телеком», ИП Тлехурай Рамазан Владимирович, ООО «ОнЛайн», ТОО «АстанаМегаТел», ООО «Центр сетевых решений», LinkNet.

На этом все, спасибо за внимание!

Релиз Carbon Billing 5.15.5

Привет! Готова новая версия Carbon Billing 5.15.5. Релиз в основном посвящен стабилизации и исправлению ошибок, о которых вы нам любезно сообщаете. Давайте кратко пробежимся по списку изменений:

1. Теперь в разделе Оборудование -> Коммутаторы отображается имя абонента и ссылка на его учетную запись (когда учетка привязана к порту).

2. Проведены нагрузочные тесты и улучшена отказоустойчивость.

3. Обновлен Speedtest.

4. Добавлена возможность искать по всем учетным записям детальной статистике трафика из веб-интерфейса администратора для сотрудников ФСБ.

5. Добавлена валидация телефонных номеров при регистрации через Hotspot. Теперь абоненту высвечивается ошибка, если он некорректно ввел номер телефона.

6. Добавлены автоматические тесты рейд-массива (когда информация пишется на 2 и более жестких диска).

7. Увеличена отказоустойчивость системы обработки VOIP CDR. Некорректные записи теперь помещаются в отдельный файл для ручного анализа и не нарушают работу системы.

8. Исправлены ошибки о которых вы нам сообщали.

На этом все. Скачать новую версию можно по ссылке: //www.carbonsoft.ru/download/

Релиз Carbon Reductor 6.2.0

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

Резолвер

Попробовали решить проблему появляющихся в отчётах ревизора проскальзывающих HTTPS-ссылок по ресурсам, периодически меняющимся IP адресам.

  • (bug) резолвер https забивал /tmp/ временными файлами.
  • (bug) больше не резолвятся домены, исключённые из реестра, но оставшиеся в кэше (позже сделаем удаление их из кэша по истечении ttl записи)
  • (feature) Теперь резолвер сохраняет свои предыдущие результаты, у каждого ip отдельный ttl, по умолчанию 480 минут, но можно передать параметром, например IP_TTL=400 (или 4000). Максимальный ttl записи уменьшен до 60 минут.
  • (feature) поддерживаются белые списки для резолва (our.whitehttpslist)
  • (improve) предупреждение про длительную работу резолвера
  • (improve) более понятное логирование использования кэша резолва при рестарте, раньше часто вводило в заблуждение
  • (dev) улучшено логирование резолвера, можно запустить RESOLVER_DEBUG=1 ./reload_ip.sh
  • (dev) общий shell-код обработки списков ip и url вынесен в библиотеку
  • (dev) Добавлен хук обновления для «миграции» кэша резолва в новый формат

P.S: В ходе тестов выяснилось, что новый концепт резолвера пока не приносит максимальную пользу из-за не совсем оптимальных значений TTL для записей и IP. Пока экспериментируем, предположительно в течении двух-трёх дней выпустим обновление, где значения по умолчанию будут наиболее подходящими для реального мира.

Утилиты и производительность

  • (improve) скрипт link_rx_speed теперь поддерживает vlan-интерфейсы
  • (improve) скрипт support_info лучше разбирает структуру бриджей при работе в виртуальных машинах (отличается содержимое /sys/..)
  • (feature) добавлен скрипт для поиска записей по URL / IP в архиве выгрузок реестра, очень удобно разбираться в ситуациях в духе «а должно оно вообще блокироваться?»
  • (feature) автоматическая настройка rps теперь поддерживает Vlan и QinQ-Vlan интерфейсы (пока что сомневаемся, стоит ли его включать для самих сетёвок, в случае, если у них больше одной очереди)

Отказоустойчивость, минимизация простоев и улучшение результатов проверок ревизором

  • (bug) Выгрузки реестра теперь выполняются сперва с опцией cache=None для suds.client.Client, затем без. На части серверов без этой опции выгрузки не проходили по таймауту.
  • (bug) Добавлена случайная задержка от 0 до 300 секунд в начале критического обновления, чтобы снизить «хабраэффект» на сервер обновлений.
  • (feature) в диагностику добавлена проверка модуля на зависание
  • (feature) изменена логика рестарта и обновления carbon reductor. В случае, если настройки ipset’ов и контрольные суммы модулей ядра не изменились (это бывает довольно редко), Carbon Reductor не прерывает работу в процессе обновления и рестарта. На всякий случай имеется force-флаг: /etc/init.d/reductor restart —force. Повторный старт не приводит к ошибкам. Модуль интеграции с биллингом тоже поддерживает мягкий рестарт.
  • (feature) увеличена скорость быстрой перезаливки ipset (при ≈4000 ip с ≈0.7сек => ≈0.02сек) за счёт использования ipset swap.
  • (feature) в случае, если sys.kernel.panic = 0 при старте выставляем его в 100, чтобы сервер перезагружался в случае kernel panic.
  • (logic) Перенесли штатное обновление carbon reductor на 9 утра из-за вероятности пересечения с проверкой ревизора, полезно для клиентов без резервирования Carbon Reductor

P.S: в 6.2.2. будет доступна опция «хардкорная оптимизация трафика», которая отрезает весь лишний трафик (только с сетёвок с зеркалом, находящихся в бриджах, по аналогии с NOTRACK) ещё в raw PREROUTING. Хуки, добавляющие правила в mangle PREROUTING для того, чтобы открыть какой-либо порт на редукторе станут ненужными (filter INPUT нужно будет оставить). Наработки уже есть, осталось только навести лоск.

P.P.S: пустой ip.load не опасная штука, ipset с адресами из этого файла в этот момент заполнен и используется. В скором времени мы придумаем что сделать, чтобы он не смущал в течении всего процесса обновления кэша резолва (в среднем ≈17 секунд).

Обработка списков и разбор реестра

Тут мелочи, но они значительно улучшили результаты проверок ревизором.

  • (bug) В случае, если запись в реестре содержит только домен и ip — блокируем все URL на этом домене по http и IP адрес по https + добавляем домен в список резолвящихся.
  • (bug) исправлена (опять?!) логика с точками в конце GET запроса.
  • (feature) На основе wget сделали дополнительную обработку URL содержащих экранированные символы или кириллицу, перед отправкой в ядро.

Прочее

  • (bug) Удаление дефолтного конфига nginx при рестарте во избежание конфликта с конфигом веб-интерфейса reductor после обновления nginx
  • (bug) Теперь в отчётах по выгрузкам отображаются 60 последних дат, до этого из-за ротирования логов показывалось 0-3.
  • (improve) увеличены начальные задержки между обращениями к серверу РКН (начинаем с 30 секунд, раньше с 10)
  • (improve) подобраны наиболее оптимальные значения hashsize и maxelem для всех ipset.
  • (dev) Адрес дефолтной заглушки переехал (у тех у кого была прописана — поменялся автоматически при обновлении) с helpdesk.carbonsoft.ru/deny на http://deny.carbonsoft.ru. Решили оставить шуточку про «может лучше посмотреть котиков?» в качестве дополнительной мотивации использовать собственную заглушку — выглядит солиднее, да и меньше канал забиваться будет.
Среди наших клиентов

Азимут Цифра 1 Завод РТА Инжинэт АЛРОСА УрФУ