1dde48ff0d1878cca0b28398942d801bd2911995
Resolve and Upload Routes / resolve-and-upload (push) Successful in 1m0s
Антифильтр - автоматическая генерация BGP routes
Проект для автоматической генерации и распространения BGP routes.
Структура проекта
.
├── bin/
│ └── resolve.py # Скрипт генерации routes
├── src/
│ ├── {community}.{name}.list # Исходные данные
│ └── ...
├── resolve/
│ ├── {community}.{name}.routes # Сгенерированные routes
│ └── ...
└── .gitea/
└── workflows/
└── build.yml # Gitea Actions workflow
Как это работает
- Исходные данные хранятся в файлах
src/{community}.{name}.list - Community извлекается из имени файла (первая часть до точки)
- При коммите в master запускается Gitea Actions workflow
- Скрипт
bin/resolve.pyобрабатывает каждый.listфайл:- Читает записи построчно
- Определяет тип записи (AS, домен, URL, IP, CIDR)
- Резолвит записи в CIDR блоки
- Формирует routes в формате BIRD
- Сгенерированные
.routesфайлы выгружаются по FTP
Формат файлов src/*.list
Каждый файл может содержать записи пяти типов (вперемешку):
# Автономная система (AS)
AS1234
AS-TELEGRAM
# Домен
t.me
ya.ru
# Ссылка (должна возвращать список CIDR, по одному в строке)
https://www.cloudflare.com/ips-v4/
# IP-адрес
1.2.3.4
# CIDR
1.2.3.4/32
10.0.0.0/8
Пустые строки и комментарии (начинающиеся с #) игнорируются.
Текущие community
| Community | Описание |
|---|---|
| 64888:101 | |
| 64888:102 | YouTube |
| 64888:103 | Сайты для работы |
| 64888:104 | Разные сайты, добавленные вручную |
| 64888:105 | DeepSeek |
| 64888:106 | Cloudflare |
| 64888:107 | Hetzner |
| 64888:108 | Telegram |
| 64888:109 | Habr |
| 64888:110 | Facebook/Instagram |
| 64888:111 | |
| 64888:112 | Discord |
| 64888:113 | Akamai CDN (AS-AKAMAI) |
| 64888:114 | Amazon CloudFront (AS16509) |
Как добавить свои записи
-
Создайте новый файл в
src/с именем{community}.{name}.list- Если community уже существует, используйте его номер
- Если нужен новый community, согласуйте номер с администратором
name- любое понятное имя (латиница, цифры, подчеркивания)
-
Добавьте записи нужных типов (AS, домены, URL, IP, CIDR)
-
Сделайте коммит в master
-
Дождитесь завершения Gitea Actions workflow
-
Новые routes автоматически применятся на BIRD
Требования к серверу с BIRD
- Python 3
- bgpq4
- dnsutils (для dig)
- curl
- inotify-tools (для автоматического обновления)
Ручной запуск
Для локальной генерации без коммита:
python3 bin/resolve.py
Сгенерированные файлы появятся в директории resolve/.
Languages
Python
100%