Pavel Shamshin d9a5f16f13
Resolve and Upload Routes / resolve-and-upload (push) Successful in 34s
fix file mask for rclone
2026-09-15 12:51:51 +03:00
2026-09-15 12:51:51 +03:00
2026-08-31 15:50:27 +03:00
2026-09-08 10:34:00 +03:00
2026-08-26 19:41:45 +03:00
2026-08-31 16:32:21 +03:00

Антифильтр - автоматическая генерация 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

Каждый файл может содержать записи пяти типов (вперемешку):

# Автономная система (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 (для автоматического обновления)

Ручной запуск

Для локальной генерации без коммита:

python3 bin/resolve.py

Сгенерированные файлы появятся в директории resolve/.

S
Description
Списки целей, из которых генерируютсся BGP анонсы
Readme
62 KiB
Languages
Python 100%