1. 02 Apr, 2026 1 commit
    • Vitaly Lipatov's avatar
      Add route export API, telemt metrics, chat-dns split views, massdns CNAME fallback · 357eb383
      Vitaly Lipatov authored
      route-web-api.py:
      - /api/export endpoint: filter by group/list/proto, text/mikrotik/json formats
      - /api/export/groups: list available groups with counts
      - aggregate=1 (exact) / aggregate=2 (approx via mapcidr)
      - Multiple groups support (group=gre,egw,zapret)
      - Resolved data from /var/lib/etersoft-router/state/ with in-memory cache (60s TTL)
      - Speed check: don't early-stop before checking first 2 gateways
      
      route-update.sh:
      - umask 022 for readable state files
      - chmod g+r on resolved after write
      - Per-list duration tracking (duration file in state)
      
      functions:
      - CNAME fallback: parallel dig (xargs -P 20) instead of sequential
      
      route-stats-metrics.sh:
      - New: collect route list counts and push to InfluxDB
      - Per-list duration metrics
      - Route-update total duration
      
      dns/chat-dns.sh:
      - Rewritten for split-view subzone chat.eterfund.ru via SSH to ns1
      
      dns/telemt-metrics.sh:
      - Added upstream_success/fail/slow and handshake_timeout metrics
      Co-Authored-By: 's avatarClaude Opus 4.6 (1M context) <noreply@anthropic.com>
      357eb383
  2. 31 Mar, 2026 1 commit
  3. 24 Mar, 2026 1 commit
  4. 19 Mar, 2026 5 commits
  5. 18 Mar, 2026 2 commits
  6. 13 Mar, 2026 11 commits
  7. 12 Mar, 2026 3 commits
  8. 09 Mar, 2026 4 commits
  9. 08 Mar, 2026 6 commits
  10. 07 Mar, 2026 1 commit
  11. 05 Mar, 2026 1 commit
    • Vitaly Lipatov's avatar
      route-update: improve volatile detection and add IP validation · bd2a6117
      Vitaly Lipatov authored
      Volatile detection:
      - Remove single-record restriction (count<=1) that missed multi-record
        domains like youtube.com with 4 rotating AAAA records
      - Add diff-resolvers check: domain is volatile if local and extra DNS
        return different IPs (catches cached TTL > threshold cases)
      - expand_volatile_subnets now also processes domains with accumulated
        volatile_ips from prior runs, not only current volatile_domains
        (fixes race where cached TTL > threshold causes empty volatile_domains
        but IPs were already collected)
      
      IP validation:
      - Validate resolved IPs with python3 ipaddress before ip-batch loading
      - Filter out invalid entries (e.g. malformed IPv6) with WARNING log
      - Prevents ip-batch failures from corrupting route tables
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      bd2a6117
  12. 04 Mar, 2026 4 commits