Forum: PC Hard- und Software Fritzbox 7390, Internet bricht zusammen wenn Box belastet wird


von Tr (Gast)


Lesenswert?

Hi,
hab ein kleines Problem mit meiner FB 7390.
Hier steht ein kleiner HP Server mit Owncloud, der auch vom Internet per 
DynDNS erreichbar ist.
Die Clients verwenden die öffentliche Dyn URL um zu synchronisieren, 
damit es immer klappt egal ob daheim oder unterwegs.
Beim Zugriff routet die Box alles korrekt, d.h. netzinterne Zugriffe 
gehen nicht erst über das Internet sondern werden direkt in der FB zum 
Server geroutet.

Jetzt kommt das blöde Problem: Wenn ich einen größeren Sync zum Server 
starte wird das Netzwerk unbrauchbar!
Telefonie, WLAN und Internet haben dann sekundenlange Aussetzer. Neue 
TCP Verbindungen oder DHCP Anfragen werden nicht bearbeitet bis der Sync 
vorbei ist.
Für die anderen Clients ist es so als sei die FB ausgefallen, es dauert 
dann auch entsprechend lang bis das Netz sich wieder "gefunden" hat.

Dabei ist die WAN Verbindung nachweislich im Leerlauf! Flaschenhals 
scheint das Routing in der FB zu sein... Was kann ich da tun?

von Norbert (Gast)


Lesenswert?

Tr schrieb:
> Hi,
> hab ein kleines Problem mit meiner FB 7390.
> Hier steht ein kleiner HP Server mit Owncloud, der auch vom Internet per
> DynDNS erreichbar ist.
> Die Clients verwenden die öffentliche Dyn URL um zu synchronisieren,
> damit es immer klappt egal ob daheim oder unterwegs.
> Beim Zugriff routet die Box alles korrekt, d.h. netzinterne Zugriffe
> gehen nicht erst über das Internet sondern werden direkt in der FB zum
> Server geroutet.
>
> Jetzt kommt das blöde Problem: Wenn ich einen größeren Sync zum Server
> starte wird das Netzwerk unbrauchbar!
> Telefonie, WLAN und Internet haben dann sekundenlange Aussetzer. Neue
> TCP Verbindungen oder DHCP Anfragen werden nicht bearbeitet bis der Sync
> vorbei ist.
> Für die anderen Clients ist es so als sei die FB ausgefallen, es dauert
> dann auch entsprechend lang bis das Netz sich wieder "gefunden" hat.
>
> Dabei ist die WAN Verbindung nachweislich im Leerlauf! Flaschenhals
> scheint das Routing in der FB zu sein... Was kann ich da tun?

Den 300baud Akkustikkoppler gegen 100MBit VDSL Modem austauschen.

Oder präziser: Du sättigst deinen Uplink ohne anständiges QOS 
eingerichtet zu haben.

von asdf (Gast)


Lesenswert?

Norbert schrieb:
> Den 300baud Akkustikkoppler gegen 100MBit VDSL Modem austauschen.

Darf ich dir mal auf die Sprünge helfen? Das ist in der Fritzbox schon 
drin! Ist nicht so schlimm, man kann ja nicht alles wissen :-)
Übrigens, woher nimmst du die Information, daß der TO VDSL100 auf seiner 
Leitung bekommt? Und was macht er, wenn er nur ADSL6 hat? Trotzdem ein 
VDSL100-Modem an die Fritzbox hängen? ;-)

von Fliegenschiss (Gast)


Lesenswert?

Tr schrieb:
> Internet bricht zusammen wenn Box belastet wird

Wenn ich meine Taschenlampe einschalte fliegt bei unseren
Stadtwerken die Hauptsicherung raus.

von Christian R. (supachris)


Lesenswert?

Die 7390 hat einen recht lahmen Single Core Prozessor, kann man doch 
überall lesen dass z.B. bei hoher WLAN Last keine Telefonie mehr möglich 
ist. Soll bei der 7490 deutlich besser sein, da Dual Core. Die ganz 
neuen könnten da eventuell noch etwas schneller sein.

von Norbert (Gast)


Lesenswert?

asdf schrieb:
> Norbert schrieb:
>> Den 300baud Akkustikkoppler gegen 100MBit VDSL Modem austauschen.
>
> Darf ich dir mal auf die Sprünge helfen? Das ist in der Fritzbox schon
> drin! Ist nicht so schlimm, man kann ja nicht alles wissen :-)
> Übrigens, woher nimmst du die Information, daß der TO VDSL100 auf seiner
> Leitung bekommt? Und was macht er, wenn er nur ADSL6 hat? Trotzdem ein
> VDSL100-Modem an die Fritzbox hängen? ;-)

Wenn du auch nur ein kleines bischen zwischen den Zeilen lesen könntest, 
wäre dir möglicherweise in den Sinn gekommen das dies ein Wink mit dem 
Zaunpfahl war! ;-)

Wichtig für das Verständnis war der zweite Satz und der ist es immer 
noch!

Den Uplink bei einer sehr schnellen Leitung zu sättigen ist nämlich sehr 
viel schwerer.
Und da wir aus dem Eröffnungsbeitrag keine Geschwindigkeit entnehmen 
können...

von Dirk D. (dicky_d)


Lesenswert?

Das problem ist doch gar nicht der uplink, das beschreibt Tr doch auch.

die Clients syncen nach z.B. owncloud.dyndns.de

owncloud.dyndns.de löst auf die öffentliche ip-adresse des 
internetzugangs auf.

Da die nicht im subnetz der clients ist geben sie die pakete beim 
gateway, der fritzbox ab.
Diese nimmt sie an, stellt sie in den eigenen ip-stack zu, so als würden 
sie von draussen reinkommen, stellt fest das da ne port-Weiterleitung 
vorliegt und stellt sie an den internen owncloud-server zu.

das hat jetzt 2 Probleme:

Traffic der nur einmal durch deine leitung geht geht 2 mal duch die 
Fritzbox, rein und wieder raus, und das routing wird in der cpu gemacht; 
die cpu ist "klein" das mag sie nicht so gerne...

Am einfachsten währe es wohl wenn du im (w)lan den domain-eintrag anders 
auflöst, so das du direkt die ip-adresse der own-cloud-box bekommst.
Das kann die FRitzbox leider nicht von haus aus, je nach model kannst du 
das über die export/import für die config machen, z.b. so: 
https://adrian-jagusch.de/2015/03/domains-abfangen-mit-der-fritzbox-als-dns-server/

oder du brauchst intern nen dns-server der alles resolvt nur deinen 
domain-eintrag selbst beantwortet, und dann lässt du die fritzbox dort 
nachschlagen.

von Nop (Gast)


Lesenswert?

Man könnte natürlich auch in der Clientsoftware einstellen, daß sie nur 
einen begrenzten Durchsatz nutzen soll. Das würde den Traffic, der beim 
Syncen generiert wird, auf ein Maß begrenzen, was die FB noch gut 
verdauen kann. Zumindest zum Testen sollte man das mal machen.

von LOL (Gast)


Lesenswert?

Leider wird dir das nur begrenzt weiterhelfen, da es vermutlich nur 
teilweise auf deine Situation passt:

Meiner Erfahrung nach hat die 7390 hat ein Problem mit hoher CPU-Last 
bei intensiven Datentransfers, insbesondere per USB (weil USB auf der 
Box ein Garant für 100% CPU ist). WLAN ist ähnlich problematisch, 
allerdings ist das Problem schwerer zu provozieren weil man entweder 
mehrere Clients braucht oder einen mit richtig gutem Empfang (und einen 
Server der via Kabel dran hängt um das WLAN sättigen zu können).

Was den Fehler angeht: Ich hatte die 7390 eine Zeit lang als Pseudo-NAS 
in Benutzung und es liefen einige Zusatzprogramme (Freetz) darauf.
Wenn dann traffic über ADSL oder VDSL (ich hatte über die Jahre beides, 
problem blieb) lief und die CPU ausgelastet war, kam es zu Aussetzern:

Das System-Log (via Telnet -> dmesg) lief voll mit irgendwelchen Fehlern 
(des DSL-Treibers?)  und die Box lahmt unheimlich, bis die CPU-Last 
deutlich verringert wurde. Danach lief alles wieder einwandfrei.
Dadurch, das die Verbindungen so langsam wurden bzw. Fehler produzierten 
verringerte sich die Last immer automatisch, danach ging der Spaß von 
neuem los.

Besonders kritisch sind Dienste, die viele parallele Verbindungen 
nutzen, das scheint die Box besonders effizient aus dem Takt zu bringen.

Das Einzige, was letztendlich geholfen hat, war:
- Bandbreitenintensive Dinge wie NAS via Kabel statt WLAN anzubinden
- USB-Speicher nicht zu verwenden
- Problematische Internet-Dienste zu drosseln bzw. die Bandbreite und 
Verbindungsanzahl zu begrenzen.

Das bekommt man aber mit Bordmitteln der Box nur so halbwegs in den 
Griff, die Priorisierung die die Box macht kann ja keine Bandbreiten 
festlegen. Davon abgesehen greift das QoS/tc der Box nur bei Uploads 
(ist prinzipbedingt immer so) und im LAN gar nicht. Insofern müsstest du 
da vermutlich eher an deinem Server was machen, das ist gezielter 
anwendbar.

Wie andere im Thread schon schrieben ist es vermutlich ein Problem, das 
du über die DynDNS synchronisierst - dadurch gehen die Pakete an die IP 
des DSL-Interfaces und müssen so durch die komplette Firewall der Kiste 
2x durch. Das Verhalten sollte also wie bei normalen DSL-Transfers sein.
Besser wäre es vermutlich, wenn du bei interner Synchronisation eine 
LAN-IP verwenden könntest, dann wäre die Box nicht als Standardgateway 
involviert.
Eventuell kannst du ja die Namensauflösung im LAN so gestalten, das die 
DynDNS von intern her direkt in eine lokale IP aufgelöst wird?
Oder mehrere sync-Adressen angeben (keine Ahnung, kenne owncloud nicht)?

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

LOL schrieb:
> Meiner Erfahrung nach hat die 7390 hat ein Problem mit hoher CPU-Last
> bei intensiven Datentransfers, insbesondere per USB (weil USB auf der
> Box ein Garant für 100% CPU ist). WLAN ist ähnlich problematisch,

Eigentlich alle 73xx FBs haben das Problem. Mit dem 6.xx OS ist das 
Problem noch schlimmer geworden. Da kannst du manchmal nicht mal das 
Web-GUI aufrufen weil die CPU keine Zeit hat.

Da eine 7490 neu nur noch ca. 190 Euro kostet bin im im Familien- und 
Freundeskreis dazu übergegangen als Lösung nur noch den Wechsel auf eine 
7490 vorzuschlagen, statt ewig zu fummeln. Demnächst werde ich wohl die 
neue 7560 als Ersatz empfehlen (vorausgesetzt die kann den richtigen 
Annex).

Wer ein bisschen warten kann, die Chancen das die 7490 in nächster Zeit 
billiger wird stehen wegen der neuen 7560 (190,- UVP) und 7580 (290,- 
UVP) gut.

von Reinhard S. (rezz)


Lesenswert?

Norbert schrieb:
> Den Uplink bei einer sehr schnellen Leitung zu sättigen ist nämlich sehr
> viel schwerer.
> Und da wir aus dem Eröffnungsbeitrag keine Geschwindigkeit entnehmen
> können...

LOL schrieb:
> Wie andere im Thread schon schrieben ist es vermutlich ein Problem, das
> du über die DynDNS synchronisierst - dadurch gehen die Pakete an die IP
> des DSL-Interfaces und müssen so durch die komplette Firewall der Kiste
> 2x durch.

Laut TE ist auf dem WAN-Interface kein Verkehr, sprich es läuft alles 
intern ab. Interessant wäre es jetzt, ob da Geräte über WLAN mitspielen 
oder der Fehler auch auftritt, wenn man per Kabel mit der Box verbunden 
ist.

von (prx) A. K. (prx)


Lesenswert?

Ich hatte zeitweilig eine 7390 als reinen WLAN-Router mit nur einem Port 
im LAN. Der Durchsatz entsprach dem, was Internet (120Mb) und WLAN 
hergaben, auch bei WAN-LAN Verbindungen.

Wird die 7390 auch als Ethernet-Switch verwendet? Schau dir in den 
Energie-Einstellungen die Strom-Modi der Ports an. Evtl. die 
Switch-Funktion testweise durch einen externen Switch ersetzen.

: Bearbeitet durch User
von Norbert (Gast)


Lesenswert?

Reinhard S. schrieb:
> Norbert schrieb:
>> Den Uplink bei einer sehr schnellen Leitung zu sättigen ist nämlich sehr
>> viel schwerer.
>> Und da wir aus dem Eröffnungsbeitrag keine Geschwindigkeit entnehmen
>> können...
>
> LOL schrieb:
>> Wie andere im Thread schon schrieben ist es vermutlich ein Problem, das
>> du über die DynDNS synchronisierst - dadurch gehen die Pakete an die IP
>> des DSL-Interfaces und müssen so durch die komplette Firewall der Kiste
>> 2x durch.
>
> Laut TE ist auf dem WAN-Interface kein Verkehr, sprich es läuft alles
> intern ab. Interessant wäre es jetzt, ob da Geräte über WLAN mitspielen
> oder der Fehler auch auftritt, wenn man per Kabel mit der Box verbunden
> ist.

Da drin läuft ein Linux.
Das zwangsläufig stattfindende NAT wird vermutlich über iptables 
gemacht.
DynDNS liefert die WAN IP.
Die Daten lokaler Clients gehen also (LAN-IF to WAN-IF) über mindestens
prerouting nat, forward, postrouting nat
und kommen rückwärts (WAN-IF to LAN-IF) über mindestens
prerouting nat, forward, postrouting nat
wieder rein.
der pppoe daemon wird diese Daten allerdings wohl nicht sehen, jedoch
ohne QOS dürften wohl alle internen Queues bis zum überlaufen gefüllt 
sein.
Damit bewegt sich selbst ICMP wie kalter Honig.

von Tr (Gast)


Lesenswert?

Hi,
danke euch für die hilfreichen Antworten, jetzt weiß ich weiter.

Ich habe heute einiges probiert, Energieeinstellungen, WLAN an/aus, LAN 
Kabel an die Box oder an zusätzlich GBit Switch, ...
Tatsächlich ist das Routing in der Box der Flaschenhals!

Wenn ich meinen Server über seine LAN IP anspreche, kann ich mit einem 
großen Download (ISO Image im www Ordner von Apache) die GBit LAN 
Verbindung zu ca. 80% auslasten.
Über die URL bzw. FB Route schaffe ich max. 12%. Das ärgert mich sehr, 
ich habe lange am Server optimiert weil ich den Fehler dort vermutet 
habe!

Die WAN Bandbreite hat mit dem Problem übrigens nichts zu tun 
(@Akustikkoppler Scherzkeks, lies mal die Erklärung von dicky_d!).
Ein vor dem Sync gestarteter Up-/Download läuft mit voller 
Geschwindigkeit weiter. Durch die Auslastung nimmt die Kiste halt keine 
neuen Verbindungen/VoIP/DHCP etc. an und das Netz bricht zusammen.

LOL schrieb:
> Das Einzige, was letztendlich geholfen hat, war:
> - Bandbreitenintensive Dinge wie NAS via Kabel statt WLAN anzubinden
> - USB-Speicher nicht zu verwenden
> - Problematische Internet-Dienste zu drosseln bzw. die Bandbreite und
> Verbindungsanzahl zu begrenzen.

USB Speicher habe ich noch nie genutzt, viel zu langsam.

Ich will auch nicht mein Netzwerk um die Einschränkungen von der FB 
herum bauen.
Auf so Bastelkram wie Bandbreite limitieren (obwohl der Server noch 
locker 10 Clients mehr kann), lokalen DNS verbiegen oder frisierte 
Konfig importieren habe ich keine Lust.
Hauptsächlich ist die FB doch ein Router. Da müsste es 
selbstverständlich sein, QoS und DNS in der GUI anpassen zu können. Die 
paar wenigen Einstellungen sind ein Witz.

Hannes J. schrieb:
> Da eine 7490 neu nur noch ca. 190 Euro kostet bin im im Familien- und
> Freundeskreis dazu übergegangen als Lösung nur noch den Wechsel auf eine
> 7490 vorzuschlagen, statt ewig zu fummeln.

Danke, aber nein danke! Ich lege bestimmt nicht noch mal "nur" 190€ für 
einen weiteren Plastikrouter auf den Tisch.
Seit AVM die Kisten nachträglich kastriert (DMZ weg, Smart Home weg, 
Telnet weg) und sich an dem nutzlosen Gastzugang, Kacheloptik GUI, 
proprietärem VPN usw. hochzieht bin ich auf die nicht mehr gut zu 
sprechen!

Stattdessen werde ich die Box zum WLAN AP & DECT Basis degradieren.
Der Server bekommt eine quad GBit NIC eingebaut, eine VM mit einem 
vernünftigen Linux Router und dann ist das Thema hoffentlich erledigt.


/Rant Ende. Danke nochmal für eure Tips.

von Reinhard S. (rezz)


Lesenswert?

Norbert schrieb:
> Da drin läuft ein Linux.
> Das zwangsläufig stattfindende NAT wird vermutlich über iptables
> gemacht.
> DynDNS liefert die WAN IP.
> Die Daten lokaler Clients gehen also (LAN-IF to WAN-IF) über mindestens
> prerouting nat, forward, postrouting nat
> und kommen rückwärts (WAN-IF to LAN-IF) über mindestens
> prerouting nat, forward, postrouting nat
> wieder rein.

Wäre arg lustig, wenn die Daten diesen Weg nehmen, obwohl sie garnicht 
über die WAN-Schnittstelle transportiert werden. Wobei ich mir 80% 
Auslastung mit interner IP und 12% mit DynDNS nicht so schlüssig 
erklären kann.

Mein Speedport W701V liefert mir bei Ping auf meine DynDNS-IP die selben 
Zeiten wie bei direktem Ping auf ihn. SSH funktioniert darüber auch 
genauso schnell wie lokal. Beim ebenfalls darüber laufenden Webserver 
ist es allerdings nicht so, warum auch immer...

von LOL (Gast)


Lesenswert?

Hannes J. schrieb:
> Eigentlich alle 73xx FBs haben das Problem. Mit dem 6.xx OS ist das
> Problem noch schlimmer geworden. Da kannst du manchmal nicht mal das
> Web-GUI aufrufen weil die CPU keine Zeit hat.

Das würde ich aber schon merkwürdig finden, denn den Ikanos Fusiv 
Schrott hat AVM nur bei sehr wenigen Modellen verbaut - die haben recht 
schnell gemerkt, das das nicht taugt und sind u.a. wieder zu Infineon & 
Co.

Reinhard S. schrieb:
> Laut TE ist auf dem WAN-Interface kein Verkehr, sprich es läuft alles
> intern ab. Interessant wäre es jetzt, ob da Geräte über WLAN mitspielen

Auf dem Interface nicht, aber durch den IP-Stack und die Firewall muss 
das schon durch, genau wie durch die Portweiterleitung, wenn er die 
dyndns mit der WAN-IP nimmt. Wurde ja bereits detailliert ausgeführt.

Norbert schrieb:
> Da drin läuft ein Linux.
> Das zwangsläufig stattfindende NAT wird vermutlich über iptables
> gemacht.

Jain. AVM hat einen Haufen mit selber reingeschrieben, laut diversen 
freetz-postings auch diverse Hacks im IP-Stack. Die Firewall wird 
nicht mit iptables gemacht, da greift AVM recht stark ein, es gibt 
auch keine entsprechenden Module im Kernel. Das hat wohl u.a. was damit 
zu tun, das die gern die Hardwarefunktionen der SOC nutzen wollen. 
Details kann ich dazu aber nicht nennen, ich nix Kernel-Hacker.

Tr schrieb:
> Auf so Bastelkram wie Bandbreite limitieren (obwohl der Server noch

Also "Bastelkram" ist Qos und tc/shaping sicher nicht, das macht dein 
Provider schliesslich auch. Ich gehe mal davon aus das sich das auf die 
Allgemeinsituation bezog ;-)

Bei Servern ist das DSL-Interface immer zu langsam bzw. hat hohe 
Latenzen -> den Upload zu limitieren macht immer Sinn, insbesondere wenn 
VoIP sicher funktionieren soll. Würde ich nicht ohne betreiben wollen, 
egal welchen Router ich einsetze, sonst gibt das Mecker wenn das Telefon 
stockt.

Die Umsetzung in der Fritz!Box ist aber leider so, das man über die GUI 
nicht wirklich alles einstellen kann, was man müsste. Über die 
Konfigurationsdatei geht ein wenig mehr, aber auch nicht alles... Siehe 
nächste Bemerkung.

> locker 10 Clients mehr kann), lokalen DNS verbiegen oder frisierte
> Konfig importieren habe ich keine Lust.
> Hauptsächlich ist die FB doch ein Router. Da müsste es
> selbstverständlich sein, QoS und DNS in der GUI anpassen zu können. Die
> paar wenigen Einstellungen sind ein Witz.

Das ist ein Heimanwender-Gerät. Wenn du was "richtiges" willst, musst du 
entsprechend Geld auf den Tisch legen und dir einen Profi-Router kaufen. 
Alternativ dazu kannst du auch was mit Lede oder OpenWRT nehmen, die 
können mittlerweile auch VDSL. Auf DECT muss man dann aber verzichten, 
das ist alles closed-source kram.
Das ist auch das Verkaufsargument der Boxen:
Die können mehr als viele andere (insbesondere Provider-Boxen) und man 
bekommt Analog-, ISDN und DECT-Telefonie zusammen mit VDSL und Gbit in 
einem Paket für ~200€. Kauft man sich das Einzeln, kommt man auch nicht 
billiger und braucht mehr Strom.

Ich bin mit meiner Box schon zu frieden, und die Dienste die bei mir den 
"GAU" verursachen können und sollen durchaus gedrosselt werden. Eine 
7390 würde ich auch nicht mehr kaufen, auch wenn ich hoffe das meine 
noch lange Jahre halten...
Als Alternative zur Fritz!Box 7490 fällt mir nur der TP-Link VR900v oder 
VR200v ein, die können aber deutlich weniger Telefonie, sind aber glaube 
ich irgendwie OpenWRT basiert (wenn auch nicht komplett offen gelegt).

Wenn dir die Box gar nicht zusagt, kannst du folgende Teile der Box 
nutzen:
- die Switch: die bringt lokal die volle Bandbreite
- DECT, ISDN, analoges Telefon und SIP
- das Modem: baue mit deinem Server eine PPPoE-DSL Verbindung auf

Ansonsten nimm deinen Server als Standardgateway und Firewall via PPPoE.
WLAN ist Grenzwertig, müsstest du testen, dürfte aber auch gehen.

Damit umgehst du den IP-Stack und die Firewall der Box komplett und 
kannst die CPU-Last im Rahmen halten. Außerdem kannst du jederzeit die 
Box tauschen, ohne was am Server machen zu müssen. Über ein VLAN kannst 
du ggf. die Netze sauber trennen.

von K. L. (Gast)


Lesenswert?

Christian R. schrieb:
> Die 7390 hat einen recht lahmen Single Core Prozessor, kann man doch
> überall lesen dass z.B. bei hoher WLAN Last keine Telefonie mehr möglich
> ist. Soll bei der 7490 deutlich besser sein, da Dual Core. Die ganz
> neuen könnten da eventuell noch etwas schneller sein.

Finde ich interessant. Ich wollte die auch zum Telefonieren nutzen, bin 
aber noch nicht dazu gekommen. Bei mir hakelt die 7390 teilweise schon 
wenn man 3 WLANS dranhängen.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Tr schrieb:
> Danke, aber nein danke! Ich lege bestimmt nicht noch mal "nur" 190€ für
> einen weiteren Plastikrouter auf den Tisch.
> Seit AVM die Kisten nachträglich kastriert (DMZ weg, Smart Home weg,
> Telnet weg) und sich an dem nutzlosen Gastzugang, Kacheloptik GUI,
> proprietärem VPN usw. hochzieht bin ich auf die nicht mehr gut zu
> sprechen!

Du musst mich nicht dafür anhupen nur weil deine FB nicht für deine 
Anwendung taugt. Überhaupt, was fragst du hier, wenn du sowieso schon 
weißt, dass die FB dein Problem ist?

Viel Spaß beim Kauf von richtigem Netzwerk-Equipment.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.