Данный материал не является призывом к действию и публикуется исключительно в образовательных целях.
UPD 14.10.2023
Эта статья немного устарела. Здесь можно узнать, как использовать готовые списки IP-адресов, что не совсем актуально. Актуальная статья с маршрутизацией по доменам: https://habr.com/ru/articles/767464/
UPD 16.10.2022
- Исправлены конфиги для Openwrt 22
- Добавлен community список
- В скрипт добавлена проверка загрузки файлов. Которая решает проблему, если при старте устройства не удалось сразу загрузить списки
- DNSCrypt изменён на DNSCrypt v2
UPD 15.03.2023
- Добавлена логика для работы с доменами, используются список доменов из community
- Изменена проверка загрузки файлов в скрипте
- В Ansible playbook теперь можно выбрать определённые списки
UPD 20.04.2023
Если у вас роутер получает IPv6 адрес, то роутинг будет работать криво. Пока нет инструкции для IPv6, поэтому нужно будет его выключить на роутере.
Часть 2: Поиск и исправление ошибок
Чем отличается от подобных материалов?
- Реализация на чистом OpenWrt
- Использование WireGuard
- Конфигурация роутера организуется с помощью конфигов OpenWrt, а не кучей в одном скрипте
- Предусмотрены ситуации при рестарте сети и перезагрузке
- Потребляет мало ресурсов роутера: подсети содержатся в ipset, а не в таблицах маршрутизации. Что позволяет развернуть это дело даже на слабых устройствах
- Автоматизация конфигурации с помощью Ansible (не требуется python на роутере)