Einführung zu diversen Netzwerk-Werkzeugen
Content |
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:
heim$ /sbin/ifconfig enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 134.60.66.33 netmask 255.255.254.0 broadcast 134.60.67.255 inet6 fe80::219:99ff:fef9:fb70 prefixlen 64 scopeid 0x20<link> ether 00:19:99:f9:fb:70 txqueuelen 1000 (Ethernet) RX packets 96139411 bytes 17877458122 (16.6 GiB) RX errors 0 dropped 1712 overruns 0 frame 0 TX packets 3956533 bytes 1832248800 (1.7 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xf7c00000-f7c20000 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 3362 bytes 295471 (288.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3362 bytes 295471 (288.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 heim$
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:
heim$ lspci | grep -i ethernet 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04) heim$
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:
heim$ /sbin/ifconfig | grep '\<inet\>' sh: 1: Syntax error: ";" unexpected heim$
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:
theon$ /usr/sbin/ifconfig -a lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 net0: flags=100001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,PHYSRUNNING> mtu 1500 index 2 inet 134.60.66.7 netmask fffffe00 broadcast 134.60.67.255 net0:1: flags=100001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,PHYSRUNNING> mtu 1500 index 2 inet 134.60.66.76 netmask fffffe00 broadcast 134.60.67.255 lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 net0: flags=120002000840<RUNNING,MULTICAST,IPv6,PHYSRUNNING> mtu 1500 index 2 inet6 ::/0 theon$
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:
heim$ dig theon.mathematik.uni-ulm.de a ; <<>> DiG 9.11.5-P4-5.1+deb10u8-Debian <<>> theon.mathematik.uni-ulm.de a ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6213 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 8 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;theon.mathematik.uni-ulm.de. IN A ;; ANSWER SECTION: theon.mathematik.uni-ulm.de. 86400 IN A 134.60.66.7 ;; AUTHORITY SECTION: mathematik.uni-ulm.de. 86400 IN NS dns3.belwue.de. mathematik.uni-ulm.de. 86400 IN NS titania.mathematik.uni-ulm.de. mathematik.uni-ulm.de. 86400 IN NS dns1.uni-ulm.de. mathematik.uni-ulm.de. 86400 IN NS dns1.belwue.de. ;; ADDITIONAL SECTION: dns1.belwue.de. 2920 IN A 129.143.2.10 dns1.uni-ulm.de. 90931 IN A 134.60.1.111 dns3.belwue.de. 2481 IN A 129.143.253.133 titania.mathematik.uni-ulm.de. 86400 IN A 134.60.66.21 dns1.belwue.de. 2920 IN AAAA 2001:7c0::53:10 dns1.uni-ulm.de. 90931 IN AAAA 2001:7c0:3100::111 dns3.belwue.de. 2481 IN AAAA 2001:7c0:0:253::133 ;; Query time: 1 msec ;; SERVER: 134.60.66.21#53(134.60.66.21) ;; WHEN: Fri Nov 25 10:38:15 CET 2022 ;; MSG SIZE rcvd: 306 heim$
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:
heim$ dig -x 134.60.66.7 ; <<>> DiG 9.11.5-P4-5.1+deb10u8-Debian <<>> -x 134.60.66.7 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10796 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 8 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;7.66.60.134.in-addr.arpa. IN PTR ;; ANSWER SECTION: 7.66.60.134.in-addr.arpa. 86400 IN PTR theon.mathematik.uni-ulm.de. ;; AUTHORITY SECTION: 66.60.134.in-addr.arpa. 86400 IN NS dns1.belwue.de. 66.60.134.in-addr.arpa. 86400 IN NS dns1.uni-ulm.de. 66.60.134.in-addr.arpa. 86400 IN NS dns3.belwue.de. 66.60.134.in-addr.arpa. 86400 IN NS titania.mathematik.uni-ulm.de. ;; ADDITIONAL SECTION: dns1.belwue.de. 2919 IN A 129.143.2.10 dns1.uni-ulm.de. 90930 IN A 134.60.1.111 dns3.belwue.de. 2480 IN A 129.143.253.133 titania.mathematik.uni-ulm.de. 86400 IN A 134.60.66.21 dns1.belwue.de. 2919 IN AAAA 2001:7c0::53:10 dns1.uni-ulm.de. 90930 IN AAAA 2001:7c0:3100::111 dns3.belwue.de. 2480 IN AAAA 2001:7c0:0:253::133 ;; Query time: 1 msec ;; SERVER: 134.60.66.21#53(134.60.66.21) ;; WHEN: Fri Nov 25 10:38:16 CET 2022 ;; MSG SIZE rcvd: 328 heim$
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:
heim$ dig -x 127.0.0.1 ; <<>> DiG 9.11.5-P4-5.1+deb10u8-Debian <<>> -x 127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11196 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;1.0.0.127.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.0.0.127.in-addr.arpa. 86400 IN PTR localhost. ;; AUTHORITY SECTION: 0.0.127.in-addr.arpa. 86400 IN NS titania.mathematik.uni-ulm.de. ;; ADDITIONAL SECTION: titania.mathematik.uni-ulm.de. 86400 IN A 134.60.66.21 ;; Query time: 1 msec ;; SERVER: 134.60.66.21#53(134.60.66.21) ;; WHEN: Fri Nov 25 10:38:16 CET 2022 ;; MSG SIZE rcvd: 133 heim$
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?