- remove Java plugins (velocity/paper), dashboard, all MC-specific code
(handshake, death_code, varint, hostname-HMAC); available in history pre-v0.2
- merge crates/* into one package with src/bin/{rampart,rampart-manager,rampart-cli}
- ProtocolHandler trait + registry (no implementations yet), universal PoW kept
- XDP: universal L3/L4 filter (xdp/core/) + pluggable hook API (xdp/hooks/),
fix IPv6 saddr bug; clang build verified
- docs: bilingual knowledge base (docs/kb/: attacks x4, defense-levels,
practice x3), rewrite README/architecture for universal concept
- TODO.md v4.0: <=300-line module limit, competitor benchmark section (ref/)
- deploy/CI/docs cleanup: no MC references, new binary names
cargo build/clippy(-D warnings)/test green (55 tests)
125 lines
3.8 KiB
Markdown
125 lines
3.8 KiB
Markdown
# Troubleshooting - FAQ и диагностика
|
||
|
||
---
|
||
|
||
## Edge нода
|
||
|
||
### "XDP не загружается"
|
||
|
||
```bash
|
||
systemd-detect-virt # openvz/lxc → XDP не работает, нужен KVM
|
||
uname -r # нужно 5.10+
|
||
dpkg -l | grep libbpf # libbpf-dev нужен при сборке
|
||
|
||
journalctl -u rampart | grep -i "xdp\|ebpf\|bpf"
|
||
|
||
# Проверить компиляцию BPF-программы вручную:
|
||
clang -O2 -g -target bpf -c xdp/core/universal_filter.c -o /tmp/uf.o
|
||
|
||
# Не помогло — отключи XDP в config.toml ([xdp] enabled = false) и рестарт.
|
||
```
|
||
|
||
### "Rate limit блокирует реальных клиентов"
|
||
|
||
```bash
|
||
# Смотрим метрики
|
||
curl -s http://EDGE_IP:9090/metrics | grep rate_limit
|
||
|
||
# Клиенты за NAT (один IP — много людей) → увеличь лимиты в config.toml:
|
||
# [limits] max_connections_per_ip = 50
|
||
# Или добавь их адрес в whitelist (только IP), рестарт.
|
||
```
|
||
|
||
### "Высокое CPU на edge ноде"
|
||
|
||
```bash
|
||
top -p $(pgrep rampart)
|
||
perf top -p $(pgrep rampart)
|
||
|
||
# Частые причины:
|
||
# 1. Много мусорных коннектов в userspace → включи XDP ([xdp] enabled = true)
|
||
# 2. Заниженные rate limit → соединения постоянно рвутся и пересоздаются
|
||
# 3. Не хватает воркеров → [workers] count = числу vCPU
|
||
```
|
||
|
||
### "Edge не стартует: no protocol plugins compiled"
|
||
|
||
Реестр протоколов пуст: `rampart` требует хотя бы один ProtocolHandler
|
||
(feature `protocol-http` или внешний крейт-плагин). Пока плагинов нет,
|
||
edge запускается только в исследовательских целях. См. src/bin/rampart.rs.
|
||
|
||
---
|
||
|
||
## Manager
|
||
|
||
### "Manager не стартует: JWT_SECRET must be set"
|
||
|
||
```bash
|
||
export JWT_SECRET="$(openssl rand -hex 32)" # минимум 32 байта
|
||
export API_PASSWORD="сильный_пароль" # 'changeme' запрещён
|
||
export REDIS_URL="redis://127.0.0.1:6379/0" # опционально
|
||
rampart-manager
|
||
```
|
||
|
||
### "Manager отдаёт 401"
|
||
|
||
Токен истёк (`JWT_EXPIRATION_SECS`, дефолт 86400) — перелогинься:
|
||
|
||
```bash
|
||
curl -s -X POST localhost:8080/api/v1/auth/login \
|
||
-H 'Content-Type: application/json' -d '{"password":"..."}'
|
||
```
|
||
|
||
---
|
||
|
||
## Redis
|
||
|
||
### "Redis падает с OOM"
|
||
|
||
```bash
|
||
redis-cli INFO memory | grep used_memory_human
|
||
redis-cli CONFIG SET maxmemory 2gb
|
||
redis-cli CONFIG SET maxmemory-policy allkeys-lru
|
||
```
|
||
|
||
### "Edge не синхронизирует блэклист через Redis"
|
||
|
||
```bash
|
||
# redis_url задан и не пустой? Сборка с feature store-redis (дефолт)?
|
||
grep redis_url /etc/rampart/config.toml
|
||
journalctl -u rampart | grep -i redis
|
||
```
|
||
|
||
Без Redis edge работает автономно на локальном кэше блэклиста.
|
||
|
||
---
|
||
|
||
## ClickHouse
|
||
|
||
### "ClickHouse не принимает данные"
|
||
|
||
```bash
|
||
systemctl status clickhouse-server
|
||
curl http://localhost:8123/ping
|
||
clickhouse-client --query "SHOW TABLES FROM rampart"
|
||
df -h /var/lib/clickhouse
|
||
```
|
||
|
||
Запись настраивается `store.clickhouse_url` в config.toml. Ошибки записи не
|
||
роняют edge — они уходят в debug-лог.
|
||
|
||
---
|
||
|
||
## Общая диагностика
|
||
|
||
```bash
|
||
rampart-cli doctor # полная диагностика через Manager API
|
||
rampart-cli status # краткий статус
|
||
```
|
||
|
||
> Честно: набор проверок `doctor` ограничен тем, что реализовано в CLI
|
||
> (см. src/cli/commands/doctor.rs) и доступно Manager API.
|
||
|
||
---
|
||
|
||
*Версия: 2.0 | Август 2026*
|