HCIP-6.0DHCP协议原理与配置


在大型企业网络中,会有大量的主机或设备需要获取IP地址等网络参数。如果采用手工配置,工作量大且不好管理,如果有用户擅自修改网络参数,还有可能会造成IP地址冲突等问题。使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)来分配IP地址等网络参数,可以减少管理员的工作量,避免用户手工配置网络参数时造成的地址冲突。

1、DHCP的应用场景

DHCP的应用场景
在大型企业网络中,一般会有大量的主机等终端设备。每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址。但是在大中型网络中,终端数量很多,手动配置IP地址工作量大,而且配置时容易导致IP地址冲突等错误。

DHCP可以为网络终端动态分配IP地址,解决了手工配置IP地址时的各种问题。

2、DHCP的基本原理

2.1、DHCP协议报文

报文类型含义
DHCP DISCOVER客户端用来寻找DHCP服务器。
DHCP OFFERDHCP服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息。
DHCP REQUEST客户端请求配置确认,或者续借租期。
DHCP ACK服务器对REQUEST报文的确认响应。
DHCP NAK服务器对REQUEST报文的拒绝响应。
DHCP RELEASE客户端要释放地址时用来通知服务器。

DHCP协议主要协议报文有8种:

  • DHCP Discover报文
  • DHCP Offer报文
  • DHCP Request报文
  • DHCP Release报文
  • DHCP ACK/NAK报文
  • DHCP Decline报文
  • DHCP Inform报文
  • DHCP Nak报文
    DHCP服务器与DHCP客户端之间通过DHCP报文进行通信。DHCP报文是基于UDP协议传输的。DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号

DHCP的报文格式:
在这里插入图片描述
Hops:表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1。此字段的作用是限制DHCP报文所经过的DHCP中继数目。服务器和客户端之间的DHCP中继数目不能超过16个,也就是Hops值不能大于16,否则DHCP报文将被丢弃。

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

Giaddr: 表示第一个DHCP中继的IP地址。若在到达DHCP服务器前经过了多个DHCP中继,该字段作为客户端所在的网段的标记,填充了第一个DHCP中继的IP地址后不会再变更。

Options字段的格式:
在这里插入图片描述
中继代理信息选项(Option82)
Option 141表示为DHCP客户端分配的FTP/SFTP用户名。
Option 142表示为DHCP客户端分配的FTP/SFTP用户密码。

2.2、DHCP工作原理

2.2.1、和DHCP服务器进行报文交互。

在这里插入图片描述
为了获取IP地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。

1、 首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。为了学习到DHCP服务器的IP地址,DHCP客户端以广播方式发送DHCP DISCOVER报文(目的IP地址为255.255.255.255)给同一网段内的所有设备(包括DHCP服务器或中继)。

DHCP DISCOVER报文中携带了客户端的MAC地址(chaddr字段)、需要请求的参数列表选项(Option55)、广播标志位(flags字段)等信息。

2、DHCP服务器会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文DHCP OFFER。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。

3、如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文,报文中包含请求的IP地址。

4、收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文,包含提供的IP地址和其他配置信息。

5、DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。

DHCP的租约过程,有租期的。windows的租期是8天,不同设备租期不一样。

2.2.2、DHCP租期更新

在这里插入图片描述
IP租约期限到达50%时,DHCP客户端会请求更新IP地址租约。

申请到IP地址后,DHCP客户端中会保存三个定时器,分别用来控制租期更新租期重绑定租期失效。DHCP服务器为DHCP客户端分配IP地址时会指定三个定时器的值。如果DHCP服务器没有指定定时器的值,DHCP客户端会使用缺省值,缺省租期为1天

默认情况下,还剩下50%的租期时,DHCP客户端开始租约更新过程,DHCP客户端向分配IP地址的服务器发送DHCP请求报文来申请延长IP地址的租期。DHCP服务器向客户端发送DHCP确认报文,给予DHCP客户端一个新的租期。

2.2.3、DHCP重绑定

在这里插入图片描述
DHCP客户端在租约期限到达87.5%时,还没收到服务器响应,会申请重绑定IP。

DHCP客户端发送DHCP请求报文续租时,如果DHCP客户端没有收到DHCP服务器的DHCP应答报文。默认情况下,重绑定定时器在租期剩余12.5%的时候超时。

超时后,DHCP客户端会认为原DHCP服务器不可用,开始重新发送DHCP请求报文。网络上任何一台DHCP服务器都可以应答DHCP确认或DHCP非确认报文。

  • 如果收到DHCP服务器确认报文,DHCP客户端重新进入绑定状态,复位租期更新定时器和重绑定定时器。
  • 如果收到DHCP服务器非确认报文,DHCP客户端进入初始化状态。此时,DHCP客户端必须立刻停止使用现有IP地址,重新申请IP地址。

2.2.4、IP地址释放

在这里插入图片描述

  • 如果IP租约到期前都没有收到服务器响应,客户端停止使用此IP地址。
  • 如果DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE 报文,释放该IP地址。

如果DHCP客户端在租期失效定时器超时前没有收到服务器的任何回应,DHCP客户端必须立刻停止使用现有IP地址,发送DHCP Release报文,并进入初始化状态。然后,DHCP客户端重新发送DHCP发现报文,申请IP地址。

3、配置基于接口地址池的DHCP

3.1、DHCP接口地址池配置

3.1.1、地址池

在这里插入图片描述
DHCP服务器的地址池是用来定义分配给主机的IP地址范围,有两种形式。

  • 接口地址池为连接到同一网段的主机或终端分配IP地址。可以在服务器的接口下执行dhcp select interface命令,配置DHCP服务器采用接口地址池的DHCP服务器模式为客户端分配IP地址。
  • 全局地址池为所有连接到DHCP服务器的终端分配IP地址。可以在服务器的接口下执行dhcp select global命令,配置DHCP服务器采用全局地址池的DHCP服务器模式为客户端分配IP地址。

3.1.2、接口地址池

接口地址池的优先级比全局地址池高。配置了全局地址池后,如果又在接口上配置了地址池,客户端将会从接口地址池中获取IP地址。在X7系列交换机上,只能在VLANIF逻辑接口上配置接口地址池。

在这里插入图片描述
DHCP接口配置:

[Huawei]dhcp enable           //启用DHCP
[Huawei]interface g0/0/0        
[Huawei-GigabitEthernet0/0/0]dhcp select interface              //选择DHCP接口地址池
[Huawei-GigabitEthernet0/0/0]dhcp server dns-list 8.8.8.8        //指定DNS服务器地址
排除10.1.1.2这个地址,不能给客户端使用
[Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 10.1.1.2
#DHCP的租期是3天,默认是一天
[Huawei-GigabitEthernet0/0/0]dhcp server lease day 3

配置实例:

[Huawei]sysname DHCP
[DHCP]dhcp enable
[DHCP]int g0/0/0
[DHCP-GigabitEthernet0/0/0]ip add 192.168.1.1 255.255.255.0
[DHCP-GigabitEthernet0/0/0]dhcp select int                   //选择DHCP接口地址池
[DHCP-GigabitEthernet0/0/0]dhcp server dns-list 4.4.4.4
[DHCP-GigabitEthernet0/0/0]dhcp server excluded-ip-add 192.168.1.2 192.168.1.10      //把1.2到1.10排除
[DHCP-GigabitEthernet0/0/0]dhcp server lease day 5
[DHCP-GigabitEthernet0/0/0]dis this
interface GigabitEthernet0/0/0
 ip address 192.168.1.1 255.255.255.0 
 dhcp select interface
 dhcp server excluded-ip-address 192.168.1.2 192.168.1.10 
 dhcp server lease day 5 hour 0 minute 0 
 dhcp server dns-list 4.4.4.4 

google的DNS:4.4.4.4&8.8.8.8
阿里的公共DNS:223.5.5.5&223.6.6.6

PC端:

PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fe8c:d6a
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.1.254
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.1.1
Physical address..................: 54-89-98-8C-0D-6A
DNS server........................: 4.4.4.4
<DHCP>dis ip pool 
Pool-name      : GigabitEthernet0/0/0
  Pool-No        : 0
  Position       : Interface       Status           : Unlocked
  Gateway-0      : 192.168.1.1     
  Mask           : 255.255.255.0
  VPN instance   : --

  IP address Statistic
    Total       :253   //地址池一共有253个地址
    Used 使用的:1          Idle 空的:243   
Expired     :0          Conflict    :0  排除的地址  Disable   :9  

3.1.3、DHCP全局地址池配置

DHCP全局地址池配置

[Huawei]sysname DHCP
#开启DHCP
[DHCP]dhcp enable
[DHCP]ip pool R1                                 //创建R1的地址池
[DHCP-ip-pool-R1]net 192.168.2.0 mask 24       //网段是多少?
[DHCP-ip-pool-R1]gateway-list 192.168.2.1     //网关
[DHCP-ip-pool-R1]dns-list 8.8.8.8 4.4.4.4     //主DNS地址和副DNS地址
#排除的网段
[DHCP-ip-pool-R1]excluded-ip-address 192.168.2.200 192.168.2.210
[DHCP-ip-pool-R1]lease day 10                     //租期
[DHCP]int g0/0/0                                     //在接口上启用
[DHCP-GigabitEthernet0/0/0]ip add 192.168.2.1 24
[DHCP-GigabitEthernet0/0/0]dhcp select global
PC>ipconfig
[DHCP]dis ip pool  
  -------------------------------------------------------------------
  Pool-name      : R1     地址池名称
  Pool-No        : 0
  Position       : Local           Status           : Unlocked
  Gateway-0      : 192.168.2.1     
  Mask           : 255.255.255.0

  IP address Statistic
    Total       :253     总共地址
    Used使用地址        :1   空闲地址       Idle        :241   
Expired     :0          Conflict    :0   排除的地址Disable   :11

3.1.4、DHCP中继代理

DHCP Relay组网场景如下图:把用户的上线请求报文转发给DHCP Server
为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费与不利于管理;
在这里插入图片描述
当DHCP服务器与客户端不在同一网络内,这时候客户端的所发的广播包不能被服务器端口接收,这时我们采用中继代理,让收到客户端收到的广播转换为到服务器的单播包,转送给DHCP服务器。

DHCP服务器收到DHCP DISCOVER,回应DHCP OFFER广播包,中继代理将广播包转换成单播包传送给客户端。

DHCP中继代理
DHCP客户端利用DHCP中继代理来从DHCP客户端那里获取IP地址等配置参数时,DHCP中继代理必须与DHCP客户端位于同一个二层广播域,但DHCP Server可以与DHCP Relay位于同一个二层广播域,也可以与DHCP Relay位于不同的二层广播域。DHCP Client与DHCP Relay之间是以广播方式交换DHCP消息的,但DHCP Relay与DHCP Server之间是以单播方式交换DHCP消息的(这就意味着,DHCP Relay必须事先知道DHCP Server的IP地址)。

第一步:发现阶段

DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后,进行如下处理:
1.检查DHCP报文中的hops字段,如果大于16,则丢弃DHCP报文;否则,将hops字段加1(表明经过一次DHCP中继),并继续下面的操作。

2.检查DHCP报文中的giaddr字段。如果是0,将giaddr字段设置为接收DHCP DISCOVER报文的接口IP地址。如果不是0,则不修改该字段,继续下面的操作。

3.将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继的IP地址,源地址改为中继连接客户端的接口地址,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。

如果DHCP客户端与DHCP服务器之间存在多个DHCP中继,后面的中继接收到DHCP DISCOVER报文的处理流程同前面所述。

第二步:提供阶段

DHCP服务器接收到DHCP DISCOVER报文后,选择与报文中giaddr字段为同一网段的地址池,并为客户端分配IP地址等参数,然后向giaddr字段标识的DHCP中继单播发送DHCP OFFER报文。

DHCP中继收到DHCP OFFER报文后,会进行如下处理:
1.检查报文中的giaddr字段,如果不是接口的地址,则丢弃该报文;否则,继续下面的操作。

2.DHCP中继检查报文的广播标志位。如果广播标志位为1,则将DHCP OFFER报文广播发送给DHCP客户端;否则将DHCP OFFER报文单播发送给DHCP客户端。

第三步:选择阶段

中继接收到来自客户端的DHCP REQUEST报文的处理过程同“第三步:选择阶段”。

第四步:确认阶段

中继接收到来自服务器的DHCP ACK报文的处理过程同“第四步:确认阶段”。

DHCP Relay配置实现
DHCP Relay配置实现:

配置DHCP-Server:
(以基于全局地址池分配地址为例)
dhcp enable                           //使能DHCP
ip pool DHCP-relay                 //地址池DHCP-relay
 gateway-list 192.168.1.1        //网关192.168.1.1
 network 192.168.1.0 mask 24	    //network表明了DHCP服务中的Client可用地址池
 dns-list 10.1.1.1	            //DNS
interface g0/0/0
 ip address 10.1.1.1 24	
 dhcp select global              //全局应用
ip route-static 192.168.1.0 24 10.1.1.2
配置DHCP中继(GW):
dhcp server group DHCP             //创建一个DHCP服务器组
dhcp-server 10.1.1.1               //DHCP服务器地址
dhcp enable 
interface g0/0/1
 ip address 192.168.1.1 24
 dhcp select relay                  //使能DHCP中继功能
 dhcp relay server-select DHCP   //配置DHCP中继所对应的DHCP服务器组。
interface g0/0/0
 ip address 10.1.1.2 24

在这里插入图片描述

配置案例:
基本配置

[Huawei]sysname SW1
[SW1]undo info en
[SW1]vlan batch 2 3
[SW1-GigabitEthernet0/0/2]port link-ty access
[SW1-GigabitEthernet0/0/2]port default vlan 2
[SW1-GigabitEthernet0/0/2]int g0/0/3
[SW1-GigabitEthernet0/0/3]port link-ty access
[SW1-GigabitEthernet0/0/3]port default vlan 3
[SW1-GigabitEthernet0/0/3]dis vlan
2    common  UT:GE0/0/2(U)                                                      
3    common  UT:GE0/0/3(U)

配置网关:

[SW1]int vlanif 1
[SW1-Vlanif1]ip add 12.1.1.1 24
[SW1-Vlanif1]int vlanif 2                  
[SW1-Vlanif2]ip add 192.168.2.1 24        //Vlan 2的网关
[SW1-Vlanif2]int vlanif 3
[SW1-Vlanif3]ip add 192.168.3.1 24        // Vlan 3的网关
[SW1]dis ip rout
Routing Tables: Public
         Destinations : 8        Routes : 8        
Destination    Proto   Pre  Cost  Flags NextHop         Interface

12.1.1.0/24  Direct  0    0           D   12.1.1.1        Vlanif1
12.1.1.1/32  Direct  0    0           D   127.0.0.1       Vlanif1
127.0.0.0/8   Direct  0    0          D   127.0.0.1       lo 0
127.0.0.1/32  Direct  0    0          D   127.0.0.1       lo 0
192.168.2.0/24  Direct  0    0           D   192.168.2.1     Vlanif2
192.168.2.1/32  Direct  0    0           D   127.0.0.1       Vlanif2
192.168.3.0/24  Direct  0    0           D   192.168.3.1     Vlanif3
192.168.3.1/32  Direct  0    0           D   127.0.0.1       Vlanif3

配置OSPF路由

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 12.1.1.2 24
[AR1]ospf 100 
[AR1-ospf-100]area 0
[AR1-ospf-100-area-0.0.0.0]net 12.1.1.0 0.0.0.255
[AR1-ospf-100-area-0.0.0.0]net 192.168.2.0 0.0.0.255
[AR1-ospf-100-area-0.0.0.0]net 192.168.3.0 0.0.0.255

[SW1]ospf 100
[SW1-ospf-100]area 0
[SW1-ospf-100-area-0.0.0.0]net 12.1.1.0 0.0.0.255
[SW1-ospf-100-area-0.0.0.0]net 192.168.2.0 0.0.0.255
[SW1-ospf-100-area-0.0.0.0]net 192.168.3.0 0.0.0.255
[AR1-ospf-100]dis ospf peer
OSPF Process 100 with Router ID 12.1.1.2
		 Neighbors 

 Area 0.0.0.0 interface 12.1.1.2(GigabitEthernet0/0/0)'s neighbors
 Router ID: 12.1.1.1         Address: 12.1.1.1        
   State: Full  Mode:Nbr is  Slave  Priority: 1
   DR: 12.1.1.2  BDR: 12.1.1.1  MTU: 0    
   Dead timer due in 34  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:09:55 

配置DHCP服务器全局配置

[AR1]ip pool vlan2                          // vlan2地址池
[AR1-ip-pool-vlan2]net 192.168.2.0 mask 255.255.255.0
[AR1-ip-pool-vlan2]gateway-list 192.168.2.1       //网关
[AR1-ip-pool-vlan2]dns-list 4.4.4.4                //DNS 
[AR1-ip-pool-vlan2]lease day 2                      //租期
[AR1-ip-pool-vlan2]q
[AR1]ip pool vlan3
Info: It's successful to create an IP address pool.
[AR1-ip-pool-vlan3]net 192.168.3.0 mask 255.255.255.0
[AR1-ip-pool-vlan3]gateway-list 192.168.3.1
[AR1-ip-pool-vlan3]dns-list 4.4.4.4
[AR1-ip-pool-vlan3]lease day 3
[AR1]dhcp en
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]dhcp select global

配置中继代理

[SW1]dhcp enable
[SW1]int vlanif 2
[SW1-Vlanif2]dhcp select relay           //启用中继代理
[SW1-Vlanif2]dhcp relay server-ip 12.1.1.2    //DHCP地址
[SW1-Vlanif2]int vlanif 3
[SW1-Vlanif3]dhcp select relay               //启用中继代理
[SW1-Vlanif3]dhcp relay server-ip 12.1.1.2    //DHCP地址
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fe2b:33fc
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.2.254
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.2.1
Physical address..................: 54-89-98-2B-33-FC
DNS server........................: 4.4.4.4

查看所有接口上DHCP中继的配置信息

[SW1]display dhcp relay configuration
DHCP relay agent running information of interface vlan2 :                                                                       
 Server IP address [00] : 12.1.1.2                                                                                                   
 Gateway address in use : 192.168.2.1                                                                                                
 Anycast gateway re-route: disable  

查看接口地址池的分配情况

[SW1]display ip pool interface vlanif2 
Pool-name        : vlan2
  Pool-No          : 0
  Lease            : 2 Days 0 Hours 0 Minutes
  DNS-server0      : 4.4.4.4
  NBNS-server0     : -
  Netbios-type     : -
  Position         : Interface
  Status           : Unlocked
  Gateway-0    : 192.168.2.1
  Network          : 192.168.2.0
  Mask             : 255.255.255.0

4、DHCP面临的安全威胁

DHCP在设计上未充分考虑到安全因素,从而留下了许多安全漏洞,使得DHCP很容易受到攻击。实际网络中,针对DHCP的攻击行为主要有以下三种:

  • DHCP饿死攻击
  • 仿冒DHCP Server攻击
  • DHCP中间人攻击

4.1、DHCP饿死攻击

攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。

漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者。
配置防止DHCP报文泛洪攻击。

DHCP饿死攻击
DHCP饿死攻击是攻击者通过持续大量地向DHCP Server申请IP地址来实现的,其目的是耗尽DHCP Server地址池中的IP地址,导致DHCP Server没有IP地址分配给正常的用户。DHCP消息中有一个名叫CHADDR(Client Hardware Address)的字段,该字段是由DHCP客户端填写的,表示的是客户端的硬件地址(也就是客户端的MAC地址)。DHCP Server是针对CHADDR来分配IP地址的,对于不同的CHADDR,DHCP Server会分配不同的IP地址;DHCP Server无法区分什么样的CHADDR是合法的,什么样的CHADDR是非法的。利用这个漏洞,攻击者每申请一个IP地址时,就在DHCP消息的CHADDR字段中填写一个不同的值,以此来冒充是不同的用户在申请IP地址。

4.2、仿冒DHCP Server攻击

攻击原理:攻击者仿冒DHCP Server,向客户端分配错误的IP地址及提供错误的网关地址等参数,导致客户端无法正常访问网络。

漏洞分析:DHCP客户端接收到来自DHCP Server的DHCP消息后,无法区分这些DHCP消息是来自仿冒的DHCP Server,还是来自合法的DHCP Server。
仿冒DHCP Server攻击
仿冒DHCP Server和合法的DHCP Server都能够收到该DHCP Discover消息,并且都会回应DHCP Offer消息。如果客户端最先收到的DHCP Offer消息是来自仿冒DHCP Server,那么客户端就会继续向仿冒DHCP Server(而不是合法的DHCP Server)请求获得IP地址等参数,而仿冒DHCP Server就会乘机向客户端分配错误的IP地址及提供错误的网关地址等参数。

4.3、DHCP中间人攻击

攻击原理:攻击者利用ARP机制,让PC-A学习到IP-S与MAC-B的映射关系,又让Server学习到IP-A与MAC-B的映射关系。如此一来,PC-A与Server之间交互的IP报文都会经过攻击者中转。

漏洞分析:从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。
DHCP中间人攻击

4.4、DHCP Snooping技术的出现

  • 为了增强网络安全,防止DHCP受到攻击,一种称为DHCP Snooping的技术应运而生。DHCP Snooping不是一种标准技术,尚未有统一的标准规范,不同的网络设备制造商在DHCP Snooping的实现上也不尽相同。
  • DHCP Snooping部署在交换机上,其作用类似于在DHCP客户端与DHCP服务器端之间构筑了一道虚拟的防火墙。
    DHCP Snooping

4.4.1、DHCP Snooping用于防止DHCP饿死攻击

防止DHCP饿死攻击
为阻止饿死攻击,DHCP Snooping技术支持在端口下对DHCP Request报文的源MAC地址与CHADDR(客户端的MAC地址)进行一致性检查:如果二者相同,则转发报文;如果二者不相同,则丢弃。如果要在某端口下实施源MAC地址与CHADDR的一致性检查,可以在该端口下使用命令dhcp snooping check dhcp-chaddr enable。
配置:

int g0/0/0
  dhcp snooping check dhcp-chaddr enable

还可能存在这样一种饿死攻击,就是攻击者不断同时变换MAC地址和CHADDR,并且每一次变换时,都让CHADDR与MAC地址相同,如此一来,便可以躲过上述源MAC地址与CHADDR的一致性检查!

4.4.2、DHCP Snooping用于防止仿冒DHCP Server攻击

防止仿冒DHCP Server攻击

  • DHCP Snooping将交换机上的端口分为两种类型,即信任端口(Trusted端口)和非信任端口(Untrusted端口);与合法的DHCP Server相连接的端口应配置为Trusted端口,其他端口应配置为Untrusted端口。
  • 交换机从Trusted端口接收到服务器端DHCP响应报文(例如DHCP Offer报文、DHCP Ack报文等等)后,会转发这些报文,从而保证合法的DHCP Server可以正常地分配IP地址及提供其他网络参数;交换机从Untrusted端口接收到DHCP响应报文(例如DHCP Offer报文、DHCP Ack报文等等)后,会丢弃这些报文,从而阻止仿冒的DHCP Server分配IP地址及提供其他网络参数。
  • 关键配置命令:交换机的端口默认是Untrusted端口。如果需要将交换机的某个端口配置为Trusted端口,可以在该端口视图下使用命令dhcp snooping trusted。如果需要将某个Trusted端口恢复为Untrusted端口,可以在该端口视图下使用命令undo dhcp snooping trusted。

配置:

Int g0/0/0
  dhcp snooping trusted
int g0/0/1
  undo dhcp snooping trusted

4.4.3、DHCP Snooping用于防止DHCP中间人攻击

防止DHCP中间人攻击
运行了DHCP Snooping的交换机会“侦听(Snooping)”往来于用户与DHCP Server之间的DHCP消息,并从中收集用户的MAC地址(这里的MAC地址是指DHCP消息中CHADDR字段的值)、用户的IP地址(这里的IP地址是指DHCP Server分配给相应CHADDR的IP地址)等信息,这些信息会集中存放在一个数据库中,该数据库也被称为DHCP Snooping绑定表。运行了DHCP Snooping的交换机会建立并动态维护DHCP Snooping绑定表,绑定表中除了包含了用户的MAC地址、用户的IP地址外,还包括IP地址租用期、VLAN-ID等等信息。

如图所示,假设DHCP Server给PC-A分配了IP地址IP-A,给PC-B分配了IP地址IP-B,那么IP-A与MAC-A就形成了绑定关系,IP-B与MAC-B也形成了绑定关系,这种绑定关系都存放于DHCP Snooping绑定表中。攻击者为了让Server学习到IP-A与MAC-B的映射关系,会发送ARP请求报文(将ARP报文中的源IP地址填为IP-A,源MAC地址填为MAC-B)。交换机接收到ARP请求报文后,会检查该ARP请求报文中的源IP地址和源MAC地址,发现该IP/MAC(IP-A/MAC-B)映射关系不能匹配DHCP Snooping绑定表中的条目,于是会丢弃该ARP请求报文,这样就有效地防止了Spoofing IP/MAC攻击。

如果需要使用上面所描述的防止Spoofing IP/MAC攻击(进而防止中间人)的方法,就必须在交换机的系统视图下执行配置命令arp dhcp-snooping-detect enable。

配置:

<SW1>sys
[SW1]arp dhcp-snooping-detect enable

4.4.4、DHCP Snooping与IPSG技术的联动

Snooping与IPSG技术的联动

  • 网络中经常会存在针对源IP地址进行欺骗的攻击行为,例如,攻击者仿冒合法用户的IP地址来向服务器发送IP报文。针对这类攻击,相应的防范技术称为IPSG(IP Source Guard)技术。
     交换机使能IPSG功能后,会对进入交换机端口的报文进行合法性检查,并对报文进行过滤(如果合法,则转发;如果非法,则丢弃)。
  • DHCP Snooping技术可与IPSG技术进行联动,即:对于进入交换机端口的报文进行DHCP Snooping绑定表匹配检查,如果报文的信息和与绑定表一致,则允许其通过,否则丢弃报文。
  • 报文的检查项可以是源IP地址、源MAC地址、VLAN和物理端口号的若干种组合。例如,在交换机的端口视图下可支持IP+MAC、IP+VLAN、IP+MAC+VLAN等组合检查,在交换机的VLAN视图下可支持:IP+MAC、IP+物理端口号、IP+MAC+物理端口号等组合检查。

关键配置命令:在交换机的端口视图下或VLAN视图下执行配置命令ip source check user-bind enable。

配置

[SW1]int g0/0/8
ip source check user-bind enable

由于Option82记录的是客户端的位置信息,建议在靠近用户侧的设备上配置。如果DHCP中继下面有DHCP Snooping设备,建议在DHCP Snooping设备上配置Option82。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0与1之旅

创作不易请给予一点帮助和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值