Integrate Google Public DNS with Google Search Results

3 points by belleville ↗ HN
I wonder if Google has implemented such feature: the top search results show the DNS-translated links. So whenever I click the top results, the DNS translation will be bypassed. As we know, many of the links might be first-time access. Such integration could speed up web access a lot.

It is something like the Gmail prefetching feature.

8 comments

[ 3.8 ms ] story [ 27.6 ms ] thread
I'm not sure what you're proposing. By DNS-translated links, do you mean IP-addressed URLs?

If that's what you're suggesting, it won't work. Many links need hostnames, because the same IP might be addressed as more than one different host (think load-balancing and VPS hosting) and those names resolve to completely different websites.

If that's not what you mean, maybe say how what you mean is different from that. I'm not sure what else could mean.

When I click any link from Google search results, my computer will perform a DNS translation locally. If Google has done it for me during my search, then it will definitely save some time for me.
How does Google send the DNS lookup result?

That's what I'm not understanding. It could alter the href, but then you lose any information from the hostname.

Is there some service I'm not aware of for passing DNS results back to the browser in the document? Something like that seems like it would make the user vulnerable, how does your browser know your local network doesn't have its own DNS server that blackholes advertising domains, etc.

I understand the why, but I don't see any potential answer for how. There is no standard way to "Slipstream" DNS resolution into an HTML document or HTTP response body that I know of. Nothing stopping Google from building this into Chrome, but they would have to break dozens of standards in order to do it.

Can google put the DNS results into the links directly while keeping the hostname as well? Since the IP address is fetched real-time, there won't be any load balancing issue.

It doesn't need to change the browser or anything else.

> Can google put the DNS results into the links directly while keeping the hostname as well?

No, that's the problem. They can't. Links have one target, an address of either a remote hostname or an IP address. The browser would need to change to accommodate passing them back separately, because that's not something that current browsers do.

You meant different objects on the same webpage. Load balancing for them will be different as you suggested. Is this really important? Load balancing for different clients can be achieved easily.
I mean in the sense that, primitive load balancing is implemented as Round-Robin in that, one DNS name maps to several IP addresses, and the client chooses one at random to ask to serve up the request. That is not the hard part here.

The problem is that a URL in an HREF has either an IP or a hostname, and there are more hostnames than IP addresses by some orders of magnitude. So, when running a web server, we will conventionally map more than one hostname to a single IP address, leading to several different hostnames that all have separate potentially unrelated content trees.

So, if Google will be pre-fetching DNS queries and passing the results onto clients, how? What I'm saying is, <a href="something", the form of links, and you have to set that href to something specific and concrete, and the browser is going to honor it and send the client request there. That's how web links work. You're suggesting the server should tell the browser what hostname to send in the server request (so the server knows what content to provide), but give it also (unchecked) a pre-calculated IP address to send the request to, so the client saves time looking up that result in DNS. How? And how should the browser client know to trust it?

You can't make the browser check if the mapping is valid, or you lose the speed benefit that you hoped to achieve. Also, browsers don't have a pathway to receive this information separately or out-of-band. So, where does it go in-band? The standards weren't written to pass this information apart from each other, the answer is that doing it that way would present a new threat vector and there is no place for it in any standard that exists. (Correct me if I am wrong.)

The load balancing or vpn won't be an issue. It basically moves the DNS query from the later link click time to the early search time. The local DNS server is also switched to Google public DNS.