In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
Dieses Dokument beschreibt die Schritte zur Konfiguration von DNS-Servern in Bash, um die Auflösung von DNS-Hostnamen in IP-Adressen zu ermöglichen.
Geräte der Cisco Nexus Serien 3000 und 9000 ermöglichen den Zugriff auf das zugrunde liegende Linux-System von NX-OS über Bash (Bourne-Again SHell). Bash ermöglicht Systemverwaltung und -überwachung über eine Linux-Umgebung. Weitere Informationen zu Bash in NX-OS finden Sie im Bash-Kapitel im NX-OS-Programmierhandbuch für die Cisco Nexus Serie 9000.
Es kann erforderlich sein, beim Ausführen normaler Aufgaben in der Bash-Shell benutzerfreundliche Domänennamen in numerische IP-Adressen zu übersetzen. Zu diesen Aufgaben gehört die Verwendung der curl-
oder wget-
Dienstprogramme, um auf Ressourcen von einem Webserver zuzugreifen oder Docker-Images mit dem Docker-Pull-
Befehl herunterzuladen.
Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.
Hinweis: Die Bash-Shell soll auf Ihrem Cisco Nexus-Gerät aktiviert werden. Anweisungen zum Aktivieren der Bash-Shell finden Sie im Abschnitt "Accessing Bash" (Zugriff auf Bash) im Bash-Kapitel im Nexus NX-OS-Programmierbarkeitsleitfaden der Cisco Nexus Serie 9000.
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
Die Informationen in diesem Dokument wurden von Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Die Linux-Umgebung, auf die über die Bash-Shell zugegriffen wird, verwendet die /etc/resolv.conf-Datei, um die DNS-Konfiguration zu speichern, ähnlich wie die meisten anderen Unix-ähnlichen Betriebssysteme.
1. Melden Sie sich über den Befehl run bash sudo su -
an der Bash-Shell als root-Benutzer an.
Nexus# run bash sudo su - root@Nexus#whoami root
2. Zeigen Sie den aktuellen Inhalt der /etc/resolv.conf-Datei an. In diesem Beispiel ist die Datei leer.
root@Nexus#cat /etc/resolv.conf root@Nexus#
3. Öffnen Sie die Datei /etc/resolv.conf zur Bearbeitung mit dem vi-
Texteditor.
root@Nexus#vi /etc/resolv.conf
4. Drücken Sie die i
-Taste, um in den INSERT-Modus zu wechseln, und geben Sie dann die gewünschte Konfiguration ein. Weitere Informationen zum Konfigurationsformat in der /etc/resolv.conf-Datei finden Sie im Abschnitt /etc/resolv.conf dieses Dokuments.
5. Wenn die Datei geändert wurde, drücken Sie die ESC
-Taste, um den INSERT-Modus zu beenden. Geben Sie dann :x ein,
um alle Änderungen in der Datei zu speichern und sie zu schließen.
Nachdem die Änderungen an der DNS-Konfiguration der Bash-Shell vorgenommen wurden, stellen Sie sicher, dass die Änderungen zur erfolgreichen Auflösung des Domänennamen führen. Die einfachste Methode zum Testen der Domänennamenauflösung ist die Verwendung des Ping-
Dienstprogramms unter Verwendung eines Domänenhostnamens als Ziel. In diesem Dokument wird veranschaulicht, wie eine gültige DNS-Konfiguration mithilfe eines Test-Hosts der Datei test.cisco.com und der DNS-Server 192.168.2.1 und 192.168.2.2 verifiziert wird.
Standardmäßig verwendet die Bash-Shell den standardmäßigen Netzwerknamespace, sofern nicht anders angegeben. Netzwerknamespaces entsprechen logisch den NX-OS-VRFs, und das ip-Netzwerk
des Befehls zeigt eine Liste von Namespaces an, die der Bash-Shell zur Verfügung stehen, wie unten gezeigt:
root@Nexus#ip netns EXAMPLE-VRF (id: 2) management (id: 1) default (id: 0)
Ein gültiger Netzwerknamespace, mit dem getestet werden soll, ist ein Namespace, der über IP-Verbindungen zu den in der /etc/resolv.conf-Datei konfigurierten DNS-Namenservern sowie über IP-Verbindungen zur IP-Adresse verfügt, zu der der Testhost aufgelöst wird.
Sie können den Befehl ip netns exec {namespace} {want-command}
verwenden, um den Befehl {want-command}
im Namespace {namespace}
auszuführen. Alternativ kann die Bash-Shell im Kontext eines bestimmten Namespaces mit dem Befehl ip netns exec {namespace} bash
ausgeführt werden. Die bisherige Methode wird im Beispiel hier verwendet. Es wird überprüft, ob der Management-Namespace über IP-Verbindungen mit der IP-Adresse des test.cisco.com-Hosts (d. h. 192.168.2.100) und beiden DNS-Servern (192.168.2.1 und 192.168.2.2) verfügt. ...
root@Nexus#ip netns exec management ping 192.168.2.100 -c 5 PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data. 64 bytes from 192.168.2.100: icmp_seq=1 ttl=59 time=0.277 ms 64 bytes from 192.168.2.100: icmp_seq=2 ttl=59 time=0.284 ms 64 bytes from 192.168.2.100: icmp_seq=3 ttl=59 time=0.280 ms 64 bytes from 192.168.2.100: icmp_seq=4 ttl=59 time=0.274 ms 64 bytes from 192.168.2.100: icmp_seq=5 ttl=59 time=0.297 ms --- 192.168.2.100 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.274/0.282/0.297/0.017 ms root@Nexus#ip netns exec management ping 192.168.2.1 -c 5 PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data. 64 bytes from 192.168.2.1: icmp_seq=1 ttl=59 time=0.277 ms 64 bytes from 192.168.2.1: icmp_seq=2 ttl=59 time=0.284 ms 64 bytes from 192.168.2.1: icmp_seq=3 ttl=59 time=0.280 ms 64 bytes from 192.168.2.1: icmp_seq=4 ttl=59 time=0.274 ms 64 bytes from 192.168.2.1: icmp_seq=5 ttl=59 time=0.297 ms --- 192.168.2.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.274/0.282/0.297/0.017 ms root@Nexus#ip netns exec management ping 192.168.2.2 -c 5 PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data. 64 bytes from 192.168.2.2: icmp_seq=1 ttl=59 time=0.277 ms 64 bytes from 192.168.2.2: icmp_seq=2 ttl=59 time=0.284 ms 64 bytes from 192.168.2.2: icmp_seq=3 ttl=59 time=0.280 ms 64 bytes from 192.168.2.2: icmp_seq=4 ttl=59 time=0.274 ms 64 bytes from 192.168.2.2: icmp_seq=5 ttl=59 time=0.297 ms --- 192.168.2.2 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.274/0.282/0.297/0.017 ms
Verwenden Sie das ping-
Dienstprogramm mit einem Ziel des Hostnamens des Testhosts. Wenn ICMP-Antworten vom Test-Host empfangen werden und die in den ICMP-Antworten enthaltene IP-Adresse die IP-Adresse ist, auf die der Hostname aufgelöst werden soll, wird bestätigt, dass die DNS-Auflösung in der Bash-Shell funktioniert.
Dieses Beispiel veranschaulicht, wie das ping-
Dienstprogramm im Management-Namespace verwendet wird, um die korrekte DNS-Auflösung zu überprüfen. Beachten Sie, dass der Domänen-Hostname von test.cisco.com auf 192.168.2.100 aufgelöst wird. Dies ist die IP-Adresse, von der wir erwarten, dass dieser Hostname aufgelöst wird.
root@Nexus#ip netns exec management ping test.cisco.com -c 5 PING test.cisco.com (192.168.2.100) 56(84) bytes of data. 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=1 ttl=59 time=0.617 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=2 ttl=59 time=0.341 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=3 ttl=59 time=0.310 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=4 ttl=59 time=0.379 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=5 ttl=59 time=0.296 ms --- test.cisco.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 0.296/0.388/0.617/0.119 ms
Wenn der Namespace, der zum Testen der DNS-Auflösung verwendet wird, über eine IP-Verbindung mit dem Internet verfügt, kann man cisco.com pingen, um zu überprüfen, ob externe Domänennamen zusätzlich zu internen Domänennamen aufgelöst werden können. Dies ist besonders dann wichtig, wenn Sie Dienstprogramme wie curl
und wget
gegen öffentliche Webserver verwenden müssen. Das Beispiel hier veranschaulicht, wie das Ping-
Dienstprogramm innerhalb des Management-Namespaces (der über IP-Verbindungen zum Internet verfügt) verwendet werden kann, um die korrekte externe DNS-Auflösung zu überprüfen.
root@Nexus#ip netns exec management ping cisco.com -c 5 PING cisco.com (72.163.4.161) 56(84) bytes of data. 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=1 ttl=239 time=29.2 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=2 ttl=239 time=29.2 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=3 ttl=239 time=29.3 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=4 ttl=239 time=29.2 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=5 ttl=239 time=29.2 ms --- cisco.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 29.261/29.283/29.335/0.111 ms
Hier werden einige gängige Konfigurationsparameter erläutert. Ändern Sie alle Konfigurationsparameter entsprechend Ihrer Umgebung.
{domain-name.tld}
, der an Hostnamen angehängt wird, die nicht mit einem Punkt enden. Es kann nur einen Domäneneintrag
in der /etc/resolv.conf-Datei geben.{domain-name-1.tld}
und optional [domain-name-2.tld]
), um Hostnamen anzuhängen. Hinweis: Die Domänen
- und Sucheinträge
schließen sich gegenseitig aus. Es kann jeweils nur einer verwendet werden. Wenn beide Einträge in der /etc/resolv.conf-Datei enthalten sind, wird der Eintrag, der zuletzt in der Datei angezeigt wird, verwendet.
{address-1}
für einen DNS-Server, an den DNS-Auflösungsanfragen weitergeleitet werden. Mehrere Namenserver-
Einträge sind innerhalb einer Datei zulässig, maximal drei.Dieses Beispiel zeigt den Inhalt der /etc/resolv.conf-Datei, wobei die Standarddomäne der Umgebung cisco.com lautet und DNS-Server in der Umgebung die IP-Adressen 192.168.2.1 und 192.168.2.2 haben. Wenn in diesem Szenario die Bash-Shell die IP-Adresse für ein Gerät mit dem Hostnamen foo auflösen muss, fügt sie cisco.com an das Ende des Hostnamens an, sodass der vollqualifizierte Domänenname (FDQN) des Hosts foo.cisco.com ist.
domain cisco.com nameserver 192.168.2.1 nameserver 192.168.2.2
Das folgende Beispiel zeigt den Inhalt der /etc/resolv.conf-Datei, in der entweder die Domänennamen cisco.com oder bar.com zum Auflösen von DNS-Hostnamen verwendet werden können. DNS-Server in der Umgebung haben die IP-Adressen 192.168.2.1 und 192.168.2.2. Wenn in diesem Szenario die Bash-Shell die IP-Adresse eines Geräts mit einem Hostnamen foo auflösen muss, versucht sie zunächst, foo.cisco.com aufzulösen, und dann als Nächstes zu foo.bar.com zu suchen, wenn die Auflösung für foo.cisco.com fehlschlägt.
search cisco.com bar.com nameserver 192.168.2.1 nameserver 192.168.2.2