[Frage] Traffic der Fritzbox 6490 Cable über UPNP abfragen

anonymer benutzer

Neuer User
Mitglied seit
17 Jul 2018
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo allerseits,

ich bin kürzlich von der 6360 auf die 6490 umgestiegen. Für die 6360 hatte ich ein paar Scripte laufen, die u. a. den aufgelaufenen Traffic geloggt haben. Ich habe dazu upnp2mrtg benutzt.

Wie komme ich bei der 6490 an die Daten ran?

Zugriff per UPNP ist OK, ich bekomme die passenden Felder - leider immer mit Wert 0. Beispielschnipsel von upnp2mrtg:

<NewByteSendRate>5489</NewByteSendRate>
<NewByteReceiveRate>91324</NewByteReceiveRate>
<NewPacketSendRate>0</NewPacketSendRate>
<NewPacketReceiveRate>0</NewPacketReceiveRate>
<NewTotalBytesSent>0

Datenraten sind bei jeder Abfrage anders, das funktioniert also. Bytezähler nicht.

Laut Doku müsste wohl IGD aktiviert werden, aber wie funktioniert das bei der aktuellen Firmware? Globale Freigabe gibt es nicht mehr, UPNP-Portfreigabe für den abfragenden Host habe ich mal testweise angeschaltet. Das hat nichts gebracht.

Irgendwelche Ideen?

Vielen Dank im Voraus!
 
Bei mir funktioniert das mit der dokumentierten Schnittstelle eigentlich ganz gut: https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wancommonifconfigSCPD.pdf

Mit PS unter Windows:
Code:
Param([Parameter(Mandatory = $True, Position = 0, HelpMessage = 'the username to login to TR-064')][string]$Username,
      [Parameter(Mandatory = $True, Position = 1, HelpMessage = 'the password to login to TR-064')][string]$Password,
      [Parameter(Mandatory = $False, Position = 2, HelpMessage = 'the external SSL port of the FRITZ!Box, defaults to 443')][string]$SSLPort = 49443,
      [Parameter(Mandatory = $False, Position = 3, HelpMessage = 'the IP address of the FRITZ!Box, defaults to 192.168.178.1')][string]$Address = "192.168.178.1")

$query_mask='<?xml version="1.0"?><s:Envelope xmlns:s="http:#schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http:#schemas.xmlsoap.org/soap/encoding/"><s:Body><u:{0:s} xmlns:u="urn:dslforum-org:service:WANCommonInterfaceConfig1"></u:{1:s}></s:Body></s:Envelope>'
$functions = ( "GetTotalBytesSent", "GetTotalBytesReceived", "GetTotalPacketsSent", "GetTotalPacketsReceived" )
$u = "https://" + $Address + ":" + $SSLPort + "/upnp/control/wancommonifconfig1"

$WebClient = New-Object System.Net.WebClient
$WebClient.Encoding = [System.Text.Encoding]::UTF8
$WebClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

foreach ($func in $functions)
{
    $WebClient.Headers.Clear()
    $WebClient.Headers.Set("Content-Type", 'text/xml; charset="utf-8"')
    $WebClient.Headers.Set("SOAPACTION", [System.String]::Format('urn:dslforum-org:service:WANCommonInterfaceConfig:1#{0:1}', $func))
    $q = [System.String]::Format($query_mask, $func, $func)
    $response = [xml]$WebClient.UploadString($u, $q)
    $response.Envelope.Body.ChildNodes[0].InnerText
}
erhalte ich sinnvolle Werte, die auch meinen Erwartungen entsprechen (getestet mit 141.06.83):
Code:
11789351612
4588435627
9775300
45181670
(ja, es ist tatsächlich richtig, daß ich > 11 GB gesendet und nur < 4.5 GB empfangen habe).

In #1 steht ja leider nichts, welches Interface und welche Funktion(en) (oder auch "actions") dort verwendet wurden ("UPNP" ist halt nicht so richtig spezifisch) ... aber auch die beiden IGD-Dokumentationen bei AVM (für V1 und V2) weisen ja die oben von mir verwendeten Aktionen aus:

https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/IGD1.pdf
https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/IGD2.pdf

für "WANCommonInterfaceConfig:1" und selbst wenn ich mir alle von AVM publizierten Schnittstellen so ansehe:

https://avm.de/service/schnittstellen/

, fehlt mir etwas die Phantasie, warum man da mit etwas anderem als "WAN-Statistiken" (oder meinetwegen eben auch IGD1/IGD2, wenn man die schon kennt, wobei das am Ende ja ohnehin auf dasselbe hinausläuft, denn der ControlPoint ist auch derselbe) die Daten auslesen will.

Wobei man der AVM-Dokumentation auch nicht "unbesehen" Glauben schenken darf ... es ist mir z.B. nicht gelungen, die in beiden IGD-Dokumentationen (Stand heute) beschriebene "action" mit dem schönen Namen "GetAddonInfos" irgendwie zu lokalisieren - aber auch die Service-Description für das Interface (wancommonifconfigSCPD.xml) enthält diese Angabe nicht (weder bei der 06.83, noch bei 06.93 oder 06.98) und man sollte sich bei diesen Funktionen ja ohnehin eher auf Service-Beschreibungen verlassen als auf irgendwelche Dokumentationen:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<scpd xmlns="urn:dslforum-org:service-1-0">
    <script xmlns=""/>
    <specVersion>
        <major>1</major>
        <minor>0</minor>
    </specVersion>
    <actionList>
        <action>
            <name>GetCommonLinkProperties</name>
            <argumentList>
                <argument>
                    <name>NewWANAccessType</name>
                    <direction>out</direction>
                    <relatedStateVariable>WANAccessType</relatedStateVariable>
                </argument>
                <argument>
                    <name>NewLayer1UpstreamMaxBitRate</name>
                    <direction>out</direction>
                    <relatedStateVariable>Layer1UpstreamMaxBitRate</relatedStateVariable>
                </argument>
                <argument>
                    <name>NewLayer1DownstreamMaxBitRate</name>
                    <direction>out</direction>
                    <relatedStateVariable>Layer1DownstreamMaxBitRate</relatedStateVariable>
                </argument>
                <argument>
                    <name>NewPhysicalLinkStatus</name>
                    <direction>out</direction>
                    <relatedStateVariable>PhysicalLinkStatus</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>GetTotalBytesSent</name>
            <argumentList>
                <argument>
                    <name>NewTotalBytesSent</name>
                    <direction>out</direction>
                    <relatedStateVariable>TotalBytesSent</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>GetTotalBytesReceived</name>
            <argumentList>
                <argument>
                    <name>NewTotalBytesReceived</name>
                    <direction>out</direction>
                    <relatedStateVariable>TotalBytesReceived</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>GetTotalPacketsSent</name>
            <argumentList>
                <argument>
                    <name>NewTotalPacketsSent</name>
                    <direction>out</direction>
                    <relatedStateVariable>TotalPacketsSent</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>GetTotalPacketsReceived</name>
            <argumentList>
                <argument>
                    <name>NewTotalPacketsReceived</name>
                    <direction>out</direction>
                    <relatedStateVariable>TotalPacketsReceived</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>X_AVM-DE_SetWANAccessType</name>
            <argumentList>
                <argument>
                    <name>NewAccessType</name>
                    <direction>in</direction>
                    <relatedStateVariable>AccessType</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
        <action>
            <name>X_AVM-DE_GetOnlineMonitor</name>
            <argumentList>
                <argument>
                    <name>NewSyncGroupIndex</name>
                    <direction>in</direction>
                    <relatedStateVariable>SyncGroupIndex</relatedStateVariable>
                </argument>
                <argument>
                    <name>NewTotalNumberSyncGroups</name>
                    <direction>out</direction>
                    <relatedStateVariable>TotalNumberSyncGroups</relatedStateVariable>
                </argument>
                <argument>
                    <name>NewSyncGroupName</name>
                    <direction>out</direction>
                    <relatedStateVariable>SyncGroupName</relatedStateVariable>
                </argument>
                <argument>
                    <name>NewSyncGroupMode</name>
                    <direction>out</direction>
                    <relatedStateVariable>SyncGroupMode</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newmax_ds</name>
                    <direction>out</direction>
                    <relatedStateVariable>max_ds</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newmax_us</name>
                    <direction>out</direction>
                    <relatedStateVariable>max_us</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newds_current_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>ds_current_bps</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newmc_current_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>mc_current_bps</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newus_current_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>us_current_bps</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newprio_realtime_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>prio_realtime_bps</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newprio_high_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>prio_high_bps</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newprio_default_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>prio_default_bps</relatedStateVariable>
                </argument>
                <argument>
                    <name>Newprio_low_bps</name>
                    <direction>out</direction>
                    <relatedStateVariable>prio_low_bps</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
    </actionList>
    <serviceStateTable>
        <stateVariable sendEvents="no">
            <name>WANAccessType</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>Layer1UpstreamMaxBitRate</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>Layer1DownstreamMaxBitRate</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>PhysicalLinkStatus</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>TotalBytesSent</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>TotalBytesReceived</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>TotalPacketsSent</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>TotalPacketsReceived</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>AccessType</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>SyncGroupIndex</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>TotalNumberSyncGroups</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>SyncGroupName</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>SyncGroupMode</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>max_ds</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>max_us</name>
            <dataType>ui4</dataType>
            <defaultValue>0</defaultValue>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>ds_current_bps</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>mc_current_bps</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>us_current_bps</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>prio_realtime_bps</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>prio_high_bps</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>prio_default_bps</name>
            <dataType>string</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>prio_low_bps</name>
            <dataType>string</dataType>
        </stateVariable>
    </serviceStateTable>
</scpd>
 
Zuletzt bearbeitet:
Hallo,

vielen Dank für die schnelle Antwort. Ich stecke im Thema nur sehr begrenzt drin und habe mich mit den Feinheiten nur in den letzten Tagen befasst, da es ja bisher lief. Sorry also für meine Wissenslücken.

Der erste Unterschied, der mir auffällt: Du schreibst von 06.83, ich habe 06.87. Ich meine mich zu erinnern, dass 06.83 auf der 6360 die letzte Firmware war - damit lief es auch bei mir.

Das abzufragende Interface ist, soweit ich den Quelltext verstehe, WANCommonInterfaceConfig:1. Action müsste GetAddonInfos sein. Spielt aber m. E. keine Rolle, denn ich bekomme ja Werte, nur NewTotalBytes* wird nicht hochgezählt.

Die von Dir verlinkten Dokumente hatte ich auch schon in den Fingern und bin eben über "Needs IGD to Work" gestolpert. Das ist m. E. das Problem: Wie aktiviere ich IGD in einer Form, in der die Fritzbox den Traffic hochzählt?

Grüße!
 
Action müsste GetAddonInfos sein.
Na gut, wenn Du das zum Laufen bringst ... viel Erfolg.

Zu den "funktionalen Unterschieden" zwischen 06.83 und 06.87 bei der 6490 solltest Du noch einmal recherchieren und bei der 06.83 für eine 6360 bin ich im Moment auch etwas skeptisch. Die 6360 war am 31.03.2016 "end of maintenance" und die 06.6x-Serie kam (für die 7490) erst im Sommer 2016 raus (kurz vor der "Routerfreiheit") - da erscheint mir eine 06.83 für die 6360 einigermaßen unwahrscheinlich, aber wer weiß schon, was es alles so gibt.

Ich wüßte nicht, wie man IGD ein- oder ausschalten sollte ... solange unter "Heimnetzfreigaben" die Punkte "Zugriff für Anwendungen zulassen" und "Statusinformationen über UPnP übertragen" aktiviert sind (was Du sicherlich selbst gefunden hast, weil die Online-Hilfe dazu ja auch entsprechende Informationen bereithält), funktioniert das bei mir (und ich mache das schon deutlich länger als seit der 06.83 bei der 6490).

Ich wüßte also auch gar nicht, warum ich da irgendetwas an einer Einstellung ändern sollte ... welches Interface genau Du bisher bei der 6360 verwendet hast, steht ja irgendwie auch nicht in #3 - oder es steht nicht so deutlich da, daß man es (ohne Zweifel) verstehen könnte.

Welchen "Quelltext" interpretierst Du denn im dritten Absatz? Wenn es mein PS-Skript sein sollte, müßte Dir ja eigentlich auch aufgefallen sein, daß ich explizit geschrieben habe, daß ich auf diesem Interface - entgegen der AVM-Dokumentation - keine Aktion "GetAddonInfos" gefunden habe und daß ich dafür sogar noch die SCPD-Datei angefügt habe als "Beweis".

Nach allem, was ich bei der Analyse der Unterschiede zwischen der 06.83 und der 06.87 sehe, gibt es in der "wancommonifconfigSCPD.xml" nicht eine einzige Differenz ... warum erwartest Du denn jetzt genau, daß es Dir eher gelingen würde, die Aktion "GetAddonInfos" erfolgreich zu benutzen, als es mir vergönnt war?

Wenn Du mit irgendeiner alten Interface-Funktion (welche das sein mag, ist ja immer noch unklar) unvollständige Daten kriegst, solltest Du einfach die Funktion wechseln (solange Deine Interface-Description kein "GetAddonInfos" enthält - tut sie das, wäre es (selbst bei einer 06.87) sehr überraschend) ... und auch wenn "GetAddonInfos" entgegen der Dokumentation nicht existieren mag, ist es ja problemlos möglich, die vier getrennten Funktionen zu verwenden, die auch genau so in der UPnP-Dokumentation beschrieben sind: http://upnp.org/specs/gw/UPnP-gw-WANCommonInterfaceConfig-v1-Service.pdf

Bei mir kommt jedenfalls (und zwar über mehrere Versionen aus mehreren Jahren verteilt, nur bis zur 06.6x gehe ich jetzt nicht zurück) beim Versuch des Aufrufs von "GetAddonInfos" auf dem WANCommonInterfaceConfig1-Interface immer ein "(500) Internal Server Error" (den SOAP-Aufruf habe ich mehrmals kontrolliert und sehe da auch keinen Fehler:
Code:
Exception calling "UploadString" with "2" argument(s): "The remote server returned an error: (500) Internal Server Error."
At C:\Users\[...]\GetWANStatistics.ps1:23 char:9
+         $response = [xml]$WebClient.UploadString($u, $q)
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException
https://192.168.xxx.1:49443/upnp/control/wancommonifconfig1
<?xml version="1.0"?><s:Envelope xmlns:s="http:#schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http:#schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetAddonInfos xmlns:u="urn:dslforum-org:service:WANCommonInterfaceConfig1"></u:GetAddonInfos></s:Body></s:Envelope>
- mal ganz abgesehen davon, daß eben die anderen vier Aktionen genau auf diesem Weg von mir aufgerufen werden und sinnvolle Werte liefern) ... da bin ich schon sehr verblüfft, daß so ein Aufruf bei Dir aus irgendwelchen Gründen funktionieren soll.

Da hege ich dann doch eher die Vermutung, daß Du irgendein anderes Interface abfragst ... und sofern das nicht geheim ist, wäre die Angabe, was Du da verwendest, ja vielleicht doch hilfreich. Wenn Du mit dem "Quelltext" weiter oben tatsächlich einen eigenen meinen solltest und am Ende "GetAddonInfo" sich wirklich aufrufen läßt (die Frage, warum es in der Interface-Description fehlt, bliebe dann trotzdem), würde mich das jedenfalls - ich wiederhole es noch einmal - aufs Äußerste verblüffen und dann wäre eine genaue und nachvollziehbare Beschreibung des Aufrufs nett.

EDIT: Durch eigene Suche habe ich dann doch noch das ältere Projekt "upnp2mrtg" gefunden (muß man nicht kennen, vielleicht beim nächsten Mal besser gleich selbst verlinken?) ... das dort zum Sammeln der Daten verwendete Bash-Skript hat auch schon ein paar Jahre auf dem Buckel. Der Control-Point, über den dort die Daten abgefragt werden, ist ja der vollkommen falsche ... dort werden die IGD-Interfaces über "upnp/control/..." angesprochen (Zeile 79), während die URL für diese Interfaces sich schon vor Jahren (kann man schon so sagen, eine Suche zeigt Dir ggf. auch, wann das genau geschah) auf "igdupnp/control/..." geändert hat, weil unter "upnp" eben die TR-064-Interfaces "residieren":
Code:
http://192.168.xxx.1:49000/igddesc.xml
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
    <script xmlns=""/>
    <specVersion>
        <major>1</major>
        <minor>0</minor>
    </specVersion>
    <device>
        <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType>
        <friendlyName>FB6490</friendlyName>
        <manufacturer>AVM Berlin</manufacturer>
        <manufacturerURL>http://www.avm.de</manufacturerURL>
        <modelDescription>FRITZ!Box 6490 Cable</modelDescription>
        <modelName>FRITZ!Box 6490 Cable</modelName>
        <modelNumber>avm</modelNumber>
        <modelURL>http://www.avm.de</modelURL>
        <UDN>uuid:75802409-bccb-40e7-8e6c-C80E14AFA493</UDN>
        <iconList>
            <icon>
                <mimetype>image/gif</mimetype>
                <width>118</width>
                <height>119</height>
                <depth>8</depth>
                <url>/ligd.gif</url>
            </icon>
        </iconList>
        <serviceList>
            <service>
                <serviceType>urn:schemas-any-com:service:Any:1</serviceType>
                <serviceId>urn:any-com:serviceId:any1</serviceId>
                <controlURL>/igdupnp/control/any</controlURL>
                <eventSubURL>/igdupnp/control/any</eventSubURL>
                <SCPDURL>/any.xml</SCPDURL>
            </service>
        </serviceList>
        <deviceList>
            <device>
                <deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType>
                <friendlyName>WANDevice - FRITZ!Box 6490 Cable</friendlyName>
                <manufacturer>AVM Berlin</manufacturer>
                <manufacturerURL>www.avm.de</manufacturerURL>
                <modelDescription>WANDevice - FRITZ!Box 6490 Cable</modelDescription>
                <modelName>WANDevice - FRITZ!Box 6490 Cable</modelName>
                <modelNumber>avm</modelNumber>
                <modelURL>www.avm.de</modelURL>
                <UDN>uuid:76802409-bccb-40e7-8e6b-C80E14AFA493</UDN>
                <UPC>AVM IGD</UPC>
                <serviceList>
                    <service>
                        <serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType>
                        <serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
                        <controlURL>/igdupnp/control/WANCommonIFC1</controlURL>
                        <eventSubURL>/igdupnp/control/WANCommonIFC1</eventSubURL>
                        <SCPDURL>/igdicfgSCPD.xml</SCPDURL>
                    </service>
                </serviceList>
                <deviceList>
                    <device>
                        <deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType>
                        <friendlyName>WANConnectionDevice - FRITZ!Box 6490 Cable</friendlyName>
                        <manufacturer>AVM Berlin</manufacturer>
                        <manufacturerURL>www.avm.de</manufacturerURL>
                        <modelDescription>WANConnectionDevice - FRITZ!Box 6490 Cable</modelDescription>
                        <modelName>WANConnectionDevice - FRITZ!Box 6490 Cable</modelName>
                        <modelNumber>avm</modelNumber>
                        <modelURL>www.avm.de</modelURL>
                        <UDN>uuid:76802409-bccb-40e7-8e6a-C80E14AFA493</UDN>
                        <UPC>AVM IGD</UPC>
                        <serviceList>
                            <service>
                                <serviceType>urn:schemas-upnp-org:service:WANDSLLinkConfig:1</serviceType>
                                <serviceId>urn:upnp-org:serviceId:WANDSLLinkC1</serviceId>
                                <controlURL>/igdupnp/control/WANDSLLinkC1</controlURL>
                                <eventSubURL>/igdupnp/control/WANDSLLinkC1</eventSubURL>
                                <SCPDURL>/igddslSCPD.xml</SCPDURL>
                            </service>
                            <service>
                                <serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType>
                                <serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
                                <controlURL>/igdupnp/control/WANIPConn1</controlURL>
                                <eventSubURL>/igdupnp/control/WANIPConn1</eventSubURL>
                                <SCPDURL>/igdconnSCPD.xml</SCPDURL>
                            </service>
                            <service>
                                <serviceType>urn:schemas-upnp-org:service:WANIPv6FirewallControl:1</serviceType>
                                <serviceId>urn:upnp-org:serviceId:WANIPv6Firewall1</serviceId>
                                <controlURL>/igd2upnp/control/WANIPv6Firewall1</controlURL>
                                <eventSubURL>/igd2upnp/control/WANIPv6Firewall1</eventSubURL>
                                <SCPDURL>/igd2ipv6fwcSCPD.xml</SCPDURL>
                            </service>
                        </serviceList>
                    </device>
                </deviceList>
            </device>
        </deviceList>
        <presentationURL>http://fritz.box</presentationURL>
    </device>
</root>
Vielleicht änderst Du diese Zeile 79 mal als Erstes ... und dann muß man halt weitersehen, wie weit die Interfaces von AVM 1:1 weitergeführt wurden.
 
Zuletzt bearbeitet:
Ich habe oben noch etwas hinzugefügt ... nach eigener Suche habe ich dann "upnp2mrtg" doch noch gefunden und damit dann erkannt, daß es sich gar nicht um irgendeine "allgemeine Lösung" handelt(e), sondern schon sehr gezielt um ein Skript, mit dem aus einer FRITZ!Box (zumindest in den älteren Firmware-Versionen) diese Daten extrahiert werden konnten.

Damit Du eine neue Mail kriegst, hänge ich den neuen Beitrag mal noch an ... lösche ich dann, falls weitere folgen.

EDIT: Wobei auf diesem Interface (s.o.) dann auch tatsächlich ein "GetAddonInfos" vorhanden ist nach der Interface-Beschreibungsdatei ... jetzt bin ich ja mal gespannt, ob das bei Verwendung der richtigen URL dann auch alle Daten auf einen Schlag liefert.

EDIT2: Mit der richtigen URL (und natürlich den richtigen XML-Angaben zu den Namespaces) funktioniert der Aufruf dann tatsächlich noch. Allerdings sind die Paketzähler auch bei mir 0 - jedenfalls die in "GetAddonInfos".

Die in den "Einzelaufrufen" sind vorhanden und gültig. Ich rate mal, daß hier die Daten nicht korrekt in die "GetAddonInfos"-Ausgabe kopiert werden oder gar nicht erst richtig erhoben werden vom FRITZ!OS ... wobei das wohl nur für die "packet rate" gilt, während das andere ja "totals" sind.

Was man jetzt davon hält, daß hier auf einem IGD-Interface (das ohne jede Authentifizierung arbeitet) die verwendeten DNS-Server mal so nebenbei durch die Gegend gebrüllt werden, muß jeder selbst wissen - ich bin da immer sehr skeptisch, wenn ein Gerät so "freigiebig" ist beim Verbreiten von Informationen ohne Authentifizierung.
Code:
<NewTotalBytesSent>11794187828</NewTotalBytesSent>
<NewTotalBytesReceived>4675711523</NewTotalBytesReceived>
<NewTotalPacketsSent>9813948</NewTotalPacketsSent>
<NewTotalPacketsReceived>45964108</NewTotalPacketsReceived>

<NewByteSendRate>27</NewByteSendRate>
<NewByteReceiveRate>153</NewByteReceiveRate>
<NewPacketSendRate>0</NewPacketSendRate>
<NewPacketReceiveRate>0</NewPacketReceiveRate>
<NewTotalBytesSent>11794187828</NewTotalBytesSent>
<NewTotalBytesReceived>4675711523</NewTotalBytesReceived>
<NewAutoDisconnectTime>0</NewAutoDisconnectTime>
<NewIdleDisconnectTime>0</NewIdleDisconnectTime>
<NewDNSServer1>x</NewDNSServer1>
<NewDNSServer2>y</NewDNSServer2>
<NewVoipDNSServer1>x</NewVoipDNSServer1>
<NewVoipDNSServer2>y</NewVoipDNSServer2>
<NewUpnpControlEnabled>0</NewUpnpControlEnabled>
<NewRoutedBridgedModeBoth>1</NewRoutedBridgedModeBoth>

EDIT3:
Mein Fazit ... die von Dir verwendete Software arbeitet mit einem anderen Interface als das, welches von mir oben verlinkt wurde. AVM stellt die IGD-Interfaces tatsächlich noch weiterhin zur Verfügung, auch wenn die TR-064-Interfaces parallel aktiviert wurden.

Aber das bringt Dir dann die "Paket-Rate" wohl doch noch nicht zurück ... hier würde ich einfach mal behaupten, daß AVM in der Firmware Fehler hat, die zu beseitigen wären - ob sie im Labor-Zweig noch vorhanden sind bei der 6490, kann ich gerade nicht testen, da auf meiner 6490 nur die Retail-Version (wenn auch mit Einstellungen für eine private Version) läuft und keine der beiden Partitionen eine Labor-Version enthält.

Ein Problem hinsichtlich der Salden (in #1 steht etwas, daß "Bytezähler" nicht funktionieren) kann ich nicht nachvollziehen ... an unterschiedlichen OS-Versionen für die 6490 liegt das aber vermutlich auch eher nicht.

IGD ein- oder ausschalten versteckt sich inzwischen wohl doch nur noch hinter "Statusinformationen über UPnP übertragen" und das scheint inzwischen auch zu funktionieren mit dem Abschalten der getrennten URLs (igdupnp/control/... und igd2upnp/control/...) für die IGD-Services ... beim "Nachlesen" sollte ich den Satz vielleicht doch besser umdrehen und schreiben, daß sich hinter der Checkbox für die Statusinformationen "nur noch" die IGD-Interfaces verstecken.

Solange da jedenfalls die Checkbox angehakt ist, sollten auch bei Dir die IGD-Interfaces zur Verfügung stehen ... zumal Du ja ohnehin mit "upnp2mrtg" auf diese und nicht auf die TR-064-Interfaces zugreifst (wenn der Pfad in Zeile 79 stimmt nach entsprechender Korrektur) - daher muß bei Dir ja IGD bereits "eingeschaltet" sein und die Suche nach einem weiteren "Schalter" erübrigt sich, wenn Du überhaupt eine Reaktion der Box erhältst.
 
Zuletzt bearbeitet:
Hallo,

ich versuche mal, der Reihe nach zu antworten.


1. Dein Powershell-Script: Ich habe es mal auf meine Fritzbox geworfen, aber nur Fehlermeldungen zurückbekommen. Meine Kenntnis der Powershell reicht gerade nicht aus, um die Meldungen zu interpretieren.

Code:
PS C:\Users\...\Desktop> .\traffic.ps1

Cmdlet traffic.ps1 an der Befehlspipelineposition 1
Geben Sie Werte für die folgenden Parameter an:
(Geben Sie !? ein, um Hilfe zu erhalten.)
Username: user
Password: user
Index in einem Objekt vom Typ "System.Xml.XmlChildNodes" kann nicht erstellt werden.
Bei C:\Users\...\Desktop\traffic.ps1:22 Zeichen:40
+     $response.Envelope.Body.ChildNodes[ <<<< 0].InnerText
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : CannotIndex

Index in einem Objekt vom Typ "System.Xml.XmlChildNodes" kann nicht erstellt werden.
Bei C:\Users\...\Desktop\traffic.ps1:22 Zeichen:40
+     $response.Envelope.Body.ChildNodes[ <<<< 0].InnerText
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : CannotIndex

Index in einem Objekt vom Typ "System.Xml.XmlChildNodes" kann nicht erstellt werden.
Bei C:\Users\...\Desktop\traffic.ps1:22 Zeichen:40
+     $response.Envelope.Body.ChildNodes[ <<<< 0].InnerText
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : CannotIndex

Index in einem Objekt vom Typ "System.Xml.XmlChildNodes" kann nicht erstellt werden.
Bei C:\Users\...\Desktop\traffic.ps1:22 Zeichen:40
+     $response.Envelope.Body.ChildNodes[ <<<< 0].InnerText
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : CannotIndex

PS C:\Users\...\Desktop>


2. upnp2mrtg: Ich weiß, das Script ist antik. Die URL-Änderung vor ein paar Jahren wurde auch hier im Forum irgendwo erwähnt, deswegen hatte ich angenommen, dass es bekannt sei. Mein Fehler.

Der Codeausschnitt in #1 sind einige der letzten Zeilen, wenn ich upnp2mrtg -d ausführe - dann spuckt das Ding u. a. die Antwort der Fritzbox ungefiltert raus. Du hast vermutlich -V verwendet und sinnvolle Werte bekommen - bei mir sieht es damit so aus:

Code:
<NewByteSendRate>147</NewByteSendRate>
<NewByteReceiveRate>520</NewByteReceiveRate>
<NewPacketSendRate>0</NewPacketSendRate>
<NewPacketReceiveRate>0</NewPacketReceiveRate>
<NewTotalBytesSent>0</NewTotalBytesSent>
<NewTotalBytesReceived>0</NewTotalBytesReceived>
<NewAutoDisconnectTime>0</NewAutoDisconnectTime>
<NewIdleDisconnectTime>0</NewIdleDisconnectTime>
<NewDNSServer1>83.169.185.161</NewDNSServer1>
<NewDNSServer2>83.169.185.225</NewDNSServer2>
<NewVoipDNSServer1>83.169.185.161</NewVoipDNSServer1>
<NewVoipDNSServer2>83.169.185.225</NewVoipDNSServer2>
<NewUpnpControlEnabled>0</NewUpnpControlEnabled>
<NewRoutedBridgedModeBoth>1</NewRoutedBridgedModeBoth>

Wie in #1 und #3 geschrieben, geht es um NewTotalBytes*.


3. Freigabe der Optionen in der Fritzbox: Dass der grundsätzliche Zugriff auf die Fritzbox funktioniert, hatte ich ja in #1 schon geschrieben. Das Problem sind die zurückgelieferten Werte.

Laut Doku soll exakt für diese fehlende Werte "IGD" aktiviert werden - wofür ich keine Option finde und auf die Weisheit des Netzes gehofft hatte.


4. Sicherheit: Ich sehe kein besonderes Risiko darin, wenn ein Router die DNS-Server, die er freimütig jedem Gerät im Netzwerk per DHCP mitteilt und die man bei Bedarf auch für seinen Netzbetreiber ergooglen kann, auch noch auf anderen Schnittstellen bereitstellt. Ähnliches gilt für Traffic-Informationen.

YMMV - wer Bedenken hat, kann die Freigabe ja deaktivieren.
 
Zum Thema Sicherheit:

Das geht ja noch viel weiter mit der IGD-Schnittstelle (und ich finde schon das "Verplappern" beim DNS nicht so prickelnd (das ist immer noch der Dienst mit dem größten Potential an Metadaten zur Aufschlüsselung von Kommunikationsbeziehungen), denn wir reden hier immer noch davon, daß das wirklich jeder im LAN abfragen kann und dazu keinerlei Authentifizierung notwendig ist - auch müssen das ja nicht zwangsläufig DNS-Server beim Provider sein, welche die Box verwendet) ... nach gerade aktuell ausgeführten Tests hat AVM dort jedenfalls immer noch kein DeviceSecurity-Interface vorgesehen und auch keinen anderen Weg der Authentifizierung eingebaut (auch wenn das in der Spezifikation tatsächlich nur RECOMMENDED ist).

Das heißt dann leider auch, daß man bei aktiviertem IGD-Interface (und wenn bei Dir "upnp2mrtg" überhaupt Daten liefert, ist das eben auch "an") problemlos von jedem (W)LAN-Client alle anderen Clients bei Downloads zumindest "schwer stören" kann ... ich konnte jedenfalls auch "WANIPConnection:2::ForceTermination()" ohne jedes Problem bei mir aufrufen.

Ob das ggf. an unüblichen Einstellungen liegt (ich verwende eine leicht modifizierte Firmware bzw. überschreibe ein paar Variablen über "featovl.cfg", um eine "private Version" zu erhalten) oder ob die Funktion tatsächlich immer noch vollkommen ungeschützt ist, teste ich gerade noch einmal gründlicher aus.

Das war vor einiger Zeit schon einmal "Thema" (auch ungefähr in der Zeit, wo die Trennung der IGD-Interfaces von der "upnp"-URL erfolgte), danach dachte ich eigentlich, AVM hätte es bereits entschärft. Offenbar habe ich da aber nur falsch getestet und das hinterher damit dann fälschlicherweise als "fixed" abgehakt.

Wenn das nicht wirklich an den zusätzlichen Einstellungen bei mir liegen sollte (also auch mit "normaler Firmware" funktioniert) und AVM als "Standardeinstellung" die "Statusinformationen über UPnP" aktiviert (m.E. ist das immer noch so), steht es jedem Client im LAN frei, die "ForceTermination()"-Aktion aufzurufen (wie gesagt, bei mir war da keine Authentifizierung erforderlich) und damit die "Nachbarn" deutlich mehr als nur "zu ärgern".

Bei einem Anschluß mit dynamisch vergebener IP-Adresse erhält man mit hoher Wahrscheinlichkeit anschließend eine neue und damit brechen dann alle bisherigen TCP-Verbindungen auch ganz sauber weg ... nur bei Protokollen, die eine Wiederanlauf-Funktion haben (z.B. FTP mit "verschobenem Dateistart" über das REST-Kommando), kann so ein Download dann auch mit einer neuen IP-Adresse fortgesetzt werden - auch die meisten Stream-Player dürften das nicht sauber handhaben können, wenn mittendrin der Stream wegbricht und sie (nach NAT) dann mit einer neuen IP-Adresse irgendeine ältere Verbindung "wiederaufnehmen" wollen.

Mal ganz abgesehen davon, daß es sicherlich auch nicht alle RADIUS-Server der DSL-Provider mit PPPoE-Kapselung so prickelnd finden, wenn da ein Kunde im Minuten-Rhythmus neue PPP-Anmeldungen zelebrieren will und das auch mal in einer Login-Sperre für eine bestimmte Zeit münden kann. Auch der gezielte Abbruch von Protokoll-Aktionen über Push-Mails wäre denkbar (also der Versuch, die eigenen Spuren zu verwischen) ... selbst wenn nicht exakt ermittelt werden kann, wann die FRITZ!Box entsprechende Nachrichten senden will.

Erschwerend kommt noch hinzu, daß man im Event-Log (zumindest bei der bisher immer noch von mir getesteten 141.06.83) nicht mal erkennen kann, warum die Internetverbindung eigentlich unterbrochen wurde. Bei TR-064 kommt dann ja wenigstens noch eine Meldung, daß sich eine App des Benutzers XYZ angemeldet hat ... beim IGD-Interface kommt da gar nichts bei mir.

Das fordert ja geradezu dazu heraus, beim FRITZ!Box-Besitzer und beim AVM-Support einfach mal "aus Spaß" die Köpfe rauchen zu lassen - als nächsten Angriff versuche ich das einfach mal in einen XHR für die Notfall-IP zu verpacken (mal sehen, ob der UPnP-Server da auch gebunden ist an dieser Adresse), denn das "Ergebnis" (also die Antwort der Box) ist an dieser Stelle herzlich egal und eigentlich ist deren Erhalt aber das Einzige, was über "cross origins" verhindert wird; ausgeführt wird so ein Request in aller Regel trotzdem.

Das wäre dann - neben der MediaServer-Lücke, bei der ich auch noch nicht weiß, wie die endgültige Implementierung bei FRITZ!OS 7 nun aussehen wird - die zweite Schwachstelle, die von AVM in der Standardkonfiguration aktiviert wird (und das ohne echte Notwendigkeit), wenn sich meine Annahmen bestätigen sollten.

Ich würde dann jedenfalls auf die IGD-Interfaces verzichten ... die TR-064-Interfaces bieten m.W. dieselben Funktionen (lassen wir mal das "GetAddonInfos" beiseite) und die arbeiten aber wenigstens mit Authentifizierung und da kann nicht jeder Honk daherkommen und im (W)LAN irgendwelchen Blödsinn veranstalten.

Bisher war ich eben davon ausgegangen, daß bei aktiviertem TR-064 die IGD-Interfaces automatisch rausfallen und durch ihre TR-064-Pendants ersetzt werden - so stellte sich das zumindest mal für mich bei einem Test irgendeiner Labor-Version dar und ich war vielleicht doch zu voreilig bei der Schlußfolgerung, AVM hätte sich an dieser Stelle Gedanken gemacht und Änderungen vorgenommen.

-----------------------------------------------------

Zum PS-Aufruf ... die Parameter (stehen ja am Beginn des Skripts) müssen angegeben werden (auch wenn die "Credentials"-Zeile problemlos auskommentiert werden kann beim IGD-Interface) oder das Skript müßte umgeschrieben werden.

Je nachdem, was Du nun am Ende erreichen willst (das Bash-Skript muß ja auch bisher irgendwo gelaufen sein und könnte logischerweise ebenfalls angepaßt werden an andere Interfaces bzw. an mehrere Abfragen der "Einzelwerte"), muß man sich nun halt Gedanken machen, welche Funktionen man nutzt ... bei Gelegenheit teste ich mal das IGD-Interface bei einer DSL-Box mit 06.83, ob da auch die "packet rates" permanent auf 0 bleiben.

Wie oben schon geschrieben ... wenn Du überhaupt unter "igdupnp/control/irgendwas" einen Service erreichst, dann ist das IGD-Interface (per Definition) bereits aktiviert und den Kommentar in der AVM-Dokumentation interpretiere ich dahingehend, daß nur bei aktivem IGD-Interface diese Daten kumuliert werden und daher auch über TR-064 nur dann zur Verfügung stehen, wenn die IGD-Interfaces aktiv sind.

Das ändert dann aber auch nichts daran, daß die "packet rates" bei mir auch immer auf 0 bleiben (selbst dann, wenn ich die Leitung auslaste) - aber die "total bytes" stimmen bei mir eben sowohl in der Ausgabe von "GetAddonInfos" als auch in der Ausgabe der Funktionen zum Abruf der einzelnen Werte.

Mal sehen, ob ich dazu komme, ein neues 06.87-Image für die 6490 anzupassen und zu installieren ... dann kann ich das ggf. noch einmal für diese Version gegentesten - auch wenn ich nicht an einen Unterschied glauben kann, selbst wenn AVM mit den "change logs" immer sehr maulfaul ist. Aber vermutlich hätte man beim Update ja eher ein Problem behoben, anstatt ein neues einzuführen.
 
Hallo,

danke soweit für Deine Bemühungen! Wäre echt nett, wenn Du mit der 06.87 mal testen könntest.

Thema Sicherheit: Ich denke, wir sind uns einig, dass wir da unterschiedlicher Ansicht sind. Ich stimme Dir zu, dass der Zugriff per Default deaktiviert sein sollte, aber beim Rest sind mir die Bedrohungsszenarien zu esoterisch. Wer in mein LAN einbricht, der wird das aller Wahrscheinlichkeit nach nicht tun, um meine Verbindung zu trennen oder den Vodafone-DNS-Server herauszufinden - und das wäre dann auch nicht gerade meine erste Sorge.

Und ja: ForceTermination funktioniert. Das habe ich ausgiebig getestet, um die DynDNS-Aktualisierung über die neue Box zu testen. Ein halbes Dutzend Reconnects in 10 Minuten macht Vodafone-Kabel klaglos mit.

Thema Powershell: user/user ist natürlich ein gültiger User, den ich versuchsweise auf der Box eingerichtet hatte. Dennoch Fehlermeldung. PS ist nicht so mein üblicher Jagdgrund, deshalb kann ich den Meldungen nichts sinnvolles entnehmen außer: geht nicht.

Packet Rates/TotalBytes: Beides ist bei mir konstant 0. Packet Rates würden mich auch nicht so interessieren, ich brauche die TotalBytes. Ich vermute daher entweder eine Fehlkonfiguration der Box, die ich partout nicht finde, oder einen Bug in der 06.87.

Auch wenn ich die von Dir vorgeschlagenen Einzelwerte abfrage, bleibt es bei 0.

Ich werde mich mal mit wenig Hoffnung an den AVM-Support wenden.

Grüße!
 
$response.Envelope.Body.ChildNodes[ <<<< 0].InnerText
Wenn die Zeile tatsächlich so aussieht bei Dir im Quelltext, kann das auch nicht funktionieren ... in meinem Beitrag gibt es diese "Markierung" jedenfalls nicht (sieht für mich irgendwie nach einer "diff"-Markierung (visual) an der falschen Stelle aus oder nach einem C&P-Relikt).

Und auch in PS könntest Du dann beide Interfaces testen (bzw. alle drei, wenn man IGD1 und IGD2 getrennt sieht), wenn Du erst einmal erfolgreich warst mit einer Abfrage ... dazu muß man aber die URL und die XML-Schemata (dslforum-org vs. upnp-schema-org) anpassen. Vielleicht findest Du ja auch bei Deiner 6490 noch eines, das die Werte für die Summen bereithält ...

Ansonsten geht's ja auch in "bash" (der Autor von "upnp2mrtg" macht sogar das, was ich selbst auch bevorzuge und versucht, mit so wenig Abhängigkeiten wie möglich auszukommen ... dafür wird bei der "bash" sogar die Netzwerk-Kommunikation über "/dev/tcp" genutzt bei Bedarf) ... man müßte halt den POST-Request und das XML-Basteln noch variabel gestalten, wenn man zwischen IGD- und TR-064-Interfaces wechseln will (oder zumindest die Chance dazu haben will).
 
Hallo,

die Pfeile sollen wohl nur die Fehlerposition hervorheben. Meine Powershell hat offensichtlich keine ChildNodes im XML-Objekt, wenn ich das Script ohne ausführe, bekomme ich das:

Code:
0
0
0
0

Bei der 3490 mit 06.83 hier in der Firma liefert dasselbe Script die gesuchten Werte:

Code:
7736471268
143218529066
58916113
13948155

Ich glaube, der Zugriff auf das Interface ist nicht mein Problem. Die Fritzbox zählt einfach nicht.
 
Merkwürdiges Objekt ... die "Abstammung" kann man unter PS mit einem
Code:
$response | Get-Member
ermitteln:
Code:
   TypeName: System.Xml.XmlDocument

Name                        MemberType            Definition                                                                                                                                                                                                     
----                        ----------            ----------                                                                                                                                                                                                     
ToString                    CodeMethod            static string XmlNode(psobject instance)                                                                                                                                                                       
AppendChild                 Method                System.Xml.XmlNode AppendChild(System.Xml.XmlNode newChild)                                                                                                                                                   
Clone                       Method                System.Xml.XmlNode Clone(), System.Object ICloneable.Clone()                                                                                                                                                   
CloneNode                   Method                System.Xml.XmlNode CloneNode(bool deep)                                                                                                                                                                       
CreateAttribute             Method                System.Xml.XmlAttribute CreateAttribute(string name), System.Xml.XmlAttribute CreateAttribute(string qualifiedName, string namespaceURI), System.Xml.XmlAttribute CreateAttribute(string prefix, string loca...
CreateCDataSection          Method                System.Xml.XmlCDataSection CreateCDataSection(string data)                                                                                                                                                     
CreateComment               Method                System.Xml.XmlComment CreateComment(string data)                                                                                                                                                               
CreateDocumentFragment      Method                System.Xml.XmlDocumentFragment CreateDocumentFragment()                                                                                                                                                       
CreateDocumentType          Method                System.Xml.XmlDocumentType CreateDocumentType(string name, string publicId, string systemId, string internalSubset)                                                                                           
CreateElement               Method                System.Xml.XmlElement CreateElement(string name), System.Xml.XmlElement CreateElement(string qualifiedName, string namespaceURI), System.Xml.XmlElement CreateElement(string prefix, string localName, strin...
CreateEntityReference       Method                System.Xml.XmlEntityReference CreateEntityReference(string name)                                                                                                                                               
CreateNavigator             Method                System.Xml.XPath.XPathNavigator CreateNavigator(), System.Xml.XPath.XPathNavigator IXPathNavigable.CreateNavigator()                                                                                           
CreateNode                  Method                System.Xml.XmlNode CreateNode(System.Xml.XmlNodeType type, string prefix, string name, string namespaceURI), System.Xml.XmlNode CreateNode(string nodeTypeString, string name, string namespaceURI), System....
CreateProcessingInstruction Method                System.Xml.XmlProcessingInstruction CreateProcessingInstruction(string target, string data)                                                                                                                   
CreateSignificantWhitespace Method                System.Xml.XmlSignificantWhitespace CreateSignificantWhitespace(string text)                                                                                                                                   
CreateTextNode              Method                System.Xml.XmlText CreateTextNode(string text)                                                                                                                                                                 
CreateWhitespace            Method                System.Xml.XmlWhitespace CreateWhitespace(string text)                                                                                                                                                         
CreateXmlDeclaration        Method                System.Xml.XmlDeclaration CreateXmlDeclaration(string version, string encoding, string standalone)                                                                                                             
Equals                      Method                bool Equals(System.Object obj)                                                                                                                                                                                 
GetElementById              Method                System.Xml.XmlElement GetElementById(string elementId)                                                                                                                                                         
GetElementsByTagName        Method                System.Xml.XmlNodeList GetElementsByTagName(string name), System.Xml.XmlNodeList GetElementsByTagName(string localName, string namespaceURI)                                                                   
GetEnumerator               Method                System.Collections.IEnumerator GetEnumerator(), System.Collections.IEnumerator IEnumerable.GetEnumerator()                                                                                                     
GetHashCode                 Method                int GetHashCode()                                                                                                                                                                                             
GetNamespaceOfPrefix        Method                string GetNamespaceOfPrefix(string prefix)                                                                                                                                                                     
GetPrefixOfNamespace        Method                string GetPrefixOfNamespace(string namespaceURI)                                                                                                                                                               
GetType                     Method                type GetType()                                                                                                                                                                                                 
ImportNode                  Method                System.Xml.XmlNode ImportNode(System.Xml.XmlNode node, bool deep)                                                                                                                                             
InsertAfter                 Method                System.Xml.XmlNode InsertAfter(System.Xml.XmlNode newChild, System.Xml.XmlNode refChild)                                                                                                                       
InsertBefore                Method                System.Xml.XmlNode InsertBefore(System.Xml.XmlNode newChild, System.Xml.XmlNode refChild)                                                                                                                     
Load                        Method                void Load(string filename), void Load(System.IO.Stream inStream), void Load(System.IO.TextReader txtReader), void Load(System.Xml.XmlReader reader)                                                           
LoadXml                     Method                void LoadXml(string xml)                                                                                                                                                                                       
Normalize                   Method                void Normalize()                                                                                                                                                                                               
PrependChild                Method                System.Xml.XmlNode PrependChild(System.Xml.XmlNode newChild)                                                                                                                                                   
ReadNode                    Method                System.Xml.XmlNode ReadNode(System.Xml.XmlReader reader)                                                                                                                                                       
RemoveAll                   Method                void RemoveAll()                                                                                                                                                                                               
RemoveChild                 Method                System.Xml.XmlNode RemoveChild(System.Xml.XmlNode oldChild)                                                                                                                                                   
ReplaceChild                Method                System.Xml.XmlNode ReplaceChild(System.Xml.XmlNode newChild, System.Xml.XmlNode oldChild)                                                                                                                     
Save                        Method                void Save(string filename), void Save(System.IO.Stream outStream), void Save(System.IO.TextWriter writer), void Save(System.Xml.XmlWriter w)                                                                   
SelectNodes                 Method                System.Xml.XmlNodeList SelectNodes(string xpath), System.Xml.XmlNodeList SelectNodes(string xpath, System.Xml.XmlNamespaceManager nsmgr)                                                                       
SelectSingleNode            Method                System.Xml.XmlNode SelectSingleNode(string xpath), System.Xml.XmlNode SelectSingleNode(string xpath, System.Xml.XmlNamespaceManager nsmgr)                                                                     
Supports                    Method                bool Supports(string feature, string version)                                                                                                                                                                 
Validate                    Method                void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler), void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler, System.Xml.XmlNode nodeToValidate)             
WriteContentTo              Method                void WriteContentTo(System.Xml.XmlWriter xw)                                                                                                                                                                   
WriteTo                     Method                void WriteTo(System.Xml.XmlWriter w)                                                                                                                                                                           
Item                        ParameterizedProperty System.Xml.XmlElement Item(string name) {get;}, System.Xml.XmlElement Item(string localname, string ns) {get;}                                                                                                 
Envelope                    Property              System.Xml.XmlElement Envelope {get;}                                                                                                                                                                         
xml                         Property              string xml {get;set;}
und auch ein "$PSVersionTable" bzw. "$Host" ist ggf. hilfreich bei der Beurteilung der Versionen der eingesetzten Komponenten:
Code:
Name                           Value                                                                                                                                                                                                                             
----                           -----                                                                                                                                                                                                                             
PSVersion                      5.1.14409.1012                                                                                                                                                                                                                   
PSEdition                      Desktop                                                                                                                                                                                                                           
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                                                                                                                                           
BuildVersion                   10.0.14409.1012                                                                                                                                                                                                                   
CLRVersion                     4.0.30319.42000                                                                                                                                                                                                                   
WSManStackVersion              3.0                                                                                                                                                                                                                               
PSRemotingProtocolVersion      2.3                                                                                                                                                                                                                               
SerializationVersion           1.1.0.1                                      

Name             : Windows PowerShell ISE Host
Version          : 5.1.14409.1012
InstanceId       : 6fe89cfe-bf24-4077-b2bc-75f41f8fdfa9
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : de-DE
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.Host.ISE.ISEOptions
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace
PS 5.1 ist dann im WMI-Update bei Microsoft bis hinab zu Windows 7 verfügbar - wobei das XML-Objekt eigentlich aus dem .NET-Framework stammen sollte (hier als "CLRVersion" vertreten).
 
Es ist offenbar tatsächlich ein Problem der 06.87 (vermutlich auch schon zuvor eingeschleppt, als PACM auf dem ARM-Core und die "libavmpacmstate.so" auf dem ATOM-Core auch in der Retail-Firmware dazukamen - das teste ich gerade noch aus) - mit der letzten Version (06.87) kriege ich jedenfalls auch nur noch Nullen in allen diesen Statistik-Werten (auf IGD1/IGD2/TR-064), die auf "GetTotal*" basieren.

Ich bin etwas fassungslos, daß bzw. wie es AVM gelungen ist, hier wieder entsprechende Fehler einzubauen ... da habe ich wohl Glück gehabt, daß ich (mangels "Update-Druck", wenn man mal vom Quengeln des FRITZ!OS absieht) bisher auf das Update der Produktiv-Box auf neuere Versionen verzichtete - angesichts der "umfangreichen" Dokumentation der beseitigten Probleme bei AVM bestand einfach keine Notwendigkeit.

Da mit der 06.84 auch wieder PACM auf dem ARM-Core eingezogen ist (bis einschließlich 06.83 fehlt das in den Retail-Versionen), hatte (und habe) ich auch bisher keinen Bock, mir das erst mal in Ruhe anzusehen - immerhin ist darüber in der Theorie fast die komplette Kontrolle aller Funktionen (vom CM - wo der Provider gerne werkeln darf - bis hin zu denen des Routers) möglich und die deutsche "Routerfreiheit" ist vermutlich auch nichts, was man bei Intel per se beim Entwurf der Firmware berücksichtigt und mit entsprechenden "kill switches" versehen hat, wenn der Besitzer irgendwelche Funktionen nicht will.

Damit muß AVM dafür sorgen, daß die Firmware den gesetzlichen Vorgaben entspricht ... beim Streit, wer letztendlich die Verantwortung für Fehlkonfigurationen (bis hin zum Ersatz eines Schadens) wohl zu tragen hätte, wäre eine "nur angebliche" Abschaltung der Konfigurationsmöglichkeiten für den Provider wohl nicht mehr nur peinlich - und zuvor waren diese Komponenten (für alles, was mit PACM zu tun hat) eben gar nicht vorhanden in der Retail-Version (was m.E. schon seine Gründe hatte - aber auch ein erfolgreiches "Abschalten" auf Wunsch des Benutzers eher überflüssig machte).

Wenn man die dann Knall auf Fall doch integriert und das ohne "Feldtests" (ich kenne jedenfalls keine entsprechende Labor-Reihe vor der 06.84) unter die Leute bringt, traue ich dem Braten (grundsätzlich) erst mal nicht - daher mein fortgesetztes "Beharren" auf der 06.83. Angesichts des (ziemlich offensichtlichen) Problems mit den Zählern fühle ich mich auch eher bestätigt, daß das alles "mit der heißen Nadel gestrickt" und nur unzureichend getestet wurde.

Jedenfalls könnte das Zählerproblem nun natürlich auch ein Folgefehler sein, wenn der ATOM-Core beim Vorhandensein von PACM irgendwelche SNMP-Variablen vom ARM-Core abfragen müßte (eine zusätzliche Library dafür gibt es zumindest auch auf dem ATOM-Core ab der 06.84) ... wenn es vor Dir schon jemand bemerkt hat, hat er es (soweit ich das verfolgt habe und das ist einigermaßen aufmerksam) zumindest nicht hier im IPPF verkündet (oder ich bin einigermaßen verpeilt). Ich bin jedenfalls mal gespannt, was Dir AVM mitteilen wird oder wie "unwissend" man sich da gibt (das ist auch von anderen Problemen bekannt, daß die erst "in der Masse" dann als "bereits bekannt" ihre Anerkennung finden).

Wenn Du die Daten im Moment auch mit einer 6490 auslesen möchtest, müßtest Du wohl tatsächlich ein Downgrade machen (die älteren, originalen Firmware-Dateien habe ich ja auf yourfritz.de/puma6/files.lst bereitgestellt) - das geht aber nur über den Bootloader und nicht über das GUI und ein Recovery-Programm bietet AVM ja bekanntlich nicht selbst an. Wie weit man zurück müßte (06.85, 06.84 wären denkbare "Zwischenschritte", aber vermutlich wird erst 06.83 das Problem "lösen"), versuche ich noch zu ergründen - rein "aus Interesse".
 
Letzter "Einwurf" meinerseits (wg. der vergangenen Zeit auch als neuer Beitrag, fasse ich aber auch gerne zusammen, wenn das gefordert wird) ... die 06.84 gibt bei mir auch schon keine sinnvollen Werte für die Zähler aus.

Ich persönlich bleibe dann ohnehin weiter bei der bisher genutzten 06.83 (die hatte ich die ganze Zeit in der zweiten Partition) ... sie erscheint mir von den bisher veröffentlichten AVM-Versionen für Retail-Boxen immer noch die am besten getestete (hat damals ja auch lange genug gebraucht, bis die "nachgeschoben" wurde von AVM - da hatten alle anderen Boxen schon lange die 06.8x) und von den anderen Problemen (vom UDP-Overload bis zum BufferBloat), die da so beseitigt sein sollen in den Nachfolgeversionen, war ich bisher nicht wirklich betroffen - das macht die Entscheidung dann deutlich leichter.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.