This post was written by Lingkai Kong, a Software Development Engineer on the Windows Home Server team in Shanghai, China. Lingkai has been with the team for over 3 years, and has contributed to every major Windows Home Server release. In this post, he describes an issue some customers have faced when their ISPs have adopted OpenDNS and similar services, and how we’ve worked to resolve those issues in Windows Home Server Power Pack 3.
Some users have reported that after their ISPs adopted OpenDNS for their home network they started having issues connecting to their Windows Home Server: the connector software cannot locate the server and it is impossible to join a new home computer to the home server!
The root cause behind this is the name resolution solution mechanism of OpenDNS does not work well with windows home server. When a home computer looks for resolving the IP address for a computer name (for example, your home server), it follows the steps below:
1. It looks up the HOSTS file in the system. If not found, going to step 2.
2. It consults the DNS server for the name. If not found, going to step 3.
3. It asks NETBIOS if there is a name exists in local network.
The home server connector software depends on step 3, because the Windows Home Server is located in the local network and shouldn’t be resolved by any DNS server. However it never has a chance to go to step 3 because OpenDNS will always respond ”yes” and point to an external IP in step 2. As a result, your connector software would try to connect to an external IP, which always results in failure.
In Windows Home Server Power Pack 3, the problem is addressed and resolved. The solution is simple: the connector service running on the home computer updates its HOSTS file, adding an entry for the Windows Home Server in the network. The IP address in the entry is what windows home server announces via UPnP broadcast. The workflow is as follows:
1. Connector software gets the home server IP from UPnP.
2. Connector software tries to resolve the home server’s name via DNS name resolution.
3. If the IP from UPnP matches the IP from DNS name resolution, it’s taken as the real IP address of the home server.
4. If they don’t match, connector software knows there is potentially an OpenDNS problem in the network. It will update the HOSTS file on the home computer by adding the home server entry (with the IP from UPnP) in this case.
Looking at the steps above, there is a question though: why doesn’t the client just connect to the server by the IP it gets from UPnP? In most cases this will work, but unfortunately in scenarios related with Windows Home Server’s certificate, it will not work because certificates are bound with computer names instead of IP addresses.
Power Pack 3 does take security consideration into the solution. You don’t need to worry about messing the HOSTS file being edited. Unless there is a problem, Windows Home Server will not touch HOSTS file. The origin HOSTS file is kept as backup. If you uninstall the connector software all the windows home server entries in the HOSTS file will be removed.
Now with Power Pack 3, everyone will have no problem using OpenDNS with their home server.
For further support and questions, you can visit the Windows Home Server forum: www.serverplayground.com