Docker kann nicht auf DNS zugreifen, selbst wenn die DNS-Optionen im kabelgebundenen Netzwerk der Universität festgelegt sind

672
memorableUserNameHere

Das Ausführen eines (leicht modifizierten) Andockbilds für Ubuntu: 16.04 kann nicht auf DNS-Server zugreifen. Dies wird dadurch belegt, dass Sie eine gelöste IP-Adresse für google.com (z. B. 172.217.4.142, die auf einem anderen Computer aufgelöst wurde) pingen können, aber kein going.com.

root@12345678910:/# ping -c 1 216.58.194.174 PING 216.58.194.174 (216.58.194.174) 56(84) bytes of data. 64 bytes from 216.58.194.174: icmp_seq=1 ttl=46 time=20.5 ms --- 216.58.194.174 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 20.551/20.551/20.551/0.000 ms  root@12345678910:/# ping -c 1 google.com  ping: unknown host google.com 

Bei meinem Googling tauchen häufig Probleme beim Setzen von DNS-Flags auf. Ich habe jedoch versucht, die DOCKER_OPTS-Variable so einzustellen, dass /etc/default/dockersie auf viele DNS-Server verweist :

DOCKER_OPTS="--dns 209.244.0.3 --dns 209.244.0.4 --dns 64.6.64.6 --dns 64.6.65.6 --dns 8.8.8.8 --dns 8.8.4.4 --dns 84.200.69.80 --dns 84.200.70.40 --dns 8.26.56.26 --dns 8.20.247.20 --dns 208.67.222.222 --dns 208.67.220.220 --dns 199.85.126.10 --dns 199.85.127.10 --dns 81.218.119.11 --dns 209.88.198.133 --dns 195.46.39.39 --dns 195.46.39.40 --dns 192.95.54.3 --dns 192.95.54.1 --dns 208.76.50.50 --dns 208.76.51.51 --dns 216.146.35.35 --dns 216.146.36.36 --dns 37.235.1.174 --dns 37.235.1.177 --dns 198.101.242.72 --dns 23.253.163.53 --dns 77.88.8.8 --dns 77.88.8.1 --dns 91.239.100.100 --dns 89.233.43.71 --dns 74.82.42.42 --dns 109.69.8.51" 

sowie das Setzen der DNS-Variablen in /etc/docker/daemon.json(wie hier beschrieben ):

{ "dns": [ "209.244.0.3", "209.244.0.4", "64.6.64.6", "64.6.65.6", "8.8.8.8", "8.8.4.4", "84.200.69.80", "84.200.70.40", "8.26.56.26", "8.20.247.20", "208.67.222.222", "208.67.220.220", "199.85.126.10", "199.85.127.10", "81.218.119.11", "209.88.198.133", "195.46.39.39", "195.46.39.40", "192.95.54.3", "192.95.54.1", "208.76.50.50", "208.76.51.51", "216.146.35.35", "216.146.36.36", "37.235.1.174", "37.235.1.177", "198.101.242.72", "23.253.163.53", "77.88.8.8", "77.88.8.1", "91.239.100.100", "89.233.43.71", "74.82.42.42", "109.69.8.51" ] } 

ohne Erfolg für jeden Versuch.

(Dies sind alle IP-Adressen von DNS-Servern, die auf Lifewire aufgelistet sind. )

Eine Option, die ich versuchen wollte, war das Zurücksetzen der IP-Tabellen und der Netzwerkbrücke. Dieser Vorschlag ist jedoch zu alt, um als vertrauenswürdig eingestuft zu werden (z. B. docker -dist kein gültiger Befehl mehr).

Ein mögliches Problem besteht darin, dass sich dieses Gerät im Ethernet der Universität befindet und mit der Ethernet-Hardwareadresse des Geräts in einer weißen Liste aufgeführt werden musste. Auf dem Ubuntu16-Host-Computer war dies das eno1Gerät (wenn ich den richtigen Begriff verwende). Mein erster Gedanke war, dass docker0das Universitätsnetzwerk den Verkehr blockiert, da die Hardwareadresse anders ist. Aber ich denke nicht, dass dies das Problem ist, da ich immer noch die rohe IP-Adresse anpingen kann. Vielleicht geht in der Übersetzung etwas verloren, wenn Sie DNS abfragen?

Irgendwelche Vorschläge?

Versions Information:

  • Host: Linux-Hostname 4.4.0-92-generisch # 115-Ubuntu SMP Do Aug 10 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux
  • Container: ubuntu: 16.04 mit kopiertem Ping des Hosts (kann nicht mit apt ohne Internet installiert werden).
  • Docker: Docker Version 1.12.6, Build 78d1802
0

1 Antwort auf die Frage

0
memorableUserNameHere

Dies wurde letztendlich ein Problem mit dem Universitätsnetzwerk. Ich verstehe, dass sie irgendwie DNS-Anfragen blockierten, und wir wurden angewiesen, ihre interne DNS-Serveradresse in der Konfiguration unseres Dockers zu verwenden.