Portál AbcLinuxu, 6. května 2025 07:35
4 301 test all ens224 * ::/0 ::/0 5 365 test all * * ::/0 ::/0 0 0 test all docker0 * ::/0 ::/0 0 0 test all !docker0 * ::/0 ::/0A pokaždé jsem zkoušel s dotyčným strojem komunikovat tak, abych viděl narůstající počty paketů. Pokud je v chainu jen pravidlo "0 0 test all !docker0 * ::/0 ::/0", pak se neaplikuje a do chainu test se vůbec nejde. Pokud je tam toto " 4 301 test all ens224 * ::/0 ::/0", pak ano.
ip6tables -A INPUT ! -o docker0 -j DROPDale hraje roli poradi vsech pravidel, jestli se nejedna o forward etc.
ip6tables -I INPUT 1 -i !docker0 -j testPokud ale nespecifikuji input interface nebo dám jako input interface ens224 (vnější - ethernet), pak se to aplikuje:
ip6tables -I INPUT 1 -i ens224 -j testZkouším to tak, že v INPUT chainu je naráz pouze jedno pravidlo, aby se navzájem neovlivňovaly.
-i !docker0
Nejsem si jistý, jestli tohle vůbec někdy fungovalo - a jestli to bez escapování vůbec projde přes shell. Přes bash určitě ne:
unicorn:~ # iptables -A test -i !docker0 -bash: !docker0: event not found
Stará syntaxe byla
-i \! docker0
ale tenhle zápis je už nějaký pátek deprecated (a třeba iptables 1.6.2 už ho nepodporuje) a mělo by se používat
\! -i docker0
Zrada ovšem je, že "iptables -L
" vypíše oboje stejně:
unicorn:~ # iptables -N test unicorn:~ # iptables -A test -i \!docker0 unicorn:~ # iptables -A test -i \! docker0 Bad argument `docker0' Try `iptables -h' or 'iptables --help' for more information. unicorn:~ # iptables -A test \! -i docker0 unicorn:~ # iptables -nvL test Chain test (0 references) pkts bytes target prot opt in out source destination 0 0 all -- !docker0 * 0.0.0.0/0 0.0.0.0/0 0 0 all -- !docker0 * 0.0.0.0/0 0.0.0.0/0 unicorn:~ # iptables-save # Generated by iptables-save v1.6.2 on Fri May 4 10:10:07 2018 *filter :INPUT ACCEPT [35:7638] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [20:1452] :test - [0:0] -A test -i !docker0 -A test ! -i docker0 COMMIT # Completed on Fri May 4 10:10:07 2018
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.