计算机网络之DHCP详解

网络安全及其协议 专栏收录该内容
57 篇文章 0 订阅

目录

 

1.DHCP的产生及背景

1.1 DHCP的概念

 

1.2 DHCP的产生背景

2.DHCP的类别以及优点

2.1 DHCP的分配方式

2.2 DHCP与BOOTP的异同点

2.2.1相同点: 

2.2.2不同点:

2.3  DHCP报文类型

2.3.1  DHCP报文简要概念

 

2.3.2  DHCP报文详细概念

 

2.4   报文格式分析

 ​

3.eNSP实验

3.2.1 创建DHCP默认路由

3.2.2 配置DHCP地址池

3.2.3 配置不同vlan下的DHCP分配

4.  DHCP的一些问题汇总


1.DHCP的产生及背景

1.1 DHCP的概念

 

随着网络规模的扩大和网络复杂度的提高,网络配置越来越复杂,计算机位置变化(如便携机或无线网络)和计算机数量超过可分配的IP嫡长子,造成IP地址变化频繁以及IP地址不足的情况。

DHCP是Dynamic Host Configuration Protocol的简称,又称为动态主机配置协议,是一种对用户进行集中的动态管理和配置的技术。

DHCP技术保证了IP地址的合理分配问题,从而避免了IP地址的浪费,提高了整网的IP地址使用率。

 

1.2 DHCP的产生背景

RARP(Reverse Address Resolution Protocol)协议:无盘引导时获取IP

                                                       

BOOTP(BOOTstrap Protocol):①无盘系统引导获取IP②返回子网掩码、DNS服务器信息③能穿越路由器

                                                        ↓

DHCP(Dynamic Host Configuration Protocol):①继承了BOOTP所有优点  ②传送主机所需配置信息 ③快速、动态获取IP地址

2.DHCP的类别以及优点

2.1 DHCP的分配方式

DHCP三种地址分配方式:

①自动分配  DHCP给主机指定一个永久的IP地址

②动态分配  DHCP给主机指定一个有时间限制的IP地址,到时间或主机明确表示放弃这个地址时,这个地址可以被其它的主机使用

③ 手工分配  手工分配方式中主机的IP地址是由网络管理员指定的,DHCP只是把指定的IP地址告诉主机。

2.2 DHCP与BOOTP的异同点

  DHCP与BOOTP协议比较

2.2.1相同点: 

①Client/Server模式

②客户端提出配置申请

③服务器想用配置请求

④采用UDP封装(67和68)

⑤相同的报文格式

2.2.2不同点:

①BOOTP运行在静态环境中

②主机需配置BOOTP参数文件

③文件长时间不变

④DHCP允许主机快速、动态获取IP地址

 

 

2.3  DHCP报文类型

2.3.1  DHCP报文简要概念

 

DHCP DISCOVER 由客户端广播来查找可用的服务器

DHCP OFFER 服务器用来响应客户端的DHCP DISCOVER报文,并指定相应的配置参数

DHCP REQUEST 由客户端发送给服务器来请求配置参数或者请求配置确认或者续借租期

DHCP ACK 由服务器到客户端,含有配置参数包括IP地址

DHCP DECLINE:当客户端发现地址已经被使用时,用来通知服务器

DHCP INFORM 客户端已经有IP地址时用它来向服务器请求其它的配置参数

DHCP NAK 由服务器发送给客户端来表明客户端的地址请求不正确或者租期已过期

DHCP RELEASE 客户端释放地址时用来通知服务器

 

注:任何动态的协议都有自己一套规定的语言即协议 ,DHCP也不例外

 

2.3.2  DHCP报文详细概念

 

DHCP DISCOVER:这是DHCP客户端首次登录网络时进行DHCP过程的第一个报文,用来寻找DHCP服务器

DHCP OFFER:服务器用来响应客户端的DHCP DISCOVER报文,并指定相应的配置参数

DHCP REQUEST:由客户端发送给服务器来请求配置参数或者请求配置确认或者续借租期。此报文用于以下三种用途。

  • 客户端初始化后,发送广播的DHCP REQUEST报文来回应服务器的DHCP OFFER报文
  • 客户端重启初始化后,发送广播的DHCP REQUEST报文来确认先前被分配的IP地址等配置信息
  • 当客户端已经和某个IP地址绑定后,发送单播的DHCP REQUEST报文来延长IP地址的租期

DHCP ACK:服务器对客户端的DHCP REQUEST报文的确认响应报文,客户端收到此报文后,才真正获得了IP地址和相关的配置信息。 

DHCP应用层的两个端口号,67和68,DHCP Server端的端口号为67,DHCP Client的端口号为68

DHCP报文的另外4个类型:

  • DHCP DELINE:当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址
  • DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文,比如服务器对客户端分配的IP地址已超过使用租借期限或者客户端移到了另一个新的网络
  • DHCP INFORM:客户端已经获得了IP地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS服务器地址等
  • DHCP RELEASE:客户端可通过发送此报文主动释放服务器分配给它的IP地址,当服务器收到此报文后,可将这个IP地址分配给其它的客户端

2.4   报文格式分析

 

 

  • OP:操作码(1=boot  request,2=boot reply)
  • Htype:硬件地址类型(1=10mb ethernet)
  • Hlen:硬件地址长度(ethernet 为6)
  • Hops:表示当前的DHCP报文经过的DHCP Relay的数目。该字段由客户端设置为0,没经过一个DHCP Relay时,该字段加1.此字段的作用是限制DHCP报文所经过的DHCP中继数目。服务器和客户端之间的DHCP中继不能超过16次,也就是值不能大于16,否则DHCP报文将被丢弃。
  •  Xid:传输ID,在同服务器的交互中,由客户机所选择
  • Secs:表示客户端从开始获取地址或地址续租更新后所用的时间,单位是秒
  • Flags:此字段在BOOTP中保留未用,在DHCP中表示标志字段。只有标志字段的最高位才有意义,其余的位均被置为0,。最左边的字段被解释为广播响应标志位,内容如下所示:

          0:客户端请求服务器以单播形式发送响应报文

          1:客户端请求服务器以广播形式发送响应报文

          Client IP Address:客户机在BOUND,RENEW或REBINDING状态所使用,可以用来回应ARP请求报文

DHCP报文中的option字段,采用“CLV”方式构成。DHCP的选项字段可以应用到多种不同的场景,比如无线等

  • Code:标识号,唯一标识后面的信息内容,占1byte
  • Length:长度,表示后面信息内容的长度,占1byte
  • Value:信息内容,其长度为length所指定,以byte为单位

 

服务器广播位置1,服务器需要通过广播来回

剩下的15个比特位为保留位

注:broadcast flag位置1代表服务器应答报文需要通过广播的方式回送,如果置0代表需要通过单播的方式回送。

 

3.eNSP实验

3.1 eNSP的基本配置

实验目的:DHCP自动分配地址,PC通过交换机来获得,DHCP的分配方式为选择接口所在IP地址范围内的IP地址

拓扑图:

 

 

配置

效果图:

将PC设置为DHCP自动分配后,PC会自动获取一个在接口IP范围内的IP地址

 

3.2  DHCP服务端和客户端的配置

实验目的:通过两台路由器来各自充当DHCP服务器和客户端 

拓扑图:

 配置:路由器作为客户端的配置

 

设置AR1即DHCP服务器网关

先将int g0/0/0接口shutdown然后再undo shutdown设置生效,分配dns-server 

 

dis ip interface  brief  //显示接口状态

3.2.1 创建DHCP默认路由

AR1配置

[AR1-GigabitEthernet0/0/0]dhcp server option121 ip-address 0.0.0.0 0 10.1.1.1          //配置向客户端通告的静态路由 
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 10.1.1.1 255.255.255.0 
 dhcp select interface       //接口下开启DHCP服务器
 dhcp server dns-list 114.114.114.114 8.8.8.8     //配置DNS服务器
 dhcp server option121 ip-address 0.0.0.0 0 10.1.1.1 
#
return

 

AR2配置

关闭接口并重新开启

[AR2-GigabitEthernet0/0/0]shut
Sep 29 2020 22:21:01-08:00 AR2 %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEther
net0/0/0 has turned into DOWN state.
[AR2-GigabitEthernet0/0/0]
[AR2-GigabitEthernet0/0/0]
Sep 29 2020 22:21:01-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP
 on the interface GigabitEthernet0/0/0 has entered the DOWN state. 
[AR2-GigabitEthernet0/0/0]undo sh
Sep 29 2020 22:21:04-08:00 AR2 %%01RM/4/IPV4_DEFT_RT_CHG(l)[2]:IPV4 default Rout
e is changed. (ChangeType=Delete, InstanceId=0, Protocol=Unr, ExitIf=GigabitEthe
rnet0/0/0, Nexthop=10.1.1.1, Neighbour=0.0.0.0, Preference=1006632960, Label=NUL
L, Metric=0) 
[AR2-GigabitEthernet0/0/0]undo shut
 

[AR2]dis ip routing-table            //查看路由表
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 8        Routes : 8        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   Unr     60   0           D   10.1.1.1        GigabitEthernet
0/0/0
       10.1.1.0/24  Direct  0    0           D   10.1.1.253      GigabitEthernet
0/0/0
     10.1.1.253/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
     10.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

 

[AR2]dis ip routing-table protocol Unr
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : Unr
         Destinations : 1        Routes : 1        

Unr routing table status : <Active>
         Destinations : 1        Routes : 1

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   Unr     60   0           D   10.1.1.1        GigabitEthernet
0/0/0

Unr routing table status : <Inactive>
         Destinations : 0        Routes : 0
 

UNR=用户网络路由,由DHCP服务器通告给客户端的静态路由

 

 

3.2.2 配置DHCP地址池

[AR1]ip pool HCIE
[AR1-ip-pool-HCIE]network 10.1.1.0 mask 24
[AR1-ip-pool-HCIE]gateway-list 10.1.1.1
[AR1-ip-pool-HCIE]dns-list 114.114.114.1
[AR1-ip-pool-HCIE]q

#
ip pool vlan10
 gateway-list 192.168.10.2 
 network 192.168.10.0 mask 255.255.255.0 
 dns-list 114.114.114.114 
 domain-name vlan10
#
ip pool vlan20
 gateway-list 192.168.20.2 
 network 192.168.20.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
 domain-name vlan20
#

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]dhcp select global   //选择DHCP地址池的地址6 
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 10.1.1.1 255.255.255.0 
 dhcp select global                //指定为全局配置
#
return

效果图:

 

3.2.3 配置不同vlan下的DHCP分配

实验目的:DHCP跨网段分配IP地址

拓扑图:

 

 

 

 

[SW1]int vlan 10
[SW1-Vlanif10]ip add 192.168.10.2 24
[SW1-Vlanif10]q
[SW1]int vlan 20
Sep 29 2020 23:37:22-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 11, t
he change loop count is 0, and the maximum number of records is 4095.
[SW1-Vlanif20]ip add 192.168.20.2 24
[SW1-Vlanif20]q
[SW1]int vlan 30
[SW1-Vlanif30]ip add 192.168.30.2 24
Sep 29 2020 23:37:42-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 12, t
he change loop count is 0, and the maximum number of records is 4095..
[SW1-Vlanif30]q

 

 

 

 

[SW1]dhcp enable
Info: The operation may take a few seconds. Please wait for a moment.done.
[SW1]int vlan 10
[SW1-Vlanif10]
Sep 29 2020 23:58:12-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 14, t
he change loop count is 0, and the maximum number of records is 4095.
[SW1-Vlanif10]dhcp select relay

[SW1-Vlanif10]dhcp relay server-ip 192.168.30.100
 

 

[SW1]dhcp server group HCIE           //DHCP  server 服务器组
Info:It's successful to create a DHCP server group.
[SW1-dhcp-server-group-hcie]
Sep 30 2020 00:04:33-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 17, t
he change loop count is 0, and the maximum number of records is 4095.
[SW1-dhcp-server-group-hcie]dhcp-server 192.168.30.2

[SW1-dhcp-server-group-hcie]dhcp-server 192.168.30.3
 

 

 

 

[SW1]int vlan 20
[SW1-Vlanif20]dis this
#
interface Vlanif20
 ip address 192.168.20.2 255.255.255.0
#
return
[SW1-Vlanif20]dhcp select relay   //DHCP选择中继服务器
[SW1-Vlanif20]dhcp relay server-ip 192.168.30.100    //中继服务器IP地址
Sep 30 2020 00:15:03-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 20, t
he change loop count is 0, and the maximum number of records is 4095. 、
[SW1-Vlanif20]
Sep 30 2020 00:15:33-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 21, t
he change loop count is 0, and the maximum number of records is 4095.

 

跨网段分配IP地址需要用到DHCP中继,中继配置如下:

#
interface Vlanif10
 ip address 192.168.10.2 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 192.168.30.100  \\指定中继服务器,同时也可以指定中继服务器组,在组中可以包含多个中继服务器地址。在发送DHCP报文时,每个中继服务器都会转发该报文。
#
return
 

dhcp server group hcie   //在系统视图下配置DHCP中继组
 dhcp-server 192.168.30.2 0
 dhcp-server 192.168.30.3 1
 

 

 

4.  DHCP的一些问题汇总

 

DHCP服务器如果存在多个地址池,如何判断应该分配哪个地址池的地址?

1、如果discovery报文中gateway ip address(relay agent address)被填充地址,则分配该IP地址所在网段的地址

2、如果discovery报文中gateway ip address为空,则分配discovery报文接收端口所在的IP网段的地址。 

 

 

 

reset ip pool name VLAN10  //则会清除地址池VLAN10所分配的IP地址

dhcp server ping packet 2 \\开启DHCP PING,默认是关闭的

dhcp server ping timeout 100   超过100秒无回应则认为无法连接 

 

dhcp server static-bind ip-address 10.1.1.24 mac-address 3422-786c-087d    把10.1.1.24固定的分配给某台主机

 DHCP  Snooping原理

  • DHCP Snooping是一种DHCP安全特性,通过截获DHCP Client和DHCP Relay之间的DHCP报文并进行分析处理,可以过滤不信任的DHCP报文并建立和维护一个DHCP Snooping绑定表(untrust)。
  • DHCP Snooping通过对这个绑定表的维护,建立一道在DHCP Client和DHCP Server之间的防火墙
  • DHCP Snooping可以解决设备应用DHCP时遇到的DHCP DOS(Denial of Service)攻击、DHCP Server仿冒攻击、DHCP仿冒续租报文攻击等问题。

DHCP Snooping关键技术

  • 信任/非信任端口:一般通向DHCP服务器(运营商网络内部)的端口设成“信任(Trusted)”,其它端口(连接运营商网络外部的端口)都设为“不信任(Untrusted)”
  • 绑定表:建立MAC+IP+VLAN+Port的绑定关系
  • Option82:是DHCP协议报文中选项部分之中的一项,用于记录报文入端口类型,端口号,VLAN信息以及桥MAC地址,是生成绑定表的重要部分。

 

 

DHCP Snooping的应用---改变CHADDR值的饿死攻击

  • 攻击原理:在这种攻击方式中,如果攻击者改变的不是数据帧头部的源MAC,而是改变DHCP报文中的CHADDR(Client Hardware Address)值来不断申请IP地址,而交换机仅根据数据帧头部的源MAC来判断该报文是否合法,那么MAC地址限制方案不能起作用
  • 解决方案:可以使用DHCP Snooping检查DHCP Request报文中CHADDR字段的功能。如果该字段跟数据帧头部的源MAC相匹配,便转发报文;否则,丢弃报文。 
  • 1
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值