Skip to content

Commit 09f2a3b

Browse files
authored
Merge pull request #119603 from GonzaloMurillo/patch-1
Update rule-processing.md
2 parents 9d1b570 + 3cca4e7 commit 09f2a3b

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

articles/firewall/rule-processing.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ If a Firewall Policy is inherited from a parent policy, Rule Collection Groups i
3131
3232
Here's an example policy:
3333

34+
Assuming BaseRCG1 is a rule collection group priority (200) that contains the rule collections: DNATRC1, DNATRC3,NetworkRC1.\
35+
BaseRCG2 is a rule collection group priority (300) that contains the rule collections: AppRC2, NetworkRC2.\
36+
ChildRCG1 is a rule collection group priority (200) that contains the rule collections: ChNetRC1, ChAppRC1.\
37+
ChildRCG2 is a rule collection group that contains the rule collections: ChNetRC2, ChAppRC2,ChDNATRC3.
38+
39+
As per following table:
3440

3541
|Name |Type |Priority |Rules |Inherited from
3642
|---------|---------|---------|---------|-------|
@@ -49,7 +55,32 @@ Here's an example policy:
4955
|ChAppRC2 | Application rule collection |2000 |7 |-|
5056
|ChDNATRC3 | DNAT rule collection | 3000 | 2 |-|
5157

52-
The rule processing is in the following order: DNATRC1, DNATRC3, ChDNATRC3, NetworkRC1, NetworkRC2, ChNetRC1, ChNetRC2, AppRC2, ChAppRC1, ChAppRC2.
58+
Initial Processing:
59+
60+
The process begins by examining the rule collection group (RCG) with the lowest number, which is BaseRCG1 with a priority of 200. Within this group, it searches for DNAT rule collections and evaluates them according to their priorities. In this case, DNATRC1 (priority 600) and DNATRC3 (priority 610) are found and processed accordingly.\
61+
Next, it moves to the next RCG, BaseRCG2 (priority 200), but finds no DNAT rule collection.\
62+
Following that, it proceeds to ChildRCG1 (priority 300), also without a DNAT rule collection.\
63+
Finally, it checks ChildRCG2 (priority 650) and finds the ChDNATRC3 rule collection (priority 3000).
64+
65+
Iteration Within Rule Collection Groups:
66+
67+
Returning to BaseRCG1, the iteration continues, this time for NETWORK rules. Only NetworkRC1 (priority 800) is found.\
68+
Then, it moves to BaseRCG2, where NetworkRC2 (priority 1300) is located.\
69+
Moving on to ChildRCG1, it discovers ChNetRC1 (priority 700) as the NETWORK rule.\
70+
Lastly, in ChildRCG2, it finds ChNetRC2 (priority 1100) as the NETWORK rule collection.
71+
72+
Final Iteration for APPLICATION Rules:
73+
74+
Returning to BaseRCG1, the process iterates for APPLICATION rules, but none are found.\
75+
In BaseRCG2, it identifies AppRC2 (priority 1200) as the APPLICATION rule.\
76+
In ChildRCG1, ChAppRC1 (priority 900) is found as the APPLICATION rule.\
77+
Finally, in ChildRCG2, it locates ChAppRC2 (priority 2000) as the APPLICATION rule.
78+
79+
**In summary, the rule processing sequence is as follows: DNATRC1, DNATRC3, ChDNATRC3, NetworkRC1, NetworkRC2, ChNetRC1, ChNetRC2, AppRC2, ChAppRC1, ChAppRC2.**
80+
81+
This process involves analyzing rule collection groups by priority, and within each group, ordering the rules according to their priorities for each rule type (DNAT, NETWORK, and APPLICATION).
82+
83+
So first all the DNAT rules are processed from all the rule collection groups, analysing the rule collection groups by order of priority and ordering the DNAT rules within each rule collection group by order of priority. Then the same process for NETWORK rules, and finally for APPLICATION rules.
5384

5485
For more information about Firewall Policy rule sets, see [Azure Firewall Policy rule sets](policy-rule-sets.md).
5586

0 commit comments

Comments
 (0)