Debian GNU/Linux に docker.io (18.03.1+dfsg1-6) を Install すると KVM (ブリッジ接続)に接続できなくなった.docker0
という interface ができたのが原因かと思い,かなり悩む.
% /sbin/ifconfig -s | awk '{print $1}'
Iface
br0
docker0
eth0
lo
tap0
% /sbin/brctl show
bridge name bridge id STP enabled interfaces
br0 8000.xxxxxxxxxxxx yes eth0
tap0
docker0 8000.yyyyyyyyyyyy no
原因は https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865975 のとおり iptables
の Chain FORWARD
の default policy を docker
が DROP
にしてしまうこと.sudo iptables -P FORWARD ACCEPT
すれば直る.
追記 (2019/2/6)
sudo iptables -P FORWARD ACCEPT
しても packet が流れないのでおかしいなと思ったら,sid 環境では iptables-legacy
を使わないといけないらしい.sudo iptables-legacy -P FORWARD ACCEPT
.
% sudo iptables -L
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# Warning: iptables-legacy tables present, use iptables-legacy to see them
% sudo iptables-legacy -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
(略)
追記 (2019/7/18)
/usr/sbin/iptables
として /usr/sbin/iptables-nft
か /usr/sbin/iptables-legacy
を選択できるようになっていて(buster でもそう),自動で /usr/sbin/iptables-nft
が選択されるようになっている(sudo update-alternatives --config iptables
等で変更).
上記 iptables-legacy
でなければうまく行かない話は Kernel で CONFIG_NF_TABLES
(nftables; NFT) が n
になっていたか正しく動作しなかったため(Debian の Kernel Package で)だった模様.現在は NFT が正常に動作する package が提供されている.