华为NP课程笔记18-DHCP

1 DHCP   

1.1前言

一个网络如果要正常运行,则网络中的主机必须要知道某些重要的网络参数,如IP地址、网络掩码、网关地址、DNS服务器地址等等,显然给每个主机手动配置这些参数是十分复杂的。为此,DHCP(dynamic host configuration protocol)被发布出来用于实现网络参数配置过程的自动化。

1.2 DHCP工作过程

华为NP课程笔记18-DHCP_第1张图片

 

DHCP采用了Client/Server模型;DHCP client需要从DHCP Server那里获得各种网络配置参数,这个过程是通过DHCP Client与DHCP Server直接交互各种DHCP消息来实现的。DHCP消息封装在UDP报文中,DHCP Server使用端口号67来接受DHCP消息,DHCP Client使用端口号68来接收DHCP消息。

如图所示,DHCP Client通过DHCP申请IP地址的过程分为四个阶段:

(1)发现阶段。DHCP client运行后,以广播的方式发送DHCP Discover消息

(2)提供阶段。DHCP Server收到DHCP Discover消息后,从IP地址池中选择一个IP地址,以单播的方式发送DHCP Offer消息给客户端

(3)请求阶段。DHCP Client收到DHCP offer消息后,以广播方式发送一个DHCP Request消息,这个DHCP request消息携带DHCP Server的标识,意图向Server请求获取offer中提供的IP地址。DHCP client如果收到多份offer信息,一般取第一个收到的,其他的Server收到Request广播后,会明白client拒绝了自己的offer,进而收回给予该Client的offer。

(4)确认阶段。DHCP收到Request消息后,向client发送单播DHCP Ack消息,确认获取IP地址失败,或者单播发送DHCP Nak消息,说明IP地址获取失败,需要重新获取IP地址。

 

   DHCP Server每次给client一个IP地址,只是跟DHCP Client定了一个关于该IP的租约(lease)。每个租约都有一个租约期(duration of lease)。租约期缺省24小时。缺省情况下,租约期到达一半的时候,Client会以单播方式向Server发送DHCP Request消息,请求续租。如果Client在租期3/4之前,收到Server的DHCP Ack消息,则续租成功,重新计时。如果超过了3/4租期还没有收到DHCP Ack消息,那么Client会在3/4租期的时候,以广播方式发送DHCP request消息,请求续租,如果在租期到期前,收到DHCP Ack消息,则续租成功,如果租约到期还是未收到DHCP Ack消息,则client放弃原来的IP地址,重新申请IP地址。

 

1.3 DHCP配置

DHCP Server配置分为基于接口(只会响应该接口接收的DHCP请求)和基于全局地址池(可以响应所有端口接受的DHCP请求)的分配方式。

 

dhcp enable     //全局开启DHCP

ip pool HW       //创建名为HW的地址池

  gateway-list 192.168.1.1           //配置网关地址列表

  network 192.168.1.0 mask 255.255.255.0  //设置地址网段

  excluded-ip-address 192.168.1.2           //设置不参与自动分配的IP地址范围

  lease day 3 hour 0 minute 0                //设置租约,默认1天

  dns-list 192.168.1.2                      //设置DNS服务器地址

int g0/0/0

   ip address 192.168.1.1 255.255.255.0

   dhcp server select global                  //接口下使能全局地址池

int g0/0/2

   ip address 192.168.2.1 24

   dhcp select interface                     //使能接口分配地址  

   dhcp server dns-list 192.168.2.2

   dhcp server excluded-ip-address 192.168.1.2

   dhcp server lease day 2 hour 0 minute 0

 

1.4 DHCP Relay

DHCP Discover、DHCP Reuest等消息都是广播报文,无法跨越二层广播域传播,那么当一个IP网络包含多个二层网络的时候,如果需要部署DHCP,可以在每个二层网络广播域中部署DHCP或者部署一个DHCP Server来同时为多个二层广播域中的DHCP Client服务,这时候需要引入DHCP Relay。

DHCP Relay的基本作用就是专门在DHCP Client和DHCP Server之间中转DHCP消息。

华为NP课程笔记18-DHCP_第2张图片

如图,DHCP Relay必须与DHCP Client位于同一个二层广播域,但DHCP Server与DHCP Relay可以位于不同的二层广播域。DHCP Client与DHCP Relay之间是以广播方式交换DHCP消息的,但DHCP Relay与DHCP Sserver之间是以单播方式交换DHCP消息的。

DHCP-Server(以全局地址池为例):

dhcp enable

ip pool dhcp-relay

  gateway-list 192.168.1.1

  network 192.168.1.0 mask 24

  dns-lsit 10.1.1.1

int 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     //配置IGP,使得Server和Relay正常通信

 

DHCP-Relay:

dhcp server group DHCP        //配置DHCP服务器组名

dhcp-server 10.1.1.1               //设定DHCP服务器地址

dhcp enable                   

int g0/0/1

  ip address 192.168.1.1 24

  dhcp select relay                              //启动DHCP RELAY

  dhcp relay server-select DHCP                   //设定DHCP Relay要使用的服务器组

int g0/0/0

  ip address 10.1.1.2 24

 

2 DHCP安全

2.1 DHCP攻击分类

针对DHCP的攻击行为主要有以下三种:

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

2.2 DHCP饿死攻击

攻击者通过持续大量的向DHCP Server申请IP地址,耗尽了地址池中的地址,导致DHCP Server无法为正常客户分配IP地址。DHCP消息中,有一个名叫CHADDR(Client Hardware Addess)的字段,该字段是由DHCP客户端填写的,表示客户端的MAC地址,Server根据不同的CHADDR来分配不同的地址,这样攻击者每申请一个IP地址时,就在CHADDR字段填写一个不同的值,从而耗尽IP地址。

2.3 仿DHCP Server攻击

攻击者私自安装运行DHCP server,将自己伪造成合法的DHCP server,从而给客户端分配错误的网络信息。

DHCP中间人攻击

华为NP课程笔记18-DHCP_第3张图片

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

2.4 DHCP Snooping

DHCP Snooping不是一种标准技术,暂时没有统一规范,不同厂商的实现技术也不一致。它部署在交换机上,作用类似与一道虚拟防火墙。

DHCP Snooping支持在端口下对DHCP Request报文的源MAC地址与CHADDR进行一致性检查,从而阻止饿死攻击,在端口下使用命令:

dhcp snooping check dhcp-chaddr enable

但如果攻击者同时不停变更MAC地址,则该检测方法就没有实际效果了

 

DHCP Snooping将交换机上端口分为信任端口(Trusted端口)和非信任端口(Untrusted端口);与合法的DHCP Server相连的端口设置为Trusted端口,会正常转发接收到的DHCP响应报文;而其他端口默认为Untrusted端口,接收到DHCP响应报文(如DHCP offer、DHCP ACK等等),会丢弃这些报文。使用dhcp snooping trusted配置端口为Trusted端口。

 

运行了DHCP Snooping的交换机会侦听往来于用户和DHCP Server之间的DHCP消息,并收集用户的MAC地址(指的是CHADDR字段的值)、用户的IP地址(指分配给相应的CHADDR的IP地址)等消息,这些消息集中形成DHCP Snooping绑定表,并被动态维护,绑定表中除了包含用户的MAC地址、用户的IP地址外,还包括IP地址租用期、VLAN-ID等,这样当收到ARP请求报文,会检查ARP请求报文中的源IP地址和源MAC地址,如果发现不匹配绑定表,会直接丢弃该ARP请求,这样有效地防止了中间人攻击。配置方法是在全局视图下执行命令:arp dhcp-snooping-detect enable

 

 

 

你可能感兴趣的:(华为路由交换课程笔记)