-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2/24/20 4:16 AM, Michael Uray wrote:
> I tried a couple things and it looks to me as if it preserves
> everything with "shorewall restart -c" and with "systemctl reload
> shorewall" but not with "systemctl restart shorewall".
>
>
> root@dk1:~# systemctl restart docker
>
>
> root@dk1:~# iptables -L -v | grep -i docker 0 0 ~comb3 all
> -- docker+ any anywhere anywhere 67 20688
> DOCKER-USER all -- any any anywhere anywhere
> 67 20688 DOCKER-ISOLATION-STAGE-1 all -- any any anywhere
> anywhere 0 0 ACCEPT all -- any docker0 anywhere
> anywhere ctstate RELATED,ESTABLISHED 0 0 DOCKER
> all -- any docker0 anywhere anywhere 0 0
> ACCEPT all -- docker0 !docker0 anywhere
> anywhere 0 0 ACCEPT all -- docker0 docker0 anywhere
> anywhere 0 0 DOCKER all -- any br-ac3db22b180b
> anywhere anywhere 54 3220 DOCKER all -- any
> br-61206706fa14 anywhere anywhere 0 0 ~comb0
> all -- docker+ any anywhere anywhere 1045 187K
> DOCKER all -- any any anywhere anywhere 0
> 0 ACCEPT all -- any docker+ anywhere
> anywhere Chain DOCKER (4 references) Chain DOCKER-ISOLATION-STAGE-1
> (1 references) 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0
> !docker0 anywhere anywhere 0 0
> DOCKER-ISOLATION-STAGE-2 all -- br-ac3db22b180b !br-ac3db22b180b
> anywhere anywhere 30 5851 DOCKER-ISOLATION-STAGE-2
> all -- br-61206706fa14 !br-61206706fa14 anywhere
> anywhere Chain DOCKER-USER (1 references) 0 0 ACCEPT all
> -- any docker+ anywhere anywhere 0 0 ~comb2
> all -- any docker+ anywhere anywhere 0 0
> ~comb2 all -- any docker+ anywhere anywhere
> Chain DOCKER-ISOLATION-STAGE-2 (3 references) 0 0 DROP
> all -- any docker0 anywhere anywhere
>
>
> root@dk1:~# /sbin/shorewall restart -c Compiling using Shorewall
> 5.2.3.2... Processing /etc/shorewall/params ... Processing
> /etc/shorewall/shorewall.conf... Loading Modules... Compiling
> /etc/shorewall/zones... Compiling /etc/shorewall/interfaces...
> Determining Hosts in Zones... Locating Action Files... Compiling
> /etc/shorewall/policy... Compiling TCP Flags filtering... Compiling
> Kernel Route Filtering... Compiling Martian Logging... Compiling
> MAC Filtration -- Phase 1... Compiling /etc/shorewall/rules...
> Compiling /etc/shorewall/conntrack... Compiling MAC Filtration --
> Phase 2... Applying Policies... Generating Rule Matrix...
> Optimizing Ruleset... Creating iptables-restore input... Shorewall
> configuration compiled to /var/lib/shorewall/.restart Stopping
> Shorewall.... Preparing iptables-restore input... Running
> /sbin/iptables-restore --wait 60... done. Starting Shorewall....
> Initializing... Setting up Route Filtering... Setting up Martian
> Logging... Preparing iptables-restore input... Running
> /sbin/iptables-restore --wait 60... done.
>
>
> It looks as if everything is fine after the "shorewall restart -c"
> command:
>
> root@dk1:~# iptables -L -v | grep -i docker 0 0 ~comb3 all
> -- docker+ any anywhere anywhere 132 56820
> DOCKER-USER all -- any any anywhere anywhere
> 132 56820 DOCKER-ISOLATION-STAGE-1 all -- any any
> anywhere anywhere 0 0 DOCKER all -- any
> docker0 anywhere anywhere 0 0 ACCEPT all --
> any docker0 anywhere anywhere ctstate
> RELATED,ESTABLISHED 0 0 ACCEPT all -- docker0 !docker0
> anywhere anywhere 0 0 ACCEPT all -- docker0
> docker0 anywhere anywhere 0 0 DOCKER all --
> any br-ac3db22b180b anywhere anywhere 4 240
> DOCKER all -- any br-61206706fa14 anywhere
> anywhere 0 0 ~comb0 all -- docker+ any anywhere
> anywhere 33 3880 DOCKER all -- any any anywhere
> anywhere 0 0 ACCEPT all -- any docker+ anywhere
> anywhere Chain DOCKER (4 references) Chain DOCKER-ISOLATION-STAGE-1
> (1 references) 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0
> !docker0 anywhere anywhere 0 0
> DOCKER-ISOLATION-STAGE-2 all -- br-ac3db22b180b !br-ac3db22b180b
> anywhere anywhere 10 2394 DOCKER-ISOLATION-STAGE-2
> all -- br-61206706fa14 !br-61206706fa14 anywhere
> anywhere Chain DOCKER-ISOLATION-STAGE-2 (3 references) 0 0 DROP
> all -- any docker0 anywhere anywhere Chain
> DOCKER-USER (1 references) 0 0 ACCEPT all -- any
> docker+ anywhere anywhere 0 0 ~comb2 all --
> any docker+ anywhere anywhere 0 0 ~comb2
> all -- any docker+ anywhere anywhere
>
>
> If I restart the Shorewall service, then it still loses some
> things.
>
> root@dk1:~# systemctl restart shorewall
>
>
> root@dk1:~# iptables -L -v | grep -i docker 0 0 ~comb3 all
> -- docker+ any anywhere anywhere 119 38979
> DOCKER-USER all -- any any anywhere anywhere
> 119 38979 DOCKER-ISOLATION-STAGE-1 all -- any any
> anywhere anywhere 0 0 DOCKER all -- any
> docker0 anywhere anywhere 0 0 ACCEPT all --
> any docker0 anywhere anywhere ctstate
> RELATED,ESTABLISHED 0 0 ACCEPT all -- docker0 !docker0
> anywhere anywhere 0 0 ACCEPT all -- docker0
> docker0 anywhere anywhere 0 0 ~comb0 all --
> docker+ any anywhere anywhere 7 808 DOCKER
> all -- any any anywhere anywhere 0 0
> ACCEPT all -- any docker+ anywhere anywhere
> Chain DOCKER (2 references) Chain DOCKER-ISOLATION-STAGE-1 (1
> references) Chain DOCKER-ISOLATION-STAGE-2 (0 references) Chain
> DOCKER-USER (1 references) 0 0 ACCEPT all -- any
> docker+ anywhere anywhere 0 0 ~comb2 all --
> any docker+ anywhere anywhere 0 0 ~comb2
> all -- any docker+ anywhere anywhere
>
>
> root@dk1:~# systemctl restart docker
>
>
> root@dk1:~# iptables -L -v | grep -i docker 0 0 ~comb3 all
> -- docker+ any anywhere anywhere 392 163K
> DOCKER-USER all -- any any anywhere anywhere
> 392 163K DOCKER-ISOLATION-STAGE-1 all -- any any
> anywhere anywhere 0 0 ACCEPT all -- any
> docker0 anywhere anywhere ctstate
> RELATED,ESTABLISHED 0 0 DOCKER all -- any docker0
> anywhere anywhere 0 0 ACCEPT all -- docker0
> !docker0 anywhere anywhere 0 0 ACCEPT all --
> docker0 docker0 anywhere anywhere 0 0 DOCKER
> all -- any br-ac3db22b180b anywhere anywhere 15
> 868 DOCKER all -- any br-61206706fa14 anywhere
> anywhere 0 0 ~comb0 all -- docker+ any anywhere
> anywhere 554 85844 DOCKER all -- any any anywhere
> anywhere 0 0 ACCEPT all -- any docker+ anywhere
> anywhere Chain DOCKER (4 references) Chain DOCKER-ISOLATION-STAGE-1
> (1 references) 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0
> !docker0 anywhere anywhere 0 0
> DOCKER-ISOLATION-STAGE-2 all -- br-ac3db22b180b !br-ac3db22b180b
> anywhere anywhere 61 16558 DOCKER-ISOLATION-STAGE-2
> all -- br-61206706fa14 !br-61206706fa14 anywhere
> anywhere Chain DOCKER-USER (1 references) 0 0 ACCEPT all
> -- any docker+ anywhere anywhere 0 0 ~comb2
> all -- any docker+ anywhere anywhere 0 0
> ~comb2 all -- any docker+ anywhere anywhere
> Chain DOCKER-ISOLATION-STAGE-2 (3 references) 0 0 DROP
> all -- any docker0 anywhere anywhere
>
>
> It keeps it on a reload.
>
> root@dk1:~# systemctl reload shorewall root@dk1:~# iptables -L -v
> | grep -i docker 0 0 ~comb3 all -- docker+ any
> anywhere anywhere 59 14486 DOCKER-USER all -- any
> any anywhere anywhere 59 14486
> DOCKER-ISOLATION-STAGE-1 all -- any any anywhere
> anywhere 0 0 DOCKER all -- any docker0 anywhere
> anywhere 0 0 ACCEPT all -- any docker0 anywhere
> anywhere ctstate RELATED,ESTABLISHED 0 0 ACCEPT
> all -- docker0 !docker0 anywhere anywhere 0 0
> ACCEPT all -- docker0 docker0 anywhere anywhere
> 0 0 DOCKER all -- any br-ac3db22b180b anywhere
> anywhere 4 204 DOCKER all -- any br-61206706fa14
> anywhere anywhere 0 0 ~comb0 all -- docker+
> any anywhere anywhere 17 1888 DOCKER all --
> any any anywhere anywhere 0 0 ACCEPT all
> -- any docker+ anywhere anywhere Chain DOCKER (4
> references) Chain DOCKER-ISOLATION-STAGE-1 (1 references) 0 0
> DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 anywhere
> anywhere 0 0 DOCKER-ISOLATION-STAGE-2 all -- br-ac3db22b180b
> !br-ac3db22b180b anywhere anywhere 22 5605
> DOCKER-ISOLATION-STAGE-2 all -- br-61206706fa14 !br-61206706fa14
> anywhere anywhere Chain DOCKER-ISOLATION-STAGE-2 (3
> references) 0 0 DROP all -- any docker0 anywhere
> anywhere Chain DOCKER-USER (1 references) 0 0 ACCEPT all
> -- any docker+ anywhere anywhere 0 0 ~comb2
> all -- any docker+ anywhere anywhere 0 0
> ~comb2 all -- any docker+ anywhere anywhere
>
>
> root@dk1:~# systemctl restart docker
>
> root@dk1:~# /var/lib/shorewall/firewall reload > trace 2>&1
>
>
> root@dk1:~# cat trace Reloading Shorewall.... done. Everything
> looks fine after reload.
>
> root@dk1:~# iptables -L -v | grep -i docker 0 0 ~comb3 all
> -- docker+ any anywhere anywhere 769 364K
> DOCKER-USER all -- any any anywhere anywhere
> 769 364K DOCKER-ISOLATION-STAGE-1 all -- any any
> anywhere anywhere 0 0 DOCKER all -- any
> docker0 anywhere anywhere 0 0 ACCEPT all --
> any docker0 anywhere anywhere ctstate
> RELATED,ESTABLISHED 0 0 ACCEPT all -- docker0 !docker0
> anywhere anywhere 0 0 ACCEPT all -- docker0
> docker0 anywhere anywhere 0 0 DOCKER all --
> any br-ac3db22b180b anywhere anywhere 24 1424
> DOCKER all -- any br-61206706fa14 anywhere
> anywhere 0 0 ~comb0 all -- docker+ any anywhere
> anywhere 77 10905 DOCKER all -- any any anywhere
> anywhere 0 0 ACCEPT all -- any docker+ anywhere
> anywhere Chain DOCKER (4 references) Chain DOCKER-ISOLATION-STAGE-1
> (1 references) 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0
> !docker0 anywhere anywhere 0 0
> DOCKER-ISOLATION-STAGE-2 all -- br-ac3db22b180b !br-ac3db22b180b
> anywhere anywhere 68 29638 DOCKER-ISOLATION-STAGE-2
> all -- br-61206706fa14 !br-61206706fa14 anywhere
> anywhere Chain DOCKER-ISOLATION-STAGE-2 (3 references) 0 0 DROP
> all -- any docker0 anywhere anywhere Chain
> DOCKER-USER (1 references) 0 0 ACCEPT all -- any
> docker+ anywhere anywhere 0 0 ~comb2 all --
> any docker+ anywhere anywhere 0 0 ~comb2
> all -- any docker+ anywhere anywhere
>
>
> root@dk1:~# systemctl restart docker
>
> root@dk1:~# iptables-save > iptables.save.after.docker.restart
>
> root@dk1:~# systemctl reload shorewall.service
>
> root@dk1:~# iptables-save > iptables.save.after.shorewall.reload
>
> root@dk1:~# systemctl restart shorewall.service
>
> root@dk1:~# iptables-save > iptables.save.after.shorewall.restart
>
>
> I am wondering how it comes to this different behavior on restart
> and reload.
With RESTART=restart in shorewall.conf, 'restart' does a 'stop'
followed by a 'start' whereas 'reload' essentially does a 'start'.
What I don't understand is why restart sometimes does the right thing
and other times it does the wrong thing.
I've done some cleanup of the Docker-related code in the attached patches:
patch /usr/share/shorewall/prog.footer < ISOLATION1.patch
cd /usr/share/shorewall/Shorewall/
patch -p4 < path/to/ISOLATION2.patch
shorewall compile
shorewall reload
sh -x /var/lib/shorewall/firewall restart > trace 2>&1
If the last operation failed to correctly restore the Docker chains,
then please forward /var/lib/shorewall/firewall and the trace file.
Thanks,
- -Tom
- --
Tom Eastep \ Q: What do you get when you cross a mobster
Shoreline, \ with an international standard?
Washington, USA \ A: Someone who makes you an offer you
http://shorewall.org \ can't understand
\________________________________________
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
iQIzBAEBCgAdFiEEFNMNR63CLO6yqbL8luaz8kI6TRAFAl5UVJwACgkQluaz8kI6
TRAKXg/9EhF7fOCi7uBAW/qCdpHgLsgW5taZdV4yEIc0MOrRmPMKUXt9koOyB9Db
/5hJ+NhMZjYijLsYwidtI1jSFVtao0iUxlcCrKCbqGLb4kNT5dxGF9FFsyODdk4r
tQX4USH70W7vxn3kixJgyXpeU3jGJVzCpLO/9r8AGr1RcSq+OowJplOhqfmA8Lkn
A2G8Jk2YjF2nslKYKi3nWuL/Cd4kXMBOV911tNztC05K8vd0G2m1+vgzehiGZscI
xNGcSRjYc7BtXWKAbYqJJwAghtmQzLH9+CqwLlm3W5gsPlKgPgzpxHHLnIUpt8QV
kLRPUc1nQqqhfpRfhtyuQ6mD8g3Mz3zP3/DYNzmQrWEkkGK+46J55m2DMiqoCXsi
CXf2XZOk4OoDKZslFjK/Iu53Msy9W5eSmKFAtZ2jKe6Ce+abN/uhLDytk70yYSX5
/8VzGO+Bz+Yx/EJvNw3AM4hALzDKQX1jvfBxo8o3ReWxHAQjEyYcARvNJMG86uUY
5Xd3LoG+lc0S2nctpceDHYeSCGyFEF/lnaPM7jp0icTjIHXVaRqyibmoH69utGoR
P46qnX45Z/cpFOeLCF7h+0GCNnNGznDDU4SIGyoLxVKJW8v8Vb2FMKVVISN69V2P
SNE3L+KbxOH1hnuhhPeUv5LsgUNT0QECBj2Y8QZnkUS67gKfIUU=
=ju/w
-----END PGP SIGNATURE-----
diff --git a/Shorewall/Perl/prog.footer b/Shorewall/Perl/prog.footer index f72f648c9..5b5ccba01 100644 --- a/Shorewall/Perl/prog.footer +++ b/Shorewall/Perl/prog.footer @@ -148,7 +148,8 @@ g_compiled= g_file= g_docker= g_dockeringress= -g_dockernetwork= +g_dockeriso= +g_dockerisostage= g_forcereload= g_fallback=
diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm
index df30d8884..404554b45 100644
--- a/Shorewall/Perl/Shorewall/Chains.pm
+++ b/Shorewall/Perl/Shorewall/Chains.pm
@@ -3369,13 +3369,13 @@ sub initialize_chain_table($) {
add_commands( $chainref, '[ -f ${VARDIR}/.nat_DOCKER ] && cat ${VARDIR}/.nat_DOCKER >&3' );
$chainref = new_standard_chain( 'DOCKER-INGRESS' );
set_optflags( $chainref, DONT_OPTIMIZE | DONT_DELETE | DONT_MOVE );
- add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-INGRESS ] && cat ${VARDIR}/.filter_DOCKER-INGRESS >&3' );
- $chainref = new_standard_chain( 'DOCKER-USER' );
+ add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-INGRESS ] && cat ${VARDIR}/.filter_DOCKER-INGRESS >&3' );
+ $chainref = new_standard_chain( 'DOCKER-USER' );
set_optflags( $chainref, DONT_OPTIMIZE | DONT_DELETE | DONT_MOVE );
- add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-USER ] && cat ${VARDIR}/.filter_DOCKER-USER >&3' );
+ add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-USER ] && cat ${VARDIR}/.filter_DOCKER-USER >&3' );
$chainref = new_standard_chain( 'DOCKER-ISOLATION' );
set_optflags( $chainref, DONT_OPTIMIZE | DONT_DELETE | DONT_MOVE );
- add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-ISOLATION ] && cat ${VARDIR}/.filter_DOCKER-ISOLATION >&3' );
+ add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-ISOLATION ] && cat ${VARDIR}/.filter_DOCKER-ISOLATION >&3' );
$chainref = new_standard_chain( 'DOCKER-ISOLATION-STAGE-1' );
set_optflags( $chainref, DONT_OPTIMIZE | DONT_DELETE | DONT_MOVE );
add_commands( $chainref, '[ -f ${VARDIR}/.filter_DOCKER-ISOLATION-STAGE-1 ] && cat ${VARDIR}/.filter_DOCKER-ISOLATION-STAGE-1 >&3' );
@@ -8703,23 +8703,15 @@ sub save_docker_rules($) {
qq( $tool -t nat -S OUTPUT | tail -n +2 | fgrep DOCKER > \${VARDIR}/.nat_OUTPUT),
qq( $tool -t nat -S POSTROUTING | tail -n +2 | fgrep -v SHOREWALL | fgrep -v LIBVIRT > \${VARDIR}/.nat_POSTROUTING),
qq( $tool -t filter -S DOCKER | tail -n +2 > \${VARDIR}/.filter_DOCKER),
- qq( [ -n "\$g_dockeringress" ] && $tool -t filter -S DOCKER-INGRESS | tail -n +2 > \${VARDIR}/.filter_DOCKER-INGRESS),
- qq( [ -n "\$g_dockeruser" ] && $tool -t filter -S DOCKER-USER | tail -n +2 > \${VARDIR}/.filter_DOCKER-USER),
+ qq( rm -f \${VARDIR}/.filter_DOCKER-*),
+ qq( [ -n "\$g_dockeringress" ] && $tool -t filter -S DOCKER-INGRESS | tail -n +2 > \${VARDIR}/.filter_DOCKER-INGRESS),
+ qq( [ -n "\$g_dockeruser" ] && $tool -t filter -S DOCKER-USER | tail -n +2 > \${VARDIR}/.filter_DOCKER-USER),
+ qq( [ -n "\$g_dockeriso" ] && $tool -t filter -S DOCKER-ISOLATION | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION),
qq(),
- qq( case "\$g_dockernetwork" in),
- qq( One\)),
- qq( rm -f \${VARDIR}/.filter_DOCKER-ISOLATION*),
- qq( $tool -t filter -S DOCKER-ISOLATION | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION),
- qq( ;;),
- qq( Two\)),
- qq( rm -f \${VARDIR}/.filter_DOCKER-ISOLATION*),
- qq( if chain_exists DOCKER_ISOLATION; then),
- qq( $tool -t filter -S DOCKER-ISOLATION | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION),
- qq( fi),
- qq( $tool -t filter -S DOCKER-ISOLATION-STAGE-1 | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION-STAGE-1),
- qq( $tool -t filter -S DOCKER-ISOLATION-STAGE-2 | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION-STAGE-2),
- qq( ;;),
- qq( esac),
+ qq( if [ -n "\$g_dockerisostage" ]; then),
+ qq( $tool -t filter -S DOCKER-ISOLATION-STAGE-1 | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION-STAGE-1),
+ qq( $tool -t filter -S DOCKER-ISOLATION-STAGE-2 | tail -n +2 > \${VARDIR}/.filter_DOCKER-ISOLATION-STAGE-2),
+ qq( fi),
qq(),
);
@@ -9240,10 +9232,10 @@ sub create_netfilter_load( $ ) {
emit( '[ -n "$g_docker" ] && echo ":DOCKER - [0:0]" >&3' );
} elsif ( $name eq 'DOCKER-ISOLATION' ) {
ensure_cmd_mode;
- emit( '[ "$g_dockernetwork" = One ] && echo ":DOCKER-ISOLATION - [0:0]" >&3' );
+ emit( '[ -n "$g_dockeriso" ] && echo ":DOCKER-ISOLATION - [0:0]" >&3' );
} elsif ( $name =~ /^DOCKER-ISOLATION/ ) {
ensure_cmd_mode;
- emit( qq([ "\$g_dockernetwork" = Two ] && echo ":$name - [0:0]" >&3) );
+ emit( qq([ "\$g_dockerisostage" = Two ] && echo ":$name - [0:0]" >&3) );
} elsif ( $name eq 'DOCKER-INGRESS' ) {
ensure_cmd_mode;
emit( '[ -n "$g_dockeringress" ] && echo ":DOCKER-INGRESS - [0:0]" >&3' );
@@ -9355,11 +9347,11 @@ sub preview_netfilter_load() {
print "\n";
} elsif ( $name eq 'DOCKER-ISOLATION' ) {
ensure_cmd_mode1;
- print( '[ "$g_dockernetwork" = One ] && echo ":DOCKER-ISOLATION - [0:0]" >&3' );
+ print( '[ -n "$g_dockeriso" ] && echo ":DOCKER-ISOLATION - [0:0]" >&3' );
print "\n";
- } elsif ( $name =~ /^DOCKER-ISOLATION-/ ) {
+ } elsif ( $name =~ /^DOCKER-ISOLATION/ ) {
ensure_cmd_mode1;
- print( qq([ "\$g_dockernetwork" = Two ] && echo ":$name - [0:0]" >&3) );
+ print( qq([ "\$g_dockeisostage" ] && echo ":$name - [0:0]" >&3) );
print "\n";
} elsif ( $name eq 'DOCKER-INGRESS' ) {
ensure_cmd_mode1;
@@ -9456,10 +9448,10 @@ sub create_stop_load( $ ) {
emit( '[ -n "$g_docker" ] && echo ":DOCKER - [0:0]" >&3' );
} elsif ( $name eq 'DOCKER-ISOLATION' ) {
ensure_cmd_mode;
- emit( '[ -n "$g_dockernetwork" ] && echo ":DOCKER-ISOLATION - [0:0]" >&3' );
+ emit( '[ -n "$g_dockeriso" ] && echo ":DOCKER-ISOLATION - [0:0]" >&3' );
} elsif ( $name =~ /^DOCKER-ISOLATION/ ) {
ensure_cmd_mode;
- emit( qq([ "\$g_dockernetwork" = Two ] && echo ":$name - [0:0]" >&3) );
+ emit( qq([ -n "\$g_dockerisostage" ] && echo ":$name - [0:0]" >&3) );
} elsif ( $name eq 'DOCKER-INGRESS' ) {
ensure_cmd_mode;
emit( '[ -n "$g_dockeringress" ] && echo ":DOCKER-INGRESS - [0:0]" >&3' );
diff --git a/Shorewall/Perl/Shorewall/Compiler.pm b/Shorewall/Perl/Shorewall/Compiler.pm
index 926326708..c8977bd4b 100644
--- a/Shorewall/Perl/Shorewall/Compiler.pm
+++ b/Shorewall/Perl/Shorewall/Compiler.pm
@@ -268,13 +268,10 @@ sub generate_script_2() {
emit( '',
'chain_exists DOCKER nat && chain_exists DOCKER && g_docker=Yes',
);
- emit( 'chain_exists DOCKER-INGRESS && g_dockeringress=Yes' );
- emit( 'chain_exists DOCKER-USER && g_dockeruser=Yes' );
- emit( 'if chain_exists DOCKER-ISOLATION-STAGE-1; then',
- ' g_dockernetwork=Two',
- 'elif chain_exists DOCKER-ISOLATION; then',
- ' g_dockernetwork=One',
- 'fi' );
+ emit( 'chain_exists DOCKER-INGRESS && g_dockeringress=Yes' );
+ emit( 'chain_exists DOCKER-USER && g_dockeruser=Yes' );
+ emit( 'chain_exists DOCKER-ISOLATION && dockeriso=Yes' );
+ emit( 'chain_exists DOCKER-ISOLATION-STAGE-1 && dockerisostage=Yes' );
}
pop_indent;
diff --git a/Shorewall/Perl/Shorewall/Misc.pm b/Shorewall/Perl/Shorewall/Misc.pm
index 0ff7fea09..55ed6ba53 100644
--- a/Shorewall/Perl/Shorewall/Misc.pm
+++ b/Shorewall/Perl/Shorewall/Misc.pm
@@ -679,18 +679,10 @@ sub create_docker_rules() {
my $chainref = $filter_table->{FORWARD};
- add_commands( $chainref, '[ -n "$g_dockeringress" ] && echo "-A FORWARD -j DOCKER-INGRESS" >&3', );
- add_commands( $chainref, '[ -n "$g_dockeruser" ] && echo "-A FORWARD -j DOCKER-USER" >&3', );
- add_commands( $chainref ,
- '',
- 'case "$g_dockernetwork" in',
- ' One)',
- ' echo "-A FORWARD -j DOCKER-ISOLATION" >&3',
- ' ;;',
- ' Two)',
- ' echo "-A FORWARD -j DOCKER-ISOLATION-STAGE-1" >&3',
- ' ;;',
- 'esac' );
+ add_commands( $chainref, '[ -n "$g_dockeringress" ] && echo "-A FORWARD -j DOCKER-INGRESS" >&3' );
+ add_commands( $chainref, '[ -n "$g_dockeruser" ] && echo "-A FORWARD -j DOCKER-USER" >&3' );
+ add_commands( $chainref, '[ -n "$g_dockeriso" ] && echo "-A FORWARD -j DOCKER-ISOLATION" >&3' );
+ add_commands( $chainref, '[ -n "$g_dockerisostage" ] && echo "-A FORWARD -j DOCKER-ISOLATION-STAGE-1" >&3' );
if ( my $dockerref = known_interface('docker0') ) {
add_commands( $chainref, 'if [ -n "$g_docker" ]; then' );
ISOLATION1.patch.sig
Description: Binary data
ISOLATION2.patch.sig
Description: Binary data
_______________________________________________ Shorewall-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/shorewall-users
