Релиз Carbon Reductor 7.0.0

Релиз 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 5.16.01

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

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

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

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

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

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

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

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

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

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

Релиз Carbon Billing 5.15.5

Релиз 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

Релиз 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 на https://deny.carbonsoft.ru/. Решили оставить шуточку про «может лучше посмотреть котиков?» в качестве дополнительной мотивации использовать собственную заглушку — выглядит солиднее, да и меньше канал забиваться будет.

Carbon Billing 5.15.0

Carbon Billing 5.15.0

Всем привет! Вышла новая версия Carbon Billing 5.15.0. Как всегда, рассказываем вам о всех изменениях.

1. Обновлен протокол взаимодействия с QIWI
2. Добавлена защита от использование спец символов в названии NAS и платежных сертификатов.
3. Доработан мастер создания абонентов — появилась возможность выдавать snat ip из пула
4. Добавлена возможность автоматической синхронизации абонентов с Redback
5. Добавлена возможность настройки отдельных веб-интерфейсов админки. Теперь вы можете скрыть ненужные поля. Например, для менеджера можно скрыть IP-адрес абонента.
6. Повышена информативность ответа биллинга при запросе платежных систем работающих по протоколу OSMP
7. Добавлен функционал архивации проводок по счету если они старше 6 месяцев для предотвращения разрастания базы данных
8. В услугах VoIP добавлена привязка к оператору предоставляющего эту услугу
9. Повысили производительность биллинга за счет перехода с httpd на nginx+uwsgi
10. Исправлены ошибки о которых вы нам сообщали


 

На этом все. Пишите в комментариях ваши отзывы и предложения! Скачать и протестировать продукт можно по ссылке: //www.carbonsoft.ru/download/

Релиз Carbon Reductor 6.1.0

Релиз Carbon Reductor 6.1.0

Привет! Вышло свежее обновление Carbon Reductor 6.1.0. В этой версии появилось только одна важная доработка о которой стоит рассказать — это поддержка double buffer.

В Carbon Reductor была проблема с тем, что при обновлении и загрузке списков в ядро имелся промежуток в 2-3 секунды, в течение которого сайты не фильтровались. Поскольку реестр растёт и списки становятся больше, этот промежуток начал расти.

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

Попробовать Carbon Reductor бесплатно можно здесь. Если у вас появился вопрос, то напишите на a.fomina@carbonsoft.ru. Успехов!

Релиз Carbon Reductor 6.0

Релиз Carbon Reductor 6.0

Всем привет! У нас очень хорошие новости. Случилось нечто невероятное, из-за этого мы увеличили мажорную версию Carbon Reductor. Это случается довольно редко, примерно раз в год. Что же случилось? Заинтригованы? Поехали! Читать далее

Среди наших клиентов