Contrôles
Algorithme — Route Leak Detect
# Détection fuites VRF via Batfish
def detect_vrf_leaks(snapshot, target_vrf):
routes = snapshot.q.routes(
vrfs=[target_vrf]
).answer().frame()
leaks = []
for _, row in routes.iterrows():
origin_vrf = row["originVrf"]
if origin_vrf != target_vrf:
if not policy.allows_leak(
origin_vrf, target_vrf):
leaks.append({
"prefix": row["network"],
"from_vrf": origin_vrf,
"to_vrf": target_vrf,
"next_hop": row["nextHop"]
})
return leaks