Re: TURN returning multiple MAPPED-ADDRESSes
Jon Ringle <[email protected]> Wed, 6 Oct 2004 02:10:53 -0400
| Newsgroups | gmane.ietf.midcom |
|---|---|
| Message-ID | <[email protected]> |
Thanks for taking the time to respond to my questions. Inline. On Tuesday 05 October 2004 10:58 pm, Jonathan Rosenberg wrote: > inline. > > Jon Ringle wrote: > > On Friday 01 October 2004 12:41 am, Jonathan Rosenberg wrote: > >>Excellent observation. You are right, and I believe I had identified > >>this issue in some version of the sipping nat-scenarios draft. > >> > >>The essence of the problem is that, when the turn server is effectively > >>multi-homed (which is more or less what is happening here), you run into > >>the issue that its not obvious which address is most likely to work with > >>a peer. The prime use case I saw for this multi-homing was the > >>enterprise deploying a turn server that was must-use for external > >>communications. Now, in this case, its highly likely that the enterprise > >>would deploy voip so that all of the clients are ice-capable. Thus, you > >>would be worried about non-ice capable clients outside of the > >>enterprise. Thus, the address you put in the m/c line would be the > >>public IP address from the TURN server, not the private one. > > > > It took some time to analyze the non-ICE <-> ICE scenario. My conclusion > > on this is as follows: > > > > It seems to me that using the TURN derived address for the benefit on > > non-ICE peers will almost always result in media only flowing from the > > non-ICE peer to the ICE peer (via the TURN server). The media from the > > ICE peer to the non-ICE peer would usually not go anywhere becuase the > > non-ICE peer provided the ICE peer with it's local interface address, > > which the ICE peer cannot reach when traversing a NAT. > > In the naive deployment, perhaps. > > I think the more likely case is that there is an ICE client talking to a > non-ICE client using some other nat traversal technique, including stun > or a session border controller. In both cases, what apepars in the m/c > lines in the SDP would be reachable by the ICE client. > > > This is a half-dead conversation which isn't > > > much better that a dead one :) In fact, in the cases where two way > > communication would occur successfully between a ICE and non-ICE peer, > > the communication would also be successful if the ICE peer had provided > > the non-ICE peer with the local interface address instead of the TURN > > derived address. So, I believe that it is better for an ICE peer to > > advertise the local interface in the m/c lines. > > I disagree with that assessment, based on the above. non-ICE does not > mean non-NAT traversal. In practice nothing is really deployed without > some kind of nat traversal solution, unless its in an environment where > its known to be a total non-issue. Our current sip endpoints do not have a nat traversal solution (which is why I am so interested in ICE :) Currently, with our sip endpoints, multi-site locations must acheive ip routing without traversing NAT (usually by establishing site-to-site VPN with route tables set up). So, I guess in my mind I was equating non-ICE to non-NAT traversal. I know there are third party products that can help non-NAT traversal sip endpoints traverse NATs (SIP ALGs for instance). Perhaps even a SIP ICE Proxy (though the acronym for it would get confusing :) > > Jon also wrote: > > Unless, the ICE peer ignores the address provided by the non-ICE peer, > > and instead sends media to the TURN derived address. > > What turn derived address? THe ICE-capable element has its own address. Sorry, I meant in this case that ICE peer detects that it is communicating with a non-ICE peer (by virtue of the lack of alt attributes in the SDP). Then the ICE peer derives a turn address (which it communicates to the non-ICE peer via m/c). Then the ICE peer begins sending media packets to the turn server, assuming that eventually the non-ICE peer will cause lockdown to occur when the non-ICE peer sends media to the turn derived address (of course the non-ICE peer has no idea it is sending to a turn derived address). There would be no connectivity checks in this case. > > The assumption is that the > > > non-ICE peer will lockdown the TURN binding when it sends media to the > > TURN derived address provided by the ICE peer. > > Lockdown is being removed from the next rev of turn. In any case, what I would be interested to know why. > you are saying is that an ICE capable client will learn another address > for its peer through the TURN indications of the sender address. That > could be worked into the ICE algorithm, but the problem is that the > ice-capable client has no way to do the connectivity checks. How then > can it determine whether it should send media to the advertised address > in the SDP, as opposed to what is learned by TURN? I guess it comes down my naive assumptions and that non-ICE doesn't mean non-NAT traversal. However, in a properly deployed environment, sending media to the TURN server should always work. right? It might be more expensive if the address provided by the non-ICE peer would have worked too. Perhaps this could be a part of the policy of the ICE client? > > I don't really think its important to handle this case. As I mentioned > above, the assumption I am making is that, if a client is not doing ICE, > it is doing something else that allows its IP/port in the m/c lines of > the SDP to be valid. If this assumption holds, the current ICE fallback > behavior is the right thing. > > -Jonathan R.