HCIA-ICT实战基础04-DHCP原理与配置

HCIA-ICT实战基础-DHCP原理与配置

目录

DHCP产生背景

DHCP工作原理与配置

DHCP Relay工作原理与配置

1 DHCP产生背景

1.1 手工配置网络参数存在一下问题:

  1. 灵活性差
  2. 容易出错
  3. IP地址资源利用率低
  4. 工作量大
  5. 人员素质要求高

1.2 DHCP的基本概念

DHCP是一种用于集中对用户IP地址进行动态管理和配置的协议.

DHCP采用C/S(Clinet/Server, 客户端/服务器)通信模式, 属于应用层协议, 协议报文基于传输层的UDP的方式进行交互, 采用67(DHCP服务器)和68(DHCP客户端)两个端口号: 1.正常工作是由客户向服务器提出配置申请; 2.服务器返回为客户端分配的IP地址等相应配置信息.

DHCP相对于手工配置有以下优点: 效率高、灵活性强、易于管理.

image-20220925184637379

注: 通常称采用两个端口号的协议为双端口协议, 比如FTP之类的.

2 DHCP工作原理与配置

2.1 工作原理

image-20220925185515994

image-20220925191234005

  1. 发现阶段, 即DHCP客户端发现DHCP服务器的阶段. DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器. DHCPDISCOVER报文携带了客户端的mac地址、需要请求的参数列表选项、广播标志位等信息.
  2. 提供阶段, 即DHCP服务器提供网络配置信息的阶段. 服务器接收到DHCP DISCOVER 报文后, 选择接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池, 并且从中选择一个可用的IP地址, 然后通过DHCP OFFER报文发送给DHCP客户端.
  3. 选择阶段, 即DHCP客户端选择IP地址的阶段. 如果有多个DHCP服务器向DHCP客户端回应了DHCP OFFER报文, 则DHCP客户端一般只接受第一个收到的DHCP OFFER报文, 然后以广播方式发送DHCP REQUEST报文, 该报文中包含客户端想选择的DHCP服务器标识符和客户端的IP地址.
  4. 确认阶段, 即DHCP服务器确认所分配IP地址的阶段. DHCP客户端收到DHCP ACK报文, 会广播发送免费的ARP报文, 探测本网段是否有其他终端使用服务器分配的IP地址.

注: 免费ARP是在网络中检测IP地址冲突的一种ARP机制, 通过ARP请求并检测是否有回复的方法确认是否有其他设备在使用需要检测的IP地址.

2.2 DHCP报文格式

image-20220925191304024

重要字段说明:

  1. Op (op code): 表示报文类型, 取值为1或2, 1为客户端请求报, 2为服务器相应报文;
  2. Secs (seconds): 有客户端填充, 表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数, 缺省值为3600s;
  3. Flags: 客户端请求服务器发送响应报文的形式, 只有最高位有意义, 其余15位置0. 最高位为0时请求发送单播响应, 最高位为1是请求发送广播响应.
  4. Yiaddr: 服务器分配给客户端的IP地址
  5. Siaddr: DHCP服务器的IP地址
  6. Ciaddr: 客户端ip地址
  7. Chaddr: 客户端的mac地址;
  8. Option(variable): DHCP通过此字段包含了服务器分配给终端的配置信息.

其他字段简单提一下:

Htype: 硬件类型, 一般指mac地址

Hien: 硬件长度, 一般为mac地址的长度(48bit)

Xid: 随机数

Sname: 服务器的名称

File: DHCP的配置文件

还有几个没讲到的是后面的内容, 接着往下看.

2.3 常见的Options预定义选项字段介绍

DHCP报文中Options字段为可变长度字段, 最多为312Byte(2496bit), 此字段包含了DHCP报文类型, 服务器分配给终端的配置信息, 如网关IP地址, DNS服务器的IP地址, 客户端可以使用的IP地址的有效租期(一般为24h)等信息, 这种可拓展的字段结构称为TLV结构.

Options字段由Type、Length和Value三部分组成, 其中Type字段取值范围为1~255.

常见Options如下表:

image-20220925195438936

2.4 DHCP的消息类型

DHCP报文通过Options选项中的Type=53来表示DHCP的报文类型, 如下图所示, 当Type=53, Length=1, Value取值从01到08分别表示不同类型的DHCP报文类型

image-20220925195847052

2.5 Options自定义选项字段介绍

出来标准协议中规定的字段选项外, 还有部分选项内容没有统一规定, 统称为用户自定义选项, 例如Option 82(中继代理信息选项)和Option 43(厂商特定信息选项).

2.6 DHCP地址续租

image-20220925213359730

当租期达到50%(T1)时, DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文, 请求更新IP地址租期. 如果收到DHCP服务器回应的DHCP ACK报文, 则租期更新成功.

当租期达到87.5%(T2)时, 如果仍未收到DHCP服务器的应答, DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文, 请求更新DHCP ACK报文**, 如果收到DHCP服务器回应的DHCP ACK报文, 则租期更新成功.

如果租期时间到时都没有收到服务器的回应, 客户端停止使用此IP地址, 重新发送DHCP DISCOVER报文请求新的IP地址.

2.7 DHCP客户端重用曾经使用过的地址

DHCP客户端非首次接入网络时, 可以重用曾经使用过的地址, 并跳过发现阶段提供阶段. 例如, 网络的主机作为DHCP的客户端, 在关机再开机的过程中, 需要重新获取相关的网络参数, 则可以请求分配曾经使用过的IP地址.

  1. 选择阶段

    客户端广播发送包含前一次分配的兄弟之的DHCP REQUEST报文, 报文中的Option 50(请求的IP地址选项) 字段填入曾经使用过的IP地址.

  2. 确认阶段

    DHCP服务器收到DHCP REQUEST报文后, 根据DHCP REQUEST报文所携带的mac地址来查找有没有相应的租约记录, 如果有则返回DHCP ACK报文, 通知DHCP客户端可以继续使用这个IP地址, 如果没有租约记录, 则不响应.

2.8 DHCP分配IP地址顺序

DHCP服务器按照下图顺序为客户端选择IP地址

image-20220925214841923

华为路由器一般是从后往前分配ip地址

以上检查完都没有可选择的IP地址, 服务器就向客户端报告错误, 不过一般情况下不会出现, 除非遇到像DHCP地址池攻击之类的网络攻击.

2.9 DHCP配置

1.打开DHCP功能

[Huawei]dhcp enable

全局配置模式

1.创建全局地址池

[Huawei] ip pool ip-pool-name

2.配置DHCP客户端的网关地址

[Huawei-ip-pool-HW]gateway-list ip-address

3.配置全局地址池可动态分配的IP地址范围

[Huawei-ip-pool-HW]network ip-address [mask{mask-length}]

4.配置地址池中不参与自动分配的IP地址

[Huawei-ip-pool-HW]excluded-ip-address start-ip-address [end-ip-address]

5.配置地址池的地址租期

[Huawei-ip-pool-HW]lease {day day[hour hour[minute minute]] | unlimited}

6.配置为指定DHCP Client分配固定IP地址

[Huawei-ip-pool-HW]static-bind ip-address ip-address mac-address [option-template template-name | description description]

7.在接口上调用全局地址池

[Huawei-GE0/0/0]dhcp select global

不用指定地址池的名称, 全局DHCP下会根据接口所处网段自动选择地址池

接口配置模式

1.配置基于接口方式的地址池

[Huawei]int g0/0/1
[Huawei-GE0/0/1]ip address ip-address {mask | masklength}
[Huawei-GE0/0/1]dhcp select interface

接口地址所属的IP地址网段即为接口地址池. 并且接口地址的掩码不能配置为31, 否则会导致接口地址池配置失败

2.设置DHCP服务器的DNS

[Huawei-GE0/0/1]dhcp server dns-list [dns]

3.配置接口地址池的网关IP地址

[Huawei-GE0/0/1]dhcp server gateway-list ip-address

二层DHCP

1.配置为指定DHCP Clinet分配固定IP地址

[Huawei-GE0/0/1]dhcp server static-bind ip-address ip-address mac-address mac-address [description description] 

注: 这里mac地址要修改为三段形式, 如54-89-98-4F-41-C3变为5489-984F-41C3

2.配置地址池中不参与自动分配的IP地址

[Huawei-GE0/0/1]DHCP server excluded-ip-address start-ip-address [end-ip-address]

3.配置地址池的地址租期

[Huawei-GE0/0/1]DHCP server lease {day day [hour hour [minute minute]] | unlimited}

4.查看地址池

[Huawei]display ip pool

3 DHCP Relay(中继)工作原理与配置

3.1 概念

随着网络规模的不断扩大, 网络设备不断增多, 企业内不同的用户肯分布在不同的网段, 一个DHCP如果想满足多个网段的地址分配需求, 进行跨网段分配IP地址, 即需要跨网段发送DHCP报文, 就需要依赖DHCP Relay(DHCP中继).

3.2 DHCP Relay报文格式

image-20220925223828495

Hops: 表示当前DHCP报文进过的DHCP中继数目, 该字段有客户端或服务器设置为0, 每经过一个DHCP中继时, 该字段+1; 通常情况下, 客户端和服务器中间不能超过15台中继.

Giaddr(gateway ip address): 表示第一个DHCP中继的IP地址. 当客户端发出DHCP请求时, 第一个DHCP中继在将DHCP请求报文转发给DHCP服务器时, 会把自己的IP地址填入此字段.

3.3 DHCP Relay工作原理

image-20220925224420032

  1. 发现阶段: DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后, 通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继;

  2. 提供阶段: DHCP服务器根据DHCP DISCOVER报文中的Giaddr字段选择地址池为客户端分配相关网络参数, DHCP中继收到DHCP OFFER 报文后, 以单播或组播的方式发送给DHCP Client;

  3. 选择阶段: 中继接收到来自客户端的DHCP REQUEST报文的处理过程同"发现阶段";

  4. 确认阶段: 中继收到来自服务器的DHCP ACK报文处理过程同"提供阶段".

3.4 DHCP Relay配置

配置命令

1.使能接口的DHCP中继功能

[Huawei-GE0/0/1]DHCP select relay

该接口为下联终端或下联接入交换机的接口, 汇聚交换机上通常为vlanif口

2.在接口视图下配置DHCP服务器的IP地址

[Huawei-GE0/0/1]DHCP relay server-ip ip-address

3.创建DHCP服务器组

[Huawei]DHCP server group group-name

4.在DHCP服务器组中配置DHCP服务器成员

[Huawei-DHCP-server-group-HW]DHCP-server ip-address [ip-address-index]

5.配置接口应用的DHCP服务器组

[Huawei-GE0/0/1]DHCP relay server-select group-name

6.开启接口下的DHCP Client功能

[Huawei-GE0/0/1]ip address DHCP-alloc

配置案例

image-20230717112032472

AR1作为DHCP-server, LSW1做为DHCP-relay, VLAN10和VLAN20的网关在LSW1上

AR1

sy
sys AR1
#全局启用DHCP
dhcp enable
#配置地址池
ip pool office
	network 192.168.10.0 mask 24
	gateway-list 192.168.10.254 
	dns-list 8.8.8.8
	qu
ip pool student
	network 192.168.20.0 mask 24
	gateway-list 192.168.20.254 
	dns-list 8.8.8.8
	qu
int g0/0/1
	ip add 192.168.100.254 24
	dhcp select global
	qu
#配置回vlan10和vlan20的路由
ip route-static 192.168.10.0 24 192.168.100.1	
ip route-static 192.168.20.0 24 192.168.100.1

LSW1

sy
sys LSW1
#全局启用DHCP
dhcp enable
vlan batch 10 20 30 40 100
int vlan 10
	ip add 192.168.10.254 24
	dhcp select relay	#启用DHCP中继
	dhcp relay server-ip 192.168.100.254	#指定DHCP服务器的地址
	qu
int vlan 20
	ip add 192.168.20.254 24
	dhcp select relay
	dhcp relay server-ip 192.168.100.254
	qu
int vlan 100
	ip add 192.168.100.1 24
	qu
int g0/0/1
	port link-type access
	port default vlan 100
	qu
int g0/0/5
	port link-type trunk
	port trunk allow-pass vlan 10 20 100
	qu

LSW2

sy
sys LSW1
vlan batch 10 20 30 40 100
int  g0/0/1
	port link-type access
	port default vlan 10
	qu
int  g0/0/2
	port link-type access
	port default vlan 10
	qu
int g0/0/3
	port link-type access
	port default vlan 20
	qu
int g0/0/4
	port link-type access
	port default vlan 20
	qu
int g0/0/5
	port link-type trunk
	port trunk allow-pass vlan 10 20 100
	qu

配置测试

PC2成功获取到DHCP地址, 其他设备同理

image-20230717115314595

posted @ 2022-10-30 10:45  Qurare  阅读(253)  评论(0编辑  收藏  举报