分享一下自己在使用计网: 自顶向下这本书课后习题时的一些经验

以下命令会在 Mac (Linux适用) 和 Windows 下同时运行,或许能帮你解决一些疑惑

先做个简单的介绍吧,nslookup (全称 name server lookup) ,是一个在命令行界面下的网络工具,它有两种模式:交互 & 非交互,进入交互模式在命令行界面直接输入nslookup按回车,非交互模式则是后面跟上查询的域名或者IP地址按回车。一般来说,非交互模式适用于简单的单次查询,若需要多次查询,则交互模式更加适合,例如计网第七版第二章的课后习题p19 (单纯举例子,没有书不影响接下来的阅读),从根服务器进行迭代查询。

RR (Resource Records) – 来自WIKI百科以及计算机网络: 自顶向下(7th)

资源记录(RR)是包含了下列字段的4元组:

(Name, Value, Type, TTL)

  • 主机记录(A记录):RFC 1035 定义,A记录是用于名称解析的重要记录,提供标准的主机名到IP的地址映射。
  • 别名记录(CNAME记录): RFC 1035 定义,向查询的主机提供主机名对应的规范主机名。
  • 域名服务器记录(NS记录) :用来指定该域名由哪个DNS服务器来进行解析。 您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,NS记录返回域中主机IP地址的权威DNS服务器的主机名。
  • 邮件交换记录(MX记录):返回别名为Name对应的邮件服务器的规范主机名。

上述表述总感觉略显抽象,引用中科大郑老师的PPT内容以做补充

PS: 老师在b站上有分享视频,讲的非常的棒

这里仅介绍常见的一部分记录类型,如果在使用当中有其他的需求,可以到 DNS Records和List of DNS record types–WIKI上查看,非常的全面。

nslookup

语法格式:

nslookup –option1 –option2 host-to-find dns-server

非交互模式

非交互模式下每次查询需要输入完整的命令和参数,以baidu.com为例

PS: nslookup 的查询在不指定参数的情况下,默认查询的类型为A。

nslookup baidu.com

下图为运行效果,左侧是 Mac 端,右侧是 Windows,Linux 呈现效果基本与 Mac 一致。结果的介绍会放在下文的交互模式部分,之后的演示大部分会在交互模式的状态下进行。

交互模式

在命令行下输入

nslookup
baidu.com

可以看到进入交互模式后不再需要输入完整的命令便可以进行查询,并且可以连续的进行查询(友情提示Ctrl+C或者Cmd+C退出)

Mac 和 Windows 中命令的反馈结果有一点不同,不过并不影响结果

输出部分:

  • 最上面的 Server 和 Address 是该词查询的 DNS 服务器。可以自己指定,也可以默认,之后会说到。
  • 默认情况下 DNS 服务器的端口为53
  • 非权威应答(Non-authoritative answer)意味着answer来自于其他服务器的缓存,而不是权威的Baidu DNS服务器。缓存会根据 ttl(Time to Live)的值定时的进行更新。这个链接或许对你有所帮助: What is the meaning of the non-authoritative-answer?
  • 注意到,在对google.com进行查询时,Mac 返回的结果并没有非权威服务器提示,而Windows下的命令却提示了,这是因为 8.8.8.8 这个 DNS 服务器正是谷歌的权威名字服务器,可以使用nslookup -ty=ptr 8.8.8.8验证,ptr也是一种记录类型,可以用进行反向DNS解析(Reverse DNS Lookup),拓展链接: reverse-dns-lookup

If a hostname/IP address pair is cached in a DNS server and another query arrives to the DNS server for the same hostname, the DNS server can provide the desired IP address, even if it is not authoritative for the hostname. Because hosts and mappings between hostnames and IP addresses are by no means permanent, DNS servers discard cached information after a period of time (often set to two days).

PS: 查询返回的多个结果均正确,不妨在你的浏览器用默认的80号端口试着访问一下,以第一个返回的百度网站为例,39.156.69.79:80

拓展: PTR 反向DNS解析(8.8.8.8)

nslookup -ty=ptr 8.8.8.8

帮助界面

或许提前看看命令的帮助界面会非常的有帮助

Mac 下输入man nslookup | less,使用空格往下翻页,b往上翻页,q退出

man nslookup | less

Windows下有两种,一种是直接输入nslookup/?,还有一种是在交互模式下输入help或者?

nslookup/?

Windows 给出的命令为通用命令,Mac/Linux 可用于借鉴

关于 querytype 和 type 的小疑惑

在一开始上手nslookup时,看了一些CSDN的文章,其中有一篇混合了-querytype -type 使用 : )

当时看的我有些疑惑,直到我查看了命令的帮助手册:

-querytype-type 的效用一致,可以简写为 -q-ty,其在不指定类型的情况下默认查询类型为 A

设置查询类型

  • 非交互模式: nslookup -ty=类型 name
  • 交互模式: set ty=类型

先来看看之前提到的 NS 类型

NS(Nameserver DNS record)

查找权威名字服务器

If Type=NS , then Name is a domain (such as foo.com ) and Value is the hostname of an authoritative DNS server that knows how to obtain the IP addresses for hosts in the domain.This record is used to route DNS queries further along in the query chain. As an example, ( foo.com , dns.foo.com , NS) is a Type NS record.

nslookup
set ty=NS

PS: 交互模式下的 set 命令可以更改影响查找的状态信息,不仅用于记录类型的变更,使用set all可以查看常用选项的当前值以及当前默认的服务器和主机信息,注意,DNS 服务器不能通过 set 指定

接下来以baidu.com为出发点,来看看对应的权威名字服务器

Q1:哪个才是baidu.com的权威DNS服务器?请用 “name, value” 格式描述一下 NS 记录的返回内容

所有问题答案会在文章末尾给出

拓展: dig 命令

如果你的操作系统是 Mac/Linux,不妨尝试一下dig baidu.com ns,会对结果有个更直观的感触

其中21599为 TTL,即 DNS 缓存刷新时间,单位为 s ,NS 就是这次查询的类型。

A(查看 IP 地址)

If Type=A , then Name is a hostname and Value is the IP address for the hostname. Thus, a Type A record provides the standard hostname-to-IP address mapping. As an example, ( relay1.bar.foo.com , 145.37.93.126, A) is a Type A record.

用以下命令(交互模式下)指定dns.baidu.combaidu.com执行 type=A 的查询来看看结果与最开始有什么不同

server dns.baidu.com
set ty=A
baidu.com

发现了吗,此时并没有提示非权威应答(Non-authoritative answer),不妨思考一下以下两个问题

Q2:A 记录的内容是什么?用 “name, value” 格式回答其中之一

Q3:现在的这次查询和第一次有什么区别?


更新:虚拟机过期了,故只用 Mac 的终端进行展示,不过命令其实是互通的。

MX(Mail eXchange record)

A mail exchanger record (MX record) specifies the mail server responsible for accepting email messages on behalf of a domain name. It is a resource record in the Domain Name System (DNS). It is possible to configure several MX records, typically pointing to an array of mail servers for load balancing and redundancy.

查找host-to-find域的邮件服务器,

熟悉的 SMTP(Simple Mail Transfer Protocol) (Ps:smtp并非一定是邮件服务器名字的组成部分)。

CNAME(Canonical Name record)

CNAME记录将当前 hostname 映射到另一个 hostname,相应的记录 (name, value) 中的 name 对应的是 value 的别名:

问题答案

S1: 返回的 ns2.baidu.com ns7.baidu.com dns.baidu.com ns4.baidu.com ns3.baidu.com皆为 baidu.com 的权威 DNS 服务器。

以 dns.baidu.com 为例,NS 记录的内容: (baidu.com, dns.baidu.com)

S2: baidu.com的 ip 地址,(baidu.com, 220.181.38.148)

S3: 该次查询指定了 baidu.com 的权威DNS服务器

推荐阅读链接

nslookup 入门

十个常用命令

nslookup: Here’s how the useful DNS check works

what is meaning of non-authoritative answer

reverse-dns-lookup

dig 拓展

相关介绍有空再做

how-to-use-dig

dig 命令大全

域名系统-Wiki

nslookup 入门命令详解相关推荐

  1. Linux Shell脚本入门教程系列之(八)Shell printf命令详解

    本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...

  2. nslookup命令详解和实战例子(全)

    nslookup命令详解和实战例子 nslookup 主要用来诊断域名系统 (DNS) 基础结构的信息.查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题. 1. 查询域名解析地址 ...

  3. nslookup指定服务器是什么命令,nslookup命令详解_nslookup命令指定dns

    nslookup命令作用是用于查询dns解析域名记录,一般我们使用都是通过此命令可以检测DNS是否正常或者有时候我们把域名A记录更改的ip址,通常更改A记录需要一定的时间才生效,我们可以通过此命令解析 ...

  4. ping命令详解 ping命令入门详解

    在这个时代,科技越来越发达,网络已经越来越成为人们不可缺少的一部分.计算机也已经是很多学校的课程了,因为计算机技术是非常有技术性的专业,它其中涉及到很多专业知识,需要通过学习才能掌握.今日小编就为大家 ...

  5. updater-script命令详解教你写刷机脚本

    updater-script命令详解,刷机脚本怎么写,这些问题都也算是安卓的入门知识了,今天就和大家讲解一下,讲解人是深度论坛的Seeyou,如果你想学习更多ROM制作安卓开发方面的知识,欢迎加入深度 ...

  6. ARP命令详解--网络命令详解二

    显示和修改"地址解析协议 (ARP)"缓存中的项目.ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址.计算机上安装的每一个以太网或令牌环 ...

  7. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

  8. linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  9. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令

    点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...

最新文章

  1. xshell 家庭/学校 免费教育版下载
  2. 428 Setup MySQL + - 改
  3. 怎么确定迭代器后面还有至少两个值_如何理解Python中的可迭代对象、迭代器和生成器
  4. 【Python基础】Python 打基础一定要吃透这 5 个内置函数
  5. linux libfcmain.so,BabyLinux制作过程详解
  6. iOS之深入解析如何使用Block实现委托方法
  7. Windows驱动—VS2010+WDK配置驱动开发环境
  8. 深入理解Magento – 第七章 – 自定义Magento系统配置
  9. Linux虚拟化KVM-Qemu分析(八)之virtio初探
  10. 《Java开发实战经典》 —— 视频列表
  11. android 修复工具下载,安卓数据恢复软件(FonePaw for Android)
  12. java wifi开发教程_WiFi技术
  13. 重装系统后开机启动项菜单如何删除
  14. DH加密通信python实现
  15. 资本寒冬之下的聚美优品私有化
  16. 10种食物 让你快乐每一天
  17. 金银岛(信息学奥赛一本通 - T1225)
  18. 一位阿里导师给大学生的忠告
  19. 王半仙儿的日记-0004
  20. nginx upstream中长连接池的维护

热门文章

  1. Web Services:惊世未了缘
  2. Matlab figure去白边
  3. python实现用户输入用户名和密码、当用户名为seven_【Python基础】练习题
  4. 计算机图形学在现实中的应用,计算机图形学在实际中的应用
  5. 分销小程序开发|分销小程序怎么设计动态分销?
  6. chrom添加身份验证器authenticator插件
  7. DIV布局——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品
  8. Vue在浏览器报错Uncaught Error: Cannot find module ‘[object Object]‘
  9. python爬虫实战技巧保盈_自学Python十 爬虫实战三(美女福利续)
  10. 迄今为止最全的前端监控体系搭建篇(长文预警)