目录
一、DNS的介绍
DNS 域名解析协议,(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
1.1、域名的分类
域名由因特网域名与地址管理机构(ICANN,Internet Corporation for Assigned Names and Numbers)管理,这是为承担域名系统管理、IP地址分配、协议参数配置,以及主服务器系统管理等职能而设立的非盈利机构。ICANN为不同的国家或地区设置了相应的顶级域名,这些域名通常都由两个英文字母组成。例如:.uk代表英国、.fr代表法国、.jp代表日本。中国的顶级域名是.cn,.cn下的域名由CNNIC进行管理。
1.2、顶级类型域名
ICANN最初还定义了7个顶级类别域名,它们分别是.com、.top、.edu、.gov、.mil、.net、.org;.com、.top用于企业,.edu用于教育机构,.gov用于政府机构,.mil用于军事部门,.net用于互联网络及信息中心等,.org用于非盈利性组织。
ICANN又增加了两大类共7个顶级类别域名,分别是.aero、.biz、coop、.info、.museum、.name、.pro。其中,.aero、.coop、.museum是3个面向特定行业或群体的顶级域名:.aero代表航空运输业,.coop代表协作组织,.museum代表博物馆;.biz、.info、.name、.pro是4个面向通用的顶级域名:.biz表示商务,.name表示个人,.pro表示会计师、律师、医师等,.info则没有特定指向。
二、查询DNS
nslookup(Name Server Lookup)用于查询DNS记录,也是Linux系统比较常用的网络命令,通过nslookup命令,可以向DNS查询网站IP地址、域名服务器以及域名等信息。
2.1、获取网站的IP地址
win+R输入cmd进入windows命令行,输入ipconfig/flushdns然后回车,清除完本机的dns缓存。
#nslookup <URL>
典型输出如下:
2.2、查询域名服务器
现在使用nslookup命令查询域名服务器的域名记录信息,通常情况下一个域名会存在于多个域名服务器中,以进行数据备份。查询域名服务器,需要在nslookup命令后指定查询类型为ns,命令格式如下:
#nslookup -type=ns <URL>
查询daehub.com的域名信息输出如下:
2.3、查询MX记录
MX记录是DNS服务器特定用于存储邮件服务器信息的记录,这将决定由哪个邮件服务器来处理对应域名的电子邮件。邮件服务器是否可以正常收发互联网邮件,在很大程度上取决于DNS记录是否完整有效。
查询MX记录的方法同查询域名服务器的命令格式类似,在查询时指定查询类型为mx,格式如下:
#nslookup -type=mx <URL>
查询结果如下:
需要强调的是,如果邮件交换记录不存在,则查询不到对应的结果,那么这种邮件服务器外发的邮件基本会被认为是垃圾邮件而被对方拒收。
2.4、使用nslookup获取SOA记录
通过设置查询类型为soa,就可以获得域名的起始授权信息:
#nslookup -type=soa <URL>
本站的起始授权信息如下所示:
2.5、使用any参数获得DNS所有记录
如果想一次查看以上的所有结果,则可以将类型指定为any,就会将全部DNS记录显示出来:
#nslookup -type=any <URL>
事实上这里的any倒可以理解为all的意思。
2.6、查询反向DNS记录
反向DNS是指将IP地址和域名绑定,在查询某个IP地址时,DNS会记录它所对应的域名,这对于邮件服务器尤其重要,一些邮件服务器对于没有反向DNS记录的IP地址发来的邮件会直接拒收。可以使用如下命令试着查询一下某些IP地址是否存在反向DNS记录:
#nslookup <IP_ADDRESS>
由于国内的VPS厂商多不会提供反向DNS服务,所以本站的邮件服务器是放在境外的:
2.7、查询特定端口的DNS服务器
DNS默认使用TCP 53端口,而一些DNS服务器如果使用了其它端口,则需要在nslookup命令中通过port参数指定,不过实际情况应用的较少:
#nslookup -port=<PORT_NUMBER> <URL>