Kubernetes: VPN-Server und DNS-Probleme

8

Ich habe einen docker-openvpn Container in meinem (lokalen) Kubernetes Cluster für den Zugriff bereitgestellt meine Dienste sicher und Debug abhängige Dienste lokal.

Ich kann über den Server openVPN eine Verbindung zum Cluster herstellen. Ich kann meine Dienste jedoch nicht über DNS auflösen.

Ich habe es geschafft, nach dem Setzen von Routen auf dem VPN-Server zu dem Punkt zu kommen:

  • Ich kann einen Pod nach IP ( subnet 10.2.0.0/16 )
  • pingen
  • Ich kann einen Service nach IP pingen ( subnet 10.3.0.0/16 wie der DNS, der sich bei 10.3.0.10 befindet)
  • Ich kann curl zu einem Services nach IP und bekomme die Daten, die ich brauche.

Aber wenn ich nslookup kubernetes oder einen Service bekomme, bekomme ich:

%Vor%

Ich vermisse immer noch etwas, damit die Daten vom DNS-Server zurückkommen, kann aber nicht herausfinden, was ich tun muss.

Wie debugge ich dieses SERVFAIL Problem in Kubernetes DNS ?

BEARBEITEN:

Dinge, die ich bemerkt habe und die ich verstehen will:

  • nslookup funktioniert, um den Servicenamen in einem beliebigen Pod außer dem openvpn-Pod
  • aufzulösen
  • während nslookup in diesen anderen Pods funktioniert, ping nicht.
  • ähnlich traceroute in diesen anderen Pods führt zur Flanellschicht 10.0.2.2 und stoppt dann dort.

davon Ich denke, ICMP muss auf der Flanellschicht blockiert werden, und das hilft mir nicht herauszufinden, wo DNS blockiert ist.

EDIT2:

Ich habe schließlich herausgefunden, wie ich nslookup zum Laufen bringen kann: Ich musste die DNS-Suchdomäne mit

an den Client senden %Vor%

fügen Sie mit der Option -p im docker-openvpn image

hinzu

damit ich am Ende

%Vor%

Nun funktioniert nslookup , aber curl immer noch nicht

    
MrE 17.01.2016, 21:28
quelle

2 Antworten

8

endlich sieht meine Konfiguration so aus:

%Vor%

-u für die Adresse und den Port des VPN-Servers

-n für alle zu verwendenden DNS-Server

-s , um das VPN-Subnetz zu definieren (standardmäßig 10.2.0.0, das bereits von Kubernetes verwendet wird)

-d zum Deaktivieren von NAT

-p , um Optionen an den Client zu senden

-N , um NAT zu aktivieren: Es scheint für dieses Setup auf Kubernetes

kritisch zu sein

Der letzte Teil, der die Suchdomains an den Client weitergab, war der Schlüssel, um nslookup etc .. zum Funktionieren zu bringen.

Beachten Sie, dass Curl zunächst nicht funktionierte, aber nach einigen Sekunden zu funktionieren scheint. Es funktioniert also, aber es dauert ein wenig, bis sich die Locken lösen können.

    
MrE 20.01.2016, 16:55
quelle
1

Versuchen Sie Curl -4. Vielleicht löst es sich auf die AAAA auf, selbst wenn A vorhanden ist.

    
George 20.01.2016 16:38
quelle

Tags und Links