Panda RPKI OSS Local 277cbca878
Some checks failed
ci / rust (push) Has been cancelled
ci / docker (push) Has been cancelled
初始化 Panda RPKI v0.1.0 开源候选版本
2026-09-09 18:01:15 +08:00

4.4 KiB

Usage

Examples assume panda-rpki is on PATH; for a local build use target/release/panda-rpki. Prepare TAL/TA files as described in Getting started.

Snapshot and delta

Use a fresh state directory for an explicit snapshot:

panda-rpki validate --tal input/anchor.tal --ta input/anchor.cer \
  --rrdp-state-dir state/anchor --rrdp-sync-mode snapshot \
  --out output/snapshot --ccr-out output/snapshot/result.ccr
panda-rpki validate --tal input/anchor.tal --ta input/anchor.cer \
  --rrdp-state-dir state/anchor --rrdp-sync-mode delta \
  --out output/delta-01 --ccr-out output/delta-01/result.ccr

Subsequent runs reuse state and can use auto. Delta mode can include a protocol-required snapshot or noop. Check actual operation counters in the summary. Do not discard persistent state between scheduled runs.

Multiple anchors and constraints

panda-rpki validate \
  --tal input/arin.tal --ta input/arin.cer --tal-id arin \
  --tal input/ripe.tal --ta input/ripe.cer --tal-id ripe \
  --parallel-max-repo-sync-workers-global 8 \
  --parallel-phase2-object-workers 8 \
  --rrdp-state-dir state/multi --out output/multi \
  --ccr-out output/multi/result.ccr

Add further pairs in the same way. Optional resource constraints are read from the TAL-adjacent .constraints file, or specified with --ta-constraints arin=input/arin.constraints. Rules follow the WG profile listed in the standards matrix.

A constraint file contains allow/deny followed by an IPv4/IPv6 prefix, address range, ASN or ASN range. Blank lines and # comments are allowed. For a synthetic test anchor, an example is:

# Example resources only: do not apply this policy to a production RIR.
allow 192.0.2.0/24
deny 192.0.2.128/25
allow 2001:db8::/32
allow 64496 - 64511

Deny overlap rejects an EE resource; otherwise the resource must be fully covered by allow rules of its resource family. Unlisted resources are not implicitly allowed. An empty constraint file therefore differs from having no constraint file. Overlapping rules are normalized and may produce warnings.

Continuous operation

panda-rpki daemon --state-root data/daemon \
  --interval-secs 600 --retain-runs 10 -- \
  --tal input/anchor.tal --ta input/anchor.cer \
  --log-level info --log-format json

The daemon runs in the foreground. It starts with snapshot for empty state and requests delta after successful runs. The interval starts after each cycle finishes. Add --max-runs 3 before -- for a finite run. SIGTERM requests a graceful stop. Restart with the same root to continue numbering and state.

Each cycle writes to data/daemon/runs/run_000001/, then run_000002/, etc. Retention deletes the oldest completed run directories beyond the configured limit, including their artifacts. Copy anything you need to retain elsewhere. The append-only summary history is not trimmed by retention.

Outputs and diagnostics

vrps.csv contains asn,prefix,max_length. CCR contains canonical state; duplicate routing payloads can collapse into a single CCR entry. Count raw rows and normalized unique payloads separately when comparing outputs. ASPA canonicalization groups providers by customer ASN.

Use --log-level debug for diagnosis, or trace for detailed object/worker events. Logs are written to stderr and can be redirected independently from outputs. In daemon mode, inspect per-run stderr.log and the controller's daemon-status.json and run-summary.jsonl.

Symptom Action
TAL/TA key mismatch or expired TA Refresh the certificate from the TAL's official URI and check the selected pair.
State-layout/schema error Preserve the directory and select a new dedicated root for a compatible run.
Snapshot refuses existing state Use auto/delta, or choose a fresh directory for a new snapshot.
Delta refuses empty state Establish state with auto or snapshot.
Permission denied in Docker Pre-create writable host directories and use your UID/GID mapping.
RRDP origin rejection Inspect the publisher's notification/references; extra TLS roots do not bypass origin policy.
Daemon root locked Stop the other instance normally; do not delete its lock file.
Unexpected counts or partial output Inspect warnings and per-run status; use new output paths to avoid stale files.

See the CLI reference for precise defaults, timeouts, exit codes and recovery behavior.