Модуль интеграции с DNS-серверами

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Как включить модуль

В меню "Опции Carbon Reductor DPI X" выбрать опцию "Включить интеграцию с DNS".

Сама по себе опция отвечает только за то, что модуль будет включен. Нужно обязательно выбрать одну или несколько задач для него.

Обязательные опции

Помимо опции "Включить интеграцию с DNS" необходимо указать ещё две опции:

IP-адреса DNS-серверов

Если вы используете несколько одинаковых DNS-серверов, Carbon Reductor DPI X позволяет отправлять сгенерированные файлы зон на каждый из них.

Для этого их адреса нужно перечислить через пробел в этой опции.

Тип DNS-сервера

Выберите тип DNS-сервера, который вы используете. На текущий момент варианта два:

  • Unbound
  • Bind / Named

Bind / Named хуже чем Unbound справляется с большим набором зон: потребляет больше оперативной памяти, перечитывание конфигурации занимает больше времени. Если вы планируете использовать Bind / Named для блокировки ресурсов, мы рекомендуем перейти на Unbound. Если использовать его только для разблокировки частично заблокированных ресурсов - проблем быть не должно.

Важно: один сервер Carbon Reductor DPI X может работать только с одним типом DNS-серверов, т.е. тип DNS-сервера - глобальная опция. Если в вашей сети используются и Bind / Named и Unbound одновременно, рекомендуемое решение - использовать два сервера с Carbon Reductor DPI X. Лицензию на второй сервер Carbon Reductor DPI X можно получить бесплатно в качестве резервного сервера и установить его в виртуальную машину.

Задачи модуля

Блокировка ресурсов по домену

Возможно вы уже пользовались прототипом модуля, который устанавливался непосредственно на DNS-сервер и обращался к Carbon Reductor за списками.

Сейчас схема изменилась - Carbon Reductor DPI X локально генерирует конфиги с DNS-зонами для заблокированных сайтов и отправляет их на DNS-сервер.

Если ранее использовался прототип - его необходимо отключить, удалив файл с параметрами запуска из директории /etc/cron.d/ на DNS-сервере.

Избежание частичных блокировок популярных ресурсов

Это новая возможность в Carbon Reductor DPI X.

Схема работы:

  1. Модуль читает список частично заблокированных ресурсов. Его формируют администратор сервера и Carbon Soft, при использовании опции "Разблокировать популярные сайты в обход требований Роскомнадзора".
  2. Домены резолвятся, получаем набор связок "домен" - "список IP"
  3. Модуль читает список заблокированных целиком IP адресов.
  4. Заблокированные адреса удаляются из результатов резолва.
  5. Если ни один IP адрес ресурса не заблокирован - зона не генерируется.
  6. Если все IP адреса ресурса заблокированы - зона не генерируется.
  7. В остальных случаях из незаблокированных IP адресов формируется DNS-зона для домена.
  8. Из зон формируются конфигурационные файлы.
  9. Конфигурационные файлы отправляются на DNS-сервер.
  10. При наличии возможности (есть в Unbound) они валидируются. Если валидация не проходит - удаляются.
  11. Если всё в порядке - вызывается перечитывание конфигурационного файла.
  12. Абоненты, использующие DNS-сервер провайдера, при обращении к частично заблокированному ресурсу не получают заблокированные IP.
  13. В итоге они не замечают частичных блокировок.
  14. Снижается нагрузка на техническую поддержку провайдера

Пример

Ресурс example.com имеет 4 IP адреса: 1.2.3.1, 1.2.3.2, 1.2.3.3, 1.2.3.4.

1.2.3.1 - заблокировали, т.к. этот адрес используется также ресурсом block-me.com, попавшим в реестр РКН.

Пользователь Петя обращается к этому ресурсу. Его DNS-сервер присылает ответ:

;; ANSWER SECTION:
example.com.		299	IN	A	1.2.3.1
example.com.		299	IN	A	1.2.3.3
example.com.		299	IN	A	1.2.3.4

ОС используемая Петей выбирает 1.2.3.1, запоминает этот адрес, чтобы не обращаться лишний раз к DNS-серверу.

В результате дальнейшие обращения к этому сервису до тех пор, пока адрес не устареет в DNS-кэше ОС Пети будут блокироваться.

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

Carbon Reductor отрезолвит example.com, получит тот же ответ что и Петя:

;; ANSWER SECTION:
example.com.		299	IN	A	1.2.3.1
example.com.		299	IN	A	1.2.3.3
example.com.		299	IN	A	1.2.3.4

Т.к. 1.2.3.1 заблокирован, модуль создаст для example.com зону, например:

local-zone: "example.com" redirect
local-data: "example.com A 1.2.3.3"
local-data: "example.com A 1.2.3.4"

и применит её на DNS-сервере.

Далее, когда Петя обратиться к DNS-серверу чтобы узнать IP адрес example.com он получит ответ:

;; ANSWER SECTION:
example.com.		299	IN	A	1.2.3.3
example.com.		299	IN	A	1.2.3.4

и не заметит проблем с доступом к этому ресурсу.

Когда этот модуль не поможет

В случае если ресурс заблокирован полностью - модуль не сможет подобрать для него незаблокированные адреса по причине того, что их просто нет.

Что нужно сделать на DNS-сервере

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

Unbound 1.4.20 (CentOS 6)

Всё работает "из коробки".

Bind / Named (CentOS 6)

TODO

Unbound 1.6.0 (debian)

  • Создать директорию /etc/unbound/local.d/
  • В файле /etc/unbound/unbound.conf.d/unbound.conf в конце секции "server:" указать include: /etc/unbound/local.d/*.conf
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.