On Nov 27, 2009 at 13:49, Marius Zbihlei Marius.Zbihlei@1and1.ro wrote:
Sorry for top-posting, but my stupid web email client has no way to work with replies(OWA I am looking at you)
I also thought at the caching solution and for me it seems it doesnt't work. We have this common setup
Customer ----> Internet ------> Proxy(stateless) -----> Registrar
The proxy has 2 interfaces (mhomed active) and the Registrar is in the same subnet (private) with the proxy.
When an REGISTER comes from a client it reaches the multihomed Proxy on the external interface, then it goes onto the internal interface and then to the register. We can cache here the (internal iface, Registrar) pair , but when when a reply from a Registrar comes in, the proxy can't know on what interface to send the reply back to the customer so it must do a socket()/connect()/getsockbyname(). Multiply this by let's say 300 k customers and caching for me doesn't sound that good. The same problem applies for INVITES and such.
It would take 16 (64 bit ipv4) or 28 bytes (64 bit ipv6) per cached ip (using something similar with the blacklist). 300k * 28 => 8.5 Mb if all of them use ipv6.
For 1 milion addresses => 30Mb memory, which is not so much
I will continue to work on the patch. Thang you Andrei for the idea to register get_out_socket from a module.
Andrei