域名解析方式详述
本文主要用来讲解域名解析的三种方式,分别为:
dig查询dns解析
host命令
nslookup域名查询
一、dig查询dns解析
一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手。
如果是在debian下的话,只要装上dnsutils这个包就可以使用dig命令了。
最基本的使用方式就是
dig www.oolec.com
即查询域名的A记录,查询的dns服务器将采用系统配置的服务器,即/etc/resovle.conf 中的。
如果要查询其他类型的记录,比如MX,CNAME,NS,PTR等,只需将类型加在命令后面即可
dig www.oolec.com mx
dig www.oolec.com ns
此外,如果你是一个系统管理员,部署好了一台dns服务器之后想对它进行解析测试,就必须要显式指定待测试的dns服务器地址了,例如
dig @202.106.0.20 www.oolec.com a
默认情况下dig将采用udp协议进行查询,如果要采用tcp方式,可以加上 +tcp参数
dig www.oolec.com a +tcp
另外一个重要的功能是+trace参数,使用这个参数之后将显示从根域逐级查询的过程
dig www.oolec.com a +trace
比如,对本站域名www.linuxers.cn A记录的trace查询可以看到根域.,顶级域.cn,以及linuxers.cn的域名权威服务器的地址及其各自的返回结果,这样对于追踪dns解析中的问题有很大的帮助。
root@kali:~/Desktop# dig trace www.bing.com
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> trace www.bing.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56918
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;trace. IN A
;; Query time: 1 msec
;; SERVER: 192.168.241.2#53(192.168.241.2)
;; WHEN: Wed Oct 30 00:00:36 EDT 2019
;; MSG SIZE rcvd: 23
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18709
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.bing.com. IN A
;; ANSWER SECTION:
www.bing.com. 5 IN CNAME a-0001.a-afdentry.net.trafficmanager.net.
a-0001.a-afdentry.net.trafficmanager.net. 5 IN CNAME cn.cn-0001.cn-msedge.net.
cn.cn-0001.cn-msedge.net. 5 IN CNAME cn-0001.cn-msedge.net.
cn-0001.cn-msedge.net. 5 IN A 202.89.233.100
cn-0001.cn-msedge.net. 5 IN A 202.89.233.101
;; Query time: 5 msec
;; SERVER: 192.168.241.2#53(192.168.241.2)
;; WHEN: Wed Oct 30 00:00:36 EDT 2019
;; MSG SIZE rcvd: 165
二、host命令
host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。
2.1 语法
host(选项)(参数)
2.2 选项
-a 显示详细的DNS信息;
-c<类型> 指定查询类型,默认值为“IN“;
-C 查询指定主机的完整的SOA记录;
-r 在查询域名时,不使用递归的查询方式;
-t<类型> 指定查询的域名信息类型;
-v 显示指令执行的详细信息;
-w 如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间> 指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4 使用IPv4;
-6 使用IPv6.
2.3 参数
主机:指定要查询信息的主机信息。
2.4、示列
三、nslookup详解(name server lookup)( 域名查询)
nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令。主要用来诊断域名系统 (DNS) 基础结构的信息。Nslookup(name server lookup)( 域名查询):是一个用于查询 Internet域名信息或诊断DNS 服务器问题的工具.
使用nslookup的Linux版本和其他版本,使用者能找出和主机名或IP地址相联系的其他信息的位置,例如相关的邮件服务。nslookup 和一些 Unix 操作系统包含在一起,也包含在较后的Windows系统中。 从Windows XP到Windows 10中都可以在"命令提示符"中使用。nslookup查找一个IP地住址的更有限制的替代者是ping命令。
nslookup [-opt ...] # 使用默认服务器的交互模式 nslookup [-opt ...] - server # 使用 "server" 的交互模式 nslookup [-opt ...] host # 仅查找使用默认服务器的 "host" nslookup [-opt ...] host server # 仅查找使用 "server" 的 "host"
3.1、nslookup命令详解
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。 nslookup的用法相对来说还是蛮简单的,主要是下面的几个用法。
1 直接查询
这个可能大家用到最多,查询一个域名的A记录。
nslookup domain [dns-server]
如果没指定dns-server,用系统默认的dns服务器。下面是一个例子:
[root@localhost ~]# nslookup baidu.com Server: 10.30.7.177 Address: 10.30.7.177#53 Non-authoritative answer: Name: baidu.com Address: 123.125.114.144 Name: baidu.com Address: 111.13.101.208 Name: baidu.com Address: 180.149.132.47 Name: baidu.com Address: 220.181.57.217
2 查询其他记录
直接查询返回的是A记录,我们可以指定参数,查询其他记录,比如AAAA、MX等。
nslookup -qt=type domain [dns-server]
其中,type可以是以下这些类型:
- A 地址记录
- AAAA 地址记录
- AFSDB Andrew文件系统数据库服务器记录
- ATMA ATM地址记录
- CNAME 别名记录
- HINFO 硬件配置记录,包括CPU、操作系统信息
- ISDN 域名对应的ISDN号码
- MB 存放指定邮箱的服务器
- MG 邮件组记录
- MINFO 邮件组和邮箱的信息记录
- MR 改名的邮箱记录
- MX 邮件服务器记录
- NS 名字服务器记录
- PTR 反向记录
- RP 负责人记录
- RT 路由穿透记录
- SRV TCP服务器信息记录
- TXT 域名对应的文本信息
- X25 域名对应的X.25地址记录
例如:
[root@localhost ~]# nslookup -qt=mx baidu.com 8.8.8.8 *** Invalid option: qt=mx Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: baidu.com Address: 111.13.101.208 Name: baidu.com Address: 123.125.114.144 Name: baidu.com Address: 180.149.132.47 Name: baidu.com Address: 220.181.57.217
3 查询更具体的信息
查询语法:
nslookup –d [其他参数] domain [dns-server]
只要在查询的时候,加上-d参数,即可查询域名的缓存。