|Re: [ecf-dev] [Discovery] Double Network Address and Remote Services
Hi Wim, On 9/26/2010 5:34 PM, Wim Jongman wrote:
Hi Scott, Yes, this is clear. Thanks for elaborating but I still think it is a bug.My real situation is this: I am connected to my companies VPN. This creates a subnet for me in the 172 network. However, I am also connected to my home 192 network. I have clients/consumers in the 172 network and I have clients/consumers in the 192 network.These clients/consumers do not need to see each other, nor can they, per your explanation.However, my host is free to communicate with either side.If my hosts tries to identify its own ip it does some lookup of its ip address. This lookup will either return the 172 or the 192 ip address.
Yes...as this machine is dual homed (as I understand from your note), it should have an IP address for each subnet.
So the wrong ip address is communicated to one side of the network.
Typically, a single ECF container instance is associated with a single host...as the container identity is unique (i.e. identifies a single host...on a single network). So if I'm understanding you correctly, it would be necessary to have a multiple host containers on your dual-homed system...one for host address 172, the other for host 192. Then they both could expose/distribute a remote service upon registration. For distribution, this would then make the remote service available on both networks. Note that this probably could be largely accomplished (for distribution) by defining a new IHostContainerFinder (i.e. other than the default) that 'knew' about the two containers (one for each network), and exposed the remote service on both of them automatically. Creating and using a custom IHostContainerFinder is easy to do. There is some docs for this here .
Network discovery is another matter, however. For apache zookeeper specifically, I don't know the behavior with dual-homed networks. I suppose zookeeper could also expose a single server on both networks...although I don't know if this is supported with current implementation (with composite discovery container?)
ECF/Discovery/R_OSGi needs to be smarter and compute the correct ip address for both sides of the network, depending on the client/consumers ip address/network.
In the case with multiple containers for distribution as described above, I suppose this would mean that given two different host container ids...e.g.
r-osgi://192.x.x.x:9278 and r-osgi://172.x.x.x:9278it would have to publish only the 192 one on the 192 network, and the 172 one on the 172 network. Again I don't know how zookeeper would/does handle this situation (I expect you already know well more than I do about that).
Back to the top