pppoe: wie DSL-Speed auslesen ?

Dieses Thema im Forum "OpenBSD - Allgemein" wurde erstellt von hallole, 2 Mai 2012.

  1. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    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 ?
  2. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    667
    Ort:
    Bergisch Gladbach
    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
  3. hades

    hades the unseen one Mitarbeiter

    Registriert seit:
    22 Dezember 2006
    Beiträge:
    502
    Ort:
    Biberach an der Riß
    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?
  4. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    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 ?
  5. hades

    hades the unseen one Mitarbeiter

    Registriert seit:
    22 Dezember 2006
    Beiträge:
    502
    Ort:
    Biberach an der Riß
    In dem Fall kannst Du doch Dein Modem fragen. Das sollte es wissen.
  6. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    667
    Ort:
    Bergisch Gladbach
    hi
    da gebe ich @hades natuerlich recht .

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

    holger
  7. CommanderZed

    CommanderZed OpenBSD User

    Registriert seit:
    1 Juni 2005
    Beiträge:
    843
    Ort:
    Weyhe
    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.
  8. juedan

    juedan FreeBSDler

    Registriert seit:
    24 September 2007
    Beiträge:
    673
    Ort:
    Weyarn - kennt eh keiner
    Hallo hallole,

    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
  9. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    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.
  10. jmt

    jmt Member

    Registriert seit:
    19 April 2011
    Beiträge:
    226
    Soweit mir bekannt funktioniert das nur mit dem pppd. Die Optionen gibt es dann unter OpenBSD auch. Das pppoe-Device braucht aber keinen pppd.
  11. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    :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 ?
  12. dettus

    dettus Bicycle User

    Registriert seit:
    9 August 2004
    Beiträge:
    2.549
    Ort:
    nuernberg
  13. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    Nein. Ich möchte die Bandbreite nicht messen, sondern vom Modem auslesen (oder auslesen lassen).
    Das Modem kennt die DSL-Bandbreite genau (z.B. 1024/128 oder 768/128 oder 2200/440 oder ...)
  14. Bummibaer

    Bummibaer Registered Schwarzbär

    Registriert seit:
    30 Januar 2004
    Beiträge:
    1.020
    Ort:
    RZ Bärenhöhle Raum Stuttgart grob
    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: 7 Mai 2012
  15. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    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
    
    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.
  16. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    667
    Ort:
    Bergisch Gladbach
    hi

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

    holger
  17. Bummibaer

    Bummibaer Registered Schwarzbär

    Registriert seit:
    30 Januar 2004
    Beiträge:
    1.020
    Ort:
    RZ Bärenhöhle Raum Stuttgart grob
    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
  18. h^2

    h^2 hat ne Keule +1 Mitarbeiter

    Registriert seit:
    4 September 2009
    Beiträge:
    1.042
    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 ;)
  19. hallole

    hallole New Member

    Registriert seit:
    13 November 2008
    Beiträge:
    26
    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.

    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.