学习日记Day29:网络服务与应用

    科技2022-07-17  115

    文章目录

    1.FTP2.DHCP2.1 DHCP报文格式2.2 DHCP报文类型2.3 DHCP报文交互过程2.4 DHCP的配置 3.DNS3.1 域名的表示方法3.2 DNS的解析过程3.3 DNS查询

    1.FTP

           FTP(文件传输协议)是一种多通道协议,采用C/S(Client/Server)架构,客户端与服务器端建立TCP连接之后即可实现文件的上传和下载。下面是关于单、多通道的解释:

    单通道协议:通信只需建立一个TCP/UDP会话,使用一个固定的端口。多通道协议:通信时需要建立多个TCP/UDP会话,使用的端口未必固定,动态协商生成。

           在FTP协议中使用的两个通道分别是控制通道和数据通道。数据通道用来传输数据;控制通道用来下达FTP的操作指令和进行登录认证。FTP的工作模式也分为主动模式和被动模式。

    被动模式。 控制通道:由Client端发起,client端随机一个端口N,访问服务器的21号端口,服务器告知客户端(x.x.x.x,P1,P2)。x.x.x.x是服务器的IP地址,P1和P2是两个随机生成的数。 数据通道:由Client主动发起,client使用N+1端口,访问服务器的P1x256+P2号端口。主动模式。 控制通道:由Client主动发起,Client使用随机的端口号N,访问服务器的21号端口,客户端告知服务器(x.x.x.x,P1,P2)。 数据通道:Server主动发起,Server使用20号端口,访问客户端的N+1端口,N+1=P1x256+P2。

           还有一个简单文件传输协议(TFTP),是早期用来传输小文件的,现在很少使用,使用的是UDP协议和69号端口。

    2.DHCP

    2.1 DHCP报文格式

           在DHCP的工作过程中,客户端与服务器之间通过DHCP报文的交互进行地址或其他配置信息的请求和确认。DHCP报文格式如下所示:

    op:DHCP报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。htype、hlen:DHCP客户端的硬件地址类型和长度。hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。secs:DHCP客户端开启DHCP请求后的时间。flags:第一个比特为广播响应标识,用来标识DHCP服务器响应报文是采用单播还是广播发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。ciaddr:DHCP客户端的IP地址。yiaddr:DHCP服务器分配给客户端的IP地址。siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。chaddr:DHCP客户端的硬件地址。
    2.2 DHCP报文类型

           DHCP共有8种报文,具体类型和功能如下表所示:

    报文类型主要功能DHCP-DiscoverDHCP客户端广播发送,用来查找网络中可用的DHCP服务器DHCP-OfferDHCP服务器用来响应客户端的DHCP-Discover请求,并为客户端指定相应配置参数DHCP-RequestDHCP客户端广播发送给DHCP服务器,用来请求配置参数或者续借租期DHCP-AckDHCP服务器通知客户端可以使用分配的IP地址和配置参数DHCP-NakDHCP服务器通知客户端地址请求不正确或者租期已过期DHCP-ReleaseDHCP客户端主动向DHCP服务器发送,告知服务器该客户端不再需要分配的IP地址DHCP-DeclineDHCP客户端发现地址冲突或由于其他原因导致地址不可用,则发送DHCP-Decline报文,通知服务器所分配的IP地址不可用DHCP-InformDHCP客户端已经有IP地址,用它来向服务器请求其他的配置参数
    2.3 DHCP报文交互过程

           为了获取一个可用的IP地址,DHCP客户端需要和DHCP服务器进行报文交互,下面是一个标准的交互过程: (1)CLIENT首先发出广播的DHCPDISCOVER报文,广播的目的是让DHCP SERVER能够收到这个请求报文。在这个报文中,CLIENT可以在“选项”字段中加入“request paramter list”选项,表明自己想要获得的各种参数,而且四个IP地址字段都必须为0。

    (2)由于DHCPDISCOVER报文是广播,那么所有的DHCP SERVER都能够收到,所有的DHCP SERVER都会响应一个DHCPOFFER报文,其中“你的IP地址”字段就是DHCP SERVER能够提供给CLIENT使用的IP地址,而且DHCP SERVER会把自己的IP地址放在“选项”字段中以便CLIENT区分不同的DHCP SERVER,发出此报文后,在DHCP SERVER上就会存在一个已分配IP地址的记录。DHCPOFFER 在IP和MAC绑定的情况下用单播工作。

    (3)CLIENT能够收到所有的DHCPOFFER报文,但CLIEN只能处理其中的一个,一般的原则是CLIENT接收、处理最先收到的那个DHCPOFFER报文。CLIENT会再发出一个广播的DHCPREQUEST报文,在“选项”字段中会加入选中的DHCP SERVER的IP地址和用户想要的IP地址,之所以广播是因为要通知所有的DHCP SERVER进行相应的处理。

    (4)DHCP SERVER收到DHCPREQUEST报文,判断“选项”字段中的DHCP SERVER的IP地址是否与自己的地址相同,不相同,则不做任何处理,如果自己发出过DHCPOFFER报文,则清除相应IP地址记录;当“选项”字段中的DHCP SERVER的IP地址是与自己的IP地址相同时,DHCP SERVER就会响应一个DHCPACK报文,其内容同DHCPOFFER类似,并在“选项”字段中增加了IP地址使用租期选项。

    (5)CLIENT收到DHCPACK报文后(经过上面的处理后,有且只有一个DHCPACK报文),会检查DHCP SERVER分配给自己的IP地址是否能够使用,如在以太网类型的网络中,CLIENT会发出免费的ARP请求来确定DHCP SERVER分配的IP地址是否已经被别人使用,如果可以使用,则CLIENT成功获得IP地址,并根据IP地址使用租期自动启动续延过程。

    (6)如果CLIENT发现DHCP SERVER分配的IP地址已经被别人使用,则CLIENT会发出DHCPDECLINE报文通知DHCP SERVER禁用这个IP地址以免引起IP地址冲突。然后CLIENT又开始新的DHCP过程,从第1步开始。

    (7)当CLIENT成功获取IP地址后,会根据IP地址使用租期自动启动续延过程,在使用租期过去50%时刻处,向DHCP SERVER发送单播DHCPREQUEST报文续延租期,如果成功即收到DHCP SERVER的DHCPACK报文,则租期相应向前延长,如果失败即没有收到DHCPACK报文,则CLIENT继续使用这个IP地址。在使用租期过去87.5%时刻处,向DHCP SERVER发送广播DHCPREQUEST报文续延租期,如果成功即收到DHCP SERVER的DHCPACK报文,则租期相应向前延长;如果失败即没有收到DHCPACK报文,则CLIENT继续使用这个IP地址。在使用租期到期时,CLIENT应自动放弃使用这个IP地址,并开始新的DHCP过程,从第1步开始。

    (8)CLIENT在成功获取IP地址后,随时可以通过发送DHCPRELEASE报文释放自己的IP地址,DHCP SERVER收到DHCPRELEASE报文后,会回收相应的IP地址重新分配。当存在DHCP RELAY时,所有的DHCP报文都会经过DHCP RELAY进行转发,整个DHCP交互过程同上面类型,只是在报文封装时,稍有不同。由上面的叙述可以看出,DHCP SERVER的行为完全由CLIENT来驱动,DHCP SERVER无法控制CLIENT的行为。因此DHCP协议的安全性比较差。

    2.4 DHCP的配置

    接口地址池: R1配置: [R1]dhcp enable //启用dhcp功能 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]dhcp select interface //分配地址为接口地址池 [R1-GigabitEthernet0/0/0]dhcp server excluded-ip-address 10.1.1.1 //分配地址除去10.1.1.1 [R1-GigabitEthernet0/0/0]dhcp server lease day 1 hour 2 minute 5 //租期为1天2小时5分 [R1-GigabitEthernet0/0/0]dhcp server dns-list 10.1.1.1 //dns服务器为10.1.1.1 全局地址池: R1配置: [R1]ip pool pool2 //创建地址池名称为pool2 [R1-ip-pool-pool2]gateway-list 20.1.1.254 //网关为20.1.1.254 [R1-ip-pool-pool2]network 20.1.1.0 mask 255.255.255.0 //宣告地址池地址范围 [R1-ip-pool-pool2]static-bind ip-address 20.1.1.100 mac-address 5489-9836-6db4 //给MAC地址绑定IP [R1-ip-pool-pool2]lease day 2 hour 1 minute 5 [R1-ip-pool-pool2]dns-list 8.8.8.8 [R1]interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1]dhcp select global //分配地址为全局地址池

    3.DNS

    3.1 域名的表示方法

           域名的表示方法为:主机名.次顶级域名.顶级域名.根域,根域为“.”,一般最后的根域不表示。

    3.2 DNS的解析过程
    在浏览器中输入www.baidu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个ip地址映射,完成域名解析。如果hosts里没有这个域名的映射,则会查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析记过给客户端,完成域名解析,此解析具有权威性。如果要查询域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找baidu.com域服务器,重复上面的动作,进行查询,直至找到www.baidu.com主机。如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。不管是本地DNS服务器用是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

    3.3 DNS查询

    (1)递归查询        一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。        主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。 (2)迭代查询        一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求。        本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

    Processed: 0.010, SQL: 8