Unter Linux gibt es zwei Packages, die Kommandozeilenwerkzeuge zum Verwalten, Konfigurieren etc. der Netzwerkfunktionalitäten beeinhalten
iproute2util
-Package mit den
Kommandozeilenwerkzeugen: arpd
, bridge
, ctstat
, dcb
, devlink
, ip
, lnstat
, nstat
, rdma
, routef
, routel
, rtacct
, rtmon
, rtstat
, ss
, tc
und tipc
net-tools
-Package ifconfig
, route
, nameif
, iwconfig
, iptunnel
, netstat
, arp
Tipp: Sie sollten die Befehle des moderneren iproute2util
-Package verwenden.
Hinweis: Zur Konfiguration von Netzwerkfunktionalität gibt es prinzipielle unter Linux verschiedene Möglichkeiten, siehe z.B. den Artikel aus Linux-User 7/2019.
ip
: show / manipulate routing, network devices, interfaces¶Da das Kommando ip
so umfangreich ist, gibt es zu den
einzelnen Aufgaben eigene Manpages, z.B. zu ip address
kann man sich mittels
man ip-address
die entsprechende Manpage ansehen.
man ip-address
protocol address managementman ip-route
routing table managementman ip-link
network device configuration
etc.
Tipp: Drücken Sie nach der Eingabe von man ip-
in der bash die Tab-Taste, um die weitern Manpages zu sehen.
Welche Parameter es zu einem Kommando gibt sehen Sie auch z.B. mit ip address help
.
whatis ip
ip (8) - show / manipulate routing, network devices, interfaces... ip (7) - Linux IPv4 protocol implementation
Mit ip addr show
kann man die die Netzwerkgeräte (devices) des Rechners anzeigen. Dabei werden die physikalischen Netzwerkgeräte angezeigt, aber auch logische Repräsentationen der Netzwerkgeräte von virtuellen Maschinen, Containern und VPN etc.:
# korrepondierendes legacy command des net-tools-package:
#ifconfig
ip address show
# ip addr show # address lässt sich auch abkürzen mit addr
# oder noch kürzer: ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: wlp59s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether cc:f9:e4:c2:cc:4d brd ff:ff:ff:ff:ff:ff inet 192.168.178.22/24 brd 192.168.178.255 scope global dynamic noprefixroute wlp59s0 valid_lft 858784sec preferred_lft 858784sec inet6 2a02:8109:a0c0:4694:7003:7dda:888f:6316/64 scope global temporary dynamic valid_lft 6914sec preferred_lft 3314sec inet6 2a02:8109:a0c0:4694:3561:d126:a69f:4ac8/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 6914sec preferred_lft 3314sec inet6 fe80::4377:f5d1:e295:73fb/64 scope link noprefixroute valid_lft forever preferred_lft forever 9: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff 10: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff 11: vboxnet2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0a:00:27:00:00:02 brd ff:ff:ff:ff:ff:ff 12: vboxnet3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0a:00:27:00:00:03 brd ff:ff:ff:ff:ff:ff 28: cscotun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1300 qdisc fq_codel state UNKNOWN group default qlen 500 link/none inet 141.45.243.131/22 brd 141.45.243.255 scope global cscotun0 valid_lft forever preferred_lft forever inet6 fe80::4cc2:4627:d1c8:4232/126 scope link valid_lft forever preferred_lft forever inet6 fe80::b63b:ce93:42b:6cf4/64 scope link stable-privacy valid_lft forever preferred_lft forever
Hier sieht man, dass IP-Addressen den Netzwerkgeräten (wie Netzkarten) zugeordnet sind.
lo
steht dabei für das Loopback-Device (wird gleich behandelt). wlp59s0
ist die WLAN-SchnittstellevboxnetX
sind die Netzwerke virtuelle Maschinen (virtuellBox).Außerdem stehen zu den einzelnen Netzwerkgeräten verschiedene Informationen. Beispiel:
2: wlp59s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether cc:f9:e4:c2:cc:4d brd ff:ff:ff:ff:ff:ff
inet 192.168.178.22/24 brd 192.168.178.255 scope global dynamic noprefixroute wlp59s0
valid_lft 858504sec preferred_lft 858504sec
inet6 2a02:8109:a0c0:4694:7003:7dda:888f:6316/64 scope global temporary dynamic
valid_lft 7191sec preferred_lft 3591sec
inet6 2a02:8109:a0c0:4694:3561:d126:a69f:4ac8/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7191sec preferred_lft 3591sec
inet6 fe80::4377:f5d1:e295:73fb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Hier bedeutet:
BROADCAST
und MULTICAST
: Die Karte unterstützt Broadcast und Multicast.UP
: Die Schnittstelle ist aktiviert.mtu 1500
: maximal transmission unit 1500, d.h. maximale Größe eines Pakets ist 1500 Byte.cc:f9:e4:c2:cc:4d
MAC-Adresse der Schnittstelle (siehe unten)So kann man z.B. die verwendete IPv4 extrahieren:
ip -o -4 add show scope global | awk '{ print $4 }'
192.168.178.22/24
ip neighbour
echo
echo -n "IP and Hardware address (MAC Address) of a neighbour are "
echo -n $(ip neighbour | grep REACHABLE | head -1| awk '{print $1 " and " $5 "."}')
192.168.178.1 dev wlp59s0 lladdr c8:0e:14:97:fc:c8 REACHABLE
fe80::ca0e:14ff:fe97:fcc8 dev wlp59s0 lladdr c8:0e:14:97:fc:c8 router DELAY
2a02:8109:a0c0:4694:ca0e:14ff:fe97:fcc8 dev wlp59s0 lladdr c8:0e:14:97:fc:c8 router STALE
IP and Hardware address (MAC Address) of a neighbour are 192.168.178.1 and c8:0e:14:97:fc:c8.
Korrepondierendes Kommando des net-tools-package:
arp -a
fritz.box (192.168.178.1) at c8:0e:14:97:fc:c8 [ether] on wlp59s0
Wie erhalten Sie die physikalische Adresse ihrer Netzwerkkarte bzw. ihres WLANs?
Speichern Sie nur die IPv4 Adresse in einer Variablen:
my_ip=
# Hinweis: Sie haben bereits gelernt, die Ausgabe
# eines Befehls in einer Variablen zu speichern
# So wird neben anderen Informationen das Suffix (Netzwerkmaske) angezeigt
ip -o -f inet addr show scope global
2: wlp59s0 inet 192.168.178.22/24 brd 192.168.178.255 scope global dynamic noprefixroute wlp59s0\ valid_lft 849697sec preferred_lft 849697sec
Weisen Sie der Variable my_netsuffix
über den Befehl ip
und Extraktion das Netsuffix zu:
my_netsuffix=
ip route
¶Die Routingtabelle kann mit dem Befehl ip route
angezeigt
bzw. manipuliert werden.
whatis ip-route
ip-route (8) - routing table management
ip route show match default
default via 192.168.178.1 dev wlp59s0 proto dhcp metric 600
Anzeigen der vollen Routing Tabelle mit
ip route
default via 192.168.178.1 dev wlp59s0 proto dhcp metric 600
169.254.0.0/16 dev wlp59s0 scope link metric 1000
192.168.178.0/24 dev wlp59s0 proto kernel scope link src 192.168.178.22 metric 600
Hier ist sind die Rechner in 92.168.178.0/24 direkt erreichbar, genauer
169.254.0.0/16 steht für Link-Lokal, aus RFC 5735:
169.254.0.0/16 - This is the "link local" block. As described in
[RFC3927], it is allocated for communication between hosts on a
single link. Hosts obtain these addresses by auto-configuration,
such as when a DHCP server cannot be found.
Mit ip route
kann man auch neue Einträge in der Routing Tabelle erstellen bzw. Einträge löschen.
Da IP-Adressen für Menschen schwer zu merken sind, gibt es eine Möglichkeit die IP-Adressen über Namen (Domains) zu erhalten, die von dem hierachisch organisierten Verzeichnisdienst DNS übersetzt werden. DNS steht dabei für Domain Name System. Eine kurze Erklärung finden Sie in
Beispiel für einen Domainnamen: rc.f4.htw-berlin.de
de
: Top-Level Domain (first-level). Diese bestimmt wer in dieser Zone die Verwatung übernimmt. Für de
utschland ist es DENIC.htw-berlin
: second-levelf4
: third-levelrc
: fourth-levelDer vollständige Name einer Domain heißt Fully Qualified Domain Name (FQDN).
Mit Hilfe von nslookup
oder dig
(beide aus dem package dnsutils
) bekommt man eine Namensauflösung und weitere Informationen (siehe man-Pages), z.B.:
nslookup htw-berlin.de
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: htw-berlin.de Address: 141.45.66.214
whatis host
host htw-berlin.de
host (1) - DNS lookup utility htw-berlin.de has address 141.45.66.214 htw-berlin.de mail is handled by 50 mail1.rz.htw-berlin.de.
# andersrum:
host 141.45.66.214
214.66.45.141.in-addr.arpa domain name pointer htwb.de. 214.66.45.141.in-addr.arpa domain name pointer s.htw-berlin.de.
Die Auflösung von Domain-Namen zu IP-Adressen wird von sogenannten Nameservern geleistet.
Aber man kann auch z.B. für ein kleines Heimnetz, die Netzwerknamen und Rechnernamen direkt in die Dateien /etc/networks
bzw. /etc/hosts
schreiben. So können diese Namen dann auf dem lokalen Rechner statt der IPs verwendet werden.
Falls aber ein DHCP-Server (oft im Heimnetzrouter per Standard) verwendet wird, können sich die IPs ständig ändern.
cat /etc/networks
# symbolic names for networks, see networks(5) for more information link-local 169.254.0.0
cat /etc/hosts
127.0.0.1 localhost 127.0.1.1 platon # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
lo
- localhost
¶Das Loopback-Device lo
dient dazu, dass (Netzwerk-)Dienste lokal auf dem Rechner verfügbar sind, auch wenn kein Netzwerkgerät angeschlossen ist. D.h. auch ohne Netzwerk können lokale Programme über das Netzwerkprotokolle kommunizieren (eine Form der Interprozesskommunikation). Dies kann auch zu Diagnosezwecken genutzt werden.
Ein Beispiel kennen Sie schon jupyter notebook
. Hier wird beim Start ein Webserver auf dem lokalen Rechner gestartet, um jupyter notebook
s über den Webbrowser zu bearbeiten und auszuführen.
localhost
ist die korrespondierende Top-Level-Domain, die für Dokumentations- und Testzwecke reserviert ist. Das Loopback-Device (localhost
) hat per Standard die IP-Adresse 127.0.0.1 (::1 bei IPv6).
nslookup localhost
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: localhost Address: 127.0.0.1 Name: localhost Address: ::1
host localhost
localhost has address 127.0.0.1 localhost has IPv6 address ::1
ping
¶Das Kommando ping
dient zur Netzwerkdiagnose. So kann man z.B. überprüfen, ob Rechner über das Netzwerk zu erreichen sind. Dazu antworten typischerweise alle Netzwerkschnittstellen auf das entsprechende ICMP-Paket.
whatis ping
ping (8) - send ICMP ECHO_REQUEST to network hosts
# Überprüfen, ob das loopbackdevice funktioniert:
ping localhost -c 2
PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.070 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.068 ms --- localhost ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1017ms rtt min/avg/max/mdev = 0.068/0.069/0.070/0.001 ms
# Ist z.B. das Internet erreichbar
# und kann ich Namen verwenden (Nameserver)
ping christianherta.de -c 1
PING christianherta.de (217.160.0.91) 56(84) bytes of data. 64 bytes from 217-160-0-91.elastic-ssl.ui-r.com (217.160.0.91): icmp_seq=1 ttl=55 time=25.1 ms --- christianherta.de ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 25.132/25.132/25.132/0.000 ms
Nutzen Sie ping
um alle erreichbaren Rechner im lokalen Netz auszugeben.
Machen Sie folgende vereinfachte Annahmen:
Es gibt eine Reihe von Netzwerktools, wie z.B. nmap
, mit denen man Netzwerke untersuchen und scannen kann, siehe z.B. https://www.elektronik-kompendium.de/sites/net/1910051.htm.
Hinweis: Scannen Sie nicht einfach fremde Computernetze (auf Schwachstellen) aus juristischen Gründen.
traceroute
¶Mit Hilfe des Programms traceroute
lässt sich eine Route eines Datenpakets aufzeigen, mehr siehe z.B. auch. https://de.wikipedia.org/wiki/Traceroute
traceroute --resolve-hostnames christianherta.de
traceroute to christianherta.de (217.160.223.1), 64 hops max 1 192.168.178.1 (fritz.box) 5,961ms 3,904ms 5,217ms 2 62.155.240.135 (p3e9bf087.dip0.t-ipconnect.de) 14,357ms 12,660ms 10,989ms 3 217.5.109.14 (217.5.109.14) 142,040ms 24,808ms 125,573ms 4 80.157.131.194 (80.157.131.194) 36,681ms 142,036ms 22,915ms 5 212.227.120.168 (ae-9.bb-b.bs.kae.de.oneandone.net) 30,113ms 27,467ms 38,300ms 6 212.227.121.222 (port-channel-3.gw-distd-sh-2.bs.kae.de.oneandone.net) 145,139ms 27,686ms 26,885ms 7 * * * 8 * *
whatis mtr
# mrt network diagnostic tool
mtr -c 10 -r christianherta.de
mtr (8) - a network diagnostic tool Start: 2021-04-08T09:09:14+0200 HOST: platon Loss% Snt Last Avg Best Wrst StDev 1.|-- _gateway 0.0% 10 1.4 2.7 1.4 7.5 1.8 2.|-- ip5b4162fe.dynamic.kabel- 0.0% 10 7.8 11.4 7.3 32.5 7.5 3.|-- 83-169-180-166-isp.superk 0.0% 10 8.6 14.1 7.3 52.9 14.1 4.|-- ip5886bb8c.dynamic.kabel- 0.0% 10 8.9 12.1 8.5 22.7 4.2 5.|-- 145.254.3.66 0.0% 10 10.1 11.4 9.6 16.1 1.9 6.|-- 145.254.2.179 0.0% 10 17.5 19.6 16.8 28.3 3.8 7.|-- 145.254.2.179 0.0% 10 27.3 20.4 16.8 27.3 3.7 8.|-- ae-18.bb-b.fr7.fra.de.one 0.0% 10 18.0 18.6 16.1 20.8 1.7 9.|-- ae-9.bb-b.bs.kae.de.onean 0.0% 10 21.3 23.0 18.7 47.6 8.7 10.|-- port-channel-3.gw-distd-s 0.0% 10 22.5 21.8 20.6 24.7 1.2 11.|-- clienthosting.eu 0.0% 10 19.6 19.9 18.3 21.3 0.8
Peter Balog, TCP/IP Client Server Architektur: https://embsys.technikum-wien.at/staff/balog/documents/course-material/tcpip_client-server-architecture.pdf
Umfangreiches Standardlehrbuch zu Computernetzwerken: