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地址和其他网络参数。
四个阶段也就是四种报文,如下图Wireshark抓包所示:
在华为交换机上实现DHCP功能的实验 大多数中小型企业并不会有独立的DHCP服务器,而是直接在路由器或者三层交换机上来实现。
接下来,我们将以华为交换机为例,演示如何在交换机上配置DHCP功能。在华为交换机接口上DHCP可分为三种模式(全局、接口、中继)
全局(global)和接口(interface)都是将DHCP服务配置在此交换机上。可降低维护难度和服务器搭建成本。
中继(relay)则起到了报文转发的作用,作为中间桥梁,告知终端DHCP服务器在哪,告知DHCP服务器终端发起了IP地址申请。
本实验使用的设备是华为S5700交换机,以下是相关步骤:
方式一:接口模式下配置DHCP
#交换机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
拓扑图如图所示
#交换机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地址
方式三:中继模式下配置DHCP 中继只是在全局的基础上多做了报文的转发,起一个中间传递的作用。
拓扑图如图所示
#交换机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地址
注意事项 需要注意的是DHCP在配置好后,一般是不会出现IP地址冲突的情况的。但不排除用户在使用时,将IP地址改为静态获取。注意!!此类方法可能会引起地址冲突,无法上网。正确方法应是让管理员在交换机上进行IP预留和MAC地址绑定。
下面还是以华为交换机为例子,配置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。证明绑定成功
电子邮件协议
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服务器发送数据
- Web服务器向浏览器发送头信息之后,就以
Content-Type
格式发送用户所请求的信息
- Web服务器向浏览器发送头信息之后,就以
-
Web服务器关闭TCP连接
- 一般情况下,一旦Web服务器向浏览器发送请求数据后,就要关闭TCP连接了
- 若浏览器或者服务器的头信息中加入了这样一段代码:
connection:Keep-alive
则TCP连接会保持打开状态,可以继续通过相同的连接发送请求