Docker konteynerinden IPv6 bağlantısı yok


11

docker IPv6 etkinleştirmek ciddi sorunlar yaşıyorum.

çevre

  • Ev sahibi Debian Jessie çalıştırıyor.
  • Bu bir sanal sunucudur (KVM).
  • eth0, hosting şirketim tarafından atanan w: xy: z :: / 64 gibi bir ağda w: x: y: z :: 1 gibi statik olarak yapılandırılmış bir adrese sahiptir.
  • Ana bilgisayarım IPv6'yı sorunsuz bir şekilde kullanabiliyor: Dış dünyaya ping atıyor, bir kapta çalışan bir web sitesine (Ana bilgisayara bağlı 80 numaralı bağlantı noktası: 80) ipv6 aracılığıyla erişilebilir.

Sorun

Ancak dış dünyaya konteynerlerin içinden erişemiyorum! Docker0 köprüm, docker'ı aşağıdaki parametrelerle yeniden başlattıktan sonra bir IPv6 adresine sahip DEĞİL. Hiçbir rota ve ağ geçidi yok (bir ipv6 adresi olmadan mantıklı değil).

Docker ayarım: Docker, bu parametrelerle DOCKER_OPTS içinde başlatıldı

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --ipv6 --fixed-cidr-v6=w:x:y:z:a::/80"

Bazı ipv6 ana bilgisayar yapılandırma parametreleri:

net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1

İşte kendim oluşturduğum ağlardan biri:

root@wopr:~# docker network inspect wopr6
[
    {
        "Name": "wopr6",
        "Id": "ddc192d4af2a8edc809975e84cf3e4cb82c24d4cfe970dd8e3fc7d6ff31e20ee",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": true,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.23.0.0/16",
                    "Gateway": "172.23.0.1/16"
                },
                {
                    "Subnet": "w:x:y:z:a:0:0:0/80",
                    "Gateway": "w:x:y:z:a::1"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "dff30ab1496a4c3689ad6da0837fdb6cf7ea1a5b32312116214313b5b14ed07e": {
                "Name": "happy_varahamihira",
                "EndpointID": "8cd4ed4b91d8421171ec8cc771bbe7b7d81f05dc9f4679f20c642c2e828ec475",
                "MacAddress": "02:42:ac:17:00:02",
                "IPv4Address": "172.23.0.2/16",
                "IPv6Address": "w:x:y:z:a::2/80"
            }
        },
        "Options": {},
        "Labels": {}
    }
]

Aşağıda, kabın içinden yukarıda belirtilen bazı bilgiler verilmiştir:

Adresler

root@dff30ab1496a:/# ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
332: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet6 2a03:4000:6:2158:a::2/80 scope global nodad
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe17:2/64 scope link
       valid_lft forever preferred_lft forever

Rotalar

root@dff30ab1496a:/# ip -6 r
2a03:4000:6:2158:a::/80 dev eth0  proto kernel  metric 256
fe80::/64 dev eth0  proto kernel  metric 256
default via 2a03:4000:6:2158:a::1 dev eth0  metric 1024

Ping

PING ipv6.l.google.com (2a00:1450:4001:811::200e): 56 data bytes, id 0x0011 = 17
--- ipv6.l.google.com ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss

Neyi kaçırıyorum?

Yanıtlar:


5

Yani bir cevap için iki hafta bekledikten ve bir ödül açtıktan sonra birkaç saat daha araştırdıktan sonra çözümü buldum.

  1. Yeni bir IPv6 etkin ağ kurun ve kullanabileceğim bir alt ağ atayın (64'ümün / 80'i)

    docker network create --ipv6 --subnet=w:x:y:z:aaaa::/80 myfancynetwork
    

    Şimdi bir kapsayıcı başlatın ve yeni ağa bağlayın. IP adresini öğrenin. Diyelim ki bu örnekte w: x: y: z: aaaa :: 5.

  2. Proxy_ndp'yi etkinleştir

    sysctl net.ipv6.conf.eth0.proxy_ndp=1
    

    Bu ayarı kalıcı yapmak için /etc/sysctl.conf adresinden de yapılandırabilirsiniz.

  3. Ana bilgisayarımın (IPv6 etkin) yönlendiricimden Komşu İstek mesajlarına yanıt vermesini sağlamak için proxy ekleyin (örneğin: "hey, kim barındıran w: x: y: z: aaaa :: 5?") Ve Komşu Reklam mesajları (" Ben ol!").

    ip -6 neigh add proxy w:x:y:z:aaaa::5 dev eth0
    

    ndppd, ağınızdaki tüm ana makinelerin otomatik olarak reklamını yapmanıza yardımcı olabilir.

Bam, hepsi bu.


Bunu ndppdotomatikleştirmek için arka plan programını yükleyebilirsiniz .
Michael Hampton

1
@MichaelHampton: Tam da bunu önerdim.
lajuette
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.