I may be wrong but if you just use
entry permit_ICMP_dc1 {
if match all {
source-address 172.17.0.0/16;
protocol ICMP;
destination-address 172.16.5.55/32;
} then {
permit;
}
}
and then end with a "permit all" entry
entry permit_LC_internet {
if match all {
source-address 172.17.0.0/16;
destination-address 0.0.0.0/0;
} then {
permit;
}
}then the first entry is unneccessary.
After all, without it, the ICMP traffic would have still been permited by the last "permit" rule (either explicit or implicit).
If you want to allow ONLY ICMP traffic to 172.16.5.55/32, you need to add a "deny rule" that blocks all other traffic to that IP address AFTER the "permit rule"...
entry permit_ICMP_dc1 {
if match all {
source-address 172.17.0.0/16;
protocol ICMP;
destination-address 172.16.5.55/32;
} then {
permit;
}
}
entry deny_All_dc1 {
if match all {
destination-address 172.16.5.55/32;
} then {
deny;
}
}
This should be repeated for every entry.
Permit certain traffic to destination A, then deny other traffic to destination A. Repeat for B, C, D, etc., then, permit the rest...
Or am I missing something?