Portál AbcLinuxu, 18. května 2022 05:16



Dotaz: docker DNS server

14.1. 10:30 rastos | skóre: 62 | blog: rastos
docker DNS server
Přečteno: 374×
Odpovědět | Admin
Ahoj.

mám server "foo" s IP adresou 192.168.0.1 a na ňom je docker kontajner s bežiacim DNS serverom. Ostatné stroje v sieti majú v /etc/resolv.conf napísané "nameserver 192.168.0.1" a komunikácia s DNS serverom funguje. Ale mám aj ďalšie docker kontajnery na foo a tie tiež majú v /etc/resolv.conf napísané "nameserver 192.168.0.1" (lebo to defaultne zdedili z /etc/resolv.conf na foo), a na nich dostávam:
root@bar:~# host something
;; reply from unexpected source: 172.18.0.1#53, expected 192.168.0.1#53
;; reply from unexpected source: 172.18.0.1#53, expected 192.168.0.1#53
;; connection timed out; no servers could be reached
TCPdump na foo ukáže:
09:57:34.669690 IP 172.18.0.17.44924 > 192.168.0.1.53: 28108+ A? something (29)
09:57:34.670000 IP 172.18.0.1.53064 > 172.18.0.2.53: 28108+ A? something (29)
09:57:34.670259 IP 172.18.0.2.53 > 172.18.0.1.53064: 28108* 1/0/0 A 192.168.0.11 (45)
09:57:34.670432 IP 172.18.0.1.53 > 172.18.0.17.44924: 28108* 1/0/0 A 192.168.0.11 (45)
kde 172.18.0.2 je IP adresa toho kontajnera s DNS a 172.18.0.17 je IP adresa kontajnera "bar" kde sa pokúšam resolvovať príkazom host.

Ak tomu dobre rozumiem tak tam docker robí prepisovanie zdrojovej a cieľovej adresy ale odpoveď ktorú vidí bar príde z IP 172.18.0.1 (teda IP adresy docker0 interfejsu na foo) a to sa tomu príkazu host nepáči.

Ako to správne™ vyriešiť?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.1. 13:44 X
Rozbalit Rozbalit vše Re: docker DNS server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Defaultne se to dedi, ale muzes pouzit paramter --dns=172.18.0.2, tak aby kontejner pouzival tvuj DNS server.
14.1. 16:51 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: docker DNS server
To sa síce dá, ale
a) nabudúce môže ten DNS container mať inú IP
b) znamenalo by to, že na foo budem kontajnery štartovať inak než na iných strojoch (s parametrom --dns navyše)
16.1. 19:37 pepan
Rozbalit Rozbalit vše Re: docker DNS server
a) tak zajistete, aby mel stejnou/predvidatelnou IP...

b) na vsech strojich budete kontejnery startovat s validnim nastavenim DNS

Jinak - FW linuxu moc neznam, ale pokud umi Hairpinning RouterOS, tak by nemel problem zpristupnit DNS pro kontejnery na verejne IP. https://superuser.com/questions/995986/hairpinning-in-linux

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.