[OpenSIPS-Users] OpenSIPS mhomed=yes and shared IP address using corosync

Remco . remconl87 at gmail.com
Fri Nov 1 09:39:36 CET 2013


Hi all,

I have a clustered OpenSIPS setup (using corosync with a virtual IP
address). This has been working great over the last couple of years. I now
want to add an extra IP address to the boxes, again floating a VIP over
these interfaces. These interfaces will be used to communicate with PSTN
gateways. I noticed however upon enabling these interfaces, the drouting
module starts to ping the gateways using the wrong source address, i.e

1.1.1.1 = VIP on eth0
2.2.2.2 = VIP on eth1

OpenSIPS is configured to listen on the the two VIPs with a listen
directive.

According to the kernel's routing table, it should use 2.2.2.2 but it uses
1.1.1.1 which results in failure. As I understood, mhomed=yes should
achieve just this behavior by asking the kernel for the appropriate source
address on sending out a packet. However, when I enable the mhomed option,
OpenSIPS starts to complain about not having a socket to send out the
packets. I assume this is caused by the kernel returning the real IP from
the interfaces (first) instead of the VIPs.

Just because of the dynamic nature of the interface selection, I won't be
able to use force_send_socket().

I know this question has come up on the list on several occasions, but
nothing recent and I was still wondering if someone has a workaround or
solution for this. I can imagine when using OpenSIPS as a load-balancer
with two interfaces (in and out) you might encounter this problem as well
if you try to add high availability (in which you often cannot avoid the
Virtual IP scenario).

Thanks,
Remco.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20131101/1c11511d/attachment.htm>


More information about the Users mailing list