adr alix apu asa auswahl backup bash bewegung bom buecher c cfengine checklisten cisco computernetz container crypto debian docker dokumentieren duply dvcs ebtables email epub fairphone2 fedora firewall fossilscm git gns3 gre grep hardware i2c iproute ipsec iptables ipv6 kalender kpartx latex laufen libgcrypt lighttpd linux lua lur make mikrotik monotone mount mysql netbox openvpn openwrt pac paketfilter pcap performance perl postfix programmieren projekt proxy pxelinux python qubes-os rancid rezension rfc rpm rs232 schreiben script seriell sftp shell software spiel stehen sysadmin syslog systemd test troubleshoot ubuntu uci vcs virtualbox virtuell vpn wine xen xml

Kommunikation über Netzwerkverbindungen

Es passiert sehr häufig, dass ich als Netzwerkadministrator mit Problemen konfrontiert werde, mit denen ich nichts anfangen kann, weil wichtige Informationen fehlen.

Gibt es Probleme mit dem Netzwerk, sei es dass eine bestehende Verbindung nicht mehr funktioniert oder eine neue Verbindung durch die Firewall erlaubt werden soll, muss ich wissen, wer mit wem kommunizieren soll und wer die Verbindung initiiert.

Die wichtigen Informationen dafür sind:

  • Senderadresse und -port
  • Empfängeradresse und -port
  • Protokoll (TCP oder UDP)

Nur diese fünf Dinge sind es, die mich als Netzwerkadministrator an einer Verbindung interessieren, weil sie diese eindeutig charakterisieren. Dabei gehe ich davon aus, dass der Sender die Verbindung aufbaut. Der Senderport ist oft irrelevant, weil er dynamisch vergeben wird und mit jeder einzelnen Verbindung wechseln kann.

Kommt NAT ins Spiel, sehen diese Informationen an den beiden Endpunkten für ein und dieselbe Verbindung unterschiedlich aus, weil außer dem Protokoll alles durch die NAT-Boxen unterwegs geändert sein kann. Im Normalfall weiß ich als Netzwerkadministrator jedoch, wo in meinem Netzwerk eine NAT-Box ist und welche Adressen sie umsetzt. Ich muss nur noch wissen, für welchen Ort im Netz die fünf Merkmale angegeben sind.

Damit ist für mich als Netzwerkadministrator zunächst alles gesagt.

Für den einfachen Anwender ist es hingegen völlig egal, ob sein Programm via TCP oder UDP kommuniziert und welche Adressen und Ports es verwendet. Er klickt im Browser auf ein Link nach http://irgendwo.hin, schickt eine E-Mail an mein.bekannter@mailanbieter oder macht etwas anderes, was sein Programm veranlasst eine Verbindung aufzubauen.

Manchmal hat der Anwender einen Betreuer, der Bescheid wissen sollte, welche Netzwerkverbindungen seine spezielle Anwendung benötigt.

Habe ich als Netzwerkadministrator mit einem Anwendungsbetreuer zu tun, dann erwarte ich, dass er die benötigten Verbindungen kennt und mir die oben genannten Informationen zur Verfügung stellt.

Habe ich es hingegen mit einem einfachen Anwender zu tun, kann ich nicht erwarten, diese Informationen direkt zu bekommen.

Bei Standardanwendungen kann ich oft mit Hilfe des Anwenders und ping, traceroute, ifconfig oder den Windows-Äquivalenten die benötigten Informationen erschließen. Bei komplexen Anwendungen verweise ich ihn an seinen Anwendungsbetreuer.

Zwar gibt es hin und wieder die Möglichkeit, mittels Paketmitschnitten oder durch Auswertung der Firewall-Logs herauszufinden, welche Verbindungen eine Anwendung aufzubauen versucht. Das erfordert jedoch ein erhebliches Vertrauen in eine unbekannte Anwendung und bietet keine Gewähr dafür, dass beim Testen eine Verbindung übersehen wurde und es später wieder zu Problemen kommt.

Darum ist der bessere Ansatz, genau zu wissen, was man tut, oder jemand zu fragen, der es weiß.


Kommunikation über Netzwerkverbindungen
Posted 2021-10-09
NetBox sichern und wiederherstellen
Posted 2021-08-10
XML-Logeinträge
Posted 2021-06-21
RANCID mit Git und Gitweb
Posted 2021-05-11
Ein Monotone-Repository zu Git exportieren
Posted 2021-04-06
Rezension: Practical System Programming with C
Posted 2021-03-02
Netzwerk-Tests mit bats, netcat und xxd
Posted 2021-02-09
Netzwerk-Performance-Analyse: Grundlagen
Posted 2021-01-26
Netbox Docker mit SAML2-Plugin
Posted 2021-01-12
C-Schnipsel: Datagramm-Sockets mit IPv4 und IPv6
Posted 2020-12-08