例说图解TCP/IP协议族--DNS篇(1)DNS协议基础

    如下图,是windows下网卡的配置界面,相信大家都有见过,除了基本的IP地址、子网掩码、网关以外,还有主DNS服务器、备DNS服务器需要配置。

    如果我们不涉及到域名相关的请求,通常是不需要配置DNS服务器的。有时候我们上网很慢,可能改下DNS服务器到另外一台就解决问题。而这些都涉及到互联网中很基础的一个协议,DNS协议。

 

1 初识DNS协议

(1)DNS协议是用来干嘛的

    相信大家都听说过DNS,大概都知道DNS就是用来告知每个域名对应的IP地址是多少。但这只是DNS的功能之一,很小的一个功能。

    这点用专业术语来说应该是叫作DNS的A记录,A记录即记录了一台主机的域名和IPv4地址的映射关系。记录主机的域名和IPv6地址的映射关系,那就是AAAA记录。

    除了以上的A和AAAA记录以外,DNS还有好多其他类型的记录,功能不一,例如SOA、NS、CNAME、DNAME、MX、SRV、TEXT等等。

(2)任何域名的解析都需要DNS处理吗

     如果只是简单的域名和IP地址的映射关系,我们完全可以用一个文件来记录,当客户端需要查找指定域名对应的IP地址(无论IPv4还是IPv6地址),优先查找此文件,在此文件没找到,再去向DNS服务器查找。

    而这个文件,我们称之为hosts文件,无论是Windows、还是Linux都存在这个文件,如下图所示。我们可以按照文件中的格式新增域名和IPv4/IPv6地址的映射关系。

Windows下
Linux下

(3)DNS协议与OSI模型

    DNS协议属于应用层协议,位于OSI七层模型的最高层,底层是传输层UDP协议(也可以是TCP协议),占用的端口是53/udp(和53/tcp),如下图所示。

 

2 DNS协议包的类型与报头

    DNS协议包的种类主要是两种,Query和Response,每个包里面的字段大同小异,如下图所示。

DNS包DNS包举例(wireshark解析)各个字段解释
DNS QueryTransaction ID:事务ID,用于区分一个完整的DNS会话
Flags:标志,指定该包是查询包还是响应包
Questions:
Answer RRs:
Authority RRs:
Additional RRs:
Queries:查询的内容
DNS ResponseAnswers:查询的响应值
Additional records:查询的附加值,非必需,看服务器

     DNS的常用记录

常用记录格式说明
SOA$ORIGIN crdc.cisco.com.
@               IN      SOA     @ admin.crdc.cisco.com (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

对应zone的相关信息,每个zone只能有1个SOA记录。

@: 表示zone的名字,如本例中的@表示【crdc.cisco.com.】。

在服务端的域名最后一定要加上点号(.)。

NS@              IN      NS     ns.crdc.cisco.com.zone下的DNS服务器的FQDN
MX@              IN      NS     mail.crdc.cisco.com.zone下的邮件服务器的FQDN
SRV_http._tcp.crdc.cisco.com.       IN      SRV     0       5       80        www.crdc.cisco.com.
_sip._tcp.crdc.cisco.com.        IN      SRV     0       5       5060    cucm.crdc.cisco.com.
_sip._udp.crdc.cisco.com.       IN      SRV     0       5       5060    cucm.crdc.cisco.com.
_ldap._tcp.crdc.cisco.com.      IN      SRV     0       5       389      dc.crdc.cisco.com
_imap._tcp.crdc.cisco.com.     IN      SRV     0       5       143      mail.crdc.cisco.com.
zone下的应用服务器的FQDN,例如SIP服务器、HTTP服务器
   
Ans.crdc.cisco.com.      IN      A           10.74.97.122zone下某台主机FQDN对应的IPv4地址
AAAAns.crdc.cisco.com.      IN      AAAA    2001:10:74:97::122zone下某台主机FQDN对应的IPv6地址
CNAME

ns.crdc.cisco.com       IN      CNAME   dns.crdc.cisco.com.

ns.crdc.cisco.com       IN      CNAME   dns.test.com.

zone下某台主机FQDN的别名(另一个FQDN)
   
PTR125.97.74.10.in-addr.arpa    IN    PTR    dc.crdc.cisco.com.反向zone下某台主机IPv4/IPv6地址对应的FQDN
NAPTER  
TEXT  
DNAME  

 

3 DNS常用工具

(1)nslookup

        nslookup是一个用来测试服务器各种记录是否配置正确的工具,在Windows和Linux下默认都已经安装好了,常用参数如下所示。

nslookup -type=A caowen-cucm-pub.crdc.cisco.com 10.74.97.125

10.74.97.125
     代表要查询的服务器,不写的话,会调用网卡配置文件上的DNS服务器

-type=A caowen-cucm-pub.crdc.cisco.com
     代表要查询该域名对应的IPv4地址,该域名是一台主机


还可以是
------------------------------------------------------
-type=AAAA caowen-cucm-pub.crdc.cisco.com
    代表要查询对象对应的IPv6地址,该对象是一台主机

-type=NS crdc.cisco.com
    代表要查询对象对应的NS记录(DNS服务器的域名),该对象是一个域的名称,不是域内的主机

-type=MX crdc.cisco.com
    代表要查询对象对应的MX记录(邮件服务器的域名),该对象是一个域的名称,不是域内的主机

-type=SRV crdc.cisco.com
    代表要查询对象对应的SRV记录(应用协议对应服务器的域名),该对象是一个域的名称,不是域内的主机

caowen-cucm-pub.crdc.cisco.com
    不带参数-type=“ ”,代表查询该对象的A/AAAA记录,该对象被当作一台主机

-type=X 10.74.97.123
    查询该IP地址对应的域名,即PTR记录查询(反向记录查询)

(2)ipconfig /displaydns

        Windows下查看DNS缓存的命令       

(3)ipconfig /flushdns

        Windows下清除DNS缓存的命令   

(4)dig

        该命令参数比较多,功能比较强大,在后面的高级课程会重点讲解。一般Linux下都默认安装,Windows没有安装,需要另外下载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值