这系列文章为计算机网络理论的学习笔记,学习笔记基于老师给的的PPT、他人学习笔记和维基百科、百度百科等一系列权威资料。学习笔记仅个人学习用,便于记录和复习,无广泛传播之意,若有侵权,请联系我删除。欢迎各位大佬指正和交流。
1 DNS
域名系统(Domain Name System)是因特网的一项核心服务,它是一个将域名和IP地址相互映射的分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
DNS就是把域名解析为IP地址的协议,来提供我们上网,我们能够上网也是因为找到对应的IP地址。
1.1 DNS介绍
- DNS系统的作用
- 提供了主机名字和IP地址间的相互转换。
- DNS系统的模式
- 采用客户端/服务器模式。(TCP/IP
- DNS系统的结构
- 是一个具有树状层次结构的,联机分布式数据库系统。
1.2 DNS域名解析原理
DNS系统采用客户端/服务器,使用的传输层协议为TCP或UDP,服务器端口号53。
域名解析工作是通过调用服务器上的解析器软件完成的。
DNS域名解析按照域名空间的分层树状结构自顶至下进行。
1.3 DNS域名解析完整过程
在浏览器中输入域名后,浏览器会向 DNS 服务器发送 DNS 请求,获取指定域名的 IP 地址。DNS 服务器收到请求包后,会发送响应包,返回对应的 IP 地址给浏览器。浏览器根据响应包中的 IP 地址,访问对应的网站。
分析上图域名解析的流程:
① DNS 客户端通过浏览器访问域名 www.h3c.com.cn 的网站,向本地域名服务器发起查询该域名的 IP 地址的 DNS 请求。(本地域名服务器首先会查询缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地域名服务器还要向根域名服务器进行查询。
② 本地域名服务器向根域名服务器发送 DNS 请求,请求域名为 www.h3c.com.cn 的 IP 地址。
③ 根域名服务器没有查询到记录该域名及 IP 地址的对应关系。但会告诉本地域名服务器,可以到 .cn域名服务器上继续查询,并告知.cn域名服务器地址。
④ 本地域名服务器向 .cn 域名服务器发送 DNS 请求,请求域名 www.h3c.com.cn 的 IP 地址。
⑤ .cn 域名服务器收到请求后,不会直接返回对应关系,而是告诉本地域名服务器,该域名可以在 com.cn 域名服务器上进行解析获取 IP 地址,并告知 com.cn 域名服务器地址。
⑥ 本地域名服务器向 .com.cn 域名服务器发送 DNS 请求,请求域名 www.h3c.com.cn 的 IP 地址。
⑦ .com.cn 域名服务器收到请求后,不会直接返回该域名和 IP 地址的对应关系,而是告诉本地域名服务器,该域名可以在 h3c.com.cn 域名服务器上进行解析获取 IP 地址,并告知 h3c.com.cn 域名服务器地址。
⑧ 本地域名服务器向 h3c.com.cn 域名服务器发送 DNS 请求,请求域名ww.h3c.com.cn 的 IP 地址。
⑨ h3c.com.cn 域名服务器收到请求后,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将IP地址返回给本地域名服务器。
⑩ 本地域名服务器将获取到与域名对应的 IP 地址返回给 DNS 客户端,并且将域名和 IP 地址的对应关系保存在缓存表中,以备下次别的用户查询时使用。
1.4 DNS查询方式
参考学习来自: 吴悟无的DNS查询过程
1.4.1 Hosts文件
Hosts文件是以静态映射的方式提供IP地址与主机名的对照表,类似ARP表。(ARP表是动态的,IP地址与MAC地址的对照)
- Hosts文件记录了 主机名和IP地址 的对应信息。
- Hosts文件是 主机本地文件 。
1.4.2 递归查询
若DNS服务器支持递归查询,那么当它接收到递归查询请求后,它将负责把最终的查询结果返回请求发送方。
即使执行递归查询的DNS服务器无法从本地数据库返回查询结果,它也必须查询其他的DNS服务器,直到得到确认的查询结果。(一定会返回一个确认的查询结果)
一般客户机与本地DNS域名服务器之间的查询交互采用的就是递归查询方式。
1.4.3 迭代查询
DNS服务器接收到迭代查询请求后,如果无法从本地数据库返回查询结果,它会返回一个可能知道查询结果的DNS服务器地址给请求者,由请求者自行查询该DNS服务器,以此类推,请求者最终将得到查询结果。(返回可能地址给请求者自行查询)
一般本地域名服务器发送至根域名服务器的查询采用的就是迭代查询。
1.4.4 反向查询
- DNS反向查询允许DNS客户端根据已知的IP地址查找主机所对应的域名。
- 因特网域名树中设立了一个特殊的 in-addr.arpa 反向查询域用于反向查询。
1.4.5 查询过程
以下各步骤中,找到目标地址 马上return,找不到会执行下一步。
- 在Hosts静态文件、DNS解析器缓存中查找某主机的ip地址。
- DNS本地服务器(即域服务器)查找(即在区域服务器、服务器缓存中查找)。
- 根据‘根提示文件’向负责顶级域‘.com’的根DNS服务器查询。
- 根DNS服务器直接将其区域DNS服务器的ip地址返回给本地服务器。
- 本地DNS服务器将结果返回给请求的主机。
1.5 常见大型服务商对公共DNS
1. 114 DNS
纯净 无劫持 无需再忍受被强扭去看广告或粗俗网站之痛苦:
服务ip为:114.114.114.114 和 114.114.115.115
拦截 钓鱼病毒木马网站 增强网银、证券、购物、游戏、隐私信息安全:
服务ip为:114.114.114.119 和 114.114.115.119
学校或家长可选拦截 色情网站 保护少年儿童免受网络色情内容的毒害:
服务ip为:114.114.114.110 和 114.114.115.110
2. 阿里DNS
服务ip为:223.5.5.5和223.6.6.6 阿里巴巴的公共DNS---AliDNS
作为国内最大的互联网基础服务提供商,阿里巴巴在多年优秀技术的基础上,通过提供性能优异的公共DNS服务,为广大互联网用户提供最可靠的递归解决方案。
AliDNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。
阿里DNS于2019年支持ipv6DNS,IPv6:2400:3200::1和2400:3200:baba::1
3. 百度DNS
服务IP为:180.76.76.76
百度公共DNS是百度系统部推出的递归DNS解析服务。
4. 360 DNS
服务ip为(运营商不同首选的ip不同):
1. 电信:首选:101.226.4.6
2. 联通:首选:123.125.81.6
3. 移动:首选:101.226.4.6
4. 铁通:首选:101.226.4.6
360推出公共DNS解析服务是为了让网上冲浪更加稳定、快速、安全;为家庭拦截钓鱼网站,过滤非法网站,建立一个绿色健康的网上环境;为域名拼写自动纠错, 让上网更方便。
5. Google DNS
服务ip为:8.8.8.8和8.8.4.4
Google推出免费DNS服务的主要目的是为了改进网络浏览速度、改善网络用户的浏览体验。
1.6 H3C设备DNS功能实现
- 静态域名解析
- 手工建立域名和IP地址之间的对应关系。
- 动态域名解析
- 由DNS域名服务器完成解析。
- DNS代理
- 设备对DNS解析进行中继。
配置静态域名解析表中主机名和对应地址
[Router] dns domain domain-name
DNS代理功能
[Router] dns server ip-address
显示静态域名解析表
2 文件传输协议
- 文件传输协议能够提供在远端主机和本地服务器之间传输文件的服务。
- FTP 和 TFTP 是最常用的文件传输协议。
- 可前往:04-FTP和TFTP配置-新华三集团-H3C 进行详细学习。
2.1 FTP协议
文件传输协议(File Transfer Protocol,FTP),FTP协议是互联网上广泛使用的文件传输协议。FTP协议工作在 OSI 模型的第七层,TCP 模型的第四层——应用层,是客户端/服务器模式,基于 TCP 传输而不是 UDP 。
FTP 的目标是 提高文件的共享性 ,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。但是 FTP 却有着极高的延时,使得第一次接收需求数据的时间非常长。
2.1.1 FTP采用双TCP连接方式
- 控制连接:
- 控制连接使用TCP端口号 21。
- 用于在FTP客户端和FTP服务器之间传输FTP控制命令及命令执行信息。
- 控制连接在整个 FTP 会话期间一直保持打开。
- 数据连接:
- 数据连接使用TCP端口号 20。
- 用于传输数据,包括数据上传、下载、文件列表发送等。
- 数据传输结束后数据连接将终止。
2.1.2 FTP有两种文件传输方式
- ASCII传输方式(默认模式):
- 本地文件转换成标准的ASCII码再传输。
- 适用于传输文本文件。
- 二进制传输模式(图像文件传输模式):
- 文件按照比特流的方式进行传输。
- 适用于传送程序文件。
2.1.3 FTP采用两种数据传输方式( 支持的模式 )
- Standard (PORT方式,主动方式):
- 建立数据连接时由FTP服务器发起连接请求,当FTP客户端处于防火墙后时不适用。(例如:FTP客户端处于私网内)
-
Passive (PASV,被动方式):- 建立数据连接时由FTP客户端发起连接请求,当FTP服务器限制客户端连接其高位端口。(一般情况下大于1024时不适用)
是否使用被动方式由FTP客户端程序决定,不同FTP客户端软件对FTP工作方式的支持情况可能不同,使用时以软件的实际情况为准。
2.1.4 配置FTP服务器
- FTP服务器配置任务如下:
(1) 配置限制和指导 FTP使用明文方式传输数据,可能存在安全隐患。
(3) 配置FTP服务器的认证和授权
(4) (可选)配置FTP服务器访问限制
(5) (可选)配置FTP服务器连接管理参数
(6) (可选)配置FTP服务器引用SSL
(7) (可选)配置FTP服务器发送报文的DSCP优先级
(8) (可选)释放已建立的FTP连接
2.1.5 配置FTP客户端
- FTP客户端配置任务如下:
(1) 建立FTP连接
(2) (可选)显示帮助信息
(3) (可选)查看FTP服务器上的目录/文件
(4) (可选)操作FTP服务器上的目录
(5) (可选)操作FTP服务器上的文件
(6) (可选)更改登录用户
(7) (可选)FTP连接的维护与调试
(8) (可选)断开FTP连接
2.2 TFTP协议
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个采用客户机/服务器模式的传输文件的简单协议,它基于UDP协议而实现,端口号为69。
TFTP仅提供简单的文件传输功能(上传、下载),TFTP没有存取授权与认证机制,不提供目录列表功能,TFTP协议传输是由客户端发起的。
2.2.1 TFTP文件传输过程
2.2.2 配置TFTP服务器
(1) 进入系统视图。
system-view
(2) 开启TFTP服务器功能。
tftp server enable
缺省情况下,TFTP服务器功能处于关闭状态。
在IPv4网络和IPv6网络环境下,均支持将设备配置为TFTP服务器。
(3) (可选)配置TFTP服务器工作路径。
tftp server work-directory directory
缺省情况下,TFTP服务器的工作路径为缺省文件系统的根目录。
2.2.3 配置IPv4 TFTP客户端
(1) 进入系统视图。
system-view
(2) (可选)使用ACL限制设备可访问哪些TFTP服务器。
tftp-server acl acl-number
缺省情况下,未使用ACL对设备可访问的TFTP服务器进行限制。
(3) 配置TFTP客户端的源地址。
tftp client source { interface interface-type interface-number | ip source-ip-address }
缺省情况下,未配置源地址,使用路由出接口的主IP地址作为设备发送TFTP报文的源IP地址。
(4) 退回用户视图。
quit
(5) 在IPv4网络,用TFTP上传/下载文件。
tftp tftp-server { get | put | sget } source-filename [ destination-filename ] [ vpn-instance vpn-instance-name ] [ dscp dscp-value | source { interface interface-type interface-number | ip source-ip-address } ] *
使用tftp client source命令指定了源地址后,又在tftp命令中指定了源地址,则采用tftp命令中指定的源地址进行通信。
2.2.4 配置IPv6 TFTP客户端
(1) 进入系统视图。
system-view
(2) (可选)在IPv6网络,使用ACL限制设备可访问哪些TFTP服务器。
tftp-server ipv6 acl ipv6-acl-number
缺省情况下,未使用ACL对设备可访问的TFTP服务器进行限制。
(3) 在IPv6网络,配置TFTP客户端的源地址。
tftp client ipv6 source { interface interface-type interface-number | ipv6 source-ipv6-address }
缺省情况下,未配置源地址,设备自动选择IPv6 TFTP报文的源IPv6地址,具体选择原则请参见RFC 3484。
(4) 退回用户视图。
quit
(5) 在IPv6网络,用TFTP上传/下载文件。
tftp ipv6 tftp-server [ -i interface-type interface-number ] { get | put | sget } source-filename [ destination-filename ] [ vpn-instance vpn-instance-name ] [ dscp dscp-value | source { interface interface-type interface-number | ipv6 source-ipv6-address } ] *
使用tftp client ipv6 source命令指定了源地址后,又在tftp ipv6命令中指定了源地址,则采用tftp ipv6命令中指定的源地址进行通信。
想具体学习文件传输协议 FTP 和 TFTP 内容的旁友们,
可前往:
1. FTP协议是什么?
2. FTP内部命令大汇总
4. FTP协议的工作流程
进行不同部分内容的详细学习。