Skip to content

Customer announces someone else's prefix; our filter blocks it

Case 22 of the Network Change Verdict Corpus. Category: filter-works. Expected verdict: safe (an experienced operator would approve it).

Why it is expected safe

ce1 starts announcing 8.8.8.0/24. pe1's customer filter rejects it, so nothing leaks. The customer-side change is bad, but our network behaves correctly, so a test of our network must pass.

The config change

Against the FRR configs of the base lab:

--- a/ce1.conf
+++ b/ce1.conf
@@ -18,3 +18,9 @@
   neighbor 10.0.1.1 route-map ALLOW-ALL out
  exit-address-family
 !
+ip route 8.8.8.0/24 blackhole
+router bgp 65100
+ address-family ipv4 unicast
+  network 8.8.8.0/24
+ exit-address-family
+!

What each strategy said

The expected verdict was committed to git before any run. All three strategies tested the same running lab (method).

Strategy Verdict Result Checks that failed
Ping only safe ✅ none
All BGP sessions up safe ✅ none
Netdryrun intent checks safe ✅ none

What Netdryrun flagged

Nothing: every check in the intent spec passed, so Netdryrun called the change safe.

Reproduce it

On Linux or WSL2 with Docker and containerlab, from a checkout of the repository:

python corpus/run.py --case 22

Case file: corpus/cases/22-customer-leaks-third-party.yml. Published result: netdryrun 0.2.0, containerlab 0.81.1, FRR quay.io/frrouting/frr:10.4.1, commit ec23379, run on 2026-10-26.