[SR-Users] force_send_socket/$fs behaviour when binding to INADDR_ANY
Daniel-Constantin Mierla
miconda at gmail.com
Tue Aug 11 11:10:32 CEST 2015
Hello,
inaddr any is special as a single socket receiving all traffic, but then
it has its own limitations when attempting to send.
Kamailio is building the list of sockets at startup and use that at
runtime, so it is not possible to have a new socket added at runtime.
However, depending on what exactly you do, there can be variants at
ip/network layer. Keep adding new sockets to an application can become
inefficient, not matter how it is done.
So, as alternative, for example in the case of clients connecting via
vpn tunnels, the best solution is to have kamailio listening on a single
IP, then have masquerading of the tunnels to this ip. In other words,
the clients will look at being behind nat from sip server point of view.
The route to the IP of the sip server is pushed by th vpn client when
connecting. The overall system has really low overhead, given that is
practically ip forwarding.
That was the example with vpn, if you have other scenario, maybe you can
give more details in order to see if there are other solutions.
Cheers,
Daniel
On 10/08/15 23:34, Alex Balashov wrote:
> Hello,
>
> When binding Kamailio to 0.0.0.0, Kamailio no longer recognises any
> specific IP address homed on the system as being a "socket" for
> purposes of forcing traffic out of any specific interface (i.e.
> setting $fs), or any other purpose for which ingress and egress
> "sockets" are tracked (e.g. double RR).
>
> As I understand it, this is because Kamailio considers only addresses
> explicitly specified via the 'listen' core config directive to be
> valid "send socket" arguments. Kamailio _will_ accept addresses
> already attached to the interface if it is bound interface-wise, e.g.
>
> listen=eth1:5060
>
> but not when addresses are added to the interface without restarting
> the proxy:
>
> # ip addr add dev eth1 172.30.110.10/24
>
> Aug 10 17:31:35 centosity6 /usr/local/sbin/kamailio[28627]: WARNING:
> pv [pv_core.c:2285]: pv_set_force_sock(): no socket found to match
> [udp:172.30.110.10:5060]
>
> Is there any straightforward way to modify this behaviour, so that it
> would be possible to dynamically add addresses to existing physical
> interfaces and get Kamailio to utilise them as if they were bound at
> boot time?
>
> Thanks,
>
> -- Alex
>
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com
More information about the sr-users
mailing list