Archiv der Kategorie: Netzwerk

Windows Netzwerkpasswort löschen/ändern

Hat man z.B. einen Netzwerkdrucker auf seinem Windows-Rechner eingebunden und ändert sich das Passwort für diese Verbindung, kann man auf den Drucker nicht mehr zugreifen. Bislang musste ich dann den Drucker immer löschen und wieder neu einrichten, was natürlich ziemlich lästig ist, wenn die IT-Abteilung einen zwingt, alle 21 Tage das Passwort zu ändern. Nun habe ich aber in dem Beitrag „Windows Netzwerkpasswort löschen/ändern“ auf intelligensbestien.de die Lösung gefunden: Start -> Ausführen -> „control userpasswords2“  -> Reiter „Erweitert“ -> „Kennwörter verwalten“.

Eine Reihe von IP-Adressen per Ping prüfen

Mitunter hat man das Problem, eine nicht kleine Anzahl an Rechnern auf Erreichbarkeit zu überprüfen. Die Adressen und Hostnamen liegen als Excel-Liste vor, aber diese alle von Hand zu pingen … dazu bin ich echt zu faul. Also habe ich mir ein kleines Script gebaut, welches diese Aufgabe elegant erledigt:

#!/bin/sh
#
# Sendet einen Ping an alle in der übergebenen Datei aufgeführten Adressen.
# In der Liste muss pro Zeile zuerst die IP-Adresse und danach durch Leerzeichen
# getrennt der Hostname stehen (optional).
# Die Ausgabe von Ping kann unterdrückt werden, indem STDERR ins Null-Dev
# geschickt wird:
# ping_list liste.txt 2>/dev/null
#

#set -x

Newline='
'

IFS=$Newline
for LINE in `cat $1`
do
  #echo "'$LINE'"
  ADR=${LINE%% *}
  HOST=${LINE##* }
  #echo "Adr: $ADR"
  #echo "Host: $HOST"
  if [ "$OSTYPE" = "linux" ]
  then
    ping -q -W 3 -c 1 $ADR 1>&2
  elif [ "$OSTYPE" = "hpux11.00" ]
  then
    ping $ADR -n 1 -m 3 1>&2
  else
    echo "Unknown OS"
    exit 99
  fi
  if [ $? -eq 0 ]
  then
    echo "$ADR ($HOST) is up"
  else
    echo "$ADR ($HOST) FAILED"
  fi
done
IFS=

Es arbeitet zzt. unter Linux (SuSE 11.1) und HP-UX 11i und kann auch hier heruntergeladen werden:
ping_list

Rechnernamen mir der TLD .local können nicht aufgelöst werden

Das Problem: Verwendet ein lokales Netzwerk die Domain .local kann ein neuerer Linux-Client die lokalen Namen nicht auflösen.

Der Grund: .local wird Zeroconf-Diensten wie z.B. Rendezvous verwendet. Zeroconf ist eine Technik zur konfigurationsfreien Vernetzung von Geräten in lokalen Rechnernetzen.
Neuere Linux-Distributionen sind darauf vorbereitet und senden DNS-Anfragen für Adressen mit der Top-Level-Domain per Multicast an den Port 5353 (mdns) der Adresse 224.0.0.251.

In Wikipedia gibt es einen Artikel zu Zeroconf, der die Hintergründe beschreibt. U.a. ist dort zu lesen:

Alle DNS-Abfragen für Namen, die auf .local enden, müssen mit UDP und IP Multicast an die mDNS-Multicast-Adresse 224.0.0.251 Port 5353 gesendet werden.

Und weiter ist zu lesen:

Natürlich kann es in der Praxis zu Konflikten kommen, von den Erfindern von mDNS wurde das aber als sehr unwahrscheinlich angenommen.

Dummerweise wird die TLD .local recht häufig verwendet – bei der IETF existiert sogar ein Draft, (http://www.ietf.org/proceedings/99nov/I-D/draft-ietf-dnsind-local-names-07.txt), in dem die Verwendung der Top-Level Domain „.local“ im Intranet vorgeschlagen wird, speziell wenn der lokale Adressbereich nach RFC1918 zum Einsatz kommt.

Die Lösung: Auch diese findet sich im o.g. Wikipedia-Artikel:

Damit unter Linux die Namensauflösung bei der Top-Level-Domain .local wie gewohnt über den DNS-Server (z. B. Bind) abgewickelt wird, ist der Eintrag mDNS off in der Datei /etc/host.conf erforderlich.

Bei neueren (SuSE-)Distributionen funktioniert das aber nicht mehr, da /etc/host.conf ignoriert wird. Stattdessen muss die Datei /etc/nsswitch.conf bearbeitet werden. Dort findet sich eine Zeile

hosts: files mdns4_minimal [NOTFOUND=return] dns

die wieder in die alte Form

hosts: files dns

geändert werden muss.

Weitere Links zum Thema:

OpenVPNPortable

OpenVPN für den USB-Stick

Ich habe gerade entdeckt, dass es auch ein Tool gibt, um OpenVPN auf einem USB-Stick zu installieren und zu Starten. Auf Sourceforge findet sich OpenVPNPortable, zzt. in der Version 1.5.2.

Man führt die EXE aus, ein Wizzard installiert dann OpenVPN 2.1_rc7 für Windows, OpenVPN-GUI 1.0.3 und weitere notwendigen Dateien auf dem Stick. Lediglich die Keys und Zertifikate muss man selbst noch in das Unterverzeichnis data/config kopieren. Das diese mit einer Passphrase geschützt sind, sollte selbstverständlich sein. In diesem Verzeichnis muss auch noch eine entspr. *.ovpn Konfig-Datei erstellt werden, das OpenVPN-GUI findet diese dann selbstständig. In dieser Datei muss übrigens kein Pfad für die Keys und Zertifikate angegeben werden, da diese in dem Verzeichnis gesucht werden, in dem auch die Konfig-Datei liegt.

Wird dann die installierte Anwendung gestartet, so wird zunächst das TAP-Interface installiert, wozu zwingend Administrator-Rechte notwendig sind. Ggf. muss Das Programm über runas gestartet werden. Bei der Beendigung des Tools wird man gefragt, ob man das Interface wieder deinstallieren möchte.

Nach dem das Tool gestartet ist, findet sich in der Taskleiste wie gewohnt das OpenVPN-GUI-Icon, über das man die Verbindung(en) aufbauen und trennen kann.

Netzmasken von Subnetzen und Anzahl der Adressen

Es gibt zwei verschiedene Arten, eine Netzmaske zu schreiben. Hier eine kleine Tabelle als Übersicht für die Class-C-Subnetze:

Netzmaske Kurzform Anzahl
Adressen
255.255.255.255 /32 1
255.255.255.252 /30 4
255.255.255.248 /29 8
255.255.255.240 /28 16
255.255.255.224 /27 32
255.255.255.192 /26 64
255.255.255.128 /25 128
255.255.255.0 /24 256

Speed und Duplex eines Interfaces beim Booten einstellen

Manchmal muss ein Netzwerk-Interface fest auf eine Geschwindigkeit und/oder Duplex-Verfahren eingestellt werden, weil die Autonegoation nicht funktioniert.

Grundsätzlich ist die Autonegoation, also die selbstständige, optimale Einstellung zweier verbundener Netzwerkports eine gute Sache – wenn sie funktioniert und sie auch bei beiden Ports eingeschaltet ist (siehe auch „Duplex Mismatch und Autonegotiation im Ethernet„). Wenn nicht, müssen die Ports manuell konfiguriert werden. Man kann diese Einstellungen mit dem Werkzeug ethtool vornehmen, aber beim Booten des Rechners wird das Interface wieder auf Auto stehen.

Leider gibt es kein einfachen Konfigurationsparameter (z.B. in der Interfacekonfiguration unter /etc/sysconfig/network), der das bewerkstelligt. Damit diese Einstellungen auch beim Booten wirksam werden muss bei SuSE 10.x ein Script angelegt werden, welches aufgerufen wird, wenn das Interface gestartet wurde. Dies ist ein sehr universelles Konzept, welches auch viele andere Möglichkeiten bietet. Grundsätzlich gibt es zwei Möglichkeiten, ein Script beim Starten ausführen zu lassen:

  • Ein Script in /etc/sysconfig/network/if-up.d
  • Ein Script mit der Variablen POST_UP_SCRIPT in der Interfacekonfigurationsdatei /etc/sysconfig/network/ifcfg-* angeben

Bei der ersten Möglichkeit wird das Script bei jedem Interface ausgeführt, man muss daher die übergebenen Parameter analysieren und ein Fehler im Script kann die gesamte Netzkonfiguration des Rechners durcheinander bringen.

Ich verwende daher die zweite Möglichkeit, bei dem ein spezielles Script für das gewünschte Interface erstellt wird. Man kann aber auch ein universelles Script erstellen, welches die übergebenen Parameter analysieren. Da es aber nur für die Interface ausgeführt wird, die dieses Script auch in POST_UP_SCRIPT stehen haben, ist das sicherer als die erste Methode. Wer mehr zu den beiden Verfahren wissen möchte, dem seinen die Man-Pages zu ifup und ifcfg empfohlen.

Ich habe nun also in der Konfigurtationsdatei für die betreffende Netzwerkkarte die folgende Zeile hinzugefügt:

POST_UP_SCRIPT='post_up_eth2'

Das Script sieht dann so aus:

#!/bin/sh
# Stellt das Interface auf 100 Full ein
#echo $0 $1 $2 $3 $4 $5
CONF_NAME=$1
HW_NAME=$2

ethtool -s $HW_NAME autoneg off speed 100 duplex full

ethtool $HW_NAME

Wird in der Konfigdatei kein Pfad mit angegeben, so wird das Script in /etc/sysconfig/network/scripts erwartet.