add readme
Resolve and Upload Routes / resolve-and-upload (push) Successful in 1m0s

This commit is contained in:
Pavel Shamshin
2026-08-31 16:32:21 +03:00
parent a78cff0b8b
commit 1dde48ff0d
+110
View File
@@ -0,0 +1,110 @@
# Антифильтр - автоматическая генерация BGP routes
Проект для автоматической генерации и распространения BGP routes.
## Структура проекта
```
.
├── bin/
│ └── resolve.py # Скрипт генерации routes
├── src/
│ ├── {community}.{name}.list # Исходные данные
│ └── ...
├── resolve/
│ ├── {community}.{name}.routes # Сгенерированные routes
│ └── ...
└── .gitea/
└── workflows/
└── build.yml # Gitea Actions workflow
```
## Как это работает
1. **Исходные данные** хранятся в файлах `src/{community}.{name}.list`
2. **Community** извлекается из имени файла (первая часть до точки)
3. При коммите в master запускается Gitea Actions workflow
4. Скрипт `bin/resolve.py` обрабатывает каждый `.list` файл:
- Читает записи построчно
- Определяет тип записи (AS, домен, URL, IP, CIDR)
- Резолвит записи в CIDR блоки
- Формирует routes в формате BIRD
5. Сгенерированные `.routes` файлы выгружаются по FTP
## Формат файлов src/*.list
Каждый файл может содержать записи пяти типов (вперемешку):
```text
# Автономная система (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 | WhatsApp |
| 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 | Twitter |
| 64888:112 | Discord |
| 64888:113 | Akamai CDN (AS-AKAMAI) |
| 64888:114 | Amazon CloudFront (AS16509) |
## Как добавить свои записи
1. Создайте новый файл в `src/` с именем `{community}.{name}.list`
- Если community уже существует, используйте его номер
- Если нужен новый community, согласуйте номер с администратором
- `name` - любое понятное имя (латиница, цифры, подчеркивания)
2. Добавьте записи нужных типов (AS, домены, URL, IP, CIDR)
3. Сделайте коммит в master
4. Дождитесь завершения Gitea Actions workflow
5. Новые routes автоматически применятся на BIRD
## Требования к серверу с BIRD
- Python 3
- bgpq4
- dnsutils (для dig)
- curl
- inotify-tools (для автоматического обновления)
## Ручной запуск
Для локальной генерации без коммита:
```bash
python3 bin/resolve.py
```
Сгенерированные файлы появятся в директории `resolve/`.