Portál AbcLinuxu, 2. června 2024 13:52


Dotaz: Docker a IPv6

18.2.2019 09:19 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
Docker a IPv6
Přečteno: 377×
Odpovědět | Admin
Mám několik VPSek, které jsou přístupné pouze přes IPv6 protokol a potřeboval bych na jedné z nich rozject Docker. Z venku se na aplikaci v Dockeru v CentOS imagi dostanu ale problém je, že z Dockeru se nedostanu ven, což je zajímavé. Do Dockeru se dostanu pomocí docker exec -ti redmine /bin/bash Když ale zkouším ping, bo yum update, tak se to na síť nepřipojí. Nesetkal se někdo s podobným problémem?

Předem děkuji za rady.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.2.2019 12:28 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Docker a IPv6
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslíš ping, nebo ping6?
18.2.2019 13:00 mhepp
Rozbalit Rozbalit vše Re: Docker a IPv6
Odpovědět | | Sbalit | Link | Blokovat | Admin
Setkal. Řešení je jednoduché. Je potřeba nakonfigurovat docker tak, aby virtuálům přiděloval i veřejnou IPv6 adresu.

Potřebuješ nějaký IPv6 prefix, dejme tomu dead:deef:1234:1234::/64. Hostitele si potom nakonfiguruješ tak, aby používal adresu z tohoto rozsahu, tedy třeba dead:deef:1234:1234::10/64, pokud z hostitele dopingáš kam potřebuješ, máš nastaveno. Nyní je potřeba nastavit docker. Do /etc/docker/daemon.json je třeba přidat ipv6: true a fixed-cidr-v6, což je IPv6 subnet toho, co máš na hostiteli. Velikost si můžeš zvolit dle potřeby, já mám používám /80:
{
    "fixed-cidr-v6": "dead:beef:1234:1234:FFFF::/80", 
    "ipv6": true
}
Tím máš nastavený docker tak, aby přiděloval IPv6 adresy. Nyní je potřeba ještě nastavit NDP -- musíš říci, že adresy z tohoto subnetu umíš routovat ty. K tomu mi dobře slouží ndppd, který nakonfiguruješ tak:
route-ttl 30000
proxy ens192 {
   router yes
   timeout 500
   ttl 30000
   rule dead:beef:1234:1234:FFFF::/80 {
      iface docker0
   }
}
(samozřejmě nemusím zdůrazňovat, že ens192, dead:beef:... a docker0 je potřeba nastavit dle systému, že)

A nakonec nastavíš sysctl net.ipv6.conf.all.proxy_ndp = 1. Po restartu dockeru budeš mít u kontejnerů nastavenou IPv6 adresu z daného rozsahu a kontejnery budou schopné komunikovat po IPv6 směrem ven i dovnitř.

Nezapomeň si nastavit firewall.
18.2.2019 14:10 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
Rozbalit Rozbalit vše Re: Docker a IPv6
To je to čeho jsem se obával, protože rozdělování sítí mi moc nejde. Informace od providera, které jsem dostal:
adresa (address): 2001:15e8:104:4::d85f
prefix sítě: /64
defaultní brána (gateway): 2001:15e8:104:4::1
routovaná síť: 2001:15E8:10B:F00::/56 2001:15e8:104:4::d85f
VPSka na které běží docker má IP adresu 2001:15e8:10b:f00::5/56 - přidělil jsem sám/můžu změnit-

a teďka si nevím rady jak ten subnet rozdělit aby fungoval jak pro VPSky, tak i pro docker kontejnery ;( .

Předěm děkuji za rady.
18.2.2019 16:25 mheppp
Rozbalit Rozbalit vše Re: Docker a IPv6
No... Máš-li k dispozici pro VPS-ky 2001:15e8:10b:f000::/56, tak si z toho ukousneš malý kousek, který budeš používat jen pro ten docker, takže například 2001:15e8:10b:FFF::/64. Tuto síť nastavíš v dockeru a v ndppd, zbytek necháš tak jak je. Jen si musíš pohlídat, abys adresu z toho rozsahu nepoužil jinde.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.