ubuntuusers.de

Wie die Geschwindigkeit eines angeschlossenen Netzwerkadapters erkennen?

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

WebGambler

Avatar von WebGambler

Anmeldungsdatum:
29. Oktober 2007

Beiträge: 27

Wohnort: Erding

Hallo,

in unserem Unternehmen verwenden wir Laptops, die häufig an wechselnden Standorten eingesetzt werden. Intern haben die Geräte nur Fast-Ethernet. Etwas schneller können wir uns per USB(2.0 )-Gigabit-Ethernet-Adapter an schnellere Intranets hängen. Nachdem wir festgestellt haben, daß die zum Standardumfang der Distribution gehörenden Netzwerkprogramme von Ubuntu im Prinzip immer nur die Bindung einer physikalischen an eine logische bzw. virtuelle Schnittstelle unterstützen, sind diese für uns nicht optimal geeignet. Was wir verwirklichen wollen, ist eine Art "plug-and-play".

Wir haben deshalb alle nicht nativen Bestandteile des Debian-Netzwerkmanagements "deimplementiert", arbeiten also nur noch mit /etc/network/interfaces, etc/resolv.conf und einigen Hardware- und Netzwerkerkennungstools, die für Ubuntu verfügbar sind und haben mittlerweile einen Entwicklungsstand erreicht, der wie folgt FUNKTIONIERT:

1. Beim Hochfahren (oder nach Anstecken eines USB-Adapters) werden alle vorhandenen LAN oder WLAN Adapter physikalisch erkannt (→ hwinfo).

2. Der Benutzer kann einzelne Adapter priorisieren, z.B. bei Vorhandensein eines Fast- und eines GBit-Ethernet-Adapters lieber den Gigabit-Adapter benutzen.

3. Die Prioritätenvergabe erfolgt z.Z. rein manuell, d.h. dem Nutzer muß bekannt sein, wie schnell sein Adapter ist.

4. Sind dem System alle Adapter bekannt, erfolgt keine Nachfrage nach der Priorität sondern es wird der letzte bekannte Prioritätenindex verwendet. Der Nutzer kann diesen allerdings jederzeit manuell ändern und das Netz neu starten.

5. Eine Prüfung auf eingestecktes Kabel bei LAN-Adaptern bzw. irgendein vorhandenes WLAN bei WLAN-Adaptern stellt sicher, daß nur "potentiell verbindbare" Adapter an Netze zu binden versucht werden und das System seine Bindungsversuche nicht auf kabellose Adapter erstreckt oder WLAN-Verbindungen versucht, obwohl Funkstille herrscht.

6. Eine weitere Grundeinstellung erlaubt z.B. beim Vorhandensein von zwei (gleichschnellen) Adaptern zu wählen, ob ggf. zwei Netze seriell aufgeschaltet werden (Adapter 1 wird z.B. eth0 mit Anbindung an Netz 1, Adapter 2 wird eth1 mit Netz2) oder nur auf die Schnittstelle mit der höchsten Priorität aufgeschaltet wird (Adapter1 mit höherer Priorität an eth0 und Netz1 an eth0, Netz2 an eth0:1).

7. Eine weitere Grundeinstellung erlaubt zum Beispiel WLAN-Adapter nicht zu benutzen, wenn ein angeschlossenes Kabel entdeckt wird (Priorisierung LAN vor WLAN).

8. Alle bekannten Netze (für LAN oder WLAN) erhalten ebenfalls einen (jederzeit änderbaren) Prioritätsindex. Z.B. haben die Netze in der Firma eine höhere Priorität als die bei den einzelnen Kollegen daheim. Der Scan nach bekannten Netzen erfolgt sehr schnell und gefundene Netze werden aufgeschaltet.

9. Sind Adapter physikalisch vorhanden und ein Kabelanschluss positiv gecheckt bzw. beim Scan ein WLAN-vorhanden aber KEIN bekanntes Netz entdeckt worden, wird eben bei Kabel mittels DHCP und bei WLAN ein Verbindungsversuch per DHCP ohne jedwede Verschlüsselung als letzter Versuch unternommen.

Mittlerweile funktioniert alles bereits sehr zufriedenstellend und wir arbeiten an einem graphischen Interface für die Nutzer. Eigentlich ein eierlegendes Wollmilchschwein.

Nun wollten wir gern noch als I-Tüpfelchen eine "automatische" Prioritätenbestimmung (mindestens) der LAN-Adapter einbauen. Dummerweise kennen wir keine Möglichkeit, die Geschwindigkeit eines Adapters zu prüfen, bevor dieser an ein Netz gebunden ist. Hardware-Erkennungsprogramme wie hwinfo liefern zwar für USB-Adapter Infos wie "480 MBit" aber für per PCI angebundene Ethernet-Adapter scheint es keine Möglichkeit zu geben, irgendwie herauszufinden oder zu testen, ob es sich um ein 10Mbit-, 100Mbit- oder 1000Mbit-Hardwarebauteil handelt.

Natürlich könnten wir versuchen, über irgendwelche Datenbanken auf Grund des verwendeten Treibers und/oder der Gerätebezeichnung Rückschlüsse zu ziehen. Vielleicht gibt es aber auch eine elegante andere Lösung.

Kann jemand helfen?

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21859

Wohnort: Lorchhausen im schönen Rheingau

WebGambler schrieb:

Nun wollten wir gern noch als I-Tüpfelchen eine "automatische" Prioritätenbestimmung (mindestens) der LAN-Adapter einbauen. Dummerweise kennen wir keine Möglichkeit, die Geschwindigkeit eines Adapters zu prüfen, bevor dieser an ein Netz gebunden ist. Hardware-Erkennungsprogramme wie hwinfo liefern zwar für USB-Adapter Infos wie "480 MBit" aber für per PCI angebundene Ethernet-Adapter scheint es keine Möglichkeit zu geben, irgendwie herauszufinden oder zu testen, ob es sich um ein 10Mbit-, 100Mbit- oder 1000Mbit-Hardwarebauteil handelt.

sudo ethtool <schnittstelle>

für wired-devices sollte es schon tun, oder? Zumindest wirft es alle unterstützen Geschwindigkeiten aus.

WebGambler

(Themenstarter)
Avatar von WebGambler

Anmeldungsdatum:
29. Oktober 2007

Beiträge: 27

Wohnort: Erding

Herzlichen Dank, rednight! Funktioniert!

Kannst Du (oder jemand anderes) mir vielleicht noch auf Anhieb sagen, was der Unterschied zwischen "supported linkmodes" und "advertised linkmodes" ist?

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21859

Wohnort: Lorchhausen im schönen Rheingau

Laut man ethtool sind Advertised Modes diejenigen, die Automatisch verbunden werden können.

WebGambler

(Themenstarter)
Avatar von WebGambler

Anmeldungsdatum:
29. Oktober 2007

Beiträge: 27

Wohnort: Erding

Nochmals herzlichen Dank für die superschnelle Antwort. Hatte nicht in man sondern auf der Homepage von ethtool nachgesehen und dort zunächst nicht das gefunden, wonach ich gesucht habe. Damit GELÖST. bye

Antworten |