Package: docker.io
Followup-For: Bug #865975

The FORWARD chain policy is set to DROP by docker since 1.13.

The verbose (-V) iptables output (which gives interfaces and packet counters) 
is:
# iptables -L -v -n
Chain INPUT (policy ACCEPT 281 packets, 14176 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            
0.0.0.0/0
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0  
          ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 225 packets, 27980 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-ISOLATION (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0


I reproduced the network setup but not the KVM one.I cannot confirm
that forwarding is broken.

Upstream provides:

- a command line switch to docker daemon "--iptables=false"
or a config item in /etc/docker/daemon.json:
{
  "iptables": false
}

- upstream also tell to revert the FORWARD policy to ACCEPT byhand ...
but I tested and it stay so on docker restart (even stop and start).
If the box is rebooted the change is lost
as confirmed by 
https://docs.docker.com/engine/userguide/networking/default_network/container-communication/
"The iptables settings are lost when the system reboots. If you want the change 
to be permanent,
refer to your Linux distribution’s documentation."
Mind we cannot apply it from /etc/rc.local or anything boot related as it has 
to be applied
after docker is started ... 
with socket activation we activate docker daemon long after boot.



references:

- 
https://docs.docker.com/engine/userguide/networking/default_network/container-communication/
Container communication between hosts
For security reasons, Docker configures the iptables rules to prevent 
containers from forwarding traffic
from outside the host machine, on Linux hosts. Docker sets the default policy 
of the FORWARD chain to DROP.
(...)
Note: In Docker 1.12 and earlier, the default FORWARD chain policy was ACCEPT. 
When you upgrade
to Docker 1.13 or higher, this default is automatically changed for you.



- Also from 
https://docs.docker.com/engine/userguide/networking/default_network/container-communication/
Communication between containers
(...)
Docker will never make changes to your system iptables rules if you set 
--iptables=false when the daemon starts.
Otherwise the Docker server will add a default rule to the FORWARD chain with a 
blanket ACCEPT policy
if you retain the default --icc=true, or else will set the policy to DROP if 
--icc=false.



Best regards
Alban

-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 
'unstable'), (500, 'stable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.13.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), 
LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages docker.io depends on:
ii  adduser             3.116
ii  docker-containerd   0.2.3+git+docker1.13.1~ds1-1
ii  docker-runc         1.0.0~rc2+git+docker1.13.1~ds1-2
ii  golang-libnetwork   0.8.0-dev.2+git20170202.599.45b4086-3
ii  iptables            1.6.1-2+b1
ii  libapparmor1        2.11.0-11
ii  libc6               2.24-17
ii  libdevmapper1.02.1  2:1.02.142-1
ii  libsqlite3-0        3.20.1-2
ii  libsystemd0         235-2
ii  lsb-base            9.20170808

Versions of packages docker.io recommends:
ii  ca-certificates  20170717
ii  cgroupfs-mount   1.4
ii  git              1:2.15.0~rc1-1
ii  xz-utils         5.2.2-1.3

Versions of packages docker.io suggests:
ii  aufs-tools           1:4.1+20161219-1
ii  btrfs-progs          4.13.3-1
ii  debootstrap          1.0.91
pn  docker-doc           <none>
ii  rinse                3.2
pn  zfs-fuse | zfsutils  <none>

-- no debconf information

Reply via email to