DNS Forwarder: Портфолио фрилансера Николай Нежинский 20.02.2018, работа №1 - FL.RU
К списку работ
Николай Нежинский
Николай Нежинский

DNS Forwarder

imageimageimage
Перенаправляет DNS запросы в зависимости от прописанных правил(IP:domain -> DNS) на различные NS серверы и возвращает ответ клиенту от своего имени. Поддерживает черный и белый списки IP, которые используются в "менеджере стратегий". Проверка IP запросившего поддержвает маски(192.168.34.*); так же работает и черный/белый списки. Списки так же поддерживают значение ALL, причем не важно где это ALL встретится, если оно добавлено в список, это означает, что проверка IP на наличие в списке будет положительна для любого IP. Форвардер позволяет задавать количество очередей и количество слотов в каждой очереди. Каждая очередь - это отдельный поток. В случае обнаружения IP в черном списке через конфиг можно указать способ реакции(игнорирование или ответ "домен не найден"). Архитектура приложения выполнена легко расширяемой. Т.е. можно легко дописать новый Reject Action, Strategy Manager или Default Action и позволить заменять через конфиг. Командный сокет - TCP сокет принимающий и обрабатывающий команды, так же выполнен многопоточно. Интерфейсом написана на Yii2 панелька(Ajax), хотя можно просто подключится к сокету через NetCat и командовать. Команды: добавление/вставка/замена/удаление для экшенов и списков. Подробный лог, в который попадают события от командного сокета(подключение клиента, сами команды) и от Strategy Manager( кто подключился, какой домен и куда отправили ).