========================================== Einführung zu diversen Netzwerk-Werkzeugen [TOC] ========================================== Der POSIX-Standard umfasst nur einen sehr kleinen Umfang traditioneller Kommandos auf der Kommandozeile – Netzwerk-Werkzeuge gehören nicht dazu. Trotz der fehlenden Standardisierung sind viele Werkzeuge auch über eine breite Vielfalt von Plattformen hinweg verfügbar, auch wenn sich der Funktionsumfang und die Einzelheiten unterscheiden können. Gelegentlich bieten einige Plattformen auch alternative Werkzeuge und Schnittstellen an. Im Folgenden fokussieren wir uns aber auf plattformübergreifende Werkzeuge, wobei wir typischerweise uns sowohl die Ausgaben auf einem Solaris- als auch einem Linux-System ansehen. Welche IP-Adressen haben wir auf unserem Rechner? ================================================= Einen Überblick über die zur Verfügung stehenden Netzwerke und die auf den Netzwerken zum Einsatz kommenden IP-Adressen bietet das Kommando _ifconfig_. So sieht die typische Ausgabe auf einer unserer Maschinen im Pool-Raum E.44 aus: ---- SHELL (path=session05,hostname=heim) ---- /sbin/ifconfig ----------------------------------------------- Zu sehen sind hier zwei Netzwerke, _enp0s25_ und _lo_. Bei älteren Linux-Systemen würde statt _enp0s25_ eher _eth0_ erscheinen. Die Änderung erfolgte, um Netzwerknamen nicht von Zufälligkeiten beim Hochfahren eines Rechners abhängig zu machen. Somit steht „en“ für Ethernet, „p“ für PCI. Die numerischen Angaben spezifizieren den PCI-Slot: ---- SHELL (path=session05,hostname=heim) ---- lspci | grep -i ethernet ----------------------------------------------- Der Slot „00:19.0“ ist in Hex angegeben, „00“ identifiziert hier den PCI-Bus und 0x19 = 25 identifiziert das PCI-Gerät innerhalb eines PCI-Busses. Weitere Infos zu diesem Namensschema finden sich hier: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ Neben „enp0s25“ wird auch noch „lo“ genannt – hierbei handelt es sich um das sogenannte Loopback-Device, d.h. das ist ein Netzwerk, das traditionell nur virtuell innerhalb des Systems existiert. Hierfür wird traditionell die IP-Adresse 127.0.0.1 zugewiesen, wobei das gesamte 127er-Netzwerk für solche lokale Netzwerke zur Verfügung steht. In der zweiten Zeile steht hier jeweils die IPv4-Adresse, sofern vorhanden: ---- SHELL (path=session05,hostname=heim) ---- /sbin/ifconfig | grep '\' ----------------------------------------------- Somit besitzt diese Maschine zwei IPv4-Adressen: 134.60.66.33 wird für die Ethernet-Schnittstelle verwendet, 127.0.0.1 für das Loopback-Device. Das _ifconfig_-Kommando sieht unter Solaris ähnlich aus, es wird aber zusätzlich noch die Option „-a“ benötigt: ---- SHELL (path=session05,hostname=theon) ---- /usr/sbin/ifconfig -a ----------------------------------------------- Wie zu erkennen ist, gibt es hier ein anderes Namensschema – das Ethernet-Device nennt sich „net0“. Da die Maschine mehr als eine IP-Adresse auf diesem Gerät hat, gibt es „net0“ und „net0:1“ mit den IPv4-Adressen 134.60.66.7 und 134.60.66.251. Wie unter Linux gibt es ein Loopback-Device, hier mit dem Namen „lo0“, das wie üblich standardmäßig die IP-Adresse 127.0.0.1 besitzt. Welche Namen sind den IP-Adressen zugeordnet? ============================================= DNS-Abfragen auf der Kommandozeile können am besten mit dem Werkzeug _dig_ durchgeführt werden, das zum weitverbreiteten ISC-BIND-Paket gehört (ISC = _Internet Systems Consortium_, BIND = _Berkeley Internet Name Domain_). Über den Namensdienst können sowohl Rechnernamen zu IP-Adressen als auch umgekehrt IP-Adressen zu Namen abgebildet werden. Diese Abbildungen sind voneinander unabhängig und keinesfalls bijektiv. Weder sind allen IP-Adressen Namen zugeordnet und Namen können auch u.U. mehrere IP-Adressen zugeordnet sein, die wiederum auf andere Namen abgebildet werden. So erfolgt eine Abbildung von einem Rechnernamen zu einer IP-Adresse: ---- SHELL (path=session05,hostname=heim) ----- dig theon.mathematik.uni-ulm.de a ----------------------------------------------- Das „a“ steht hier für die Frage nach einem sogenannten A-Record im Namensdienst, das ist ein Eintrag mit einer IPv4-Adresse. Mit „aaaa“ ist eine Abfrage nach IPv6-Adressen möglich. Das Werkzeug _dig_ ist in seiner Antwort sehr ausführlich. Relevant ist hier die „ANSWER SECTION“, in der der gewünschte A-Record zitiert wird. Die umgekehrte Abbildung von IP-Adressen zu Namen ist mit der Option „-x“ möglich: ---- SHELL (path=session05,hostname=heim) ----- dig -x 134.60.66.7 ----------------------------------------------- In der „ANSWER SECTION“ wird nun ein sogenannter PTR-Record zitiert, der für die umgekehrte Abbildung zuständig ist. Natürlich kann das auch für 127.0.0.1 probiert werden. Auf einem wohlkonfigurierten Namensdienst sollte dabei „localhost“ zurückgeliefert werden: ---- SHELL (path=session05,hostname=heim) ----- dig -x 127.0.0.1 ----------------------------------------------- Fragen ====== * Welche IPv4-Adresse hat „uni-ulm.de“? Gibt es noch einen anderen Namen, der zur gleichen IP-Adresse führt? * Welche IPv4-Adressen sind alle für die Thales konfiguriert? Haben die teilweise Namen, in denen „thales“ nicht vorkommt? :navigate: up -> doc:index next -> doc:session05/page02