软考-中级-网络工程师(9-4)

73 阅读11分钟

DHCP服务

什么是DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)

DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

DHCP的工作过程

DHCP的工作过程包括四个阶段:发现、提供、请求和确认。下面是它们的简要说明:

  • 发现(Discover):客户端设备向网络中发送一个广播消息,寻找可用的DHCP服务器。
  • 提供(Offer):DHCP服务器收到发现消息后,会向客户端设备提供一个可用的IP地址和其他网络参数。
  • 请求(Request):客户端设备收到提供消息后,会向DHCP服务器发出请求,以获取提供的IP地址和网络参数。
  • 确认(Acknowledge):DHCP服务器收到请求消息后,会向客户端设备发送确认消息,确认分配的IP地址和其他网络参数。

image.png 四个阶段也就是四种报文,如下图Wireshark抓包所示:

image.png

在华为交换机上实现DHCP功能的实验 大多数中小型企业并不会有独立的DHCP服务器,而是直接在路由器或者三层交换机上来实现。

接下来,我们将以华为交换机为例,演示如何在交换机上配置DHCP功能。在华为交换机接口上DHCP可分为三种模式(全局、接口、中继)

image.png

全局(global)和接口(interface)都是将DHCP服务配置在此交换机上。可降低维护难度和服务器搭建成本。

中继(relay)则起到了报文转发的作用,作为中间桥梁,告知终端DHCP服务器在哪,告知DHCP服务器终端发起了IP地址申请。

本实验使用的设备是华为S5700交换机,以下是相关步骤:

方式一:接口模式下配置DHCP

image.png


#交换机SW1的配置
<Huawei>system-view
[Huawei]sysname SW1
[SW1]vlan 10
[SW1-vlan10]quit 
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access 
[SW1-GigabitEthernet0/0/2]port default vlan 10
[SW1-GigabitEthernet0/0/2]quit
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access 
[SW1-GigabitEthernet0/0/1]port default vlan 10
[SW1-GigabitEthernet0/0/1]quit

#路由器AR1上就配置就很简单
<Huawei>system-view
[Huawei]sysname R1
[R1]dhcp enable
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.10.254 24
[R1-GigabitEthernet0/0/0]dhcp select interface
[R1-GigabitEthernet0/0/0]dhcp server dns-list 6.6.6.6         

需注意!!本实验使用的是路由器作为DHCP服务器进行配置,如果使用的是三层交换机,需要将vlan和接口进行绑定,DHCP配置在Vlanif下。参考配置如下:

interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
 dhcp select interface
 dhcp server gateway-list 192.168.10.254       #需要多设置一步,将网关指向接口的IP地址
 dhcp server dns-list 8.8.8.8

配置完成,PC1上选择DHCP,应用。命令行输入ipconfig,获取到IP地址。

方式二:全局模式下配置DHCP

​ 拓扑图如图所示

image.png

#交换机LSW1配置与方式一相同,在此不做阐述了
#AR1做三层交换,也是VLAN 10的网关。配置如下:
<Huawei>system-view
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.10.254 24
[R1-GigabitEthernet0/0/0]quit
[R1]ip pool vlan10                                                    #创建名为vlan10的地址池
[R1-ip-pool-vlan10]network 192.168.10.0 mask 24                       #配置网段
[R1-ip-pool-vlan10]gateway-list 192.168.10.254						  #配置网关
[R1-ip-pool-vlan10]dns-list 8.8.8.8								      #配置dns服务器
[R1-ip-pool-vlan10]lease day 1				 		    		      #配置租期
[R1-ip-pool-vlan10]quit
[R1]dhcp enable 
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]dhcp select global 

输入ipconfig,已获取到IP地址

image.png

方式三:中继模式下配置DHCP 中继只是在全局的基础上多做了报文的转发,起一个中间传递的作用。

​ 拓扑图如图所示

image.png

#交换机LSW1配置与方式一相同,在此不做阐述了
#AR1的配置如下:
[R1]dhcp enable
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.20.1 24
[R1-GigabitEthernet0/0/0]dhcp select global                     #必须设置为全局模式
[R1-GigabitEthernet0/0/0]quit
[R1]ip pool vlan10                                                   
[R1-ip-pool-vlan10]network 192.168.10.0 mask 24                      
[R1-ip-pool-vlan10]gateway-list 192.168.10.254						
[R1-ip-pool-vlan10]dns-list 8.8.8.8                             #地址池的配置其实是一样的
[R1-ip-pool-vlan10]quit 
[R1]ip route-static 0.0.0.0 0 192.168.20.2                      #写一条全匹配的静态路由出去    
#AR2只需配置接口IP,以及出接口配置中继。AR2配置如下:
[R2]dhcp enable
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.10.254 24
[R2-GigabitEthernet0/0/0]dhcp select relay
[R2-GigabitEthernet0/0/0]dhcp relay server-ip 192.168.20.1
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.20.2 24
[R2-GigabitEthernet0/0/1]quit

已成功获取IP地址

image.png

注意事项 需要注意的是DHCP在配置好后,一般是不会出现IP地址冲突的情况的。但不排除用户在使用时,将IP地址改为静态获取。注意!!此类方法可能会引起地址冲突,无法上网。正确方法应是让管理员在交换机上进行IP预留和MAC地址绑定。

image.png

下面还是以华为交换机为例子,配置ip地址的预留和绑定。

实验要求:此时PC1地址为192.168.10.253,我们先预留IP地址(192.168.10.252和192.168.10.251),并将10.251与PC1的Mac地址进行绑定。

在地址池中,执行命令excluded-ip-address start-ip-address [ end-ip-address ],配置地址池中不参与自动分配的IP地址。一般会将预留出的IP地址固定分配给服务器或特殊用途的机器上。缺省情况下,地址池中所有IP地址都参与自动分配。

举个例子,下面这条命令,会使192.168.10.241到192.168.10.250。这10个IP地址无法被用户自动获得。

[R1-ip-pool-vlan10]excluded-ip-address 192.168.10.241 192.168.10.250

预留只是为了预先保留,在后续进行地址绑定时需要使用undo命令取消预留,再进行绑定,否则会出现报错。

在给PC1绑定新IP之前,需要手动释放原192.168.10.253的IP地址 在PC1命令行输入ipconfig /release命令来主动释放IP地址 然后继续在地址池进行绑定即可,输入mac地址时注意每4个16进制数为一组,中间用“-”隔开

[R1-ip-pool-vlan10]static-bind ip-address 192.168.10.251 mac-address 5489-9864-2A4D

配置完成后,在PC1命令行输入 ipconfig /renew更新IP地址租约或申请新的IP地址。此时发现IP地址为192.168.10.251。证明绑定成功

image.png

电子邮件协议

STMP

STMP是发送电子邮件的协议,默认使用25端口。STMP在传输层使用TCP协议建立一个连接,在这个连接上进行控制,应答以及数据的发送。客户端以文本的形式发送请求,服务器端返回一个状态码来进行应答。下面使用telnet来发送邮件,以了解其详细过程。Windows Vista之后的操作系统默认是不开启telnet的,在win10下,首先需要开启telnet。在win10的设置中搜索“控制面板”。如下所示:

在控制面板中打开“程序选项”。

 然后选择启用或关闭Windows功能。

在弹出的窗口中勾选Telnet客户端,然后点击确定,等待服务启用。启用服务以后,重启电脑即可使用telnet。

重启电脑以后,打开命令行(CMD)。然后键入如下命令:

SMTP服务默认端口是25,所以命令如上。

接下来的操作如下:

auth login键入之后,就可以登录你的邮箱了,这里需要base64编码格式的用户名以及密码。这就需要你用一个工具去转换相应的编码方式。我没有转换工具,也懒得弄了。在线工具又怕那些网站盗取你邮箱密码。有兴趣的可以自己接着向下搞搞。

随着电子邮件的发展,铺天盖地的广告随之而来。SMTP本身没法验证发送者,不像QQ一样,需要加好友才能发消息。电子邮件不一样,只要有一个邮箱地址,你就能给这个邮箱发邮件。比如网易邮箱,网易自己的广告都是满天飞的。

上面所说的SMTP服务只能传输文本文件,后来MIME的出现使的电子邮件的内容也大大的丰富了。

MIME

MIME规定了应用消息的格式,MIME基本由两部分组成,首部不能是空行一旦出现空行,之后的内容就会被自动认定为正文。在MIME首部中的“Content-Type”中指出了传输信息的格式。

POP3

POP3协议是接受电子邮件的协议。如前所述,随着电子邮件的发展,出现了邮件服务器。因此,接受邮件也就需要一定的协议。接收端能从POP3服务器上获取电子邮件。POP3与SMTP一样,也是通过客户端和服务器之间建立一个TCP连接来完成相应的操作。POP3的命令也是以ASCII方式。它的应答更为简单,只有 “+OK”和“-ERR”。

也可以使用telnet来登录POP服务器获取刚才上面所发送的电子邮件。登录POP3服务器的命令如下:

POP3服务器默认的端口是110。其余过程不再展示。哦,这个不需要使用base64编码。可以试试。

IMAP

IMAP相比于POP3,他是在服务器端管理邮件的,而POP3是在客户端管理邮件的。并且正是由于IMAP的出现,人们才可以在各种各样的机器上登录邮箱,使用邮箱。例如,当你在网易邮箱大师上登录你的QQ邮箱的时候,就需要开启IMAP服务。IMAP给我们使用电子邮件带来了巨大的便利。

IMAP由于可以在服务器端管理邮件,因此他能给用户提供更好的体验。例如,已读邮件和未读邮件对于用户来说,无论是在哪一个终端上登录邮箱,他看的信息是同步的。并且还可以单独下载邮件中的某一个附件。例如,一封邮件有5个附件,你可以选择其中的某一个附件进行下载,而不是下载所有附件。这在大文件,低带宽的时候是很有效果的

IMAP和POP3的区别

POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的。

IMAP客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会同步做相应的动作。

HTTP协议

  • 建立TCP连接

    • Web浏览器首先要通过网络与Web服务器之间通过TCP建立连接,TCP与IP协议共同构建Internet

      • HTTP协议是比TCP处于更高层的应用层协议,只有当低层协议建立练接之后才能进行更高层次的连接
      • TCP连接的端口号一般是80
  • Web浏览器向Web服务器发送请求行

    • 建立TCP连接之后,Web浏览器会向Web服务器发送请求命令

    Web浏览器向服务器发送请求头

    • 浏览器发送请求信息之后,还要以头信息的形式发送相关信息,并以空行代表发送结束
  • Web服务器应答

    • Web服务器接收请求后返回应答,第一部分是协议的版本号和应答状态码 例:“HTTP/1.1 200OK”

    Web服务器发送应答头

    • 服务器也会随着应答发送一些相关信息,并以空行代表发送结束
  • Web服务器发送数据

    • Web服务器向浏览器发送头信息之后,就以Content-Type格式发送用户所请求的信息
  • Web服务器关闭TCP连接

    • 一般情况下,一旦Web服务器向浏览器发送请求数据后,就要关闭TCP连接了
    • 若浏览器或者服务器的头信息中加入了这样一段代码:connection:Keep-alive 则TCP连接会保持打开状态,可以继续通过相同的连接发送请求