Rules Engine

When Rules Disagree,
Here's What Wins.

A firewall with IP whitelists, IP blocklists, custom rules, DDoS gates, and application-layer policy all active at once needs an unambiguous answer to "what happens when two of these disagree about the same packet." Neurowall's precedence order is fixed, documented, and testable before you ever apply a change.

4
Enforcement layers with a fixed precedence order: fast allow, fast block, firewall rules, application-layer policy
1
Shared verdict engine used by both live traffic checks and pre-apply simulation
0
Guessing required — every precedence question has one documented answer
Why It Matters

"It depends" is not an answer
you want during an incident.

Firewalls that layer multiple enforcement mechanisms — IP whitelists, IP blocklists, custom rules, DDoS heuristics, application-layer policy — inevitably produce cases where two of them technically apply to the same packet. If the precedence between them isn't fixed and documented, every conflict becomes a debugging session instead of a known answer.

Undocumented Precedence Hides Bugs

If "which rule wins" isn't specified, a rule change can silently produce a different outcome than intended — and nobody notices until traffic behaves unexpectedly.

Multi-Layer Systems Need an Arbiter

Once you have more than one enforcement mechanism, something has to decide what happens when they disagree — leaving that implicit means it can change between versions without anyone deciding it should.

Incident Response Needs Certainty

Mid-incident is the worst time to discover that a manual emergency block doesn't actually take precedence over a stale custom rule someone forgot about.

Compliance Reviewers Ask This Directly

A rule-review process worth its name asks "what happens if these two rules conflict" — an answer of "we're not sure" is a finding, not a shrug.

How It Works

A fixed order,
first decisive match wins.

Neurowall evaluates enforcement layers in a fixed sequence and stops at the first layer that produces a decisive verdict. The same precedence engine backs both live traffic decisions and the policy trace/simulation endpoints, so a "what if I add this rule" check and the real enforcement path never disagree.

1. IP Whitelist
any match → allow, unconditionally
↓ no match
2. IP Blocklist
manual, threat-feed, or CIDR block → drop
↓ no match
3. Firewall Rules Allow/Block
custom rule set + default policy
↓ no match
4. Application-Layer Domain Policy
application-layer allow/block

In the fast packet-filtering layer itself, the IP whitelist is checked before the IP blocklist — any whitelist match passes the packet regardless of how specific a matching blocklist entry might be. If the IP blocklist is consulted and multiple entries could match, the most specific one wins. DDoS flood-gate checks run before the custom rules step in modes that include both — a confirmed flood pattern can drop a packet before your custom rules are ever consulted.

Rule Priority Governs Placement, Not a Race

A rule's priority field decides which enforcement layer it's placed in (fast-path-eligible vs firewall-rules-only, threat-intel tier vs manual tier) — it does not arbitrate between two already-placed rules matching the same packet, since each lookup is a direct key match, not a scanned list.

Catching Conflicts Before They Ship

Simulate the exact precedence
engine, before you commit.

Policy trace simulation doesn't approximate what will happen — it runs the proposed change through the identical verdict-derivation logic used for live traffic. A shadowed rule, an unreachable IP blocklist entry, or an unexpected IP whitelist override shows up in the simulation exactly as it would in production, before it's applied.

ScenarioWhat simulation catches
A new IP blocklist entry is unreachableAn existing IP whitelist CIDR already covers the address — the new block would never fire, and simulation shows the whitelist match taking precedence
A new rule is shadowed by an existing oneA broader existing rule already decides the same traffic — the new rule's effect is visible (or its absence of effect) before it's live
A DDoS threshold change interacts with a ruleSimulation reflects that DDoS gates run before the rules stage, so a stricter DDoS threshold can pre-empt a rule that was expected to be the deciding factor
An admin-gated live checkThe live-simulation variant runs an actual probe against the running filter for the highest-confidence pre-apply verification available
What Other Firewalls Do

Undocumented precedence
is the default, not the exception.

Common approachThe gap
First-match, top-to-bottom rule listsPrecedence exists but is implicit in rule ordering — reordering rules for an unrelated reason can silently change which rule wins for existing traffic
No distinction between simulation and live logicA "test mode" that approximates production behavior with separate code can drift from what actually happens once applied — the two paths quietly diverge over time
Undocumented allow/block orderingWhether IP whitelists or IP blocklists win is often left to vendor documentation (if it exists at all) rather than being independently verifiable via a simulation tool
What Happens Without This

Conflicts surface as
incidents, not warnings.

A new rule is added without checking precedence
Without a simulation step, the first sign that the rule is shadowed or unreachable is traffic behaving unexpectedly in production — not a pre-merge warning.
An emergency block is added during an incident
Without knowing precedence, an operator can't be sure the new block actually takes effect if a broader IP whitelist entry happens to cover the same range — wasting time re-verifying instead of trusting the fix.
An auditor asks how conflicts are resolved
"It depends on rule order, we think" is a weak answer compared to a documented, fixed precedence order backed by a simulation tool that proves it.
Get started

Know exactly what wins before you apply it.