在找工作面试的过程中,面试官非常喜欢考察基础知识,除了数据结构与算法之外,网络知识也是一个非常重要的考察对象。
而网络知识,通常是很抽象,不容易理解的,有很多同学就在这里裁了跟头。为了更好地通过面试,本文讲进行一次网络知识大扫盲,聊一聊网络知识最基本的DNS。
DNS是 Domain Name System 的缩写,也就是 域名解析系统,它的作用非常简单,就是根据域名查出对应的 IP地址。
你可以把它想象成一本巨大的电话本,比如当你要访问域名www.163.com,首先要通过DNS查出它的IP地址是112.48.162.8。
由于后面我会讲到 DNS 的解析过程,因此需要你对域名的层级有一些了解
根域名 :.root 或者 . ,通常是省略的顶级域名,如 .com,.cn 等次级域名,如 baidu.com 里的 baidu,这个是用户可以进行注册购买的主机域名,比如 baike.baidu.com 里的baike,这个是用户可分配的主机名.次级域名.顶级域名.根域名baike.baidu.com.root
咱们以访问 www.163.com 这个域名为例,来看一看当你访问 www.163.com 时,会发生哪些事:
先查找本地 DNS 缓存(自己的电脑上),有则返回,没有则进入下一步查看本地 hosts 文件有没有相应的映射记录,有则返回,没有则进入下一步向本地 DNS 服务器(一般都是你的网络接入服务器商提供,比如中国电信,中国移动)发送请求进行查询,本地DNS服务器收到请求后,会先查下自己的缓存记录,如果查到了直接返回就结束了,如果没有查到,本地DNS服务器就会向DNS的根域名服务器发起查询请求:请问老大, www.163.com 的ip是啥?根域名服务器收到请求后,看到这是个 .com 的域名,就回信说:这个域名是由 .com 老弟管理的,你去问他好了,这是.com老弟的联系方式(ip1)。本地 DNS 服务器接收到回信后,照着老大哥给的联系方式(ip1),马上给 .com 这个顶级域名服务器发起请求:请问 .com 大大,www.163.com 的ip 是啥?.com 顶级域名服务器接收到请求后,看到这是 163.com 的域名,就回信说:这个域名是 .163.com 老弟管理的,你就去问他就行了,这是他的联系方式(ip2)本地 DNS 服务器接收到回信后,按照前辈的指引(ip2),又向 .163.com 这个权威域名服务器发起请求:请问 163.com 大大,请问 www.163.com 的ip是啥?163.com 权威域名服务器接收到请求后,确认了是自己管理的域名,马上查了下自己的小本本,把 www.163.com 的ip告诉了 本地DNS服务器。本地DNS服务器接收到回信后,非常地开心,这下总算拿到了www.163.com的ip了,马上把这个消息告诉了要求查询的客户(就是你的电脑)。由于这个过程比较漫长,本地DNS服务器为了节省时间,也为了尽量不去打扰各位老大哥,就把这个查询结果偷偷地记在了自己的小本本上,方便下次有人来查询时,可以快速回应。总结起来就是三句话:
从”根域名服务器”查到”顶级域名服务器”的NS记录和A记录(IP地址)从”顶级域名服务器”查到”次级域名服务器”的NS记录和A记录(IP地址)从”次级域名服务器”查出”主机名”的IP地址上面的几个步骤里,可以看到有两个地方会缓存 DNS 的查询记录,有了缓存,在一定程度上会提高查询效率,但同时在准确率上会有所损失。
因此我们在配置 DNS 解析的时候,会有一个 TTL 参数(Time To Live),意思就是这个缓存可以存活多长时间,过了这个时间,本地 DNS 就会删除这条记录,删除了缓存后,你再访问,就要重新走一遍上面的流程,获取最新的地址。
当我们在阿里云买了一个域名后,可以配置我们主机域名解析规则,也就是 记录。
阿里云 域名云解析
常见的 DNS 记录类型如下
A:地址记录(Address),返回域名指向的IP地址。NS:域名服务器记录(Name Server),返回保存下 一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。CNAME:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转,详见下文。PTR:逆向查询记录(Pointer Record),只用于从IP地址查询域名,详见下文。后面我将使用 wireshark 抓取 DNS 的数据包,但是在开始之前 ,得先了解一下 DNS 的报文结构
事务 ID:DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该字段的值是相同的。通过它可以区分 DNS 应答报文是对哪个请求进行响应的。标志:DNS 报文中的标志字段。问题计数:DNS 查询请求的数目。回答资源记录数:DNS 响应的数目。权威名称服务器计数:权威名称服务器的数目。附加资源记录数:额外的记录数目(权威名称服务器对应 IP 地址的数目)。打开 Wireshark 后,使用 ping 163.com 来发起 DNS 解析请求,使用 DNS 关键字在Wireshark 过滤。
从抓取的报文整体来看,我们可以粗略获取几个信息
DNS 是应用层协议,传输层协议使用的是 UDPDNS 默认端口是 53请求和应答的报文的截图我放在了下面,接下来我将逐个分析。
请求和应答的事务ID应当是一个:0xd0d7
标志字段里的内容比较多,每个字段的含义如下:
QR(Response):查询请求/响应的标志信息。查询请求时,值为 0;响应时,值为 1。Opcode:操作码。其中,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。AA(Authoritative):授权应答,该字段在响应报文中有效。值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。TC(Truncated):表示是否被截断。值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。rcode(Reply code):返回码字段,表示响应的差错状态。当值为 0 时,表示没有错误;当值为 1 时,表示报文格式错误(Format error),服务器不能理解请求的报文;当值为 2 时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;当值为 3 时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;当值为 4 时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;当值为 5 时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。回答资源记录数,在应答包里为 2,说明返回了两条查询结果,你可以在 Answer 字段里看到。
权威名称服务器计数
附加资源记录数
应答的主要内容,这里返回两条结果,每条结果里的字段有
通过上面的讲解,我们都知道了,DNS 完成了一次域名到 IP 的映射查询,当你在访问 www.baidu.com 时,能正确返回给你 百度首页的 ip。
但如果此时 DNS 解析出现了一些问题,当你想要访问 www.baidu.com 时,却返回给你 www.google.com 的ip,这就是我们常说的 DNS 劫持。
与之容易混淆的有 HTTP 劫持。
你一定见过当你在访问 某个网站时,右下角也突然弹出了一个扎眼的广告弹窗。这就是 HTTP 劫持。
借助别人文章里的例子,它们俩的区别就好比是
DNS劫持是你想去机场的时候,把你给丢到火车站。HTTP劫持是你去机场途中,有人给你塞小广告。下面大概说几种DNS劫持方法:
攻击者通过某些手段使用户的计算机感染上木马病毒,或者恶意软件之后,恶意修改本地DNS配置,比如修改本地hosts文件,缓存等。
很多用户默认路由器的默认密码,攻击者可以侵入到路由管理员账号中,修改路由器的默认配置。
直接攻击DNS服务器,例如对DNS服务器进行DDOS攻击,可以是DNS服务器宕机,出现异常请求,还可以利用某些手段感染dns服务器的缓存,使给用户返回来的是恶意的ip地址。
dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。
通过 dig (参数:+trace)命令,我们可以看到上面描述的 DNS 解析的详细过程
从返回的结果,我们可以看得出几点信息:
我们的本地 DNS 服务器 ip 为 192.168.1.1,端口为53,你可以在 /etc/resolv.conf 里看到这个配置根域名服务器目前全球一共只有十三台,从a.root-servers.net. 到m.root-servers.net. ,它们对应的ip地址,已经内置在本地DNS服务器中。如果你只想看到结果,可以使用 +short 参数,可以直接返回 www.163.com 对应着哪几个ip。
你也可以加个 @ 参数 ,指定从某个 DNS 服务器进行查询。
如果你只想查看指定的记录类型:
host 命令 可以看作dig命令的简化版本,返回当前请求域名的各种记录。
whois命令用来查看域名的注册情况。
nslookup也是常用的一个查询 DNS 解析结果的工具
你也可以指定公网的域名服务器进行查询,比如常见的 114.114.114.114。
MacOS
$ sudo dscacheutil -flushcache$ sudo killall -HUP mDNSResponder
Windows
$ ipconfig /flushdns
Linux
# 使用NSCD的DNS缓存$ sudo /etc/init.d/nscd restart# 服务器或者路由器使用DNSMASQ$ sudo dnsmasq restart
很多朋友都在上找项目,有的朋友也被割过韭菜,因为做互联网的人没有谁是没被割过韭菜的,有的韭菜终有一天会茁壮成长,有的韭菜肯定会被无情的镰刀割到你怀疑人生。 韭菜就是被割的,你不割它会烂在地里。韭菜内心愤愤不平,继续辗转到下一块地再次茁壮生长,殊不知,山顶、山腰、山谷都可以割,而且镰刀更加锋利。...
相信大家都很熟悉平台盈利的逻辑。基本上开通了创作者身份后就可以发表作品了,有了播放量就有收益了。不过,这部分钱也不是那么容易拿到的。对于新手来说,最不可控的就是根本不知道自己发哪种视频,播放量才会高,所以很多新手做自媒体,基本上不到7天就放弃了。 那么有没有什么活动只要发布视频就能赚到钱的? 答...
在之前的文章中,作者和大家聊了一系列关于我国河北省各个城市区划形成的故事,例如石家庄市、保定市、邯郸市等等。今天,我们聊聊河北省的沧州市,沧州市经济发达、人口众多,属于河北省的第三 在之前的文章中,作者和大家聊了一系列关于我国河北省各个城市区划形成的故事,例如石家庄市、保定市、邯郸市等等。今天...
虽然很多人非常喜欢翡翠,但他们担心翡翠首饰的选择。翡翠作为最具东方魅力的首饰,一直以优雅典雅为标志。如果珠宝很差,很容易出国。今日来看看这些翡翠分配的忌讳,翡翠朋友在日常佩戴时一定 虽然很多人非常喜欢翡翠,但他们担心翡翠首饰的选择。翡翠作为最具东方魅力的首饰,一直以优雅典雅为标志。如果珠宝很差,很...
7码鞋子是中国的多少码在男鞋中代表中国的四十一码,在女鞋中代表三十八码。鞋子的尺码在各个国家都不相同,例如澳大利亚、欧洲、墨西哥、日本以及英国等众多国家表示鞋子尺码的方式也是不同的 7码鞋子是中国的多少码 在男鞋中代表中国的四十一码,在女鞋中代表三十八码。鞋子的尺码在各个国家都不相同,例...
很多消费者对电脑的知识不是很了解,然后对电脑的认知就是这个电脑运行速度快不快,如果电脑运行速度快的话,那么就觉得这台电脑的配置应该很高,还有就是电脑机箱的外观,如果机箱外观很酷炫的 很多消费者对电脑的知识不是很了解,然后对电脑的认知就是这个电脑运行速度快不快,如果电脑运行速度快的话,那么就觉得这台...
最近美国大选轰轰烈烈,新闻里总有白宫幕僚这个词出现,随着所追捧的候选人胜者为王,大选期间作为幕僚参与竞选团队的人也能够得到白宫里的一席之地,那么幕僚这个职位在中国古代又是什么发展路 最近美国大选轰轰烈烈,新闻里总有白宫幕僚这个词出现,随着所追捧的候选人胜者为王,大选期间作为幕僚参与竞选团队的人也能...
网站新手入行时,在接手一个网站项目的时候往往不知道怎么入手,可能大多数优化人员都会首先想到挖掘关键词,采集文章伪原创,布局外链等等一些SEO职能范畴之内的具体事务,这些仅仅属于在S 网站新手入行时,在接手一个网站项目的时候往往不知道怎么入手,可能大多数优化人员都会首先想到挖掘关键词,采集文章伪原创...
板栗是生活中比较常见的一种食物,它吃起来粉粉糯糯的,含有多种营养成分,适量食用对身体有一定好处。板栗一般要吃熟的,不建议吃生的,半生半熟的板栗也可以吃,但是不容易消化,可能会引起肠胃不适。红薯和螃蟹可以一起吃吗红薯和螃蟹 板栗是生活中比较常见的一种食物,它吃起来粉粉糯糯的,含有多种营养成分,适量食...
西瓜是生活中比较常见的一种水果,它含有多种营养成分,味道香甜可口,果肉鲜嫩多汁,很多人都喜欢吃。有些人吃西瓜会发现西瓜有酸味,这种可能是没有完全成熟,也可能是坏掉变质了,要看具体情况而定。西瓜有酸味正常吗不正常。1.如果 西瓜是生活中比较常见的一种水果,它含有多种营养成分,味道香甜可口,果肉鲜嫩多...
2019微单相机排行 微单相机销量排行? 微单作为目前相机市场最热门的机型,受到了消费者们的普遍关注。虽然手机拍摄性能越来越强,但是选购微单的也大有人在。今天我们就给大家带来了,京东商城微单销量排行榜TOP5。要知道在竞争激烈的微单市场要成为销量前五名的产品可不是容易事,必须具备很...
奥粒绒作为时下较为火热的面料之一,想必大家再逛直播间和小红书的时候都有它的推荐,但由于时下就冬天越来越近,很多友友都好奇奥粒绒冬天穿保暖吗,小面小编就和大家一起看看奥粒绒能穿到几度。奥粒绒冬天穿保暖吗奥粒绒的保暖性还是比 奥粒绒作为时下较为火热的面料之一,想必大家再逛直播间和小红书的时候都有它的推...
随着天气的变冷,很多友友都开始为自己置办加绒的衣服,而近期一种名为奥粒绒的面料便成了各大直播间的主推,不过因为在外观上看这个外套是毛茸茸的,所以奥粒绒穿着起球吗成了大家好奇的,下面小编就和大家一起看看奥粒绒穿着起球是不是 随着天气的变冷,很多友友都开始为自己置办加绒的衣服,而近期一种名为奥粒绒的面...
奥粒绒作为时下较为火热的面料之一,想必大家再逛直播间和小红书的时候都有它的推荐,但很多人在清洗该面料的衣物的时候却遇到有轻微缩水的问题,下面小编就和大家一起看看奥粒绒面料洗完缩水正常吗。奥粒绒面料洗完缩水正常吗奥粒绒面料 奥粒绒作为时下较为火热的面料之一,想必大家再逛直播间和小红书的时候都有它的推...
红薯是生活中比较常见的一种食物,它的吃法比较多,营养价值高,含有丰富的膳食纤维、矿物质以及其他微量元素等,很多人都会煮红薯吃。煮熟的红薯吃不完是可以放冰箱冷藏的,一般可以放三五天左右,具体看保存的方法。煮熟的红薯能放冰箱 红薯是生活中比较常见的一种食物,它的吃法比较多,营养价值高,含有丰富的膳食纤...