[Opensim-dev] DNS lookup and caching
Shaun T. Erickson
ste at smxy.org
Wed Mar 18 20:47:43 UTC 2015
Michael,
Did you ever pursue this effort? I was very excited when it was brought
up, as eliminating the need for NAT Loopback would be immensely useful
to many folks.
-ste
On 12/22/14 11:22 AM, Michael Heilmann wrote:
> I understand. I am performing my own investigation on address passing
> in Opensimulator before narrowing down any approach. The extra
> addresses in ExternalHostName that you mentioned seems possible, I'll
> refer to it as option 1.
>
> option 2:
> It crossed my mind that InternalAddress may be able to hold that
> information, as it functionally aligns with addressability on internal
> networks. However, this could cause problems if a region is listening
> on two distinct internal networks on two separate NICs.
>
> option 3:
> RFC 1918 defines address spaces for internal networks, so it may be
> simpler to trust the 10.x.x.x/172.16.x.x-172.31.x.x/192.168.x.x
> networks to be internal if they appear. The catch would be if a
> region is listening to separate internal networks on separate NICs,
> which NIC address should be returned? Would it be feasible to detect
> the internal network address that the connection is made through, and
> use that address? This seems the most elegant from a networking
> perspective, but Opensimulator messages are not generated in the
> clientStack, and I am not attracted to modifying packed messages on
> their way out the door.
>
> A fourth option:
> Instead of overriding the internal address/external host name
> functionality, have this new functionality override any address when a
> client appears on an internal network, and respond with the network ip
> address that the host machine is using on that local network. This
> functionality would then not always be on, but be configured through
> an ini file flag. This would allow for address/mask definition
> without affecting the current addressability.
>
> So far I have noticed that typically where a message is generated and
> packed, that there is a UUID identifying the client/Avatar in
> question. I wonder if some singleton lookup object could house the
> connection types, and be queried where these messages are generated.
>
> Any other ideas, or changes to these are welcome.
>
> Michael Heilmann
> Research Associate
> Institute for Simulation and Training
> University of Central Florida
>
> On 12/19/2014 04:34 PM, Justin Clark-Casey wrote:
>> The 6-8 week estimate was based on a quick plunge through the code to
>> give an estimate to the client I had at the time.
>> I didn't do any actual work so unfortunately I have no detailed
>> design and I can't guarantee this would work.
>>
>> My initial thought was to have some syntax in the ExternalHostName
>> field that could allow two addresses and specify when
>> each would be used. For example, perhaps
>>
>> ExternalHostName = 192.168.1.2:192.168.1.0/24;63.3.19.155
>>
>> to specify that all requests originating from the 192.168.1.0/24
>> subnet would be served the local IP 192.168.1.2 but all
>> others would receive 63.3.19.155. One requirement for any scheme is
>> that it is backward compatible (i.e. just a single
>> IP address/FQDN will behave as it does now).
>>
>> This then needs to flow throughout OpenSimulator so that at the
>> crucial UDP points (login/entity transfer) one will
>> serve back the correct address in response to a client request. I
>> expect this data will have to be stored in the
>> Regions db table which might require an expansion of the current
>> varchar(64) type for serverIP.
>>
>> Trying to match this to all the HTTP parts where an address is
>> separately specified would be a massive pain but
>> hopefully is completely unnecessary, as one can give FQDNs at those
>> points which are resolved dynamically (I think!).
>>
>> The usual practice for code submission is to create a patch and then
>> put it on the Mantis database in "Patch Included"
>> state, as described at [1]. It is then assessed by a core
>> developer(s) and included or feedback given as appropriate.
>> In this case, though, I would also like to see some feature proposal
>> doc [2] before a patch, if only to see what the
>> proposed config format is and catch any early problems. Also, this
>> is the kind of significant feature where I think we
>> would want to have see a contribution agreement, which core and other
>> developers have done. More details at [3].
>>
>> I'm very happy to keep discussing this on this list. A proposal or
>> even a patch doesn't need to be complete before it's
>> public. In fact, I'd much prefer to discuss issues as they come up
>> so that myself and other people on this list can
>> identify problems early and even point out if there are basic issues
>> with the idea of serving different IP addresses for
>> UDP to different clients based on their requesting IP.
>>
>> [1] http://opensimulator.org/wiki/Submitting_code_to_OpenSim
>> [2] http://opensimulator.org/wiki/Feature_Proposals
>> [3] http://opensimulator.org/wiki/Contributions_Policy
>>
>>
>>
>> On 18/12/14 14:07, Michael Heilmann wrote:
>>> Justin
>>>
>>> The inability to pass a FQDN to the client is interesting, I did not
>>> see that.
>>>
>>> Doug and I discussed our level of interest in this functionality,
>>> and your solution. I will begin work to explore and
>>> implement your solution immediately. As I am not a core developer,
>>> and in fact this would be my first contribution to
>>> opensim, I may need some guidance on your normal code submission
>>> practices. We (MOSES) have our own git clone of
>>> opensim master on github that I will be working out of.
>>>
>>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
More information about the Opensim-dev
mailing list