公式のDockerリポジトリからDocker 18.09.0(ビルド4d60db4)がインストールされた、完全にパッチが適用された新しいUbuntu 18.04インスタンス(Linode VPS上)。
IPv4ネットワーキングは、コンテナー間および内部から外部への両方で正常に動作しています(net.ipv4.ip_forward=1
を設定した後)。
ただし、IPv6はコンテナ間で通信することすらできず、外部的にも通信しません。
私はたくさんのことを試しましたが、 このガイド が最高であることがわかりました(それが機能しないこと以外は:-))
そのように私は持っています...
/etc/docker/daemon.json
を次のように更新して再起動しました:
{
“ipv6”: true,
“fixed-cidr-v6”: “2001:db8:1::/64”
}
MTUを確認した。
これをテストするためにセットアップされた2つのdockerコンテナーを実行します。
Sudo docker run -itd ajeetraina/ubuntu-iproute bash
Sudo docker run -itd ajeetraina/centos-iproute bash
どちらも内部で完全な接続を示しています。
$ Sudo docker exec -it b1cbb63b4e88 ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.3 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:acff:fe11:3 prefixlen 64 scopeid 0x20<link>
inet6 2001:db8:1::242:ac11:3 prefixlen 64 scopeid 0x0<global>
ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet)
RX packets 7 bytes 746 (746.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 656 (656.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ Sudo docker exec -it 57da37ca7f79 ifconfig eth0
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
inet6 addr: 2001:db8:1::242:ac11:2/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1086 (1.0 KB) TX bytes:726 (726.0 B)
iPv4を介して互いにpingします。
$ Sudo docker exec -it b1cbb63b4e88 ping -c 4 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.134 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.113 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.120 ms
--- 172.17.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3060ms
rtt min/avg/max/mdev = 0.091/0.114/0.134/0.018 ms
しかし、IPv6経由では何もありません:
$ Sudo docker exec -it b1cbb63b4e88 ping6 -c 4 2001:db8:1::242:ac11:2
PING 2001:db8:1::242:ac11:2(2001:db8:1::242:ac11:2) 56 data bytes
From 2001:db8:1::242:ac11:3 icmp_seq=1 Destination unreachable: Address unreachable
From 2001:db8:1::242:ac11:3 icmp_seq=2 Destination unreachable: Address unreachable
From 2001:db8:1::242:ac11:3 icmp_seq=3 Destination unreachable: Address unreachable
From 2001:db8:1::242:ac11:3 icmp_seq=4 Destination unreachable: Address unreachable
--- 2001:db8:1::242:ac11:2 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3065ms
私はそれを読んでいます Dockerはsysctl
とIPv6で遊んでいます Dockerの新しいバージョンでホストをチェックしました:
$ Sudo sysctl -a | grep disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.docker0.disable_ipv6 = 0
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
--sysctl net.ipv6.conf.all.disable_ipv6=0
でコンテナを実行してみましたが、これまでのところ何も機能していません。
すべては非常に感謝して助けてくれました。前もって感謝します。
私にもこの問題があり、iptables IPv6 FORWARDチェーンにあることが判明しました。 dockerはIPv4と同じように設定していないようです。
これが当てはまるかどうかをテストするには、次のコマンドを実行します:Sudo ip6tables -P FORWARD ACCEPT
これはpoor回避策です。盲目的にフォワードチェーンが開かれるためです。
Dockerはiptablesの優れた統合で知られていません...