@@ -79,31 +79,31 @@ Pass Example
7979 > 🛈 ROUTER: Packet inbound-interface: docker0
8080 > 🛈 ROUTER: Packet inbound-route: 172.17.0.0/16, scope link
8181 > 🛈 FIREWALL: Processing Chain: Table nat ip4 | Chain PREROUTING ip4 nat
82- > 🛈 FIREWALL: > Chain PREROUTING | Rule 0
82+ > 🛈 FIREWALL: > Chain PREROUTING | Rule 0 | Match = > jump
8383 > 🛈 FIREWALL: > Chain PREROUTING | Sub-Chain: DOCKER
84- > 🛈 FIREWALL: > Chain DOCKER | Rule 0
84+ > 🛈 FIREWALL: > Chain DOCKER | Rule 0 | Match = > return
8585 > 🛈 ROUTER: Packet outbound-interface: wan
8686 > 🛈 ROUTER: Packet outbound-route: 0.0.0.0/0, gw 10.255.255.254, metric 600, scope remote
8787 > 🛈 FIREWALL: Processing Chain: Table filter ip4 | Chain FORWARD ip4 filter
88- > 🛈 FIREWALL: > Chain FORWARD | Rule 0
88+ > 🛈 FIREWALL: > Chain FORWARD | Rule 0 | Match = > jump
8989 > 🛈 FIREWALL: > Chain FORWARD | Sub-Chain: DOCKER-USER
90- > 🛈 FIREWALL: > Chain DOCKER-USER | Rule 0
91- > 🛈 FIREWALL: > Chain FORWARD | Rule 1
90+ > 🛈 FIREWALL: > Chain DOCKER-USER | Rule 0 | Match = > return
91+ > 🛈 FIREWALL: > Chain FORWARD | Rule 1 | Match = > jump
9292 > 🛈 FIREWALL: > Chain FORWARD | Sub-Chain: DOCKER-FORWARD
93- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 0
93+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 0 | Match = > jump
9494 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-CT
9595 > 🛈 FIREWALL: > Chain DOCKER-CT | Rule 0
96- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 1
96+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 1 | Match = > jump
9797 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-ISOLATION-STAGE-1
98- > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-1 | Rule 0
98+ > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-1 | Rule 0 | Match = > jump
9999 > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-1 | Sub-Chain: DOCKER-ISOLATION-STAGE-2
100100 > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-2 | Rule 0
101- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 2
101+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 2 | Match = > jump
102102 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-BRIDGE
103103 > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Rule 0
104- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 3
104+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 3 | Match = > accept
105105 > 🛈 FIREWALL: Processing Chain: Table nat ip4 | Chain POSTROUTING ip4 nat
106- > 🛈 FIREWALL: > Chain POSTROUTING | Rule 0
106+ > 🛈 FIREWALL: > Chain POSTROUTING | Rule 0 | Match = > snat
107107 > 🛈 FIREWALL: Performed SNAT
108108 > ✓ FIREWALL: Packet passed
109109
@@ -119,30 +119,30 @@ Block Example
119119 > 🛈 ROUTER: Packet inbound-interface: wan
120120 > 🛈 ROUTER: Packet inbound-route: 0.0.0.0/0, gw 10.255.255.254, metric 600, scope remote
121121 > 🛈 FIREWALL: Processing Chain: Table nat ip4 | Chain PREROUTING ip4 nat
122- > 🛈 FIREWALL: > Chain PREROUTING | Rule 0
122+ > 🛈 FIREWALL: > Chain PREROUTING | Rule 0 | Match = > jump
123123 > 🛈 FIREWALL: > Chain PREROUTING | Sub-Chain: DOCKER
124124 > 🛈 FIREWALL: > Chain DOCKER | Rule 0
125125 > 🛈 FIREWALL: > Chain DOCKER | Rule 1
126126 > 🛈 ROUTER: Packet outbound-interface: docker0
127127 > 🛈 ROUTER: Packet outbound-route: 172.17.0.0/16, scope link
128128 > 🛈 FIREWALL: Processing Chain: Table filter ip4 | Chain FORWARD ip4 filter
129- > 🛈 FIREWALL: > Chain FORWARD | Rule 0
129+ > 🛈 FIREWALL: > Chain FORWARD | Rule 0 | Match = > jump
130130 > 🛈 FIREWALL: > Chain FORWARD | Sub-Chain: DOCKER-USER
131- > 🛈 FIREWALL: > Chain DOCKER-USER | Rule 0
132- > 🛈 FIREWALL: > Chain FORWARD | Rule 1
131+ > 🛈 FIREWALL: > Chain DOCKER-USER | Rule 0 | Match = > return
132+ > 🛈 FIREWALL: > Chain FORWARD | Rule 1 | Match = > jump
133133 > 🛈 FIREWALL: > Chain FORWARD | Sub-Chain: DOCKER-FORWARD
134- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 0
134+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 0 | Match = > jump
135135 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-CT
136- > 🛈 FIREWALL: > Chain DOCKER-CT | Rule 0
137- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 1
136+ > 🛈 FIREWALL: > Chain DOCKER-CT | Rule 0 | Match = > accept
137+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 1 | Match = > jump
138138 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-ISOLATION-STAGE-1
139139 > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-1 | Rule 0
140- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 2
140+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 2 | Match = > jump
141141 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-BRIDGE
142- > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Rule 0
142+ > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Rule 0 | Match = > jump
143143 > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Sub-Chain: DOCKER
144144 > 🛈 FIREWALL: > Chain DOCKER | Rule 0
145- > 🛈 FIREWALL: > Chain DOCKER | Rule 1
145+ > 🛈 FIREWALL: > Chain DOCKER | Rule 1 | Match = > drop
146146 > ✖ FIREWALL: Packet blocked by rule: {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
147147
148148----
@@ -159,31 +159,39 @@ You can get more detailed output by increasing the verbosity:
159159 > 🛈 ROUTER: Packet inbound-interface: wan
160160 > 🛈 ROUTER: Packet inbound-route: 0.0.0.0/0, gw 10.255.255.254, metric 600, scope remote
161161 > 🛈 FIREWALL: Processing Chain: Table nat ip4 | Chain PREROUTING ip4 nat
162- > 🛈 FIREWALL: > Chain PREROUTING | Rule 0: {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 3 | Matches: []}
162+ > 🛈 FIREWALL: > Chain PREROUTING | Rule 0 | Match = > jump | {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 3 | Matches: []}
163163 > 🛈 FIREWALL: > Chain PREROUTING | Sub-Chain: DOCKER
164- > 🛈 FIREWALL: > Chain DOCKER | Rule 0: {' action' : ' return' , ' seq' : 0, ' raw' : Rule: # 10 | Matches: [ni_in == ['docker0']]}
165- > 🛈 FIREWALL: > Chain DOCKER | Rule 1: {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
164+ > 🛈 FIREWALL: > Chain DOCKER | Rule 0 | {' action' : ' return' , ' seq' : 0, ' raw' : Rule: # 10 | Matches: [ni_in == ['docker0']]}
165+ > 🛈 FIREWALL: > Chain DOCKER | Rule 1 | {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
166166 > 🛈 FIREWALL: Flow-type: forward
167167 > 🛈 ROUTER: Packet outbound-interface: docker0
168168 > 🛈 ROUTER: Packet outbound-route: 172.17.0.0/16, scope link
169169 > 🛈 FIREWALL: Processing Chain: Table filter ip4 | Chain FORWARD ip4 filter
170- > 🛈 FIREWALL: > Chain FORWARD | Rule 0: {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 20 | Matches: []}
170+ > 🛈 FIREWALL: > Chain FORWARD | Rule 0 | Match = > jump | {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 20 | Matches: []}
171171 > 🛈 FIREWALL: > Chain FORWARD | Sub-Chain: DOCKER-USER
172- > 🛈 FIREWALL: > Chain DOCKER-USER | Rule 0: {' action' : ' return' , ' seq' : 0, ' raw' : Rule: # 19 | Matches: []}
173- > 🛈 FIREWALL: > Chain FORWARD | Rule 1: {' action' : ' jump' , ' seq' : 1, ' raw' : Rule: # 8 | Matches: []}
172+ > 🛈 FIREWALL: > Chain DOCKER-USER | Rule 0 | Match = > return | {' action' : ' return' , ' seq' : 0, ' raw' : Rule: # 19 | Matches: []}
173+ > 🛈 FIREWALL: > Chain FORWARD | Rule 1 | Match = > jump | {' action' : ' jump' , ' seq' : 1, ' raw' : Rule: # 8 | Matches: []}
174174 > 🛈 FIREWALL: > Chain FORWARD | Sub-Chain: DOCKER-FORWARD
175- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 0: {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 11 | Matches: []}
175+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 0 | Match = > jump | {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 11 | Matches: []}
176176 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-CT
177- > 🛈 FIREWALL: > Chain DOCKER-CT | Rule 0: {' action' : ' accept' , ' seq' : 0, ' raw' : Rule: # 23 | Matches: [ni_out == ['docker0']]}
178- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 1: {' action' : ' jump' , ' seq' : 1, ' raw' : Rule: # 10 | Matches: []}
177+ > 🛈 FIREWALL: > Chain DOCKER-CT | Rule 0 | Match = > accept | {' action' : ' accept' , ' seq' : 0, ' raw' : Rule: # 23 | Matches: [ni_out == ['docker0']]}
178+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 1 | Match = > jump | {' action' : ' jump' , ' seq' : 1, ' raw' : Rule: # 10 | Matches: []}
179179 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-ISOLATION-STAGE-1
180- > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-1 | Rule 0: {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 25 | Matches: [ni_in == ['docker0'], ni_out != ['docker0']]}
181- > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 2: {' action' : ' jump' , ' seq' : 2, ' raw' : Rule: # 9 | Matches: []}
180+ > 🛈 FIREWALL: > Chain DOCKER-ISOLATION-STAGE-1 | Rule 0 | {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 25 | Matches: [ni_in == ['docker0'], ni_out != ['docker0']]}
181+ > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Rule 2 | Match = > jump | {' action' : ' jump' , ' seq' : 2, ' raw' : Rule: # 9 | Matches: []}
182182 > 🛈 FIREWALL: > Chain DOCKER-FORWARD | Sub-Chain: DOCKER-BRIDGE
183- > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Rule 0: {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 24 | Matches: [ni_out == ['docker0']]}
183+ > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Rule 0 | Match = > jump | {' action' : ' jump' , ' seq' : 0, ' raw' : Rule: # 24 | Matches: [ni_out == ['docker0']]}
184184 > 🛈 FIREWALL: > Chain DOCKER-BRIDGE | Sub-Chain: DOCKER
185- > 🛈 FIREWALL: > Chain DOCKER | Rule 0: {' action' : ' return' , ' seq' : 0, ' raw' : Rule: # 10 | Matches: [ni_in == ['docker0']]}
186- > 🛈 FIREWALL: > Chain DOCKER | Rule 1: {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
185+ > 🛈 FIREWALL: > Chain DOCKER | Rule 0 | {' action' : ' return' , ' seq' : 0, ' raw' : Rule: # 10 | Matches: [ni_in == ['docker0']]}
186+ > 🛈 FIREWALL: > Chain DOCKER | Rule 1 | Match => drop | {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
187+ > ✖ FIREWALL: Packet blocked by rule: {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
188+
189+ Or run use the silent-mode:
190+
191+ .. code-block :: bash
192+
193+ ftf-cli ... --src-ip 10.0.0.1 --dst-ip 172.17.10.6 --verbosity silent
194+
187195 > ✖ FIREWALL: Packet blocked by rule: {' action' : ' drop' , ' seq' : 1, ' raw' : Rule: # 22 | Matches: [ni_in != ['docker0'], ni_out == ['docker0']]}
188196
189197----
@@ -197,13 +205,12 @@ Depending on the system-specific configuration traffic can be dropped by non-fir
197205
198206 ftf-cli ... --src-ip 172.17.11.5 --dst-ip 10.100.1.1
199207
200- > 🛈 ROUTER: Packet inbound-interface: wan
201- > 🛈 ROUTER: Packet inbound-route: 0.0 .0.0/0, gw 10.255.255.254, metric 600, scope remote
208+ > 🛈 ROUTER: Packet inbound-interface: docker0
209+ > 🛈 ROUTER: Packet inbound-route: 172.17 .0.0/16, scope link
202210 > 🛈 FIREWALL: Processing Chain: Table nat ip4 | Chain PREROUTING ip4 nat
203- > 🛈 FIREWALL: > Chain PREROUTING | Rule 0
211+ > 🛈 FIREWALL: > Chain PREROUTING | Rule 0 | Match = > jump
204212 > 🛈 FIREWALL: > Chain PREROUTING | Sub-Chain: DOCKER
205- > 🛈 FIREWALL: > Chain DOCKER | Rule 0
206- > 🛈 FIREWALL: > Chain DOCKER | Rule 1
213+ > 🛈 FIREWALL: > Chain DOCKER | Rule 0 | Match => return
207214 > 🛈 ROUTER: Packet outbound-interface: wan
208215 > 🛈 ROUTER: Packet outbound-route: 0.0.0.0/0, gw 10.255.255.254, metric 600, scope remote
209216 > ✖ SYSTEM: Dropping traffic to WAN targeting bogons
0 commit comments