pppoe: wie DSL-Speed auslesen ?

hallole

Active Member
Hallo,

ich verwende ObenBSD 5.0 als router für mein DSL Modem (pppoe Kernel-Implementierung). Funktioniert soweit alles prima. Nur habe ich keine Möglichkeit gefunden, die DSL-Bandbreite auszulesen. "Normale" DSL-Router zeigen diese irgendwo in der Weboberfläche an.
Ich könnte natürlich versuchen, per Test-Download die Geschwindigkeit zu testen, das ist aber nicht ganz das, was ich will. Das Modem kennt mit Sicherheit die tatsächliche DSL-Bandbreite.
Mein ifconfig zeigt mir aber leider diese Info nicht an:
Code:
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
        priority: 0
        dev: rl1 state: session
        sid: 0x2e02 PADI retries: 5 PADR retries: 0 time: 13:50:25
        sppp: phase network authproto pap authname "username@provider.de"
        groups: pppoe egress
        status: active
        inet6 fe80::230:4fff:fe0a:efe8%pppoe0 ->  prefixlen 64 scopeid 0x5
        inet 66.77.88.99 --> 44.55.66.77 netmask 0xffffffff
Da ich DSL-RAM habe wäre es für mich wichtig, die momentane DSL-Geschwindigkeit zu kennen.
Gibt es eine Möglichkeit, irgendwie weitere Infos zur ppp Verbindung zu erhalten ?
 
hi
direkt kenne ich das keine moeglichkeit das via interface bzw ifconfig rauszubekommen,

ggf wuerde ich via pf und altq ein entsprechendes set auf setzen um die aktuell verwendete
bandbreite mir anzeigen zu lassen.

waehre dann mit z.b.

systat queue

sichtbar

holger
 
Geht es Dir um die (tatsächliche) momentane Bandbreite oder um die momentan mögliche Bandbreite?
Letzere sollte Dein Modem liefern können. Vielleicht lässt sich das ja irgendwie seriell oder über ein Webinterface auslesen/parsen?
 
Geht es Dir um die (tatsächliche) momentane Bandbreite oder um die momentan mögliche Bandbreite?
Es geht mir um die Bandbreite, die mein DSL-Modem mit der Gegenstelle ausgehandelt hat.
Das hat erstmal garnichts mit Internet und IP zu tun und kann daher auch nicht von pf/altq ermittelt werden.
Es geht mir rein um die DSL-Verbindung zwischen Modem und Gegenstelle der Telekom.

Gibt es evtl. sowas wie pppdump oder lsppp ?
 
hi
da gebe ich @hades natuerlich recht .

aber mit pf/altq jkann ich schon ermitteln welche bandbreite gerade verwendet wird.

holger
 
Hi,

also die meisten modernen Modems haben einen eingebauten Webserver der dann die ausgehandelte Geschwindikeit anzeigt.
Den Webserver kannst du vom OpenBSD z.B. aus erreichen indem du der Netzwerkkarte an die das Modem angeschlossen ist die passende IP gibts, oder, wenn du z.B. NAT machst könntest du auch eine zusätzliche Route setzen und das Modem dann aus dem internen erreichen.
 
Hallo hallole,

Hallo,

ich verwende ObenBSD 5.0 als router für mein DSL Modem (pppoe Kernel-Implementierung). Funktioniert soweit alles prima. Nur habe ich keine Möglichkeit gefunden, die DSL-Bandbreite auszulesen. "Normale" DSL-Router zeigen diese irgendwo in der Weboberfläche an.
Ich könnte natürlich versuchen, per Test-Download die Geschwindigkeit zu testen, das ist aber nicht ganz das, was ich will. Das Modem kennt mit Sicherheit die tatsächliche DSL-Bandbreite.
Mein ifconfig zeigt mir aber leider diese Info nicht an:
Code:
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
        priority: 0
        dev: rl1 state: session
        sid: 0x2e02 PADI retries: 5 PADR retries: 0 time: 13:50:25
        sppp: phase network authproto pap authname "username@provider.de"
        groups: pppoe egress
        status: active
        inet6 fe80::230:4fff:fe0a:efe8%pppoe0 ->  prefixlen 64 scopeid 0x5
        inet 66.77.88.99 --> 44.55.66.77 netmask 0xffffffff
Da ich DSL-RAM habe wäre es für mich wichtig, die momentane DSL-Geschwindigkeit zu kennen.
Gibt es eine Möglichkeit, irgendwie weitere Infos zur ppp Verbindung zu erhalten ?

unter dem FreeBSD-PPPoE gibt es die Möglichkeit, einen Socket für pppctl in der ppp.conf festzulegen. Über pppctl "socket" show "subcommand" kannst Du dir viele Parameter anzeigen lassen:
Code:
PPP ON routerdeluxe> show ?
(o) = Optional context, (c) = Context required
bundle     : bundle details         ccp(o)     : CCP status            
compress   : VJ compression stats   escape(c)  : escape characters     
filter     : packet filters         hdlc(c)    : HDLC errors           
iface      : Interface status       ipcp       : IPCP status           
ipv6cp     : IPV6CP status          layers(o)  : Protocol layers       
lcp(c)     : LCP status             link(c)    : (high-level) link info
links      : available link names   log        : log levels            
mem        : mbuf allocations       ncp        : NCP status            
physical(c): (low-level) link info  mp         : multilink setup       
proto(o)   : protocol summary       route      : routing table         
stopped(c) : STOPPED timeout        timers     : alarm timers          
version    : version string         who        : client list           
help       : Display this message
Vielleicht bietet OpenBSD die gleiche Möglichkeit - schau mal in die Manpage zu ppp(8), ppp.conf(5) und pppctl(8).

JueDan
 
unter dem FreeBSD-PPPoE gibt es die Möglichkeit, einen Socket für pppctl in der ppp.conf festzulegen. Über pppctl "socket" show "subcommand" kannst Du dir viele Parameter anzeigen lassen:
Fuktioniert pppctl auch bei ppp im kernel mode ?
Woher krieg ich den Socket ?
Die Einträge in der ppp.conf werden vom Kernel ja ignoriert.
 
Soweit mir bekannt funktioniert das nur mit dem pppd. Die Optionen gibt es dann unter OpenBSD auch. Das pppoe-Device braucht aber keinen pppd.
 
Soweit mir bekannt funktioniert das nur mit dem pppd. Die Optionen gibt es dann unter OpenBSD auch. Das pppoe-Device braucht aber keinen pppd.

:belehren: Also: Bei pppoe im Kernel Mode gibt's kein DSL-Info.

Oder gibt's eine Möglichkeit, parallel zum Kernel auch noch eigene Befehle an das Modem zu senden und zu empfangen ?
 
Hi,

das Modem kann dir die max. Leitungskapazität, die Min. und Max. DSLAM Datenrate, die aktuelle Datenrate usw. auf Anfrage sagen. Die nutzbare Bandbreite jedoch NICHT - die kannst Du aus der aktuellen Datenrate jedoch rechnerisch runterrechnen, da diese ja Brutto zu sehen ist. Auslesen klappt z.B. übär Webinterface oder ATM Interface in der Praxis recht gut. Ethernet ist immer so eine Sache, da nicht jedes Modem darübär solche Informationen abrufbar bereitstellt. D.h. es kommt primär auf das Modem / den Routebären an.

Ob die nutzbare rechnerisch ermittelte Bandbreite (aus der aktuell vom Modem ausgelesenen Datenrate) jedoch auch nutzbar effektiv zur Verfügung steht das steht in den Sternen. Im besten Fall ja, im dümmsten Fall schlicht nein.
D.h. für die Nutzung zwecks Traffic Shaping und so Scherze ist das absolut ungeeignet, sofern Du seitens dem Access Provider keine Option auf garantierte Bandbreite hast. Nur wenn Du diese Option hast steht die aktuell lt. Modem zur Verfügung stehende Brutto Datenrate umgerechnet auf Netto Datenrate auch wirklich effektiv zur Verfügung.

In der Praxis sollte man mit dem Access Provider bei so Sezenarien reden und oifach ein fixiertes DSLAM Profil vereinbaren wo die nutzbare Datenrate garantiert gleichbleibend ist. In Verbindung mit einer garantierten Bandbreite als Option kannst Du dann effektiv z.B. auch Traffic Shaping und co machen.

Gruß Bummibär
 
Zuletzt bearbeitet:
das Modem kann dir die max. Leitungskapazität, die Min. und Max. DSLAM Datenrate, die aktuelle Datenrate usw. auf Anfrage sagen.
Das dachte ich mir.
Doch wie ? :confused:
Das Modem hängt am rl1. Dieses Interface hat weder eine IP-Adresse, noch kenne ich die IP-Adresse vom Modem (falls es überhaup eine hat).
Code:
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:30:4f:0a:f3:72
        priority: 0
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::230:4fff:fe0a:f372%rl1 prefixlen 64 scopeid 0x2
In der Praxis sollte man mit dem Access Provider bei so Sezenarien reden und oifach ein fixiertes DSLAM Profil vereinbaren wo die nutzbare Datenrate garantiert gleichbleibend ist.
Ich habe die Wahl zwischen DSL 384 (384kbit !) und DSL-RAM mit ca. 2400 kbit und da habe ich mich aus verständlichen Gründen für DSL-RAM entschieden. Doch leider ist es bei DSL-RAM so, dass bei einer kurzen Leitungsstörung die Bandbreite automatisch runter geht (verständlich) jedoch nie mehr hoch geht. Das hat zur Folge, dass die Bandbreite im Lauf der Zeit immer mehr runter geht. Abhilfe schafft nur ein Neuaufbau der Verbindung. Daher muss ich die DSL-Bandbreite auslesen und überwachen können.
 
hi

und wo ist das problem mit z.b. perl die webgui vom modem auszulesen um an die aktuellen
werte zu kommen ?

holger
 
Hi,

wie gesagt, das Problem ist nicht die Werte auszulesen.
Das Grundproblem ist das er bei dieser Anschlussvariante mit den geschilderten Optionen oifach nie genau weiss wieviel der aktuellen Datenrate auch wirklich seitens des Access Providers verfügbar ist bzw. nutzbar ist.

Gruß Bummibär
 
Ich wuerde einfach alle 10min eine 150KB grosse datei fetchen, wenn es laenger dauert als erwartet -> reconnect. Und vlt noch was einbauen, dass direkt nach einem reconnect erstmal eine halbe stunde keiner stattfindet (falls echte Probleme).
Internetspielen wird dann aber schwierig ;)
 
Hi,

wie gesagt, das Problem ist nicht die Werte auszulesen.
Das Grundproblem ist das er bei dieser Anschlussvariante mit den geschilderten Optionen oifach nie genau weiss wieviel der aktuellen Datenrate auch wirklich seitens des Access Providers verfügbar ist bzw. nutzbar ist.
Gruß Bummibär
Nein. Das ist nicht mein Problem.
Mir ist schon klar, dass bei einer 16000er DSL Leitung keine 16MBit raus kommen, wenn der Provider auf IP-Ebene nicht die Bandbreite liefert. Aber mir geht es hier nicht um die IP-Bandbreite, sondern erst mal um die reinen DSL Daten.

und wo ist das problem mit z.b. perl die webgui vom modem auszulesen um an die aktuellen werte zu kommen ?

So hab' ich's inzwischen auch hingekriegt.
Mir war allerdings nicht klar, dass man eine Netzwerk-Schnittstelle für pppoe verwenden kann, und ihr noch zusätzlich eine IP-Adresse verpassen kann, um mit dem Modem per TCP/IP zu kommunizieren. Aber es geht wohl.

Hier meine Anleitung für die Nachwelt:
rl0: Interface im LAN
rl1: Interface das am Modem hängt.
/etc/hostname.rl1
Code:
inet 192.168.0.2 255.255.255.0 NONE
up

Nun kann ich wie folgt mein Modem-Status auslesen (Netgear DM111B):

Code:
wget -O- -T3  http://admin:password@192.168.0.1/infodsl.html 2>/dev/null

Das Ganze dann noch per Perl auswerten und fertig.
Leider ist diese Lösung aber vom verwendeten Modem abhängig.

Falls man von außen auf das Modem per Browser zugreifen will, muss man noch:
1. Folgende Zeile in /etc/pf.conf eintragen:
Code:
pass in on rl0 proto tcp from any to rl0:network port 80  rdr-to 127.0.0.1 port 5000
2. Folgende Zeile in /etc/inted.conf eintragen:
Code:
# mein proxy-service
127.0.0.1:5000 stream tcp nowait proxy /usr/bin/nc nc -w 20 192.168.0.1 80


Eleganter wäre es sicherlich, per pppstats oder pppctl oder pppstats|pppoe oder wie auch immer die Infos zu kriegen. Hab aber keine Ahnung wie das gehen könnte.
 
Zurück
Oben