DHCP原理(含DHCP-snooping)
DHCP Snooping功能与实例详解 -经典

DHCP Snooping功能与实例详解架设DHCP服务器可以为客户端自动分配IP地址、掩码、默认网关、DNS服务器等网络参数,简化了网络配置,提高了管理效率。
但在DHCP服务的管理上存在一些问题,常见的有:●DHCP Server的冒充●DHCP Server的DOS攻击,如DHCP耗竭攻击●某些用户随便指定IP地址,造成IP地址冲突1、DHCP Server的冒充由于DHCP服务器和客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP 服务器,它就可以为客户端分配IP地址以及其他网络参数。
只要让该DHCP服务器分配错误的IP地址和其他网络参数,那就会对网络造成非常大的危害。
2、DHCP Server的拒绝服务攻击通常DHCP服务器通过检查客户端发送的DHCP请求报文中的CHADDR(也就是Client MAC address)字段来判断客户端的MAC地址。
正常情况下该CHADDR字段和发送请求报文的客户端真实的MAC地址是相同的。
攻击者可以利用伪造MAC的方式发送DHCP请求,但这种攻击可以使用Cisco 交换机的端口安全特性来防止。
端口安全特性(Port Security)可以限制每个端口只使用唯一的MAC地址。
但是如果攻击者不修改DHCP请求报文的源MAC地址,而是修改DHCP报文中的CHADDR字段来实施攻击,那端口安全就不起作用了。
由于DHCP服务器认为不同的CHADDR值表示请求来自不同的客户端,所以攻击者可以通过大量发送伪造CHADDR的DHCP请求,导致DHCP服务器上的地址池被耗尽,从而无法为其他正常用户提供网络地址,这是一种DHCP耗竭攻击。
DHCP耗竭攻击可以是纯粹的DOS攻击,也可以与伪造的DHCP服务器配合使用。
当正常的DHCP服务器瘫痪时,攻击者就可以建立伪造的DHCP服务器来为局域网中的客户端提供地址,使它们将信息转发给准备截取的恶意计算机。
甚至即使DHCP请求报文的源MAC地址和CHADDR字段都是正确的,但由于DHCP请求报文是广播报文,如果大量发送的话也会耗尽网络带宽,形成另一种拒绝服务攻击。
dhcp的基本概念

dhcp的基本概念DHCP的基本概念DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于动态分配IP地址和其他网络配置信息。
它可以自动为计算机分配IP地址、子网掩码、默认网关、DNS服务器等信息,从而简化了网络管理。
一、DHCP的基本原理DHCP工作原理是:当计算机加入网络时,它会向DHCP服务器发送一个广播请求(DHCP Discover),请求获得IP地址和其他网络配置信息。
DHCP服务器收到请求后,会回复一个广播包(DHCP Offer),其中包含可用的IP地址和其他配置信息。
计算机选择其中一个IP地址,并向DHCP服务器发送请求确认(DHCP Request)。
最后,DHCP服务器向计算机发送确认消息(DHCP Acknowledge),完成IP地址和其他配置信息的分配过程。
二、 DHCP的优点1.方便管理:使用DHCP可以自动为计算机分配IP地址和其他网络配置信息,简化了网络管理工作。
2.节省资源:使用静态IP地址需要手动配置每台计算机,而且可能会浪费一些未被使用的IP地址。
而使用动态IP地址可以更好地利用可用资源。
3.易于维护:如果需要更改网络配置信息,管理员只需更改DHCP服务器上的设置即可,无需逐个更改每台计算机上的设置。
三、 DHCP的组成部分1.DHCP客户端:运行在计算机上,用于向DHCP服务器请求IP地址和其他网络配置信息。
2.DHCP服务器:运行在网络中的一台计算机上,用于分配IP地址和其他网络配置信息。
3.DHCP中继代理:用于将DHCP广播包转发到其他子网,以便跨子网分配IP地址。
四、 DHCP的工作模式1.动态分配模式(Dynamic Allocation):DHCP服务器从一个可用的IP地址池中选择一个未被使用的IP地址,并将其分配给DHCP客户端。
这种模式适用于大多数情况下,因为它可以更好地利用可用资源。
2.静态分配模式(Static Allocation):管理员手动为每台计算机配置固定的IP地址,这种模式适用于需要保持固定IP地址的设备,如打印机、服务器等。
DHCP-Snooping特性使用不当造成PC机无法获取IP地址

DHCP-Snooping特性使用不当造成PC机无法获取IP地址DHCP-Snooping特性使用不当造成PC机无法获取IP地址DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,该协议采用Client-Server模型,是基于UDP层的协议,兼容并扩充了BOOTP(BOOTstrap Protocol)协议。
DHCP Client采用知名端口号68,DHCP Server采用知名端口号67。
当网络中有DHCP Relay 设备时,DHCP的主要过程如下:DHCP协议使用在PC机与DHCP Relay设备之间,当Client收到Relay设备转发的DHCP Ack 报文后,对报文中提供的配置参数进行检查,同时进行配置,完成DHCP过程;如果Client 收到Nak报文,则重新开始整个过程。
需要注意的是DHCP Relay设备回给Client的报文有可能是单播,也有可能是广播,这完全取决于Client是否将发出的 Discover报文里面的Bootp flags字段进行置位。
如果该字段数值为1,则DHCP Relay将 Offer或者Ack/Nak报文广播给Client;反之,如果该字段数值为0,则DHCP Relay将 Offer或者Ack/Nak报文单播给Client。
以上,只是简单介绍客户端通过DHCP动态获取地址的过程,主要为了给DHCP-Snoooping这个交换机新增的特性做铺垫。
从字面上看,DHCP-Snooping和IGMP-Snooping完成的功能类似,都是对特定报文进行侦听。
当交换机开启了DHCP-Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP Ack报文中提取并记录IP地址和MAC地址信息。
另外,DHCP-Snooping允许将某个物理端口设置为信任端口或不信任端口。
信任端口可以正常接收并转发DHCP Offer 报文,而不信任端口会将接收到的DHCP Offer报文丢弃。
51CTO下载-1+DHCP原理(含dhcp-snooping)

DHCP原理
BOOTP报文介绍(续)
DHCP原理
BOOTP报文介绍(续)
主要字段解释: OP 消息类型,=1时表示BootRequest;=2时表示 BootReply Htype和Hlen 硬件地址类型和地址长度,实际上表示物理层网络 的类型,一般为以太网,长度为6bytes Hops 跳数,通常为0;中继时会修改,一般不用。 Xid 会话id,随机数,用于确定Serv和Client的对应关系
DHCP报文介绍(续)
DHCP常见OPTION DHCP Message Type,DHCP协议交互的控制报 文类型 Tag=53,Len=1,Data=1~7(只用了3bit)
DHCP原理
DHCP报文介绍(续)
DHCP Message Type是本文的一个重点,Data Value取值如下: Value=1,标示DHCP Discover Value=2,标示DHCP Offer Value=3,标示DHCP Request Value=4,标示DHCP Decline Value=5,标示DHCP ACK Value=6,标示DHCP NAK Value=7,标示DHCP Release
DHCP原理
课程内容
DHCP简介
DHCP原理
DHCP扩展介绍
实验与练习
本章小结
DHCP简介
为什么会有DHCP?
所有基于TCP/IP协议族实现的网络,其通信的一个 重要基础就是IP地址,但对于大多数非专业的用户 而言,IP地址是什么都不甚了解,要正确设臵或者 修改就更难了 但用户主机需要访问网络时,其网卡的IP却又是必 不可少的 DHCP-Dynamic Host Control Protocol动态主 机配臵协议,就是用于简化主机IP地址设臵的协议。 通过DHCP,用户可以实现各项必要网络参数IP、 DNS、Wins等的“零设臵”,做到“即插即用
Cisco交换机DHCP+Snooping功能详解+实例

一、采用DHCP服务的常见问题架设DHCP服务器可以为客户端自动分配IP地址、掩码、默认网关、DNS服务器等网络参数,简化了网络配置,提高了管理效率。
但在DHCP服务的管理上存在一些问题,常见的有:●DHCP Server的冒充●DHCP Server的DOS攻击,如DHCP耗竭攻击●某些用户随便指定IP地址,造成IP地址冲突1、DHCP Server的冒充由于DHCP服务器和客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。
只要让该DHCP服务器分配错误的IP地址和其他网络参数,那就会对网络造成非常大的危害。
2、DHCP Server的拒绝服务攻击通常DHCP服务器通过检查客户端发送的DHCP请求报文中的CHADDR(也就是Client MAC address)字段来判断客户端的MAC地址。
正常情况下该CHADDR 字段和发送请求报文的客户端真实的MAC地址是相同的。
攻击者可以利用伪造MAC的方式发送DHCP请求,但这种攻击可以使用Cisco 交换机的端口安全特性来防止。
端口安全特性(Port Security)可以限制每个端口只使用唯一的MAC 地址。
但是如果攻击者不修改DHCP请求报文的源MAC地址,而是修改DHCP报文中的CHADDR字段来实施攻击,那端口安全就不起作用了。
由于DHCP服务器认为不同的CHADDR值表示请求来自不同的客户端,所以攻击者可以通过大量发送伪造CHADDR的DHCP请求,导致DHCP服务器上的地址池被耗尽,从而无法为其他正常用户提供网络地址,这是一种DHCP耗竭攻击。
DHCP耗竭攻击可以是纯粹的DOS攻击,也可以与伪造的DHCP服务器配合使用。
当正常的DHCP服务器瘫痪时,攻击者就可以建立伪造的DHCP服务器来为局域网中的客户端提供地址,使它们将信息转发给准备截取的恶意计算机。
甚至即使DHCP请求报文的源MAC地址和CHADDR字段都是正确的,但由于DHCP请求报文是广播报文,如果大量发送的话也会耗尽网络带宽,形成另一种拒绝服务攻击。
爆肝了,一口气搞懂什么是DHCPSnooping

爆肝了,一口气搞懂什么是DHCPSnoopingDHCP Snooping是DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系。
DHCP Snooping可以抵御网络中针对DHCP的各种攻击,为用户提供更安全的网络环境和更稳定的网络服务。
目录•为什么需要DHCP Snooping?•DHCP Snooping应用场景有哪些?•DHCP Snooping是如何工作的?为什么需要DHCP Snooping?目前DHCP协议(RFC2131)在应用的过程中遇到很多安全方面的问题,网络中存在一些针对DHCP的攻击,如DHCP Server仿冒者攻击、DHCP Server的拒绝服务攻击、仿冒DHCP报文攻击等。
为了保证网络通信业务的安全性,引入DHCP Snooping技术。
在DHCP Client和DHCP Server之间建立一道防火墙,以抵御网络中针对DHCP的各种攻击。
DHCP Snooping应用场景有哪些?防止DHCP Server仿冒者攻击导致用户获取到错误的IP地址和网络参数攻击原理由于DHCP Server和DHCP Client之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。
如果该DHCP服务器为用户分配错误的IP地址和其他网络参数,将会对网络造成非常大的危害。
如下图所示,DHCP Discover报文是以广播形式发送,无论是合法的DHCP Server,还是非法的DHCP Server都可以接收到DHCP Client发送的DHCP Discover报文。
DHCP Client发送DHCP Discover报文示意图DHCP Client发送DHCP Discover报文示意图如果此时DHCP Server仿冒者回应给DHCP Client仿冒信息,如错误的网关地址、错误的DNS(Domain Name System)服务器、错误的IP等信息,如图2所示。
DHCP snooping

一、机制概述DHCP都非常熟悉了,对于DHCP客户端而言,初始过程中都是通过发送广播的DHCP discovery消息寻找DHCP服务器,然而这时候如果内网中存在私设的DHCP服务器,那么就会对网络造成影响,例如客户端通过私设的DHCP 服务器拿到一个非法的地址,最终导致PC无法上网。
在DHCP snooping环境中(部署在交换机上),我们将端口视为trust或untrust两种安全级别,也就是信任或非信任接口。
在交换机上,将连接合法DHCP 服务器的接口配置为trust。
只有trust接口上收到的来自DHCPserver的报文(如DHCPOFFER, DHCPACK, DHCPNAK, 或者DHCPLEASEQUERY)才会被放行,相反,在untrust接口上收到的来自DHCPserver的报文将被过滤掉,这样一来就可以防止非法的DHCPserver接入。
同时在部署了DHCP Snooping了交换机本地,还能维护一张DHCPsnooping的绑定数据库(binding database),用于保存侦听到的DHCP交互的表项,信息包括(针对untrust接口的):MAC地址、IP地址(DHCP 分配的)、租期、绑定类型、VLAN号、接口编号(DHCP客户端也就是连接客户端PC的untrust接口)。
这个DHCP snooping banding databse除了可以做一些基本的安全接入控制,还能够用于DAI等防ARP欺骗的解决方案。
一台支持DHCP snooping的交换机,如果在其untrust接口上,收到来自下游交换机发送的、且带有option82的DHCP报文,则默认的动作是丢弃这些报文。
如果该交换机开启了DHCP snooping并且带有option82的DHCP报文是在trusted接口上收到的,则交换机接收这些报文,但是不会根据报文中包含的相关信息建立DHCP bingdingdatabse表项。
DHCP

原理描述目录1.5.3.3.4.4 原理描述1.5.3.3.4.4.1 DHCP Server1.5.3.3.4.4.2 DHCP Relay1.5.3.3.4.4.3 DHCP Snooping1.5.3.3.4.4.4 DHCP报文介绍1.5.3.3.4.4.5 IP地址的分配与获取1.5.3.3.4.4 原理描述DHCP ServerDHCP RelayDHCP SnoopingDHCP报文介绍IP地址的分配与获取父主题:DHCP1.5.3.3.4.4.1 DHCP ServerDHCP Server即DHCP服务器,负责客户端IP地址的分配。
客户端向服务器发送配置申请报文(包括IP地址、子网掩码、缺省网关等参数),服务器根据策略返回携带相应配置信息的报文,请求报文和回应报文都采用UDP进行封装。
DHCP客户端与服务器的交互模式DHCP客户端为了获取合法的动态IP地址,在不同阶段与服务器之间交互不同的信息,通常存在以下三种模式(根据RFC2131实现):DHCP客户端首次登录网络DHCP客户端首次登录网络时,主要通过四个阶段与DHCP服务器建立联系。
发现阶段,即DHCP客户端寻找DHCP服务器的阶段。
客户端以广播方式发送DHCPDISCOVER报文,只有DHCP服务器才会进行响应。
提供阶段,即DHCP服务器提供IP地址的阶段。
DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中挑选一个尚未分配的IP地址分配给客户端,向该客户端发送包含出租IP地址和其它设置的DHCP OFFER报文。
选择阶段,即DHCP客户端选择IP地址的阶段。
如果有多台DHCP服务器向该客户端发来DHCP OFFER报文,客户端只接受第一个收到的DHCP OFFER报文,然后以广播方式向各DHCP服务器回应DHCP REQUEST报文,该信息中包含向所选定的DHCP服务器请求IP地址的内容。
确认阶段,即DHCP服务器确认所提供IP地址的阶段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DHCP原理
BOOTP简要处理流程
T2 expires Send Request Renewing ACK ACK
Sellect Offer Send Request Start2 Requesting
T1 expires Send Request Bound
ACK
DHCP原理
DHCP的协议流程(续)
INIT 客户机第一次启动之后,进入Init初始化状态,此时通过发 送DHCP Discover,用于探测和发现服务器,同时状态切 换到Selecting状态 该报文承载于UDP:67中,通过IP广播发送
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION Requested IP Address,DHCP客户端曾请求并使用 过的IP地址,通常出现在请求报文中。 Tag=50, Len=4,Data=ip.addr
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION IP Address Lease Time,用户请求分配IP地址的使用 时间(租约期),在DHCP客户端的请求报文和服务器的 回应报文中都有,但以服务器分配为准 Tag=51,Len=4,Data=time
DHCP原理
DHCP报文介绍
DHCP原理
DHCP报文介绍(续)
DHCP报文直接借用了BOOTP的报文格式,其中的核心内 容是OPTION DHCP OPTION格式 每个Option都由Tag、Len、Data三大部分组成:1、 Tag表示本Option的作用 2、Len表明后续Data的长度(Tag=0、255的option比 较特殊,没有对应Data,当然也不需要Len长度) 3、Data内容作为Tag的补充详细说明
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION End,Tag=255时,是一个特殊的Option,表示所有 的Options字段已经填充完毕,后面没有了。
DHCP原理
DHCP的协议流程
下面以DHCP客户端的角度来描述DHCP整个协议流程转 换机制
Start1 Discover Collect Offers Selecting NAK/ Timeout Init NAK NAK/ Timeout Rebinding
DHCP原理
BOOTP简要处理流程
Reply Received 客户端收到Reply回应之后,会进行判断: Ciadr、Chaddr、Xid是否和自己发送时的值相等,如 果不等,则丢弃 如果上述匹配关系正确,则读取Yiaddr地址给网卡设臵, 并进行后续的引导文件/程序的传输
DHCP原理
DHCP原理
BOOTP报文介绍
BOOTP协议承载在于OSI七层模型的传输层之上,使用 UDP协议 BOOTP客户端发起的报文,UDP:68 UDP:67 BOOTP服务器发起的报文, UDP:67 UDP:68
DHCP UDP:67/68 IP Ethernet
DHCP原理
DHCP原理
DHCP的协议流程(续)
Discover报文常见Option构成: Requested IP addr=MAY IP Addr Lease Time=MAY Client Ientifier=MAY Server Identifier=Must NOT Parameter Request List=MAY
BOOTP的缺点
BOOTP协议过程非常的简单,中间缺乏必要的安全控制机 制 BOOTP给每个用户分配的IP地址是“永久”的,不利于IP 地址资源的合理高效利用
随着网络的逐步发展,BOOTP逐渐被DHCP所取代
DHCP原理
DHCP和BOOTP的关系
BOOTP给客户端分配的IP地址是永久的,而DHCP分配的 IP地址资源则具有时效性、是动态的,有利于提高IP资源 的利用率 DHCP和BOOTP使用相同的UDP协议报头,服务器端口67, 客户端端口68,以至于很多程序对两者不做区分 DHCP和BOOTP使用几乎完全相同的Request和Reply消 息格式,只是DHCP的功能是依赖于报文的OPTION字段 来进行实现的;BOOTP也有自己的“OPTION”字段,称 之为Vend,DHCP Option兼容BOOTP Vend
DHCP原理
BOOTP简要处理流程(续)
BOOTP Reply 服务器收到Request请求之后,进行判断: 如果Client没有Ciaddr,且自己有可用IP,给对方分配 一个,填入Yiaddr;如果没有IP资源,丢弃 将Server自己的IP地址填入Siaddr Xid值与Request中完全相等 OP=2 将上述关键信息填写并封装到UDP报文中,目的UDP端 口号为68,源端口为67 将UDP封装到IP报文中,单播给客户端
Serv1 Serv2
DHCP Discover
Client
Client
Client
DHCP原理
DHCP的协议流程(续)
Discover报文常见参数构成: OP=1,BOOT Request Xid=Random,由Client确定 Ciaddr=0.0.0.0 Yiaddr=Siaddr=Giaddr=0.0.0.0 Chaddr=Client MAC Addr
课程内容
DHCP简介
DHCP原理
DHCP扩展介绍
实验与练习
本章小结
DHCP原理
DHCP要解决的问题
问题: DHCP目的是为了方便使用者,无需手工配臵IP等相关信 息,而DHCP又是一种基于IP运行的协议,在没有IP地址 的情况下,DHCP又如何交互呢? 我们先介绍一下BOOTP协议,即Bootstrap,它是DHCP 协议的前身,在早期常使用在无盘工作站组建的网络中
P原理
DHCP的协议流程(续)
INIT 由于该请求为广播形式,通常在发送时会设臵一个随机的 实验延迟(≤10秒),以避免各个DHCP Client同时发送 广播报文,对局域网造成不必要的影响
DHCP原理
DHCP的协议流程(续)
BOOTP报文介绍(续)
DHCP原理
BOOTP报文介绍(续)
主要字段解释: OP 消息类型,=1时表示BootRequest;=2时表示BootReply Htype和Hlen 硬件地址类型和地址长度,实际上表示物理层网络的类型, 一般为以太网,长度为6bytes Hops 跳数,通常为0;中继时会修改,一般不用。 Xid 会话id,随机数,用于确定Serv和Client的对应关系
BOOTP Requet 客户端发送请求前首先需要确定如下几个参数: Ciaddr,通常启动时没有IP,臵为0.0.0.0 Chaddr,本机网卡硬件地址,按实填写 Yiaddr、Siaddr、Giaddr均设为0.0.0.0 随机生成一个Xid值 OP=1 将上述关键信息填写并封装到UDP报文中,目的UDP端 口号为67,源端口为68 将UDP封装到IP报文中,其目的IP为全网广播,源地址 为0.0.0.0(未知,待分配)
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION DHCP Message Type,DHCP协议交互的控制报文类 型 Tag=53,Len=1,Data=1~7(只用了3bit)
DHCP原理
DHCP报文介绍(续)
DHCP Message Type是本文的一个重点,Data Value 取值如下: Value=1,标示DHCP Discover Value=2,标示DHCP Offer Value=3,标示DHCP Request Value=4,标示DHCP Decline Value=5,标示DHCP ACK Value=6,标示DHCP NAK Value=7,标示DHCP Release
DHCP原理
BOOTP报文介绍(续)
主要字段解释: Giaddr Gateway IP Addr,网关IP地址,通常只在BOOTP中继 时才会用到 Chaddr Client Hardware Addr,客户端硬件地址,通常在以太 网中就是MAC地址,由客户端自己填写
DHCP原理
BOOTP报文介绍(续)
DHCP原理
BOOTP报文介绍(续)
主要字段解释: Ciaddr Client IP Addr,客户端IP地址,由客户端在发送请求时填 写(如果有的话) Yiaddr Your IP Addr,客户端的IP地址;如果Ciaddr值为全0时, 由服务器在Reply报文中填写 Siaddr Server IP Addr,服务器IP地址
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION Server Identifier,服务器身份,通常在DHCP报文中 指定与哪个服务器进行交互通信 Tag=54,Len=4,Data=ip.adr
DHCP原理
DHCP报文介绍(续)
DHCP常见OPTION Parameter Request List,请求参数列表,标示客户端 需要服务器分配的内容 Tag=55,Len=n(n≥1),Data=parameters 其中,具体的参数内容使用代码来标示,如: 1为子网掩码、6为DNS-Server等等,有兴趣的可以查找 rfc获得更详细的内容
DHCP原理
课程内容
DHCP简介
DHCP原理