DNS解析

1、DNS解析

$ nslookup www.baidu.com
Server:        172.17.1.235
Address:    172.17.1.235#53 #port 53, local DNS 172.17.1.235

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 183.232.231.172
Name:    www.a.shifen.com
Address: 183.232.231.174

$ dig www.baidu.com #也可以用dig查看递归查找情况

; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47972
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        59    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    71    IN    A    183.232.231.174
www.a.shifen.com.    71    IN    A    183.232.231.172

;; AUTHORITY SECTION:
shifen.com.        61127    IN    NS    ns4.baidu.com.
shifen.com.        61127    IN    NS    dns.baidu.com.
shifen.com.        61127    IN    NS    ns3.baidu.com.
shifen.com.        61127    IN    NS    ns2.baidu.com.

;; ADDITIONAL SECTION:
dns.baidu.com.        25537    IN    A    202.108.22.220
ns2.baidu.com.        1807    IN    A    220.181.33.31
ns3.baidu.com.        22324    IN    A    112.80.248.64
ns4.baidu.com.        23390    IN    A    14.215.178.80

;; Query time: 1 msec #总计耗时1ms,很快
;; SERVER: 172.17.1.235#53(172.17.1.235)
;; WHEN: Wed Jun 19 09:58:52 CST 2019
;; MSG SIZE  rcvd: 237

$ dig +trace +nodnssec www.baidu.com

; <<>> DiG 9.10.6 <<>> +trace +nodnssec www.baidu.com
;; global options: +cmd
.            367863    IN    NS    e.root-servers.net.
.            367863    IN    NS    b.root-servers.net.

$ nslookup -debug www.baidu.com #打开debug模式跟踪,查看具体情况

$ cat /etc/resolv.conf #查看DNS配置,检查DNS是否配置

$ echo "nameserver 192.168.10.1" > /etc/resolv.conf #写入DNS

$ nslookup  www.baidu.com #再次查看下是否正常

假如正常了,看下耗时

$ time nslookup www.baidu.com

Server:        192.168.10.1
Address:    192.168.10.1#53

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 182.61.200.7
Name:    www.a.shifen.com
Address: 182.61.200.6


real    0m0.052s 
user    0m0.004s
sys    0m0.027s

假如解析不稳定,偶现超时失败情况, 考虑:1)DNS服务器本身不稳定 2)客户端到DNS服务器网络延时大 3)链路中网络设备丢包。

1)的情况,上面 192.168.10.1是我的DNS服务器,DNS异常可能会出现很多域名解析问题,这里我们假设DNS服务器是正常的。

2)的情况,本地到DNS延迟大还是有很大可能的,使用

$ ping -c3 172.17.1.235  #查看下时延和丢包情况

如果时延比较大,考虑换一个DNS。多次执行,发现时间不稳定,考虑加dnsmasq缓存服务,

$ /etc/init.d/dnsmasq start #开始缓存服务
 * Starting DNS forwarder and DHCP server dnsmasq                    [ OK ]

$ echo nameserver 127.0.0.1 > /etc/resolv.conf #更改DNS服务地址为本地回环地址

$  time nslookup www.xxx.com #多执行几次验证下,会看到第一次执行耗时长,之后都快很多。开启DNS缓存后,缓存服务会定时去更新DNS,这对大多数服务来说是可以容忍的。

2、DNS常见优化思路

DNS结果缓存:开启dnsmasq

DNS解析预存:在web应用中,不等用户点击页面上超链,浏览器在后台自动解析域名,把结果缓存。

HttpDNS取代DNS解析:移动应用防DNS劫持

基于DNS的全局负载均衡(GSLB):负载均衡和高可用,同时返回离用户最近的IP。

注:学习倪鹏飞老师linux性能优化课程笔记

你可能感兴趣的:(Linux)