Samstag, 13. November 2010

"metric"-Attribut bei Multipath-Routing mit Linux

Trotz hartnäckigen Googelns hatte ich bislang noch keine Antwort auf die Frage gefunden, was Linux tut, wenn es zwei Routen mit exakt demselben Zielpräfix hat, die sich jedoch im Wert metric unterscheiden (z. B. so: route add -net 169.254.169.0/24 gw 169.254.169.1 metric 4711 dev eth0 und route add -net 169.254.169.0/24 gw 169.254.169.1 metric 4712 dev eth1)

Also habe ich es selbst ausprobiert und bestätigt bekommen, was ich schon die ganze Zeit vermutete: Linux nimmt anscheinend immer nur die Route mit dem kleineren Wert bei metric.

Wenn zwei gleichwertige Routen denselben Wert für metric haben, dann ist mir allerdings nicht 100%ig klar, was passiert. In meinen Experimenten wurde dann immer dasjenige Interface genommen, was in der Liste von ifconfig weiter oben auftaucht; im konkreten Fall wurde also immer eth0 gegenüber eth1 bevorzugt. (Aber vielleicht macht Linux auch Load-Balancing und durch einen sehr unglücklichen Zufall wurde der Flow immer aufs gleiche Interface gehasht – was aber unter der Annahme, dass der Hashwert fürs Loadbalancing aus Source- und Destination-IP-Adresse gebildet wird, in meinem Fall eine Wahrscheinlichkeit von weniger als 0,5% aufweist.)

Wer's genauer wissen will, dem wünsche ich viel Spaß beim Lesen des Linux-Kernelsourcecodes...

Freitag, 2. Juli 2010

Richtiger Schluss, aber falsche Interpretation

Es stimmt:
Seit ihrem Regierungsantritt hat die schwarz-gelbe Koalition bislang hauptsächlich enttäuscht. Insbesondere die FDP hat eine Klientelpolitik betrieben, die ich nicht für möglich gehalten hätte: An Steuererleichterungen lediglich eine Verringerung der Mehrwertsteuer für Hotels. Eine Kopfpauschale, deren Einführung Besserverdiener besser stellt und andererseits Geringstverdiener entweder finanziell schlechter stellt oder sie zumindest dazu zwingt, einen weiteren Teil ihrer Freizeit auf eine dann garantiert noch kompliziertere Einkommensteuererklärung zu verschwenden, um sich die Mehrbelastung über die Steuer wieder zurückzuholen. Eine Kürzung staatlicher Zuwendungen an finanzschwache Bürger zum Stopfen von finanzkriseninduzierten Haushaltslöchern anstatt einer prozentual einheitlichen Beteiligung aller Einkommensschichten. Ansonsten: nichts. Ich schäme mich, es hiermit öffentlich zuzugeben, FDP gewählt zu haben, möchte aber zu meiner Verteidigung sagen, dass mein Hauptgrund Sabine Leutheusser-Schnarrenberger war und sie bislang in puncto Überwachungsstaat, Polizeistaat, Stasi 2.0 usw. in der Tat nicht nachgegeben hat – wollen wir hoffen, dass das so bleibt.


Es stimmt:
Die Regierungskoalition bemerkt ihre aus all den vorgenannten Gründen zunehmend schwindende Popularität in der Bevölkerung und zeigt auch Ermüdungserscheinungen wie gegenseitige Schuldzuweisungen.


Aber eines stimmt ganz sicher nicht:
Dass Wulff mit großen Startschwierigkeiten gewählt wurde, lag sicher nur zu einem kleinen Teil daran, dass einige der von CDU, CSU und FDP gestellten Mitglieder der Wählerversammlung der Regierungskoalition im Schutz der anonymen Bundespräsidentenwahl eins auswischen wollten. Nein, es lag einfach daran, dass Gauck ein Kandidat war, der auch für das konservative Lager sehr gut wählbar ist. Wenn Gauck in der Bevölkerung eine überwältigende Mehrheit findet, warum sollte das dann innerhalb der CDU-, CSU- und FDP-Wahlmänner und -frauen so viel anders sein? Stutzig machen sollte doch auch eine lobende Rede Merkels über Gauck einige Monate vor der Präsidentenwahl, die Aussage einiger ostdeutscher FDP-Landesverbände, Gauck unterstützen zu wollen, sowie erst recht die Tatsache, dass Gauck bereits vor einigen Jahren schon einmal als Präsidentschaftskandidat ins Gespräch gebracht worden war – damals von der CSU.
Wer also von einer Erosion der Regierungskoalition redet und dafür als Grund die Bundespräsidentenwahl anführt, der kommt zwar zum richtigen Schluss – das allerdings durch eine völlig falsche Interpretation der Bundespräsidentenwahl. Warum ist das eigentlich so schwer zu verstehen?


Und im Übrigen weiß ich, weshalb ich die Partei „Die Linke“ nach wie vor „SED“ nenne: Weil ihr Schatten, über den sie bei der Bundespräsidentenwahl hätte springen müssen (anstatt sich in die Schmollkind-Ecke zu stellen), immer noch viel zu lang ist.

Mittwoch, 24. März 2010

Auf Auerswald-ISDN-Geräte unter Ubuntu 9.10 mit USB zugreifen

Die Auerswald-Konfigurationssoftware (COMset, COMfortelSet usw.) läuft zwar problemlos unter Ubuntu Linux 9.10 (Karmic Koala); allerdings bekommt man Probleme, wenn man versucht, die Konfiguration via USB auf das Gerät (ISDN-Anlage oder Systemtelefon) zu speichern. Die Auerswald-Support-Seite schreibt hierzu lediglich, dass es sich dabei um ein Problem mit den Zugriffsrechten auf die USB-Ports handelt und dass man für weitere Infos doch bitte Google benutzen möge. Wenn man das tut, ist man allerdings ne ganze Zeit erstmal mit Googeln beschäftigt, muss sich durch diverse Foren kämpfen und wird so manche unvollständige oder veraltete Information finden.
In der Hoffnung, dass Google dereinst diesen Blog-Eintrag in den Suchindex aufnehmen wird, beschreibe ich hier, wie man den Zugriff regeln kann. Wenn ich mich recht entsinne, hatte ich das auch schon unter früheren Ubuntu-Versionen so gemacht; getestet habe ich das Folgende aber nur unter Ubuntu 9.10.

0. Ggf. checken, ob es wirklich an den Zugriffsrechten liegt

Was hier in Schritt 0 beschrieben ist, ist nicht unbedingt nötig – wem es zu kompliziert klingt, der kann es erstmal weglassen.
  1. Auerswald-USB-Gerät ggf. ausstecken und ein paar Sekunden warten
  2. USB-Gerät wieder einstecken
  3. Jetzt schaut man nach, an welchem USB-Device sich zuletzt was getan hat, z.B. so:
    ls -lt /dev/bus/usb/*
    und das liefert als Ausgabe:
    /dev/bus/usb/003:
    insgesamt 0
    crw-rw-r-- 1 root root 189, 259 2010-03-23 23:00 004
    crw-rw-r-- 1 root root 189, 256 2010-03-21 21:23 001

    /dev/bus/usb/002:
    insgesamt 0
    crw-rw-r-- 1 root root 189, 129 2010-03-22 22:41 002
    crw-rw-r-- 1 root root 189, 128 2010-03-21 21:23 001

    /dev/bus/usb/001:
    insgesamt 0
    crw-rw-r-- 1 root root 189, 0 2010-03-21 21:23 001
    Wie man an den Zeitstempeln (kursiv hervorgehoben) erkennt, hat sich also zuletzt was an der Treiber-Datei /dev/bus/usb/003/004 (fett) getan. Achtung: Diese Datei heißt nur auf meinem Rechner so; auf einem anderen Rechner stehen da todsicher zwei andere Nummern! Wie man an der Ausgabe von ls ebenfalls sieht, ist die Datei nur für root sowie Benutzer der Gruppe root schreibbar, aber nicht für andere Benutzer (unterstrichen), weil am Ende ...r-- und leider nicht ...rw- steht. Damit die Auerswald-Software mit dem Gerät kommunizieren kann, muss das Device aber auch für Normaluser schreibbar sein.
  4. Das ist am einfachsten zu erreichen, wenn man jetzt die schuldige Device-Datei für alle schreibbar macht:
    sudo chmod a+rx /dev/bus/usb/003/004 (Warnung von oben beachten!)
  5. Austesten, ob es damit jetzt klappt: Auerswald-Software schließen, kurz warten, wieder aufmachen, ausprobieren.
  6. Verständlicherweise will man diese Fingerübung nicht jedesmal von Hand machen müssen. Wie das Ganze automatisiert wird, ist in den folgenden Schritten beschrieben.

1. Geräte-ID herausfinden

So, jetzt geht's richtig los: Wir wollen dem Linux jetzt beibringen, dass auch normale Benutzer auf Auerswald-Geräte zugreifen dürfen. Dazu müssen wir erstmal den genauen USB-Device-Code des Gerätes herauskiregen.
Dazu in der Shell eingeben:
lsusb | grep Auerswald
Je nach angeschlossenem Gerät sollte man dann einen Eintrag sehen, der so aussieht:
Bus 003 Device 004: ID 09bf:00f1 Auerswald GmbH & Co. KG COMfort System Telephones
Wichtig ist der von mir unterstrichene Teil: Vor dem Doppelpunkt steht die Hersteller-ID (dürfte mutmaßlich für alle Auerswald-Produkte wohl 09bf sein, aber lieber selber nochmal überprüfen); hinter dem Doppelpunkt steht die Geräte-ID – und die ist für die verschiedenen Modelle unterschiedlich. Obiges Beispiel 00f1 steht beispielsweise für das alte Systemtelefon COMfort 2000; eine 4410USB soll 00db haben; eine COMpact 2206USB vermutlich was anderes, usw. usw. Man kommt also nicht drum rum, selber nachzuschauen.

2. Automatische Zugriffsrechtanpassung konfigurieren

Jetzt muss man dafür sorgen, dass der udevd die Zugriffsrechte auf die entsprechenden Gerätedabeien in /dev/bus/usb/ aufweicht, sobald ein Auerswald-Gerät angeschlossen wird. Hierzu legt man mit root-Rechten eine Datei /etc/udev/rules.d/auerswald.rules an (man könnte sie auch anders nennen, wenn man will). Wer nicht weiß, wie das geht, tippt einfach
sudo nano /etc/udev/rules.d/auerswald.rules
Dieser Editor sollte hoffentlich selbsterklärend sein.
In diese Datei schreibt man folgendes hinein:

SUBSYSTEM!="usb_device", ACTION="add", GOTO="auerswald_rules_end"

# Fuer Auerswald COMfort 2000:
# (Bei anderen Auerswald-Geraeten muss man GARANTIERT andere Hex-Werte eintragen!)
SYSFS{idVendor}=="09bf", SYSFS{idProduct}=="00f1", MODE="666"

LABEL="auerswald_rules_end"
Anschließend speichert man die Datei ab.

3. Ausprobieren

  1. Ggf. noch laufende Auerswald-Software schließen
  2. Auerswald-USB-Gerät abstecken
  3. Sicherheitshalber ein paar Sekunden warten
  4. Auerswald-USB-Gerät wieder einstecken
  5. Sicherheitshalber ein paar Sekunden warten
  6. Auerwald-Software wieder starten
  7. Ausprobieren, ob man auf das Gerät zugreifen kann

4. Funktioniert noch nicht?

Angeblich soll der udevd automatisch erkennen, dass die Konfiguration geändert wurde. Hat bei mir aber nicht geklappt, und ich hatte immer noch keine passenden Zugriffsrechte. In diesem Fall muss man mit
sudo restart udev
den udevd etwas unsanfter dazu veranlassen, gefälligst seine Konfiguration neu einzulesen. Danach wieder das in Punkt 3 beschriebene Spielchen mit Aus- und Einstecken.

Man beachte übrigens, dass für die ganze Sache kein Systemneustart erforderlich ist! Auch das ist einer der Vorteile von Linux gegenüber Windows: man muss nicht ständig rebooten...

Suchmaschinenfutter, damit man es findet: Linux, Ubuntu, 9.10, Karmic, Koala, Auerswald, COMpact, COMfort, COMfortel, 2206, 4410, 1000, 1200, 2000, 1500, 2500, 4406, USB, Java, COMset, COMfortelSet, COMlist, COMfortSMS, COMfortelMelodie, COMtools, SoftLCR

Donnerstag, 11. März 2010

Carpe noctem

Warum kann ich abends, wenn ich schon seit Ewigkeiten im Bett sein sollte, nicht so müde sein wie morgens, wenn ich schon seit Ewigkeiten aufgestanden sein sollte!?