Перейти к основному содержимому

Хаб сообщества

Хаб сообщества - это каталог сетов, опубликованных пользователями b4; его раздаёт https://hub.b4core.app. Сет попадает туда из редактора сета в виде общего сета: стратегия, цели и файлы payload, без всего, что привязано к роутеру. Модератор одобряет сет, хаб добавляет его в каталог, и каждая b4 с включённым хабом получает его при следующей синхронизации. Страница Сообщество показывает каталог, применяет сет одним действием и собирает отчёты о том, работает ли применённый сет. Из отчётов складывается оценка, по которой страница сортирует сеты.

Каталог​

Хаб публикует один каталог: новейшую одобренную версию каждого сета и сводку отчётов по нему. Каталог подписан ключом хаба. Ключ hub.b4core.app встроен в b4; каталог с любой другой подписью отклоняется.

Отчёты хранятся по отпечатку стратегии, а не по сету. Два сета с одинаковой стратегией делят одну оценку, новая версия, в которой изменены только цели, сохраняет оценку прежней, а новая версия с изменённой стратегией начинает без оценки.

Роутер хранит копию каталога и обновляет её сам:

КогдаЧто происходит
Через 20 секунд после запуска b4Первая синхронизация
Каждый часПлановая синхронизация
Через 5 минут после синхронизации, на которую не ответил ни один хабПовтор
Кнопка Синхронизировать на странице Сообщество или в настройкахСинхронизация сразу
Перед запуском Дискавери с параметром Сначала пробовать сеты сообществаСинхронизация, если копия старше 10 минут

Отчёты, которые не удалось доставить, уходят со следующей синхронизацией.

Поиск на странице Сообщество идёт по локальной копии. Введённый домен сопоставляется на роутере и в хаб не отправляется.

Каталог действителен две недели с даты сборки. Хаб пересобирает его намного раньше, поэтому срок истекает только если роутер две недели не получал ответа ни от одного хаба. Тогда страница Сообщество показывает предупреждение и продолжает показывать последний полученный каталог. Применённые сеты - обычные сеты в конфигурации и продолжают работать.

Что покидает роутер​

ДействиеЧто получает хаб
СинхронизацияHTTPS-запрос каталога. Хаб видит публичный адрес роутера и версию b4 и отвечает сетью, в которой видит роутер: ASN, страна, название провайдера.
Отчёт «работает» или «не работает»Идентификатор и версия сета на хабе, отпечаток стратегии, вид отчёта, домен, по которому в этот момент был отфильтрован список (если был), ASN и страна, известные роутеру о себе, движок захвата, версия b4. Подпись авторским ключом.
ЖалобаИдентификатор и версия сета на хабе, введённая причина. Подпись авторским ключом.
ПубликацияОбщий сет. Подпись авторским ключом.

Имена сетов, цели других сетов и устройства за роутером ни в один запрос не входят.

Хаб знает роутер по авторскому ключу, а не по учётной записи. Ключ создаётся при первом использовании и хранится в .hub/ внутри каталога конфигурации; перенос ключа на другой роутер описан в разделе Авторский ключ.

Включение​

Переключатель и параметры подключения находятся в Настройки, Интеграции, Хаб сообщества.

Карточка «Хаб сообщества» на вкладке Интеграции

ПолеЗначение
Включить хаб сообществаДобавляет страницу Сообщество в навигацию, запускает ежечасную синхронизацию и показывает раздел Поделиться в редакторе сета. Общий сет, вставленный в Импорт, принимается и при выключенном переключателе.
Зеркала хабаАдреса одного и того же хаба, по одному в строке; перебираются по порядку, пока один не ответит. Пустое поле означает https://hub.b4core.app. Зеркала, одобренные хабом, берутся из его подписанного манифеста и добавляются автоматически; см. Зеркало чужого хаба.
Публичный ключ хабаДля собственного хаба со своим ключом. Ключ hub.b4core.app встроен, вводить его не нужно. С ключом в этом поле b4 доверяет только ему, а обращаться к hub.b4core.app перестаёт лишь тогда, когда адрес собственного хаба указан и в поле Зеркала хаба. Пока поле зеркал пустое, синхронизация всё равно доходит до hub.b4core.app и отклоняет его каталог из-за чужой подписи.

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

подсказка

Последняя ошибка в блоке состояния называет причину неудачной синхронизации. Следующая успешная синхронизация её убирает.

Строка Совпадает с сетом перечисляет включённые сеты, чьи цели покрывают адреса хаба. Запросы b4 к хабу проходят через его же обработку пакетов, как и любой другой трафик, поэтому такой сет применяет свою стратегию и к собственному соединению b4; обычный случай - сет, совпадающий со всем подряд, например запись regexp:.*. Сет для адресов хаба без стратегии, поставленный перед ним, выводит хаб из-под этой стратегии.

Строка Свой трафик появляется, когда хаб ответил только по соединению, которое собственные правила b4 не трогают. На некоторых роутерах стратегия совпавшего сета подвешивает собственное TLS-рукопожатие b4; когда синхронизация срывается таким образом, b4 повторяет её по обходному пути, дальше использует тот путь, который сработал, и пишет о переключении в журнал. Синхронизация работает в любом случае, но строка означает, что этот сет ломает собственные соединения b4 на этом роутере, и об этом стоит сообщить.

Применённые сеты на странице Сеты​

Сет, применённый со страницы Сообщество, - обычный сет с меткой Сет сообщества на карточке. Метка открывает сет на странице Сообщество. Когда стратегия отличается от опубликованной, метка меняется на Сет сообщества, изменён; см. Применён и изменён.