In aktuelleren Firmware-Versionen, als es sie für die hier thematisierte 7390 gibt, ist so etwas tatsächlich möglich. Allerdings braucht es dafür wieder Shell-Zugang, der aber per se keine Zauberei ist.
AVM steuert seit einiger Zeit die eigenen Daemons über "Inter-Process Communication" und hat dafür offenbar ein Framework implementiert, das die jeweiligen Daemons verwenden können. Gesteuert wird das Ganze dann über das Kommand
aicmd
:
Rich (BBCode):
# aicmd
usage: aicmd [options] [endpoint] [command]
options:
-? - print this help
-a STRING - name for avmipc. (NULL)
-v - verbose. (NOTSET)
-o INTEGER - output buffer size. (32768)
-i INTEGER - input buffer size. (8192)
-l - list listening endpoints. (NOTSET)
-e - list all endpoints. (NOTSET)
-D STRING - switch debug logs on. (FUNC)
aicmd pumaglued support get docsisinfo"
aicmd multid dnsd dump
aicmd -l
aicmd -e
#
DNS macht bei AVM der
multid
genannte "Mehrfachserver":
Rich (BBCode):
# aicmd multid
HELP - show help
SLABDUMP - show slab allocation
SLABSHOW - show slab information
QUIT - disconnect
eth_qos list - list active eth qos entries
show dns-rebind - show dns rebind info
show eth_status - show eth status ports
dnsd dump - dump internal info
dnsd stats - dump statistic
dnsd server - dump server statistic
dnsd cache - dump cache
dnsd hashtab - dump cache hashtab
dnsd memory - dump info about memory usage
dnsd queries - dump queries
dnsd socks - dump socks
dnsd forwards - dump forwards
dnsd probe - latency probe on next query
dnsd flush - flush cache
dnsd domainflush - flush cache for domain
dnsd zone - zone (default|guest|external)
dnsd addstatic - addstatic <name> <addr>
dnsd delstatic - delstatic <name> <addr>
dnsd delbyip - delbyip <addr>
dnsd delbyname - delbyname <name>
dnsd failstream - streamfailed (<ipv4-addr> | <ipv6-addr> <port>)
dnsd stoptimer - stoptimer (<ipv4-addr> | <ipv6-addr> <port>)
neighbour ethaddr - dump ethaddr hash table
neighbour inaddr - dump inaddr hash table
topology list - show list
dhcpd context - show context
dhcpd interfaces - show interfaces
dhcpd leases - show leases
dhcpd add - add static lease
dhcpd del - delete lease
dhcpd import - import <leasefilename>
dhcpv6d - module NOT enabled
loop_prevention show - Show the currently applied filters
loop_prevention filter - Apply a blocking list <ifname> <iftype> <action_type> ...
lldpinfo list - show list
mrouter global - dump global info
mrouter upstream - dump upstream
mrouter routes - dump routes
mrouter vifs - dump vifs
rextd_mng - module NOT enabled
avmcsock getsymbol <address> - get symbol for address
avmcsock show csock - show all csock
avmcsock show dnsconfig - show all dns context
avmcsock show dnsglobal - show all dns global values
avmcsock show dnscache - show cache
avmcsock show dnsqueries - show all pending queries
avmcsock show timercb - show all timer
avmcsock show debughandles - show all debughandles
avmcsock show cprocess - show all processes
avmcsock show cbcontext - show all cbdata
avmcsock show daemon - show daemon status
avmcsock show cbuf - show cbuf status
avmcsock show avmipc [endpoint shmatch] - show avmipc events and states
avmcsock set debug - set debug flags
avmcsock ctimer show - show all timer
avmcsock ctimer overview - show ctimer overview
avmcsock iotrace format unctrl|hexdump - set format for csock iotrace
avmcsock iotrace file - enable iotrace to file
avmcsock iotrace enable - enable iotrace via debugmsg
avmcsock iotrace disable - disable iotrace
avmcsock iotrace match help|<match> - show allowed matches or set match
avmcsock iotrace reset - remove all matches
avmcsock iotrace show - show configuration
ewnwlinux show csockshell - show shells running
ewnwlinux show genetlink - show gerneric netlink families
libavmpcp show pcpinfo - show pcpinfo
#
Leider merkt sich die Box aber über
aicmd multid dnsd addstatic <name> <address>
zusätzlich eingerichtete Mappings nicht über einen Neustart des Geräts hinaus, vermutlich nicht mal über einen Neustart des Daemons.
Aber man kann sich natürlich einfach noch einen weiteren Dienst dazubasteln, der in regelmäßigen Abständen überprüft, ob die PID des
multid
noch einer zuvor gespeicherten entspricht und wenn das nicht der Fall sein sollte, trägt man einfach sein statisches Mapping erneut ein.
Auf diesem Weg kann man - nur nebenbei - auch genauer untersuchen, was die Boxen eigentlich so alles mit Servern bei AVM zu bereden haben ... dazu muß man nur die entsprechenden AVM-Adressen (die man mit einem
aicmd multid dnsd cache
anzeigen lassen kann, solange nicht zu viel Zeit zwischen der DNS-Abfrage und dem Nachschauen vergangen ist) durch die Adressen eigener (passender) Proxies ersetzen und - falls erforderlich, weil man TLS-Verkehr "belauschen" will - das AVM-Root-Zertifikat in der Firmware passend ersetzen.
Nach meiner Erfahrung verwendet die überwiegende Zahl von AVM-Diensten (einige, wie u.a. der
voipd
nicht unbedingt) genauso den DNS-Forwarder im FRITZ!OS, wie das - bei passender DHCP-Konfiguration - auch die Clients im LAN tun.
Der Vorteil des Ganzen ist es auch, daß AVM die verschiedenen Methoden der Namensauflösung im LAN so miteinander verwoben hat, daß auch die auf anderen Wegen "erlernten" Namen (z.B. per mDNS oder WSD (Web Service Discovery)) über alle anderen Dienste aufgelöst werden können.
TL;DR:
Doch, solange es eben KEINE 7390 ist und das FRITZ!OS einigermaßen aktuell ist (m.W. funktioniert das mit den DNS-Funktionen des
multid
über IPC mind. seit 07.2x), KANN man durchaus auch den AVM-DNS-Server mit zusätzlichen statischen Einträgen beschicken - allerdings braucht es dazu ein paar (minimale) Änderungen in der Firmware, die aber in aller Regel schnell erledigt sind, wenn man sich einigermaßen(!) damit auskennt.
Einen "offiziellen" Weg gibt es dafür allerdings tatsächlich nicht, auch wenn viele andere Hersteller so etwas anbieten in ihrer Firmware für (Customer-)Router.