DHCP、DHCP Snooping及DHCP relay工作原理入门及实践

序:DHCP服务相对简单,写本文的目的是为了讲一些DHCP安全方面的技术。

1、DHCP基础

DHCP 全称动态主机配置协议(Dynamic Host Configuration Protocol),用于给终端设备如PC、IPad、手机等自动分配IP地址。
工作过程简洁高效,易于掌握,首先借着一张图介绍DHCP基本的工作原理:

从图上可以清晰看出,客户端通过DHCP协议获取IP地址等信息的过程可以分为四个步骤:

1.1发现阶段,即DHCP客户端发现DHCP服务器的阶段。

DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器。由于DHCP客户端不知道DHCP服务器的IP地址,所以DHCP客户端以广播方式发送DHCP DISCOVER报文(目的IP地址为255.255.255.255,源IP地址为0.0.0.0),同一网段内所有DHCP服务器都能收到此报文。

1.2提供阶段,即DHCP服务器提供IP地址的阶段。

服务器接收到DHCP DISCOVER报文后,选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。DHCP OFFER报文里面携带了希望分配给指定MAC地址客户端的IP地址(DHCP报文中的yiaddr字段)及其租期等配置参数。

1.3选择阶段,即DHCP客户端选择IP地址的阶段。

因为DHCP DISCOVER报文是广播发送的,所以如果同一网段内存在多个DHCP服务器,接收到DHCP DISCOVER报文的服务器都会回应DHCP OFFER报文。如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只接收第一个收到的DHCP OFFER报文。

以广播方式发送DHCP REQUEST报文,是为了通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他DHCP服务器可以重新将曾经分配给客户端的IP地址分配给其他客户端。

1.4确认阶段,即DHCP服务器确认所分配IP地址的阶段。

当DHCP服务器收到DHCP客户端发送的DHCP REQUEST报文后,DHCP服务器回应DHCP ACK报文,表示DHCP REQUEST报文中请求的IP地址分配给客户端使用。

小结:DHCP工作过程四个步骤涉及四种数据包,分别是DISCOVER、OFFER、REQUEST、ACK。



2、DHCP Snooping

在企业实际网络环境中,经常会遇到电脑获取到错误IP地址等情况,导致无法正常上网,这是因为网络中非法接入了DHCP服务器(最常见的非法DHCP服务器就是TP-link家用路由器)。
这时候就需要在网络交换机上配置DHCP snooping功能来防止非法DHCP服务器给客户端分配IP地址。

DHCP Snooping不论从配置上还是工作原理上也都很简单,继续用一张图说明:

在二层网络接入设备(即交换机)启用DHCP Snooping场景中,一般将与合法DHCP服务器直接连接的接口设置为信任接口(如上图中的if1接口),其他接口设置为非信任接口(如上图中的if2接口),启用了DHCP Snooping功能的交换机会检测从每个接口收到的DHCP各类数据包,如果从非信任接口收到,则丢弃;使DHCP的四种数据包仅能从信任接口转发或者接受,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的DHCP Server仿冒者无法为DHCP客户端分配IP地址。

小结:DHCP Snooping在交换机上启用,并将连接合法服务器的接口设置为信任接口,其他接口默认都是非信任接口。



3、DHCP Relay(中继)
上面提到的DHCP客户端与服务器都在同一个网段,比较适用于家庭网络和小型企业网络。但在中到大型企业网络中,有很多网段,不推荐在每个网段都部署一个DHCP服务器,既不经济也不好管理。
实际情况是,在大型网络中,往往采用一台高性能的服务器当作DHCP服务器,它只存在于一个网段。由于DHCP的工作高度依赖于广播,而我们知道广播包是不能跨网段传输的,所以正常情况下其他网段的客户端是无法获取IP地址的。

DHCP Relay的出现就是为了解决这个问题,用一张图说明:

还是之前熟悉的四个步骤,不过这次在客户端与服务器中间多了一个DHCP中继设备,通常DHCP中继为网络中每个网段的网关设备(即启用了DHCP Relay功能的三层交换机)。

DHCP中继将从客户端接收到的广播报文转换成单播报文,这样报文就可以跨越网段进行传输。单播报文意味着明确且唯一的目的IP地址,所以开启DHCP中继的设备必须手工明确配置DHCP服务器的IP地址。
有了DHCP中继,不论企业网络中有多少个IP网段,我们只需要在一个网段部署DHCP服务器,其他网段则由网关设备开启中继功能,这样整个网络都能通过DHCP服务器获取IP地址。

小结:在三层交换机的各个网段开启DHCP Relay功能,并手动指定DHCP服务器的IP地址,可实现整网共享一台DHCP服务器。



4、一个关于DHCP Snooping与 DHCP Relay的小思考

在一个部署了DHCP Relay的网络中,DHCP Snooping应该启用哪些设备上?
如图所示:

其中有三个部门即三个网段,而DHCP服务器是一台路由器,不属于其中任意一个网段。
在这个网络中,每个包含DHCP客户端的二层网络中都应该启用DHCP Snooping,而仅包含服务器的二层网络是不需要启用DHCP Snooping的。

备注:客户端二层网络启用DHCP Snooping很好理解,而服务器二层网络无需启用DHCP Snooping的背后原因稍显复杂。具体原因是当部署了DHCP Relay后,DHCP服务器收到的DHCP各种报文一定是中继设备转换后的单播报文,单播报文有明确且唯一的目的IP,这时就不会存在仿冒DHCP服务器的问题。
而实际上如果真的在服务器二层网络中的交换机上启用了DHCP Snooping功能,它也是不会影响DHCP正常工作的,因为从中继设备发过来的单播DHCP报文里面UDP层的源端口号已经被中继设备修改成UDP 67(而原始报文里则为UDP 68),交换机一旦检测到这点变化,就会自动忽略,正常转发DHCP各类报文,不做DHCP Snooping额外处理。

原文地址:http://blog.51cto.com/5167020/2312718

时间: 2024-11-05 15:44:51

DHCP、DHCP Snooping及DHCP relay工作原理入门及实践的相关文章

CoreCLR源码探索(七) JIT的h5牛牛源码出售工作原理(入门篇)

很多C#的初学h5牛牛源码出售Q1446595067官网:h5.haozibbs.com者都会有这么一个疑问, .Net程序代码是如何被机器加载执行的? 最简单的解答是, C#会通过编译器(CodeDom, Roslyn)编译成IL代码, 然后CLR(.Net Framework, .Net Core, Mono)会把这些IL代码编译成目标机器的机器代码并执行. 相信大多数的C#的书籍都是这样一笔带过的. 这篇和下篇文章会深入讲解JIT的具体工作流程, 和前面的GC篇一样, 实现中的很多细节都是

DHCP租约时间工作原理

问题:    很多用户在使用路由器的DHCP服务器过程中都有一个疑问,DHCP有个设置项目是设置DHCP地址的租约时间,如果设置的比较短,是否会出现租约时间到了以后会重新去获取ip地址,造成用户断网?今天就此问题,将DHCP关于租约时间方面的工作原理介绍一下. DHCP租约时间工作原理:     一旦 DHCP客户端成功地从服务器哪里取得 DHCP租约之后,除非其租约已经失效并且IP地址也重新设定回 0.0.0.0 ,否则就无需再发送 DHCPdiscover 信息了,而会直接使用已经租用到的I

DHCP工作原理

DHCP(Dynamic Host Configuration Protocol) 动态主机配合协议 其是一个位于局域网的应用层协议,也是一个UDP协议,主要就是对ip地址集中管理和分配. DHCP的用途: 给内部网络或网络服务供应商自动分配ip地址 给用户或内部网管作为对所有PC做中央管理的手段 另外,DHCP是一个典型的CS模型:Server:UDP协议--67端口,Client:UDP协议--68端口. DHCP的工作原理: [图1] 交互过程: ①Client以广播的形式发出Discov

lvs,dhcp,dns,lnmp,lamp,zabbix,nagios,hadoop,openstack,rsync等工作原理

一.客户端获取DHCP的过程 1.客服端通过广播发送    DHCPdiscovery包,寻找DHCP服务器数据包 源IP:0.0.0.0    目的地址:255.255.255.0 无响应:等待1秒,发送第二次.等待9秒,发送第三次.13.16. 有相应: 2.服务器提供地址信息    DHCPoffer包 用客户端MAC地址回应 数据包中包含IP地址.租约信息等 3.客户端接受并广播 发送    DHCPrequest广播包,告知网络中所有DHCP主机 发送arp包,检查IP是否可用,若被占

DHCP的工作原理

  1.几个DHCP名词在介绍 DHCP工作原理以前,先解释这几个名词的含义: DHCP客户:DHCP客户是一通过DHCP来获得网络配置参数的Internet主机,通常就是普通用户的工作站. DHCP服务器:DHCP服务器是提供网络设置参数给DHCP客户的Internet主机. DHCP/BOOTP 中继代理:在DHCP客户和服务器之间转发DHCP 消息的主机或路由器. DHCP是基于客户机/服务器模型设计的,DHCP客户和DHCP服务器之间通过收发DHCP消息进行通讯. 2.DHCP 消息的格

DHCP客户端请求IP地址的过程(DHCP工作原理)

DHCPdiscover        目标端口    源IP      目标IP UDP(67)    0.0.0.0   255.255.255.255 DHCP客户机寻找DHCP服务器的阶段,DHCP客户机以广播方式发送DHCPdiscover发现信息寻找DHCP服务器,即向地址255.255.255.0发送待定的广播信息,网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器做出响应 DHCPOFFER  udp(68)   源ip是DHCP服务器的ip 目

DHCP 工作原理

DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口.详细的交互过程如下图. DHCP Client以广播的方式发出DHCP Discover报文. 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文. DHCP Offer报文中“Your(Client) IP Address

H3C模拟器 DHCP Snooping 、中继 实例配置

1.DHCP 实例配置 ## 配置步骤(在路由器上配置) ### (1) # 配置接口的 IP 地址. <H3C> system-view [H3C] interface g 0/0 [[H3C-GigabitEthernet0/0]] ip address 192.168.1.254 24 [[H3C-GigabitEthernet0/0]] quit ### (2)# 启用 DHCP 服务. [H3C] dhcp enable ### (3) # 配置不参与自动分配的 IP 地址. [H3

[DHCP服务]——一个验证DHCP原理实验(VMware)

大致实验拓扑图 DHCP Server端的配置 1. 安装DHCP # yum -y install dhcp 2. 拷贝配置文件 # cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 3. 编辑配置文件 # vim /etc/dhcp/dhcpd.conf (1)默认租约时间 #指定默认的租约时间的长度,单位:秒 default-lease-time 3600: (2)最大租约时间 #指定默认的最大租约时间,