guard/docs/research/papers.md
loki5512344 cf9608ce5d
Initial commit: Rampart v0.2.0
Multi-layer DDoS protection for Minecraft servers.

- rampart-core: Edge node with XDP/eBPF + Rust L7 filtering
- rampart-manager: REST API with JWT auth, Redis sync
- rampart-cli: CLI tool for operators
- velocity-plugin: Domain check, HMAC verify, server registry, load balancer
- paper-plugin: Auto-registration, heartbeat, HMAC verify
- dashboard: React + Vite web UI for management
2026-07-20 20:53:32 +02:00

10 KiB
Raw Permalink Blame History

Papers & References - Материалы для изучения

Ссылки на статьи, RFC, проекты, инструменты которые легли в основу Rampart.


Minecraft протокол

Ресурс Зачем
wiki.vg/Protocol Официальная неофициальная документация MC протокола. Handshake, VarInt, все пакеты.
wiki.vg/Handshaking_sequence Полная последовательность handshake → login → play
Velocity источник Как PaperMC парсит MC протокол в Java - референс
Pumpkin-MC MC сервер на Rust - референс для Rust парсинга протокола

eBPF / XDP

Ресурс Зачем
Outfluencer/Minecraft-XDP-eBPF Референс: XDP фильтр специально для Minecraft (Rust + C, 190+ stars)
xdp-project/xdp-tutorial Лучший туториал по XDP - от простого к сложному
libbpf-bootstrap Шаблоны eBPF программ с современным подходом (skeleton, CO-RE)
aya-rs/aya Альтернатива libbpf-rs - eBPF полностью на Rust (без C)
BPF Performance Tools Книга Brendan Gregg - глубокий разбор BPF/eBPF
Cloudflare: XDP введение Как Cloudflare использует XDP для DDoS mitigation
Facebook: XDP at scale Katran - XDP load balancer от Facebook

Rust networking

Ресурс Зачем
tokio-rs/tokio Async runtime - основа edge ноды
tokio-rs/tokio-uring io_uring runtime для tokio
bytedance/monoio Thread-per-core io_uring runtime от ByteDance
glommio io_uring runtime от DataDog
rustls TLS на Rust - для mTLS
quinn-rs/quinn QUIC реализация на Rust
zero-copy-paxos Статья о zero-copy в системных сервисах
Uring и io_uring (LWN) Детальный разбор io_uring от автора

DDoS защита и сети

Ресурс Зачем
Cloudflare Blog: DDoS Статьи Cloudflare о реальных атаках и защите
Path.net технический блог Как устроена игровая DDoS защита
RFC 4271 BGP - основа Anycast маршрутизации
RFC 9000 QUIC протокол (официальный RFC)
WireGuard whitepaper Технический документ WireGuard
Hping3 man page Инструмент для тестирования защиты
tcpkali Benchmark инструмент для TCP

Балансировка и прокси

Ресурс Зачем
Envoy proxy docs EWMA, Circuit Breaker, xDS - референс архитектуры
HAProxy конфигурация Полная документация HAProxy
Consistent Hashing paper Оригинальная статья Karger et al. 1997
EWMA в Envoy Как Envoy реализует EWMA балансировку
Nginx SO_REUSEPORT Как Nginx использует SO_REUSEPORT

Наблюдаемость

Ресурс Зачем
OpenTelemetry Официальная документация OTel
ClickHouse docs Документация ClickHouse - схемы, запросы
VictoriaMetrics Prometheus-совместимое хранилище для долгосрочных метрик
Grafana Tempo Хранилище distributed traces
Parca Continuous profiling для production
tokio-console Debug async tokio tasks
Brendan Gregg: Flame Graphs Методология профилирования через flame graphs

Безопасность

Ресурс Зачем
STRIDE модель Методология threat modeling
subtle crate Constant-time операции в Rust
HMAC RFC 2104 Оригинальный HMAC RFC
cargo-audit CVE проверка Rust зависимостей
cargo-deny Политики лицензий и зависимостей
SLSA framework Supply chain security уровни
cosign Подпись Docker образов

Смежные open-source проекты

Проект Язык Что взять
Velocity Java MC proxy - основа нашего плагина
Gate (Minekube) Go Высокопроизводительный MC proxy - архитектурный референс
Minecraft-XDP-eBPF Rust+C XDP для Minecraft - брать за основу XDP компонента
Sonar Java Antibot для Velocity - интегрируем как слой
RedisBungee-Reloaded Java Cross-proxy синхронизация - референс
VeloFlame Java Velocity форк с встроенным антиботом (июль 2026)
Pumpkin-MC Rust MC сервер на Rust - референс протокола
Katran C++ XDP load balancer от Facebook - архитектурный референс
NATS Go Event bus - используем для критических событий
FRRouting C BGP routing - для Anycast в v0.6+
headscale Go Self-hosted WireGuard координатор - для v0.6+

Статьи и блоги по теме

Статья Почему стоит прочитать
How TCPShield works Понять конкурента изнутри
Cloudflare: Lessons from protecting 26M HTTP RPS Реальная статистика DDoS атак
Linux networking performance Kernel vs DPDK vs XDP сравнение
Tokio internals Как работает tokio scheduler
io_uring в production Реальный опыт io_uring
eBPF maps deep dive BPF map типы, когда что использовать

RFC для изучения

RFC Тема
RFC 793 TCP - основа всего
RFC 4271 BGP-4
RFC 4786 Anycast через BGP
RFC 7413 TCP Fast Open
RFC 9000 QUIC Transport
RFC 9001 QUIC + TLS 1.3
RFC 8446 TLS 1.3
RFC 2104 HMAC
RFC 5246 TLS 1.2 (для совместимости)

Инструменты для разработки

# Анализ трафика
wireshark         # GUI пакетный анализатор
tshark            # CLI версия wireshark
tcpdump           # быстрый захват пакетов

# Benchmark
tcpkali           # TCP нагрузочное тестирование
iperf3            # bandwidth тест
hping3            # генерация специфических пакетов
wrk               # HTTP benchmark (для Manager API)

# eBPF отладка
bpftool           # управление BPF программами и картами
bpftrace          # скриптовый язык для eBPF
strace            # системные вызовы (для userspace)

# Rust
cargo-flamegraph  # flame graphs
cargo-criterion   # benchmark с HTML отчётами
cargo-audit       # CVE проверка
cargo-deny        # политики зависимостей
tokio-console     # async tasks debug

# Сеть
wireguard-tools   # wg, wg-quick
frr               # FRRouting (BGP)
iptables/nftables # firewall

# Мониторинг
prometheus        # метрики
grafana           # дашборды
clickhouse        # attack log аналитика
parca             # continuous profiling