- Mitglied seit
- 10 Mai 2006
- Beiträge
- 15,279
- Punkte für Reaktionen
- 1,754
- Punkte
- 113
Vielleicht kann ja jemand von gegenteiligen Erfahrungen berichten ... hier meine Ergebnisse beim Test des Zugriffs auf das lokale Management-Interface:
Ausgehend von dem vermuteten Aufbau müßte m.E. über den externen Switch (mithin die LAN-Ports der Box) eingehender IP-Verkehr erst einmal zum ATOM-Core, bevor dieser dann den Packet-Prozessor entsprechend programmiert (für "externe" Verbindungen) oder eben selbst antwortet für interne. Anhand der Routing-Tabelle im ATOM-Core würde dieses System die Daten so behandeln, als wären sie für ein externes Ziel gedacht ... die Tabelle auf dem ATOM-Core hat keine "Sonderbehandlung" für die 192.168.100.1 (meine ansonsten übliche "Standardroute" für 192.168.0.0/16 über "dev lan" habe ich extra auf 192.168.128.0/17 präzisiert):
Zunächst könnte man also mal unterstellen, daß hier einfach eine Route vom ATOM-Core zum ARM-Core fehlt, über die dann Pakete an diese Adresse nicht dem ganzen Geraffel mit NAT und CT im "dsld" unterzogen werden - zumindest könnte das ja ein Ansatz sein, warum da nichts beim "lan0"-Interface des ARM-Cores ankommt bzw. warum das wohl einer Filterung zum Opfer fallen könnte.
Also tragen wir mal selbst eine Route ein:
Damit hätte man jetzt auch - zumindest vom ATOM-Core aus - einen funktionierenden Zugriff auf die 192.168.100.1 - halt über den "Interconnect" zwischen den Kernen geroutet, wie auch immer diese Verbindung aussehen mag. Das zeigt zumindest, daß diese Adresse prinzipiell vorhanden und erreichbar ist ... selbst wenn natürlich auch jetzt noch nichts in einem Mitschnitt für ":lan0" zu sehen ist, weil das ja kein Traffic ist, der über dieses Interface läuft. Das kommt ja jetzt über ":acc0" herein und geht wohl auch nur deshalb wieder über dieses Interface raus - denn der ARM-Core selbst hat keine Standardroute o.ä., nur eine einzige für 169.254.1.0/30 für die Kommunikation mit dem ATOM-Core.
Da stellt sich mir halt jetzt die Frage, was AVM da wohl vergessen haben mag (oder was ich wohl falsch machen könnte), damit die 192.168.100.1 dann auch - so wie es m.W. bei jedem anderen DOCSIS-Gerät Usus ist, zumindest für SNMP eben auch in der Spezifikation gefordert wird (s.o.), der HTTP(S)-Zugriff über den Proxy im "pumaglued" ist hingegen Kür - aus dem LAN jenseits des IAD erreichbar ist.
Auch wenn der Satz an abfragbaren SNMP-Variablen beschränkt ist, sollte doch zumindest der Hersteller (bzw. alles unter OID 1.3.6.1.2.1.1) und die Version der eingesetzten Firmware (und noch ein paar Sachen aus den DOCSIS-MIBs unter OID 1.3.6.1.2.1.69.1.1 - docsDevBase) abfragbar sein.
Ich habe es auch leider versäumt, das bei den 06.6x-Versionen für die Retail-Modelle explizit zu testen ... wenn meine Aufzeichnungen stimmen, klappte es zumindest bei der 06.10 mit meiner alten KDG-Box noch problemlos (allerdings ist das schon 2,5 Jahre her). Ich hege ein wenig den Verdacht (lasse mich aber auch gerne vom Gegenteil überzeugen), daß hier etwas dem Umbau auf die "new architecture" zum Opfer gefallen ist (und ich will jetzt deshalb auch nicht auf eine 06.6x "zur Kontrolle" wechseln, weil mich viel mehr interessiert, wie man es unter 06.83 zum Laufen bringen kann als die Frage, wie es zuvor bei der Retail-Version aussah).
Ich habe zwar den SNMP-Zugriff unter "Anbieter-Dienste" deaktiviert, das sollte aber ohnehin nur für den Zugriff des Anbieters jenseits des eCM (also z.B. auf den eRouter, ein eMTA gibt es ja in der Retail-Version nicht) gelten und nicht für den Zugriff von der CMCI-Seite auf die 192.168.100.1 ... aber eine Änderung dieser Einstellungen bewirkt auch keine Besserung (es hätte ja sein können, daß AVM hier beim "Abschalten" etwas zu weit geht).
Vielleicht liest hier ja jemand mit, der ansonsten Provider-Boxen bei Kunden einrichtet und dafür normalerweise (zumindest zur Abfrage des CM-Status) auf SNMP zurückgreift (bzw. dann ist es sicherlich die Software seines Arbeitgebers, die damit arbeitet) ... ggf. kann so jemand mir ja den entscheidenden Tipp geben oder seinerseits bestätigen, daß es ihm bei der FRITZ!Box 6490 mit "new architecture" (die 06.6x hat m.W. auch bei den Providern noch den alten Aufbau) auch nicht gelingt, da per SNMP irgendetwas von der 192.168.100.1 zu erhalten.
- - - Aktualisiert - - -
Falls es jemanden interessiert ... die DOCSIS-Spezifikation (konkret die CMCI-Spezifikation, also "Cable Modem to CPE Interface") wurde erst vor kurzem subtil verändert und steht seit dem 10.05.2017 in Version I03 zur Verfügung.
Ich verstehe zwar den Unterschied zwischen dem alten und dem neuen Text an einer Stelle (Punkt 6.1) nicht so richtig:
Für mich persönlich wäre jetzt der Unterschied zwischen "darf den Zugriff nicht erlauben" (MUST NOT allow) und "ist verpflichtet, den Zugriff nicht zu erlauben" (is required to not allow) nicht so prägnant (immerhin ist das "MUST NOT" auch noch als "This phrase means that the item is an absolute prohibition of this specification." präzisiert), aber das liegt vermutlich nur an meinem mittelmäßigen Englisch. Oder es erklärt den Versuch für ausreichend und erwartet in der neuen Formulierung gar nicht mehr wirklich, daß der Hersteller den Zugriff wirksam unterbindet ... der (gezeigte) Wille allein genügt vielleicht schon.
Bei der Beschreibung des "Engineering Change" mit "Remove management access interfaces normative text" hätte ich irgendwie etwas anderes erwartet ... gut, da kam jetzt am Satzende noch ein Verweis auf
EDIT 04.02.2022: CODE-Tags auf CODE=rich geändert, um die eingebetteten Farben wieder zu aktivieren.
- Beschrieben/spezifiziert ist dieser Zugriff in der DOCSIS-Spezifikation (Teil OSSI) im Punkt 9.1 - dort steht ziemlich unzweideutig:
Spec schrieb:The CM MUST support SNMP access, as specified in Section 8.5.4.2, through the following IP addresses regardless of the CM registration state:
• The CM MUST support 192.168.100.1, as the well-known diagnostic IP address accessible only from the CMCI interfaces. The CM MUST support the well-known diagnostic IP address, 192.168.100.1, on all physical interfaces associated with the CMCI. The CM MUST drop SNMP requests coming from the RF interface targeting the well-known IP address. - Angesichts des "regardless of registration state" sollte so ein Zugriff auch dann funktionieren, wenn das CM provisioniert ist und arbeitet.
- Um SNMP-Zugriff zu ermöglichen, braucht es erst einmal eine korrekte IP-Konfiguration für ein entsprechendes Interface; das soll in der neuen AVM-Firmware offenbar das Interface "lan0" auf dem ARM-Core übernehmen.
- Dieses "lan0"-Interface wird mit einer MAC-Adresse konfiguriert, die bei meiner 6490 im Environment als "usb_rndis_mac" geführt wird - das ist hier die CM-MAC (steht als "macdsl" im Environment) + 2.
- An dieses Interface (bzw. an seine IP-Adresse) sind folgende Dienste gebunden:
Rich (BBCode):# netstat -anp | grep 100\.1 tcp 0 0 192.168.100.1:80 0.0.0.0:* LISTEN 709/pumaglued tcp 0 0 192.168.100.1:443 0.0.0.0:* LISTEN 709/pumaglued udp 0 0 192.168.100.1:161 0.0.0.0:* 948/snmp_agent_cm udp 0 0 192.168.100.1:162 0.0.0.0:* 948/snmp_agent_cm
Rich (BBCode):# showshringbuf pumaglued 1970-01-01 01:00:23.202 - syncstate: InitState: *UNKNOWN* -> NOT RUNNING 1970-01-01 01:00:23.206 - syncstate: setup module done. 1970-01-01 01:00:23.348 - voipdqos: setup module done. 1970-01-01 01:00:23.350 - docsis: setup module done. 1970-01-01 01:00:23.351 - pumacmflt: setup module done. 1970-01-01 01:00:24.844 - syncstate: InitState: NOT RUNNING -> NOT SYNCHRONIZED (NOT READY) 1970-01-01 01:00:29.365 - tcpproxy: 192.168.100.1:80 -> 169.254.1.1:80 1970-01-01 01:00:29.366 - tcpproxy: 192.168.100.1:443 -> 169.254.1.1:443 1970-01-01 01:00:29.366 - tcpproxy: init done. 1970-01-01 01:00:32.122 - pumacmflt: snmp_allowed: 0 1970-01-01 01:00:32.132 - pumacmflt: tr069_allowed: 0 1970-01-01 01:00:32.223 - startstop: start: undef -> start 1970-01-01 01:00:49.844 - syncstate: InitState: NOT SYNCHRONIZED (NOT READY) -> NOT SYNCHRONIZED 1970-01-01 01:00:50.844 - syncstate: InitState: NOT SYNCHRONIZED -> RANGING IN PROGRESS (DS TOPOLOGY RESOLUTION) 1970-01-01 01:00:50.844 - syncstate: SyncState: no-sync -> training 1970-01-01 01:00:53.843 - syncstate: InitState: RANGING IN PROGRESS (DS TOPOLOGY RESOLUTION) -> REGISTRATION: US PARAMETERS ACQUIRED 1970-01-01 01:00:54.843 - syncstate: InitState: REGISTRATION: US PARAMETERS ACQUIRED -> RANGING IN PROGRESS 1970-01-01 01:01:01.844 - syncstate: InitState: RANGING IN PROGRESS -> NOT SYNCHRONIZED 1970-01-01 01:01:01.844 - syncstate: SyncState: training -> no-sync 1970-01-01 01:01:02.843 - syncstate: InitState: NOT SYNCHRONIZED -> RANGING IN PROGRESS (DS TOPOLOGY RESOLUTION) 1970-01-01 01:01:02.843 - syncstate: SyncState: no-sync -> training 1970-01-01 01:01:05.844 - syncstate: InitState: RANGING IN PROGRESS (DS TOPOLOGY RESOLUTION) -> REGISTRATION: US PARAMETERS ACQUIRED 1970-01-01 01:01:07.843 - syncstate: InitState: REGISTRATION: US PARAMETERS ACQUIRED -> RANGING IN PROGRESS 1970-01-01 01:01:14.843 - syncstate: InitState: RANGING IN PROGRESS -> RANGING COMPLETE 1970-01-01 01:01:16.843 - syncstate: InitState: RANGING COMPLETE -> REGISTRATION: DHCPV6 IN PROGRESS 2017-05-14 20:59:16.575 - docsis: erouter on 2017-05-14 20:59:16.576 - docsis: edva off 2017-05-14 20:59:16.576 - docsis: emta off 2017-05-14 20:59:16.578 - docsis: B2B: commit start 2017-05-14 20:59:16.579 - docsis: B2B: add l2sd0.2 erouter0 2017-05-14 20:59:16.579 - docsis: B2B: commit end 2017-05-14 20:59:16.582 - docsis: B2B: commit start 2017-05-14 20:59:16.583 - docsis: B2B: commit end 2017-05-14 20:59:16.617 - syncstate: InitState: REGISTRATION: DHCPV6 IN PROGRESS -> REGISTRATION: CONFIG FILE DOWNLOAD COMPLETE 2017-05-14 20:59:17.617 - syncstate: InitState: REGISTRATION: CONFIG FILE DOWNLOAD COMPLETE -> REGISTRATION: IN PROGRESS 2017-05-14 20:59:22.617 - syncstate: InitState: REGISTRATION: IN PROGRESS -> OPERATIONAL 2017-05-14 20:59:22.617 - syncstate: SyncState: training -> showtime 2017-05-14 20:59:22.617 - syncstate: DS/US: 0/0 -> 106000/6360
Ich hatte mal die stille Hoffnung, daß AVM das mit der Einführung von PCP wenigstens auf ein Port-Mapping (von extern irgendwas auf intern 443) umstellen würde, so daß man aus dem internen Netz einen HTTPS-Aufruf auch ohne die Angabe eines abweichenden Ports machen kann. Wenn man das unbedingt auch intern auf dem externen Port erreichen will (wg. NAT-Hairpinning), dann muß man eben zwei Ports binden oder einen transparenten, lokalen Tunnel legen.
Jedenfalls zeigt dann eben ein Mapping auf 169.254.1.1:443 bei mir auch prompt ins Leere, weil der "ctlmgr" für HTTPS bei mir an einem anderen Port lauscht. - Ungeachtet all dieser Vorbereitungen, reagiert eine FRITZ!Box 6490 mit 153.06.83 bei mir jedoch auf keinen ARP-Request, kein ICMP (wenn ich die MAC-Adresse mit "arp" fest setze), kein HTTP (HTTPS natürlich erst recht nicht, s.o.) und - natürlich - auch nicht auf irgendwelche SNMP-Pakete (die ja i.d.R. ohnehin ARP-Auflösung bräuchten, der Test mit festem ARP-Eintrag war ja nur ein versuchter Workaround).
Ausgehend von dem vermuteten Aufbau müßte m.E. über den externen Switch (mithin die LAN-Ports der Box) eingehender IP-Verkehr erst einmal zum ATOM-Core, bevor dieser dann den Packet-Prozessor entsprechend programmiert (für "externe" Verbindungen) oder eben selbst antwortet für interne. Anhand der Routing-Tabelle im ATOM-Core würde dieses System die Daten so behandeln, als wären sie für ein externes Ziel gedacht ... die Tabelle auf dem ATOM-Core hat keine "Sonderbehandlung" für die 192.168.100.1 (meine ansonsten übliche "Standardroute" für 192.168.0.0/16 über "dev lan" habe ich extra auf 192.168.128.0/17 präzisiert):
Rich (BBCode):
# ip r
default dev dsl metric 2
83.169.184.33 dev dsl metric 2
83.169.184.97 dev dsl metric 2
91.66.91.0/24 dev dsl metric 2
169.254.0.0/16 dev lan src 169.254.1.1
169.254.1.0/30 dev acc0 src 169.254.1.1
172.31.179.0/24 dev guest src 172.31.179.1
192.168.128.0/17 via 192.168.1xx.2 dev lan
192.168.1xx.0/28 dev lan src 192.168.1xx.1
192.168.180.1 dev dsl metric 2
192.168.180.2 dev dsl metric 2
Also tragen wir mal selbst eine Route ein:
Rich (BBCode):
# ip r add 192.168.100.1 via 169.254.1.2 dev acc0
# ip r
default dev dsl metric 2
83.169.184.33 dev dsl metric 2
83.169.184.97 dev dsl metric 2
91.66.91.0/24 dev dsl metric 2
169.254.0.0/16 dev lan src 169.254.1.1
169.254.1.0/30 dev acc0 src 169.254.1.1
172.31.179.0/24 dev guest src 172.31.179.1
192.168.100.1 via 169.254.1.2 dev acc0
192.168.128.0/17 via 192.168.1xx.2 dev lan
192.168.1xx.0/28 dev lan src 192.168.1xx.1
192.168.180.1 dev dsl metric 2
192.168.180.2 dev dsl metric 2
# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: seq=0 ttl=64 time=2.813 ms
64 bytes from 192.168.100.1: seq=1 ttl=64 time=6.170 ms
^C
--- 192.168.100.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 2.813/4.491/6.170 ms
# wget -O - http://192.168.100.1
Connecting to 192.168.100.1 (192.168.100.1:80)
<!DOCTYPE html>
<html lang="de">
<head>
<meta http-equiv=content-type content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="private, no-transform" />
[...]
Da stellt sich mir halt jetzt die Frage, was AVM da wohl vergessen haben mag (oder was ich wohl falsch machen könnte), damit die 192.168.100.1 dann auch - so wie es m.W. bei jedem anderen DOCSIS-Gerät Usus ist, zumindest für SNMP eben auch in der Spezifikation gefordert wird (s.o.), der HTTP(S)-Zugriff über den Proxy im "pumaglued" ist hingegen Kür - aus dem LAN jenseits des IAD erreichbar ist.
Auch wenn der Satz an abfragbaren SNMP-Variablen beschränkt ist, sollte doch zumindest der Hersteller (bzw. alles unter OID 1.3.6.1.2.1.1) und die Version der eingesetzten Firmware (und noch ein paar Sachen aus den DOCSIS-MIBs unter OID 1.3.6.1.2.1.69.1.1 - docsDevBase) abfragbar sein.
Ich habe es auch leider versäumt, das bei den 06.6x-Versionen für die Retail-Modelle explizit zu testen ... wenn meine Aufzeichnungen stimmen, klappte es zumindest bei der 06.10 mit meiner alten KDG-Box noch problemlos (allerdings ist das schon 2,5 Jahre her). Ich hege ein wenig den Verdacht (lasse mich aber auch gerne vom Gegenteil überzeugen), daß hier etwas dem Umbau auf die "new architecture" zum Opfer gefallen ist (und ich will jetzt deshalb auch nicht auf eine 06.6x "zur Kontrolle" wechseln, weil mich viel mehr interessiert, wie man es unter 06.83 zum Laufen bringen kann als die Frage, wie es zuvor bei der Retail-Version aussah).
Ich habe zwar den SNMP-Zugriff unter "Anbieter-Dienste" deaktiviert, das sollte aber ohnehin nur für den Zugriff des Anbieters jenseits des eCM (also z.B. auf den eRouter, ein eMTA gibt es ja in der Retail-Version nicht) gelten und nicht für den Zugriff von der CMCI-Seite auf die 192.168.100.1 ... aber eine Änderung dieser Einstellungen bewirkt auch keine Besserung (es hätte ja sein können, daß AVM hier beim "Abschalten" etwas zu weit geht).
Vielleicht liest hier ja jemand mit, der ansonsten Provider-Boxen bei Kunden einrichtet und dafür normalerweise (zumindest zur Abfrage des CM-Status) auf SNMP zurückgreift (bzw. dann ist es sicherlich die Software seines Arbeitgebers, die damit arbeitet) ... ggf. kann so jemand mir ja den entscheidenden Tipp geben oder seinerseits bestätigen, daß es ihm bei der FRITZ!Box 6490 mit "new architecture" (die 06.6x hat m.W. auch bei den Providern noch den alten Aufbau) auch nicht gelingt, da per SNMP irgendetwas von der 192.168.100.1 zu erhalten.
- - - Aktualisiert - - -
Falls es jemanden interessiert ... die DOCSIS-Spezifikation (konkret die CMCI-Spezifikation, also "Cable Modem to CPE Interface") wurde erst vor kurzem subtil verändert und steht seit dem 10.05.2017 in Version I03 zur Verfügung.
Ich verstehe zwar den Unterschied zwischen dem alten und dem neuen Text an einer Stelle (Punkt 6.1) nicht so richtig:
alt schrieb:A CM MUST NOT allow access to CM functions via a management access interface. (DOCSIS CM functions are defined by the DOCSIS specifications and are essentially layer 1/layer 2 functions.) Access to CM functions MUST only be allowed via interfaces specifically prescribed by the DOCSIS specifications, such as the RF interface and operator-controlled SNMP (Simple Network Management Protocol) access via the CMCI (see [OSSIv3] for more information).
, aber das wird schon seine Gründe haben.neu schrieb:A CM is required to not allow access to CM functions (CM IP stack) via a management access interface [MULPI]. Access to CM functions are only allowed via interfaces specifically prescribed by the DOCSIS specifications, such as the RF interface and operator-controlled SNMP (Simple Network Management Protocol) access via the CMCI, [MULPI], and [OSSIv3].
Für mich persönlich wäre jetzt der Unterschied zwischen "darf den Zugriff nicht erlauben" (MUST NOT allow) und "ist verpflichtet, den Zugriff nicht zu erlauben" (is required to not allow) nicht so prägnant (immerhin ist das "MUST NOT" auch noch als "This phrase means that the item is an absolute prohibition of this specification." präzisiert), aber das liegt vermutlich nur an meinem mittelmäßigen Englisch. Oder es erklärt den Versuch für ausreichend und erwartet in der neuen Formulierung gar nicht mehr wirklich, daß der Hersteller den Zugriff wirksam unterbindet ... der (gezeigte) Wille allein genügt vielleicht schon.
Bei der Beschreibung des "Engineering Change" mit "Remove management access interfaces normative text" hätte ich irgendwie etwas anderes erwartet ... gut, da kam jetzt am Satzende noch ein Verweis auf
[MULPI]
und eine etwas präzisere Fassung hinzu, was diese "DOCSIS CM functions" nun sein mögen, aber irgendwie erklärt das (für mich jedenfalls) die Änderung von "MUST NOT" auf "is required to not" noch nicht so richtig, zumal eben die meisten solcher Spezifikationen mit "MUST (NOT)", "SHOULD", "MAY", usw. arbeiten und da fiel mir diese Änderung halt besonders auf. ;-)EDIT 04.02.2022: CODE-Tags auf CODE=rich geändert, um die eingebetteten Farben wieder zu aktivieren.
Zuletzt bearbeitet: