Archive for the ‘deutsch’ Category

Ich sehe Zellenfluss

Montag, Mai 22nd, 2023

Meine Kollegys wundern sich manchmal darüber wenn ich in einem Troubleshooting sage “Ich sehe Zellenfluss!”. Diese Aussage kommt aus meiner Vergangenheit als ich bei einem Reseller von SDSL-Leitungen tätig war.

Bildnachweis: table / photocase.de
Bildnachweis: table / photocase.de

Damals war so eine SDSL-Leitung (genauer: g.SHDSL) auf maximal 2MBit/s beschränkt. Da das auch zu der Zeit schon nicht sehr viel war (ADSL war damals schon bei 16 MBit/s Downstream angekommen) wollten manche Kunden gerne mehrere Leitungen Bündeln um vier, sechs oder acht MBit/s zu erreichen.

Dies war allerdings sehr fragil, alle beteiligten Leitungen sollten idealerweise auf dem selben DSLAM oder noch besser auf der selben Linecard liegen. Ansonsten kam es durchaus vor, dass z.B. nach Wartungsarbeiten die Leitungen aus dem Tritt gerieten. Es ging zwar das eine oder andere kleine Paket durch, aber die erzielbare Bandbreite war ziemlich Mau, d.h. eher im kBit/s-Bereich.

Leider war es in diesen weichen Fehlerbildern – ein anderer Carrier fragte mal ob eine Leitung “DOWN-HARD” sei – schwierig den Support zum Arbeiten zu bewegen. Die Initiale Aussage eines Technikers war diese zitierte Feststellung, er sähe Zellenfluss. Damit waren die unter dem PPPoEoA liegenden ATM-Zellen gemeint, die auf dem ATM-Switch zu sehen waren.

Ich sehe Zellenfluss bedeutet also dass der Techniker es für funktional hält, es für den Anwender aber trotzdem unbrauchbar ist.

Einfach mal Danke sagen…

Freitag, Mai 19th, 2023

Heute habe ich die Gelegenheit mal abzuschalten – meine großartigen Kollegys halten den Betrieb aufrecht, während andere am Brückentag Überstunden abbauen können. 

Diese Woche wurde ich nochmal daran erinnert, was wir als Team alles schaffen können. Es ist zum Glück schon etwas länger her (vier Jahre!), und kommt selten vor. Aber ich werde die bisher anstrengendste Arbeitswoche vor einigen Jahren nicht so schnell vergessen. Nach einem größeren Update unserer Firewall-Systeme gab es neben etlichen Verbesserungen leider auch das eine oder andere “unerwartete Feature”, Insider würden sie als Bugs bezeichnen. 

Aber warum ist das für mich eine positive Erinnerung? Weil wir letztendlich alle Probleme lösen konnten. Neben schnellen Workarounds für die am meisten betroffenen Kundenumgebungen brauchten wir dafür Improvisationstalent und Hands-On Unterstützung der Infrastruktur-Kollegen, die in unseren Rechenzentren arbeiten, Unterstützung vom Hersteller in Form mehrerer maximal eskalierter Support-Requests mit direkter Einbindung der Entwicklungsabteilung und extrem professionelle Support-Mitarbeiter inklusive Übergabe im Follow-The-Sun-Prinzip.

Das ganze über mehrere Tage ununterbrochen begleitet von meinen direkten Kollegen, die in Form einer “Lagerfeuerwache” immer nach einer gewissen Zeit den aktuellen Stand und die weiteren Maßnahmen an den nächsten übergeben haben. Die Erinnerung an diese Gemeinschaftsleistung erfüllt mich immer noch mit Stolz.

Aus meinem Schülerpraktikum in den 90er

Samstag, Februar 4th, 2023

Moin, angestoßen durch ein Posting beim Shopblogger (Zwei Stunden für ein Monitorkabel) wurde ich an mein Schülerpraktikum erinnert, mit einer noch ärgerlicheren Geschichte.

Das Praktikum machte ich aufgrund meines Interesses für Computer beim ortsansässigen Computerladen, quasi der Monopolist vor Ort. An einem meiner ersten Tage wurden wir zu einem Firmenkunden gerufen. Auf dem kürzlich ausgelieferten PC sollte jetzt nachträglich Windows 95 installiert werden. Also wurden Installations-CD und Bootdiskette eingelegt und der Rechner damit versucht zu starten.

Leider erfolglos, er brach mit einer Fehlermeldung ab. Nach einer kurzen Fehlersuche fiel das Urteil, der Rechner musste in die Werkstatt. Dort tauschte ich dann nacheinander das Diskettenlaufwerk, das zugehörige Kabel, und als das nichts half das Mainboard. Es war nämlich ein super modernes Mainboard ohne separaten Floppy-Controller. Natürlich musste ich den CPU Kühlkörper entfernen, die CPU transplantieren und und und…

Aber der Rechner bootete immer noch nicht. Ich glaube das ganze hat auch mehr als einen Tag gedauert, bis ein anderer Computertechniker fragte, ob wir mal SEINE Installationsdiskette ausprobieren wollten. Das war nämlich die einzige Komponente die unverändert geblieben war. Und natürlich, das letzte was man versucht ist ja meistens die Lösung des Problems, der PC bootete ohne Probleme und führte das Update durch.

So hatte ich quasi alle Komponenten des Rechners durchgetauscht, wegen einer kaputten Bootdiskette.

Latenzen die jeder kennen sollte

Freitag, September 2nd, 2022

Unter dem Titel “Latency Numbers Every Programmer Should Know” hat @srigi auf Twitter eine gute Aufstellung gepostet, die mich an meinen alten Artikel https://blog.rot26.de/blog/2010/08/05/latenzzeiten-im-ip-backbone/ erinnert hat.

Anders als ich damals sind nicht nur Netzwerklatenzen erwähnt, sondern auch interne Vorgänge im Rechner, und in Relation zur Geschwindigkeit menschlicher Prozesse, wobei für einen Denkvorgang eine Sekunde veranschlagt wird.

VorgangLatenzin menschlicher Dimension
1 CPU Taktzyklus0,3 ns1 s
Level 1 Cachezugriff0,9 ns3 s
Level 2 Cachezugriff 2,8 ns9 s
Level 3 Cachezugriff 12,9 ns43 s
RAM-Zugriff (Hauptspeicher)120 ns6 min
SSD-Festplatte (Solid State I/O)50-150 µs2-6 Tage
Herkömmliche Festplatte (Rotational Disk I/O)1-10 ms1-12 Monate
Internet: San Francisco nach New York City40 ms4 Jahre
Internet: San Francisco nach Großbritanniten81 ms8 Jahre
Internet: San Francisco nach Australien183 ms19 Jahre
Reboot (Virtuelles Betriebssystem)4 s423 Jahre
SCSI Timeout30 s3000 Jahre
Reboot (Hardware-Virtualisationsumgebung)40 s4000 Jahre
Reboot (physischer Server)5 m32 Jahrtausende

Ich finde dass dies hilft um sich klarzumachen, wie schnell Computer theoretisch arbeiten können, wie sehr aber etwas verlangsamt werden kann wenn Festplattenzugriffe erfolgen oder Netzwerkkommunikation aus dem lokalen Bereich (LAN) auf WAN- oder gar Kontinent-übergreifende Verbindungen erweitert wird.

Read Mail Real Fast

Montag, November 1st, 2021

Durch den Artikel unter https://itsfoss.com/sudo-rm-rf/ bin ich ins Grübeln gekommen. Ich habe nämlich eine Abneigung gegen den -f Parameter von rm. Aber warum, und was meine ich mit der Überschrift?

Die Überschrift greift einen alten Scherz auf. Beim Einloggen auf einem Linux-System wird man gelegentlich auf ungelesene Mails hingewiesen, gerne an den User root adressiert. Neulinge kann man gut foppen indem man ihnen sagt dass die das per “Read Mail Real Fast Root” Kommando machen soll, oder eben per rm -rf / – Naive Anfänger löschen damit ihre Root-Partition, in früheren Zeiten wäre man gelegentlich durch ein gemountetes /cdrom gerettet worden…

Was mich aber an dem eigentlichen Problem stört, ist, dass Neulinge von Linux-Distributionen früh an den -f Parameter (--force) gewöhnt werden. Diese Distributionen misstrauen dem User nämlich und setzen einen Alias für rm auf rm -i, was bei JEDER. EINZELNEN. DATEI. fragt ob man sie denn wirklich ehrlich und in echt löschen will. Das nervt relativ schnell, und verleitet zur “Lösung” den -f Parameter zu verwenden.

Anstatt sich ein rm -f anzugewöhnen, und zum Löschen von Verzeichnissen rm -rf zu verwenden, empfehle ich das Entfernen des Aliases. Dann macht ein rm genau das was es soll, es löscht Dateien, und fragt in Sonderfällen nach. Will ich ein Verzeichnis löschen ist es meist ohnehin bereits leer und ich kann rmdir verwenden. Und sollte ich mich vertan haben, muss ich auf das hoffentlich vorhandene Backup zurückgreifen.

Die “nukleare Option” rm -rf nutze ich also nicht aus Gewohnheit, sondern immer nach einer Abwägung ob das jetzt wirklich sein muss. Und wenn, dann mache ich erst ein ls -la dasmusswech um mich zu vergewissern was ich lösche. Und dann gebe ich rm -rf ein, gefolgt von ALT+. – damit hole ich das Argument des letzten Befehls aus der History und kann gar nicht das falsche Verzeichnis löschen.

Warum ich die Bezeichnung “Class C Netz” nicht mehr hören mag

Donnerstag, Mai 4th, 2017

Bei vielen, die schon seit längerem in der IT arbeiten, hat es sich eingeschlichen, von einem “Class C” Netz zu sprechen, wenn ein Netz mit 256 IP-Adressen gemeint ist. Wenn ich dann darauf hinweise, dass wohl ein /24 gemeint sei, ernte ich häufig verwirrte Gesichter und die Antwort, dass dies doch das Gleiche sei.

Hierzu ein kleiner Ausflug in die gute alte Zeit. Früher wurde zwischen verschiedenen Autonomen Systemen beim Austausch von Routing-Informationen nur die Netzadresse übertragen. Die Netzmaske ergab sich aus der “natürlichen” Netzmaske anhand des Class Based Routing. Mit Einführung von CIDR (Classless Inter-Domain Routing) wurde die Übertragung von Netzmasken verpflichtend. Dadurch konnten beliebige Subnetze gebildet und übermittelt werden.

Die Netz-Klasse war also ein Hilfsmittel, um die Netzmaske zu ermitteln. Dies bedeutet aber auch, dass mit der Einführung von CIDR die Netzmaske nicht mehr umgekehrt auf die Netzklasse schließen lies. Somit kann also ein /24-Netz in den Bereich der Class C Netze fallen, aber ebensogut aus dem Class A oder Class B Bereich stammen.

Warum allerdings nur die Bezeichnung Class C für ein /24, aber nicht die anderen Bezeichnungen bis heute überlebt haben, erschließt sich mir nicht.

Meine Bitte: Wer sich dieser Mehrdeutigkeit nicht klar ist oder sich unmissverständlich ausdrücken möchte, solle doch bitte ausschließlich Netzmasken in CIDR-Notation verwenden, und den Begriff des “Class C” Netzes endlich aussterben lassen.

Radkarte von Johannes Formann

Montag, Mai 16th, 2016

osm_logoIch habe ja bereits einmal über OpenStreetMap als Fahrradkarte geschrieben. Seit mittlerweile mehreren Jahren verwende ich die hervorragenden, von Johnannes Formann bereitgestellte Radkarte auf Basis von OpenStreetMap. Leider bin ich erst sehr selten dazu gekommen, den großartigen “FixMe”-Layer zu berücksichtigen und neue Informationen nachzupflegen.

Cisco Type 7 Passwörter entschlüsseln

Donnerstag, Februar 11th, 2016

Relativ früh in meiner Laufbahn als Netzwerkadministrator habe ich erfahren, dass Passwörter auf Cisco-Routern manchmal reversibel gespeichert werden. Da es nicht immer praktikabel ist, auf einem entsprechenden Gerät einfach “no service password-encryption” einzugeben, gibt es diverse Skripte zur Umkehrung dieser Verschlüsselung. Damit ich nie wieder suchen muss lege ich ein Skript, von dem ich leider keine Ahnung habe wer der ursprüngliche Autor ist, hier ab:

#!/usr/bin/perl
use File::Copy;

############################################################################
# Vigenere translation table
############################################################################
@V=(0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e,
    0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44,
    0x48, 0x53, 0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36, 0x39,
    0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76, 0x39, 0x38, 0x37, 0x33,
    0x32, 0x35, 0x34, 0x6b, 0x3b, 0x66, 0x67, 0x38, 0x37);
############################################################################

############################################################################
# Usage guidelines
############################################################################
if ($ARGV[0] eq ""){
   print "This script reveals the IOS passwords obfuscated using the Vigenere algorithm.n";
   print "n";
   print "Usage guidelines:n";
   print " cdecrypt.pl 04480E051A33490E     # Reveals a single passwordn";
   print " cdecrypt.pl running-config.rcf   # Changes all passwords in a file to cleartextn";
   print "                                  # Original file stored with .bak extensionn";
}

############################################################################
# Process arguments and execute
############################################################################
if(open(F,"<$ARGV[0]")){    # If argument passed can be opened then convert a file
  open(FO,">cdcout.rcf") || die("Cannot open 'cdcout.rcf' for writing ($!)n");
  while(<F>){
    if (/(.*passwords)(7s)([0-9a-fA-F]{4,})/){     # Find password commands
      my $d=Decrypt($3);                             # Deobfuscate passwords
      s/(.*passwords)(7s)([0-9a-fA-F]{4,})/$1$d/;  # Remove '7' and add cleartext password
    }
    print FO $_;
  }
  close(F);
  close(FO);
  copy($ARGV[0],"$ARGV[0].bak")||die("Cannot copy '$ARGV[0]' to '$ARGV[0].bak'");
  copy("cdcout.rcf",$ARGV[0])||die("Cannot copy '$ARGV[0]' to '$ARGV[0].bak'");
  unlink "cdcout.rcf";
}else{                      # If argument passed cannot be opened it is a single password
  print Decrypt($ARGV[0]) . "n";
}

############################################################################
# Vigenere decryption/deobfuscation function
############################################################################
sub Decrypt{
  my $pw=shift(@_);                             # Retrieve input obfuscated password
  my $i=substr($pw,0,2);                        # Initial index into Vigenere translation table
  my $c=2;                                      # Initial pointer
  my $r="";                                     # Variable to hold cleartext password
  while ($c<length($pw)){                       # Process each pair of hex values
    $r.=chr(hex(substr($pw,$c,2))^$V[$i++]);    # Vigenere reverse translation
    $c+=2;                                      # Move pointer to next hex pair
    $i%=53;                                     # Vigenere table wrap around
  }                                             #
  return $r;                                    # Return cleartext password
}

Garmin GPSMAP 62 startet nicht mehr

Samstag, November 28th, 2015

2a70d1f3-b62f-4b4e-8beb-beace88d1389_l

Garmin GPSmap 62st

In letzter Zeit passiert es immer häufiger: Mein Garmin GPSMAP 62st bekommt neue Geocaching.com Pocket-Queries als GPX-Dateien aufgespielt, und stürzt beim folgenden Einschalten immer wieder ab.

Die Lösung war bisher immer, ihn nochmal im USB-Speicher-Modus zu starten. Klappt dies nicht mehr automatisch, kann man ihn so dazu zwingen: Während man auf die “Hoch”-Taste des Steuerkreuzes drückt das USB-Kabel einstecken, und warten bis das USB-Symbol angezeigt wird. Erst dann die Taste loslassen.

Nun kann man die zuletzt eingespielten Dateien entfernen, meist startet er danach wieder. Es liegt auch nicht an den Dateien, die man nach der Wiederbelebung einfach nochmal hinlegen kann. Meine Vermutung geht in Richtung einer internen, korrupten Datenbankdatei.

Manchmal reicht es sogar schon, ihn einmal ohne die Micro-SD-Karte zu starten, auf der meine GPX-Dateien immer liegen.

Einmal half aber nichts von alledem. Ich fürchtete schon, dass mein Garmin das Zeitliche gesegnet hätte. Bevor ich ihn komplett zurückgesetzt habe fand ich aber per WebUpdate eine neue Firmware-Version, die ich per oben beschriebenem Zwangs-Massenspeicher-Modus installieren konnte. Danach startete er, als wäre nichts gewesen.

Mac Mini Neustart nach Stromausfall

Donnerstag, Oktober 8th, 2015

Ich war kürzlich in der Situation, dass ich meinen MacMini, der zu Hause als Videorecorder mit EyeTV läuft, neustarten wollte. Der Tuner hatte sich (mal wieder…) aufgehängt.

Da ich aus der Ferne den Rechner samt Tuner stromlos schalten kann, dachte ich hier auf der sicheren Seite zu sein. Also fuhr ich den Mac per ScreenSharing sauber herunter, schaltete den Strom aus und danach wieder ein. Vorher prüfte ich natürlich, ob die entsprechende Option aktiviert ist.

Restart after Powerloss

Restart after Powerloss

Leider startete der Rechner nicht wieder. Eine Recherche ergab, dass alles korrekt konfiguriert ist. Eine Kontrolle per Shell bestätigte, dass autorestart aktiviert war:

$ pmset -g
Active Profiles:
AC Power		-1*
Currently in use:
 hibernatemode        0
 womp                 1
 networkoversleep     0
 sleep                0 (sleep prevented by screensharingd)
 Sleep On Power Button 1
 ttyskeepawake        1
 hibernatefile        /var/vm/sleepimage
 autorestart          1
 disksleep            10
 displaysleep         0

Eine weitere Suche im Internet brachte mir dann eine Erklärung. Der Neustart nach Stromausfall funktioniert nur, wenn der Rechner nicht sauber heruntergefahren wurde. Will man dennoch den Rechner herunterfahren, und dann per Reset neu starten, muss man dies per halt -u machen. Dann fährt er zwar herunter, schaltet aber erst nach 5 Minuten hart aus. Dies ist für den sauberen Shutdown mit einer USV gedacht, und funktioniert tatsächlich.