PJNATH/ICE on multihomed hosts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm not entirely sure I understand the question, but this is an
interesting topic; I'd been thinking about ICE in multihomed
environments also.

>From running ICE on my own multihomed host, STUN only gathers srflx
candidates from one interface. Only ost candidates are listed for the
other interfaces. I guess the default (lowest numbered) interface is the
only one checked.

On Mon, 2008-10-06 at 13:47 +0000, ext Guido Fischer wrote:
> In my understanding ICE should examin which network and host interface
> to use by executing ice-connectivity-checks. When testing pjsip/pjnath
> all packets where routed via the default route.

Yes, I think during the ICE connectivity checks, STUN requests are meant
to go out of the interface associated with one half of the candidate
pair being checked.

I don't (yet) know how pjnath deals with this. But I can obviously see
the utility in forcing packets out the correct interfaces if ICE is to
be a totally general solution.


> Is there a perferable way to use the interface linked to the ip of the
> candidate on a multihomed host? The connectivity checks should then
> use the candidates interface/ip, not the default route. Using
> SO_BINDTODEVICE respectively SO_DONOTROUTE would implicate the usage
> of one socket for each candidate.

Well, certainly SO_BINDTODEVICE is Linux-only. On FreeBSD, I'm using
bind() to attach a socket to a local interface, and ipfw rules to
forward packets sent using that socket back out the interface I want.
But that's a fairly brittle solution in an uncontrolled environment.


Cheers,
-S.



On Mon, 2008-10-06 at 13:47 +0000, ext Guido Fischer wrote:
> Hi,
> I have a question on the pjnath ice-implementation. 
> I am trying to use pjsip with ice on a multihomed host. In my
> understanding ICE should examin which network and host interface to
> use by executing ice-connectivity-checks. When testing pjsip/pjnath
> all packets where routed via the default route. 
> As far as I understand this implementation has only one STUN socket
> for each Component(RTP/RTCP) and Dialog. This Socket is used by all
> candidates for this component. 
> When executing the ice-connecitvity-checks the socket is still bound
> to the broadcast ip 0.0.0.0 and a specific port. This means all
> outgoing STUN-requests and traffic will be routed over the default
> route rather then the candidates interface. Even if the the
> nominated-pair tells us it uses host-ip IP1/interface IF1 it may send
> the data over host-ip IP2/interface IF2 because of the default route?
> Is there a perferable way to use the interface linked to the ip of the
> candidate on a multihomed host? The connectivity checks should then
> use the candidates interface/ip, not the default route. Using
> SO_BINDTODEVICE respectively SO_DONOTROUTE would implicate the usage
> of one socket for each candidate.
> 
> regards,
> Guido
> 
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
> 
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux