DHCP、DHCP Snooping的基本概念与配置

目录

一、DHCP

1、DHCP中继代理原理

2、DHCP中继实验

3、扩展知识:

4、交换机部署DHCP

二、DHCP Snooping

1、DHCP Snooping 概述

2、DHCP Server仿冒者攻击

3、DHCP Server仿冒者攻击实验


一、DHCP

1、DHCP中继代理原理

问题:

-当客户机和DHCP服务器不在一个广播域时,DHCP服务器无法接收到客户机的DHCP discover广播数据包,客户机就无法获得IP地址;

解决:

-在客户机所在的广播域中,寻找一台路由器,这台路由器一个端口在客户机所在的广播域,另外一个端口在DHCP服务器所在的广播域,让这台路由器主动接收客户机的DHCP discover数据包,然后由这台路由器代替客户机向DHCP服务器申请IP地址,得到地址后,再把这个地址交给客户机,这台服务器称之为DHCP中继代理服务器;

2、DHCP中继实验

1)拓扑

2)需求:

-希望PC1/PC2自动获取到IP地址,网关、DNS等网络参数,实现主机上网

-Server1 服务器手工配置一个静态IP地址,192.168.10.253,这个地址是专门给服务器使用的,所以这个地址不能通过DHCP分发,避免IP地址冲突

配置步骤: 
第一步:配置R2-DHCP服务器
  1)在系统视图下开启DHCP功能
  2)在R2-DHCP服务器中配置基于全局的DHCP
     -创建IP地址池:ntd2306
     -定义网段:192.168.10.0/24
     -定义网关:192.168.10.254
     -定于DNS:8.8.8.8
     -定义排除地址:192.168.10.253  这个IP地址不做DHCP分发
  3)在接口上配置IP地址,开启基于全局的dhcp

第二步:配置DHCP中继
  1)R1中继设备开启DHCP功能
  2)配置R1中继设备的接口IP地址
  3)在R1设备连接客户端的接口上开启DHCP中继,指向DHCP服务器:192.168.20.20


第三步:配置静态路由
-在R2配置去往192.168.10.0网段的路由,下一跳为192.168.20.10

第四步:验证与测试

4)配置命令

第一步:配置DHCP服务器 
 DHCP服务器配置: 
[R2-DHCP]dhcp enable   //开启dhcp 功能
[R2-DHCP]ip pool ntd2306   //创建IP地址池
[R2-DHCP-ip-pool-ntd2306]network 192.168.10.0  mask 24   
[R2-DHCP-ip-pool-ntd2306]gateway-list 192.168.10.254    
[R2-DHCP-ip-pool-ntd2306]dns-list 8.8.8.8                
[R2-DHCP-ip-pool-ntd2306]excluded-ip-address  192.168.10.253     
[R2-DHCP-ip-pool-ntd2306]quit
[R2-DHCP]int g0/0/0
[R2-DHCP-GigabitEthernet0/0/0]ip add 192.168.20.20 24
[R2-DHCP-GigabitEthernet0/0/0]dhcp select global         
                                                        

 第二步:配置DHCP中继 
 DHCP中继配置: 
第二步:配置DHCP中继:
[R1-zj]dhcp enable
[R1-zj]int g0/0/0
[R1-zj-G0/0/0]ip add 192.168.20.10 24

[R1-zj-G0/0/0]int g0/0/1
[R1-zj-G0/0/1]ip add 192.168.10.254 24
[R1-zj-G0/0/1]dhcp select relay                //在接口上开启dhcp中继功能
[R1-zj-G0/0/1]dhcp relay server-ip 192.168.20.20     //指定dhcp服务器的IP地址

 第三步:在DHCP服务器上配置去往中继设备的回程路由 
[R2-DHCP]ip route-static 192.168.10.0 24 192.168.20.10
               
  第四步:验证与测试 
 在PC1和PC2中设置IP地址的获取方式为DHCP
 在PC1和PC2中命令行中输入命令:
 ipconfig   /release   //释放当前IP地址
 ipconfig   /renew     //更新IP地址(获取IP地址)   
 
 经验验证发现:
 PC1的IP地址是192.168.10.252   
 PC2的IP地址是192.168.10.251
 192.168.10.253这个地址,已经被排除,没有被DHCP分发                    

3、扩展知识:
  扩展知识: 
 [DHCP-R2] display ip pool name ntd2306   
  Pool-name      : ntd2306   //地址池名字
  Lease          : 1 Days 0 Hours 0 Minutes     //租期
  DNS-server0    : 8.8.8.8                //DNS     
  Gateway-0      : 192.168.10.254     //网关地址
  Mask           : 255.255.255.0      //掩码
 -----------------------------------------------------------------------------
  起始地址       结束地址          全部   已使用的地址   未分发的       冲突      排除的
  Start           End           Total  Used       Idle(Expired)  Conflict  Disable
 -----------------------------------------------------------------------------
  192.168.10.1   192.168.10.254   253     2         250(0)         0        1
 -----------------------------------------------------------------------------
 

 <DHCP-R2> display ip pool name ntd2306 all  //查看地址池中全部IP信息 
 
 <DHCP-R2> display ip pool name ntd2306 used  //查看地址中已使用的IP地址 
  Pool-name      : ntd2306
  Lease          : 1 Days 0 Hours 0 Minutes
  DNS-server0    : 8.8.8.8                 
  Gateway-0      : 192.168.10.254   
  Mask           : 255.255.255.0
 -----------------------------------------------------------------------------
   Start           End         Total   Used  Idle(Expired)  Conflict  Disable
 -----------------------------------------------------------------------------
  192.168.10.1   192.168.10.254   253     2      250(0)         0        1
 -----------------------------------------------------------------------------
  Network section : 
  --------------------------------------------------------------------------
  Index       IP               MAC          Lease    Status  
  --------------------------------------------------------------------------
    250    192.168.10.251      5489-9811-58ce      2346     Used       
    251    192.168.10.252      5489-985f-7ebf     1801     Used    
    
<R1-zj> display dhcp relay all 
 Server IP address [01] : 192.168.20.20        //DHCP服务器IP地址
 Gateway address in use : 192.168.10.254      //网关IP地址
 

4、交换机部署DHCP

1)拓扑

2)需求:vlan10和vlan20的pc自动获取IP地址

配置步骤: 
第一步:在sw1部署dhcp
1)创建vlan
2)配置trunk链路-交换机互联接口做trunk
3)配置vlanif 虚接口地址--每个vlan的网关地址
4)开启dhcp 功能
5)创建IP地址池
   -定义网段
   -定义网关
   -定义dns
6)在vlanif 虚接口下,开启dhcp select  global

第二步:配置sw2和sw3接入层交换机
1)创建vlan
2)接口加入vlan,交换机和pc互联的接口做access
3) 交换机和交换机互联的接口做trunk 

第三步:验证与测试

4)配置命令

第一步:在sw1部署dhcp 
 DHCP服务器配置: 
[SW1-DHCP]vlan batch 10 20
[SW1-DHCP]port-group group-member g0/0/1 g0/0/2
[SW1-DHCP-port-group]port link-type trunk
[SW1-DHCP-port-group]port trunk allow-pass vlan all
[SW1-DHCP-port-group]quit
[SW1-DHCP]ip pool vlan10
[SW1-DHCP-ip-pool-vlan10]network 192.168.10.0 mask 24
[SW1-DHCP-ip-pool-vlan10]gateway-list 192.168.10.254
[SW1-DHCP-ip-pool-vlan10]dns-list 8.8.8.8
[SW1-DHCP-ip-pool-vlan10]quit
[SW1-DHCP]ip pool vlan20
[SW1-DHCP-ip-pool-vlan20]network 192.168.20.0 mask 24
[SW1-DHCP-ip-pool-vlan20]gateway-list 192.168.20.254
[SW1-DHCP-ip-pool-vlan20]dns-list 8.8.8.8
[SW1-DHCP-ip-pool-vlan20]quit
[SW1-DHCP]dhcp enable 
[SW1-DHCP]int vlanif 10
[SW1-DHCP-Vlanif10]ip address 192.168.10.254 24
[SW1-DHCP-Vlanif10]dhcp select global  
[SW1-DHCP-Vlanif10]int vlanif 20
[SW1-DHCP-Vlanif20]ip address 192.168.20.254 24
[SW1-DHCP-Vlanif20]dhcp select  global


 第二步:配置sw2和sw3接入层交换机 
 SW2配置: 
[SW2]vlan batch 10 20
[SW2]port-group group-member g0/0/2 g0/0/3
[SW2-port-group]port link-type access
[SW2-port-group]port default vlan 10
[SW2-port-group]quit
[SW2]int g0/0/1
[SW2-G0/0/1]port link-type trunk
[SW2-G0/0/1]port trunk allow-pass vlan all


 SW3配置: 
[SW3]vlan batch 10 20
[SW3]port-group group-member g0/0/2 g0/0/3
[SW3-port-group]port link-type access
[SW3-port-group]port default vlan 20
[SW3-port-group]quit
[SW3]int g0/0/1
[SW3-G0/0/1]port link-type trunk
[SW3-G0/0/1]port trunk allow-pass vlan all

  第三步:验证与测试 
 在PC1和PC2中设置IP地址的获取方式为DHCP
 在PC1和PC2中命令行中输入命令:
 ipconfig   /release   //释放当前IP地址
 ipconfig   /renew     //更新IP地址(获取IP地址)   
 
 
 <SW1-DHCP>display ip pool name vlan10 all  //查看地址池中全部IP信息
 <SW1-DHCP>display ip pool name vlan10 used  //查看地址中已使用的IP地址
 <SW1-DHCP>display ip pool name vlan20 all  //查看地址池中全部IP信息
 <SW1-DHCP>display ip pool name vlan20 used  //查看地址中已使用的IP地址

二、DHCP Snooping

1、DHCP Snooping 概述

1)DHCP面临的安全威胁

-DHCP协议应用的过程中遇到很多安全方面的问题,网络中存在一些针对DHCP的攻击:

&:DHCP Server仿冒者攻击

&:DHCP 饿死攻击

-为了保证网络的安全性,引入DHCP Snooping技术

2)DHCP Snooping是什么

-DHCP Snooping是DHCP的一种安全特性

-DHCP Snooping在DHCP 客户端和DHCP 服务器之间建立一道虚拟防火墙,以抵御网络中针对DHCP的各种攻击。

3)DHCP Snooping 作用

-防止网络上针对DHCP的攻击

-增强网络的安全性、设备的可靠性、业务的稳定性

2、DHCP Server仿冒者攻击

1)仿冒攻击攻击原理:

-由于DHCP 服务器和DHCP 客户端之间没有认证机制,所以如果在网络上随意添加一台恶意的DHCP服务器,它就可以为客户端分配恶意且错误的IP地址,不仅可以导致客户端无法上网,而且容易造成客户端信息泄露,从而会对网络造成非常大的危害,为什么会这样呢?

-因为DHCP客户端发送的DHCP Discover报文是以广播形式发送,无论是合法的DHCP 服务器,还是非法的DHCP Server都可以接收到DHCP Discover报文,如果此时非法的DHCP仿冒服务器,回应给DHCP 客户端,恶意的仿冒信息(如:错误的IP、错误的网关、错误的DNS),DHCP 客户端无法分辨这些信息,所以最终导致DHCP客户端无法上网和信息泄露

2)如何防御DHCP Server仿冒者攻击

-DHCP Snooping的信任功能,能够保证客户端从合法的服务器获取IP地址

-DHCP Snooping信任功能将接口分为信任接口和非信任接口

  • 信任接口:

    &:信任接口接收DHCP服务器回应的的 DHCP ACK、DHCP Offer

    &:设备只会将DHCP客户端的请求报文通过信任接口发送给合法的DHCP服务器

  • 非信任接口:

&:非信任接口在接收到DHCP服务器响应的DHCP ACK、DHCP Offer报文后,会丢弃该报文

-所以我们将连接合法DHCP服务器的接口设置为信任接口即可,其他接口默认是非信任接口

&:连接合法DHCP服务器的接口为信任接口

&:连接客户端的接口开启snooping功能

3、DHCP Server仿冒者攻击实验

1)拓扑

2)需求:为了提高网络安全性,为了预防公司主机被仿冒DHCP服务器欺骗,导致无法上网等情况发生,公司要求:在交换机SW1中部署DHCP Snooping,来预防仿冒者攻击

3)配置步骤:

第一步:配置合法DHCP服务器

--开启DHCP功能

--创建IP地址池

--定义网段

--定义网关

--定义DNS

--给vlanif1 配置IP地址--网关地址(使用默认的vlanif1)

--在vlanif1 接口下开启全局的DHCP功能

第二步:配置仿冒DHCP服务器

--开启DHCP功能

--创建IP地址池

--定义网段

--定义网关

--定义DNS

--给vlanif1 配置IP地址--网关地址(使用默认的vlanif1)

--在vlanif1 接口下开启全局的DHCP功能

第三步:在SW1上配置DHCP Snooping

--SW1交换机连接PC的接口,开启DHCP Snooping功能

--SW1交换机连接合法DHCP服务器的接口配置为信任接口

--SW1交换机既没有开启DHCP Snooping,也没有配置信任接口的都属于非信任接口

第四步:验证与测试

4)配置命令:

第一步:配置合法DHCP服务器: 
 SW3-DHCP配置: 
[SW3-DHCP]dhcp enable    //开启dhcp 功能
[SW3-DHCP]ip pool tedu2  //创建IP地址池
[SW3-DHCP-ip-pool-tedu2]network 192.168.20.0 mask 24   //定义网段
[SW3-DHCP-ip-pool-tedu2]gateway-list 192.168.20.254   //定义网关
[SW3-DHCP-ip-pool-tedu2]dns-list 8.8.8.8              //定义dns
[SW3-DHCP-ip-pool-tedu2]quit
[SW3-DHCP]int vlanif1                 //进入vlanif 1
[SW3-DHCP-Vlanif1]ip address 192.168.20.254 24   //给vlanif 1 配置IP地址--网关地址
[SW3-DHCP-Vlanif1]dhcp select global   //在vlanif 1虚接口下开启基于全局的dhcp


 第二步:配置DHCP仿冒服务器 
 SW2-FM配置: 
[SW2-FM]dhcp enable 
[SW2-FM]ip pool tedu1
[SW2-FM-ip-pool-tedu1]network 192.168.10.0 mask 24
[SW2-FM-ip-pool-tedu1]gateway-list 192.168.10.254 
[SW2-FM-ip-pool-tedu1]dns-list 9.9.9.9
[SW2-FM-ip-pool-tedu1]quit
[SW2-FM]int vlanif 1
[SW2-FM-Vlanif1]ip address 192.168.10.254 24
[SW2-FM-Vlanif1]dhcp select global

 第三步:在SW1上配置DHCP Snooping  
 SW1配置: 
[SW1]dhcp enable   //开启dhcp 功能
[SW1]dhcp snooping enable  //开启dhcp snooping 功能
[SW1]port-group group-member g0/0/1 g0/0/2
[SW1-port-group]dhcp snooping enable  //在连接PC的接口下开启dhcp snooping 
[SW1-port-group]quit
[SW1]int g0/0/4
[SW1-GigabitEthernet0/0/4]dhcp snooping trusted   
//在连接合法dhcp 服务器的接口上开启信任接口

 第四步:验证与测试 
PC通过合法DHCP服务器获取192.168.20.0/24的IP地址

4、DHCP饿死攻击

1)什么是饿死攻击

-饿死攻击也称DHCP Server服务拒绝攻击(拒绝服务攻击)

-黑客机发送大量恶意请求报文,不断的申请IP地址,导致DHCP服务器中IP地址池中IP地址被耗尽,由于DHCP服务器IP地址池枯竭,没有空闲的IP地址,所以无法为正常主机分配IP地址。

2)饿死攻击是如何实现的

由于DHCP 服务器通常仅根据DHCP Request报文中的CHADDR(主机MAC地址来分配IP地址,

黑客主机,攻击者通过不断改变报文中的CHADDR(MAC地址)字段向DHCP 服务器申请IP地址,将会导致DHCP 服务器上的IP地址池被耗尽,从而无法为其他正常用户提供IP地址。

3)如何防御饿死攻击

-为了防止黑客主机恶意申请IP地址,在交换机中开启DHCP Snooping 功能,检测数据帧中的源MAC与DHCP报文中CHADDR(MAC地址)是否一致功能,如果两个MAC地址相同就进行数据转发,如果两个MAC地址不同就把丢弃报文。

备注:

-不过目前黑客攻击手动越来越强,这种防御方式作用也越来越小

-目前黑客主机在发起DHCP饿死攻击的时候,不在仅仅修改DHCP报文中CHADDR(MAC地址)

-黑客通常会将帧头的源MAC地址和DHCP报文中的CHADDR(MAC地址)同时进行修改,每一个攻击报文中,两个MAC地址都是相同的,所以通过一致性检查,无法有效的防御此类攻击,

所以目前为了防止DHCP 饿死攻击,不仅需要配置DHCP Snooping ,还需要配置端口安全,通过端口安全可以更加有效的防止DHCP饿死攻击

端口安全-会在下课课程中讲解

4、DHCP饿死攻击实验

1)拓扑

2)需求:为了防止黑客主机发起DHCP饿死攻击,在公司的交换机SW1中部署DHCP Snooping

使用Snooping 在防御DHCP饿死攻击

如果防止:开启DHCP Snooping,开启MAC地址一致性检查

3)配置步骤:

第一步:配置合法DHCP服务器

--开启dhcp功能

--创建IP地址池

--定义网段

--定义网关

--定义dns

--给vlanif1 配置IP地址--网关地址(使用默认的vlanif1)

--在vlanif1 接口下开启全局的dhcp功能

第二步:在SW1上配置DHCP Snooping

--SW1交换机连接PC的接口,开启dhcp snooping功能

--SW1交换机连接PC的所有接口都开启MAC地址一致性检测

我们并不清楚那个接口连接的是黑客机,所以一般建议在所有接口开启一致性检查

4)配置命令

第一步:配置合法DHCP服务器: 
 SW3配置: 
[SW3-DHCP]dhcp enable    //开启dhcp 功能
[SW3-DHCP]ip pool tedu2  //创建IP地址池
[SW3-DHCP-ip-pool-tedu2]network 192.168.20.0 mask 24   //定义网段
[SW3-DHCP-ip-pool-tedu2]gateway-list 192.168.20.254   //定义网关
[SW3-DHCP-ip-pool-tedu2]dns-list 8.8.8.8              //定义dns
[SW3-DHCP-ip-pool-tedu2]quit
[SW3-DHCP]int vlanif1                 //进入vlanif 1
[SW3-DHCP-Vlanif1]ip address 192.168.20.254 24   //给vlanif 1 配置IP地址--网关地址
[SW3-DHCP-Vlanif1]dhcp select global   //在vlanif 1虚接口下开启基于全局的dhcp

 第二步配置:在SW1上配置DHCP Snooping
 SW1配置:  
[SW1]dhcp enable   //开启dhcp 功能
[SW1]dhcp snooping enable  //开启dhcp snooping 功能
[SW1]port-group group-member g0/0/1 to g0/0/3
[SW1-port-group]dhcp snooping enable  //在连接PC的接口下开启dhcp snooping 
[SW1-port-group]dhcp snooping check dhcp-chaddr enable   //开启MAC地址一致性检查 
[SW1-port-group]quit
[SW1]int g0/0/4
[SW1-GigabitEthernet0/0/4]dhcp snooping trusted   //开启信任端口

备注:我们发现开启地址一致性检测,并不能真的防御住DHCP饿死攻击
因为现在的新型攻击都是将源MAC地址和DHCP报文中的CHADDR一起修改,所以地址一致性检测不出异常
所以我们可以使用端口安全来做DHCP 饿死攻击防御
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值