So legen Sie DNS exklusiv für einen Netzwerk-Namespace unter Linux fest


8

Ich habe einen Netzwerk-Namespace unter Linux erstellt.

Ich dachte, es gäbe eine resolv.conf-Datei für jeden erstellten Namespace, aber das ist auf meinem System nicht der Fall. Ich habe nicht den folgenden Pfad /etc/netns/namespace_name/resolv.conf .. Der Ordner netns existiert nicht.

Es gibt nur eine resolv.conf (/etc/resolv.conf und eine andere, die in /run/resolv.conf gespiegelt ist). Alle Änderungen in dieser Datei wirken sich auf alle Netzwerkschnittstellen aus. Gibt es eine Möglichkeit, unterschiedliche DNS sowohl für den Host als auch für den Namespace zu verwenden?

Antworten:


9

Sie müssen das Verzeichnis / etc / netns / _namespace_name_ selbst erstellen und dort eine andere Version resolv.conf ablegen.


1
Würde /etc/netns/namespace-name/resolv.confautomatisch verwendet werden?
CMCDragonkai

Und kann dies auch für iptables verwendet werden?
CMCDragonkai

2
Es wird automatisch verwendet, da der vollständige Pfad oben von ip netns/etc/resolv.conf gebunden wird, wie in der Manpage von ip netns man7.org/linux/man-pages/man8/ip-netns.8 erläutert. html . Innerhalb eines bestimmten Netzwerk-Namespace ist /etc/resolv.conf genau dann die Datei resolv.conf pro Namespace, wenn /etc/netns/namespace-name/resolv.conf erstellt wurde. Andernfalls wird in einer Anwendung die resolv.conf des Hostcomputers angezeigt, was möglicherweise nicht das gewünschte Verhalten ist.
Ricky Robinson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.