[OpenSIPS-Users] alias network interface issue

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Feb 24 17:45:27 CET 2015

Hi Artem,

I guess you are using mhomed parameter - and the way it works is limited 
in certain cases by your network configurations.

Let's imagine the following setups:

* you have 4 interface, I1, I2, I3 . You can use any of them to route 
traffic to destination D (according to the routing table).

* OpenSIPS listens on I2 and I3.

* OpenSIPS wants to send something to D and you use mhomed. What mhomed 
does is to try to connect an un-binded socket to the destination D. The 
OS will automatically chose one of the existing interface as source of 
this connect - and as according to the routing rules, all interfaces can 
reach D, let's say the OS selects I1; OpenSIPS gets the OS selected src 
IP and checks it among its listeners -> I1 is not used by OpenSIPS, so 
the get_out_socket() function will fail.

The issue is with how the mhomed works - if there are multiple possible 
interfaces to reach a target, the OS can use any of them (according to 
routing table), but OpenSIPS may not listen on all of them. See the 
issues here?

What you can do is to (1) favor in your routing table the usage of the 
interfaces OpenSIPS is listening too (to avoid OS using I1 over I2), or 
(2) have OpenSIPS listening on all interfaces you have.

Best regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer

On 20.02.2015 13:47, Чалков Артём wrote:
> Hi all!
> I use opensips on vmachine with 4 network interfaces: 2 real interfaces (ip x.x.1.2 external and x.x.10.2 internal) and 2 alias interfaces (ip x.x.1.3 external and x.x.20.2 internal).
> Opensips configured to send local traffic from ip x.x.20.2, ip x.x.10.2 is a service interface:
> listen = udp:x.x.20.2:5060
> listen = udp:x.x.1.3:5060
> listen = udp:x.x.1.3:60000
> listen = tcp:x.x.20.2:5060
> listen = tcp:x.x.1.3:5060
> bin_listen = ip x.x.10.2:5061
> While some opensips modules trying to send some data to local network from x.x.20.2 (tm, drouting etc), opensips returns errors:
>   ERROR:tm:t_uac: no corresponding socket for af 2
>   ERROR:drouting:dr_prob_handler: unable to execute dialog
>   ERROR:core:get_out_socket: no socket found
> In routing script i seen same situation until i began use force_send_socket(x.x.20.2:5060) to manually route traffic through right interface. With this function data sends correctly.
> Can i do somesting to force correct socket for modules (like tm and drouting)?
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users

More information about the Users mailing list