Hi,
we've observed a bug with Kamailio (we are using 4.3.1):
When using more than 81 "listen" statements, Kamailio starts acting up. In our case, it handles ACK packets (that follow "200 OK" messages) incorrectly: It forwards them to itself (src ip == dst ip) in a garbled form (on the loopback interface).
We need more than 80 "listen" statements at the moment so I hope there's a way to increase the limit substantially.
The number of file handles has been set to 32000 btw.
Regards, -Sven Neuhaus
Hello,
can you send ngrep capture of such ack:
ngrep -d any -qt -W byline port 5060
For listing the ports via kamcmd be sure that the parameters with buffer sizes for ctl module are big enough.
Cheers, Daniel
On 17/09/15 11:00, Sven Neuhaus wrote:
Hi,
we've observed a bug with Kamailio (we are using 4.3.1):
When using more than 81 "listen" statements, Kamailio starts acting up. In our case, it handles ACK packets (that follow "200 OK" messages) incorrectly: It forwards them to itself (src ip == dst ip) in a garbled form (on the loopback interface).
We need more than 80 "listen" statements at the moment so I hope there's a way to increase the limit substantially.
The number of file handles has been set to 32000 btw.
Regards, -Sven Neuhaus
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
I looked at the trace and the R-URI in the looping ACK seems to be considered as local address or alias.
Is that in the listen list or in the alias list? Or do you use domain module with register myself and that IP is there?
The list of aliases and listen sockets is not using any static size, so theoretically can just be as much as pkg memory allows.
Cheers, Daniel
On 17/09/15 11:19, Daniel-Constantin Mierla wrote:
Hello,
can you send ngrep capture of such ack:
ngrep -d any -qt -W byline port 5060
For listing the ports via kamcmd be sure that the parameters with buffer sizes for ctl module are big enough.
Cheers, Daniel
On 17/09/15 11:00, Sven Neuhaus wrote:
Hi,
we've observed a bug with Kamailio (we are using 4.3.1):
When using more than 81 "listen" statements, Kamailio starts acting up. In our case, it handles ACK packets (that follow "200 OK" messages) incorrectly: It forwards them to itself (src ip == dst ip) in a garbled form (on the loopback interface).
We need more than 80 "listen" statements at the moment so I hope there's a way to increase the limit substantially.
The number of file handles has been set to 32000 btw.
Regards, -Sven Neuhaus
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com Kamailio Advanced Training, Sep 28-30, 2015, in Berlin - http://asipto.com/u/kat
Hello,
Am 17.09.2015 um 17:46 schrieb Daniel-Constantin Mierla:
I looked at the trace and the R-URI in the looping ACK seems to be considered as local address or alias.
why do you think it sends the packet to itself? That's not the normal behaviour even for packets that have an R-URI with the local address.
Is that in the listen list or in the alias list? Or do you use domain module with register myself and that IP is there?
The list of aliases and listen sockets is not using any static size, so theoretically can just be as much as pkg memory allows.
The R-URI is not in the listen or alias list, and we do not use the domain module. The only difference between the working configuration and the broken one is the number of listen statements.
-Sven
Hello,
On 18/09/15 13:37, Sven Neuhaus wrote:
Hello,
Am 17.09.2015 um 17:46 schrieb Daniel-Constantin Mierla:
I looked at the trace and the R-URI in the looping ACK seems to be considered as local address or alias.
why do you think it sends the packet to itself? That's not the normal behaviour even for packets that have an R-URI with the local address.
from my observation, the R-URI of incoming ACK is considered to be local, because kamailio does strict routing -- the r-uri is removed and next Route header becomes r-uri (this one is the server address as it should).
Have you increased the size for ctl buffers? Were you able to list all sockets? If yes, sent that output to me along with the output of the command listing aliases.
Moreover, send me the log messages for such a call (from initial INVITE to the problematic ACK) with debug=3 in kamailio.cfg.
Cheers, Daniel
Is that in the listen list or in the alias list? Or do you use domain module with register myself and that IP is there?
The list of aliases and listen sockets is not using any static size, so theoretically can just be as much as pkg memory allows.
The R-URI is not in the listen or alias list, and we do not use the domain module. The only difference between the working configuration and the broken one is the number of listen statements.
-Sven
Hi Daniel,
your analysis was spot-on. The IP address in the R-URI was mistakenly included in the "listen" statements which is what caused the misbehaviour. It was clearly visible in the debug=3 output.
Have a nice weekend!
-Sven
Hello,
On 18/09/15 15:35, Sven Neuhaus wrote:
Hi Daniel,
your analysis was spot-on. The IP address in the R-URI was mistakenly included in the "listen" statements which is what caused the misbehaviour. It was clearly visible in the debug=3 output.
Have a nice weekend!
good it was found -- weekend is always nicer with one less issue report :-) !
Enjoy yours, Daniel