Hi Jeff,
Have you checked /proc/sys/net/netfilter/nf_conntrack_expect_max? On
our (Debian) boxes the default is 256 which is way too low, we set it
to 65536. Also, we set it at the end of /etc/rc.local because setting
it in /etc/sysctl.conf doesn't seem to work.
Regards,
Henk Hesselink
On 2/21/13 1:11 PM, Saúl Ibarra Corretgé wrote:
Hi Jeff,
On Feb 8, 2013, at 10:08 PM, Jeff Pyle wrote:
Hi Muhammed,
On Fri, Feb 8, 2013 at 3:19 PM, Muhammad Shahzad <[email protected]> wrote:
In my previous experience, i see this error due to one of following reasons.
1. The media ports you have specified in media proxy configuration overlaps
some other service port range, e.g. in case you are running media proxy and
asterisk on same machine and RTP port range of asterisk overlaps media proxy
port range.
Asterisk is running on the same machine.
/etc/asterisk/rtp.conf contains:
rtpstart=16384
rtpend=20480
/etc/mediaproxy/config.ini contains:
port_range = 20482:32768
Having said that, one relay machine does see more Asterisk activity than the
other. Still it's activity is in the calls-per-minute range, not
calls-per-second.
2. Check dmesg, do you see this message or any relevant message from network
stack or ethernet driver there?
No. The last relevant line is:
[ 44.905812] ctnetlink v0.93: registering with nfnetlink.
Most "irrelevant" lines are promiscuous mode reports from my tshark testing.
Otherwise,
[40380457.905028] Machine check events logged
The machine's uptime is just over 500 days.
3. Check syslog and see if you get following message or something similar from
nf_conntrack.
nf_conntrack: table full, dropping packet
Nothing of the sort.
4. Check ulimit and selinux, but seems from your previous posts on this issue
that they are fine.
ulimit is handled by the application itself I believe. selinux has never been
configured.
5. Do you have any SNAT or Multicast related rule in iptables?
No. There is no *nat table defined at all, only *mangle (to remark DSCP EF)
and *filter (basic INPUT security). No mention of multicast anywhere. There
is IPv6 but it's not used for this application.
Saúl,
I'd be happy to add a logging line, but I'm not familiar enough with Python to
know what to add where. Guidance is welcome!
John provided me with some logs which I've inspected. The problem is still not
100% clear to me but I have a couple of suspicions.
I spent some time trying to understand what is going on, since it's really
uncommon to get EPERM for a datagram socket.
Please find attached a patch which logs and ignores the error. What I'm
interested in seeing is if it would actually work if the error is just ignored.
You seem to be running an older MediaProxy release, so the attached patch may
not apply cleanly. It should be easy to manually apply though.
Now, as for the error reason, the only plausible explanation in case no
firewall is being used is a problem with traffic pacing. Basically there seems
to be a chance of getting EPERM when sending data over a UDP socket in case the
sender is too quick and kernel buffers are full. We do have a (undocumented)
setting for this: userspace_transmit_every in the [relay] section. The default
value is 1, which means every packet would be relayed in user-space until the
conntrack rule has been established. Please also test setting that value to 4,
which means that only one out of every 4 packets will be sent to the
destination. Since bidirectional media is not yet established (otherwise there
would be a conntrack rule) this shouldn't be harmful.
Recap: please apply the supplied patch and run these tests:
- Just run the current config, watch for the log lines and see if audio flows
regardless
- Set userspace_transmit_every = 4 in the [relay] section of the configuration
file
Please let me know how testing goes.
Regards,
--
Saúl Ibarra Corretgé
AG Projects
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users