[reSIProcate] DnsResult blacklistLast,greylistLast question.
Byron Campen
docfaraday at gmail.com
Fri Dec 27 17:11:44 CST 2013
On 12/27/13 3:48 AM, Sergey Pavlov wrote:
> On 26 December 2013 06:28, Byron Campen <docfaraday at gmail.com
> <mailto:docfaraday at gmail.com>> wrote:
>
> So that's the fallback behavior that is specified. In
> practice, however, sending a bare IP address like that means that
> UDP will be attempted first, and if that fails for some reason
> (maybe a NAT is blocking UDP, for example), TCP will be attempted.
> The specifications are pretty muddy when it comes to transport
> failover, unfortunately. For sure, if a UA does not support TCP,
> it should be including a transport param to that effect. Now, as
> for solving your problem, I see a couple of approaches we could take;
>
> 1) Make greylisting configurable (enable/disable).
>
> 2) Make handling of sip:<bare-ip-addr> configurable (ie; is this a
> UDP-only URI, or is TCP a possible second candidate?) This
> basically boils down to disallowing multiple transport protocols
> for anything other than an FQDN.
>
> Am I understand correctly that in such case UDP transport will not be
> grey-listed in case of failure a transaction failure? I.e. failed
> transaction will not influence on other signaling with corresponding IP.
It would be greylisted if there is a timeout, but because there are
no alternatives, it would continue to be used.
>
> Since both of these things are in grey areas of the
> specifications, both are reasonable things to make configurable. I
> like the second more, since it is more granular, and I am having a
> hard time coming up with a reasonable scenario where you'd want to
> disable greylisting for stuff you got from DNS. Your take?
>
>
> In our case we will be satisfied even with second option. Indeed,
> greylisting can be really useful for results obtained from DNS lookup.
> But I think that ability to disable greylisting completely (or
> according to some predefined list) still should provided. In fact we
> have two conditions which may cause unanswered requests on UAS side:
> 1) bug in SIP stack implementation which is triggered by some
> specific requests;
> 2) remote UA overloaded, completely down or unreachable because of
> hardware or network malfunction.
>
> Greylisting is good strategy for case (2) but can be real pain for
> case (1) even with results of real DNS lookups. Just imagine the case
> when all DNS records points to devices with the same SIP stack
> implementation thus all of them can be greylisted by specific SIP
> request. Since there is no efficient method to distinguish (1) and (2)
> from UAC point of view it would be good to provide some means to
> control greylisting strategy for resipprocate stack user.
I am ok with allowing greylisting to be disabled entirely. It is
already a last-ditch measure; if you're observing actual timeouts in the
field, things are pretty bad. One thing that might make sense to do is
to only greylist after the tuple fails to respond to a stand-alone
OPTIONS request (ie; we see a transaction timeout, and then send a quick
OPTIONS request to test whether this was a problem specific to the
transaction/dialog; if that OPTIONS request times out too, we greylist,
or maybe even blacklist).
Best regards,
Byron Campen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20131227/667681a4/attachment.htm>
More information about the resiprocate-devel
mailing list