asterisk debuggen

Diesen Beitrag schrieb ich 17 Jahre und 2 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute

Eine Odysee geht zu Ende. Wochen, Monate hat mich das Problem nun beschäftigt; jetzt habe ich eine Ahnung, woran es hängt, und ich bin zutiefst deprimiert. Fangen wir vorne an…

Mein Router ist eine Netra T1 von Sun (westar). Sie baut die Internetverbindung via pppoe0 auf, macht DNS, DHCP, NAT und so manches andere Geraffel. Die Clients hängen dahinter. Unter anderem der asterisk-Server, der Pentibumm mit der ISDN-Karte, dem NTBA und dem Telekom-Adapter (fetap). Fehlerbild war und ist – und wird in der Konstellation bleiben – dass einkommende Anrufe via GMX nicht durchkommen, via T-Online und Sipgate jedoch funktioniert alles reibungslos. Ausgehend funktioniert alles bei allen drei Providern ohne Probleme. Die Fehlersuche war lang. Und arg.

Die Lösung in Kürze: GMX fragmentiert die UDP-Pakete, Sipgate und T-Online tun dies nicht. Auf dem pppoe0-Interface des NetBSD-Routers kommen auch alle Fragmente an, das letzte Fragment des ersten Pakets geht jedoch auf dem internen Weg von pppoe0 zu hme0 verloren. Am **asterisk**-Server selbst kommt entsprechend Datensalat an – es fehlt ein Fragment, icmp 556: ip reassembly time exceeded, so kann das nicht funktionieren.

Offenbar ist dies also ein NetBSD-Bug (mal wieder) – ipf oder IP-Stack oder whatever. Und da ich das Problem schon mit dem Indy-Router hatte (sgimips) ist das Problem nicht einmal auf sparc64 beschränkt! Das ist so traurig. Bleibt also nur eines: entweder die Netra T1 unter Solaris hochziehen oder gleich einen völlig andren Router einsetzen. Oder doch den Pentibumm routen lassen. Oder doch GMX treten. Was fragmentieren die auch ihre Pakete??!

Anruf aus Festnetz auf GMX fehlgeschlagen

00:41:42.640912 IP sip0.schlund.de.5060 > 192.168.1.200.5060: UDP, length: 1773
00:41:42.646815 IP sip0.schlund.de > 192.168.1.200: udp
00:41:43.295007 IP sip0.schlund.de.5060 > 192.168.1.200.5060: UDP, length: 1773
00:41:43.300893 IP sip0.schlund.de > 192.168.1.200: udp
00:41:45.314743 IP sip0.schlund.de.5060 > 192.168.1.200.5060: UDP, length: 1773
00:41:45.320661 IP sip0.schlund.de > 192.168.1.200: udp
00:41:49.354031 IP sip0.schlund.de.5060 > 192.168.1.200.5060: UDP, length: 1773
00:41:49.360382 IP sip0.schlund.de > 192.168.1.200: udp
00:41:53.394017 IP sip0.schlund.de.5060 > 192.168.1.200.5060: UDP, length: 1773
00:41:53.399920 IP sip0.schlund.de > 192.168.1.200: udp

Anruf aus Festnetz an Sipgate erfolgreich

00:37:28.764861 IP ser02.de.sipgate.net.5060 > 192.168.1.200.5060: UDP, length: 1120
00:37:28.768979 IP 192.168.1.200.1024 > westar.localwurst.de.domain:  56598+ A? blafasel.dyndns.account. (36)
00:37:28.963027 IP westar.localwurst.de.domain > 192.168.1.200.1024:  56598 1/5/5 A pxxxxxxxx.dip.t-dialin.net (232)
00:37:28.969892 IP 192.168.1.200.5060 > ser02.de.sipgate.net.5060: UDP, length: 575
00:37:28.978153 IP 192.168.1.200.5060 > ser02.de.sipgate.net.5060: UDP, length: 591
00:37:29.164457 IP 192.168.1.200.5060 > ser02.de.sipgate.net.5060: UDP, length: 591

Anruf aus Festnetz an T-Online erfolgreich

00:39:07.413868 IP 217.0.132.118.5060 > 192.168.1.200.5060: UDP, length: 832
00:39:07.417822 IP 192.168.1.200.1024 > westar.localwurst.de.domain:  56599+ A? blafasel.dyndns.account. (36)
00:39:07.501256 IP westar.localwurst.de.domain > 192.168.1.200.1024:  56599 1/5/5 A pxxxxxxxx.dip.t-dialin.net (232)
00:39:07.507569 IP 192.168.1.200.5060 > 217.0.132.118.5060: UDP, length: 460
00:39:07.511268 IP 192.168.1.200.1024 > westar.localwurst.de.domain:  6898+ A? spillerm.192.168.1.222. (40)
00:39:07.511965 IP westar.localwurst.de.domain > 192.168.1.200.1024:  6898 NXDomain 0/1/0 (115)
00:39:07.512885 IP 192.168.1.200.1024 > westar.localwurst.de.domain:  6899+ A? spillerm. (26)
00:39:07.513160 IP westar.localwurst.de.domain > 192.168.1.200.1024:  6899 NXDomain 0/1/0 (101)
00:39:07.518001 IP 192.168.1.200.5060 > 217.0.132.118.5060: UDP, length: 476
00:39:07.684523 IP 192.168.1.200.5060 > 217.0.132.118.5060: UDP, length: 476
Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: 849x 500px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „asterisk debuggen“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.