Speed up your Internet browsing on Linux with a DNS Cache server

Most Linux distributions, unlike OpenSuSE, OS X and Windows, do not have a  DNS Cache service installed by default.Your computer will need to lookup a website’s IP address every time you visit it. The lookup request is passed on to the DNS server(s) specified in the /etc/resolv.conf file. It will take the server a few ms (milliseconds) at best to respond. It can take a ‘long’ time if your using a slow Internet connection (or a wireless LAN).

Caching DNS acts just like a regular DNS, from the users point of view. The service is configured to respond to lookup requests and return IP addresses. If the Caching DNS does not know the answer to the request, he will simply forward the request to the correct server and then forward the reply to you once it has been received.

So what’s the difference?

An Caching DNS holds a small database of recent requests, or so to speak. He will keep each entry in his database for a specified amount of time  ( more about TTL ). If the Caching DNS receives a requests for a entry currently in his database, he will respond to it instantly without contacting any other servers. If the Caching DNS is on your local computer, this will occur in 0 milliseconds.
You can check the responce time of your DNS server by running the following command:

dig google.com | grep “Query time”

Let me demonstrate this by running the command two times on two different targets and explain the output.

petur@petur-desktop:/etc$  dig google.com|grep “Query time”
;; Query time: 49 msec
petur@petur-desktop:/etc$  dig google.com|grep “Query time”
;; Query time: 51 msec

Look at the above output. 49 msec (milli seconds) and 51 msec. The small difference between the lookup time for the two requests indicates that the DNS server I’m using has the answer to the request in the cache. Google.com is after all a very popular destination and someone on my campus has probably visited it recently.

What about a site nobody on my campus is likely to visit? I’ll go for australian.jp

petur@petur-desktop:/etc$  dig australian.jp|grep “Query time”
;; Query time: 610 msec
petur@petur-desktop:/etc$  dig australian.jp|grep “Query time”
;; Query time: 46 msec

The first request took 610 msec, that’s because the DNS server I’m using didn’t know the answer to my request and had to contact the DNS in charge of australian.jp (which I guess is located somewhere in Japan).

Now, the second request took only 46 msec, that’s because the DNS I’m using has cached the request and does not have to contact the _Japanese_ server again any time too soon.

When the Caching DNS receives a lookup request, he will first check to see if he has the answer cached, if not he will contact the server responsible for the domain in question.

I would like to shave those 50 msec, by average, off each site I visit on the web.

I’ll show you how this can be done on Ubuntu Linux.

Begin by installing  dnsmasq  either from “Applications->Ubuntu Software Center” or by using the command  sudo apt-get install dnsmasq  from the console.

Next you’ll need the change the order of your DNS servers, do this by going to “System->Preferences->Network Connections”
Select the name of the connection you are using and click Edit…

Goto IPv4 Settings

If you have “Method: Manual”, put “127.0.0.1,” (without the quotation marks) in front of whatever it says in your “DNS servers:” field.

If you have “Method: Automatic(DHCP)” -> Change to “Automatic (DHCP) address only” and put “127.0.0.1,8.8.8.8″ in the “DNS servers:” field.

8.8.8.8 is Googles DNS server, you might want to replace this with the one provided by your ISP (Internet Service Provider).
Reboot the network-manager service by executing the command  sudo service network-manager restart from the command line.

You now have a DNS Caching service running on your computer.
Let me demonstrate the benefit:

petur@petur-desktop:/etc$  dig australian.jp|grep “Query time”
;; Query time: 610 msec
petur@petur-desktop:/etc$  dig australian.jp|grep “Query time”
;; Query time: 0 msec


Other Linux distrobutions:
1. Install dnsmasq
2. Put “nameserver 127.0.0.1″ at the top of your /etc/resolv.conf file
3. You might have to bring your interface down\up using ifconfig or ifdown\ifup

Questions or comments?

原文发布时间为:2011-03-28


本文来自云栖社区合作伙伴“Linux中国”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值