[asterisk-bugs] [Asterisk 0013749]: IAX2 storm (type 4, subtype 20: AST_CONTROL_SRCUPDATE)

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Feb 16 15:28:39 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13749 
====================================================================== 
Reported By:                adiemus
Assigned To:                dvossel
====================================================================== 
Project:                    Asterisk
Issue ID:                   13749
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.22 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2008-10-20 17:46 CDT
Last Modified:              2009-02-16 15:28 CST
====================================================================== 
Summary:                    IAX2 storm (type 4, subtype 20:
AST_CONTROL_SRCUPDATE)
Description: 
This is a rather odd issue to describe.

In simplest terms, I have a server connected via IAX2 to another server. 
The configuration had been working fine through at least 1.4.18.  However,
between then an 1.4.21.2, this issue began occuring for all calls from
server A to server B.  (But oddly, not for calls from B->A)  The issue
persists in 1.4.22.

When a call is placed through server A to server B via IAX2, server A
sends a torrent of retransmitted packets right after the initial call
setup.  This storm eats up more than 20 Mbit and is reproducible for every
call from server A to server B.  If I replicate the configuration of server
B onto server C, the behavior remains the same.  Calls from server A to
server C show the same "packet storm" bug.

I have complete pcap captures of both sides of the connection, if that's
useful.  However, the short overview from server A's perspective is:

A -> B NEW
B -> A AUTHREQ
A -> B AUTHREP
B -> A ACCEPT
A -> B ACK
B -> A ANSWER
A -> B ACK
A -> B CONTROL (subclass = 20, AST_CONTROL_SRCUPDATE)
A -> B CONTROL (subclass = 20, AST_CONTROL_SRCUPDATE) [retrans]
<storm of identical, retransmitted packets>

This is a serious issue for us as the storm is enough to saturate the
internet connections both of LAN A and LAN B.  (Packet rate is into the
tens or hundreds of thousands per second)

I'm happy to provide more information, but I don't know what else would be
useful.

The iax.conf entry for server B on server A looks like:
[serverB]
type=user
auth=md5
secret=redacted
transfer=no
context=from-serverB
jitterbuffer=no

[serverB]
type=peer
auth=md5
secret=redacted
username=serverA
transfer=no
host=dynamic
disallow=all
allow=gsm
jitterbuffer=no

The config for serverA on serverB:
register => serverB:redacted at serverA.fqdn

[serverA]
type=user
auth=md5
secret=redacted
transfer=no
context=from-serverA
jitterbuffer=yes

[serverA]
type=peer
auth=md5
secret=redacted
username=serverB
host=serverA.fqdn
jitterbuffer=yes
trunk=no
trunktimestamps=no
disallow=all
allow=gsm

In the interim, I'll see if I can do a binary search to find in what
version this behavior started.
====================================================================== 

---------------------------------------------------------------------- 
 (0100199) svnbot (reporter) - 2009-02-16 15:28
 http://bugs.digium.com/view.php?id=13749#c100199 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 176247

U   branches/1.4/channels/chan_iax2.c

------------------------------------------------------------------------
r176247 | dvossel | 2009-02-16 15:28:37 -0600 (Mon, 16 Feb 2009) | 8 lines

Fixes issue with AST_CONTROL_SRCUPDATE breaking out of native bridge

In iax2, when a AST_CONTROL_SRCUPDATE is received it breaks from the
native bridge, but since there is no code path to handle srcupdate it just
goes to be beginning of the loop.  This was causing packet storms of
srcupdate frames between servers.  Now srcupdate frames do not break the
native bridge for processing.    

(closes issue http://bugs.digium.com/view.php?id=13749)
Reported by: adiemus


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

http://svn.digium.com/view/asterisk?view=rev&revision=176247 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-02-16 15:28 svnbot         Checkin                                      
2009-02-16 15:28 svnbot         Note Added: 0100199                          
======================================================================




More information about the asterisk-bugs mailing list