DHCP基础介绍
随着网络规模的不断扩大,网络复杂度不断提升,网络中的终端设备例如主机、手机、平板等,位置经常变化。终端设备访问网络时需要配置IP地址、地址、DNS服务器地址等。采用手工方式为终端配置这些参数非常低效且不够灵活。
IETF于1993年发布了DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)DHCP实现了网络参数配置的自动化,降低客户端的配置和维护成本。本次介绍DHCP工作原理、应用场景和简单配置。
手工配置网络参数存在的问题
手工配置网络参数存在以下问题:
▫ 灵活性差
▫ 容易出错
▫ IP地址资源利用率低
▫ 工作量大
▫ 人员素质要求高
DHCP基本概念
• DHCP是一种用于集中对用户IP地址进行动态管理和配置的协议。
• DHCP采用C/S(Client/Server,客户端/服务器)通信模式,协议报文基于UDP的方式进行交互,采用67
(DHCP服务器)和68(DHCP客户端)两个端口号:
▫ 正常工作时由客户端向服务器提出配置申请。
▫ 服务器返回为客户端分配的IP地址等相应的配置信息。
• DHCP相对于手工配置有如下优点:
▫ 效率高
▫ 灵活性强
▫ 易于管理
DHCP客户端接入网络的工作原理
- 发现阶段,即DHCP客户端发现DHCP服务器的阶段。
▫ DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器。DHCP DISCOVER报
文中携带了客户端的MAC地址、需要请求的参数列表选项、广播标志位等信息。 - 提供阶段,即DHCP服务器提供网络配置信息的阶段。
▫ 服务器接收到DHCP DISCOVER报文后,选择跟接收DHCP DISCOVER报文接口的
IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP
OFFER报文发送给DHCP客户端。 - 选择阶段,即DHCP客户端选择IP地址的阶段。
▫ 如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一
般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST
报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。
4.确认阶段,即DHCP服务器确认所分配IP地址的阶段。
▫ DHCP客户端收到DHCP ACK报文,会广播发送免费ARP报文,探测本网段是否有
其他终端使用服务器分配的IP地址。
DHCP报文格式
重要字段说明:
▫ Op(op code):表示报文的类型,取值为1或2,含义如下:
▪ 1:客户端请求报。
▪ 2:服务器响应报文。
▫ Secs(seconds):由客户端填充,表示从客户端开始获得IP地址或IP地址续
借后所使用了的秒数,缺省值为3600s。
▫ Flags:客户端请求服务器发送响应报文的形式,只有最高位有意义,其余15
位置0。最高位为0时请求发送单播响应,最高位为1时请求发送广播响应。
▫ Yiaddr(your client ip address):表示服务器分配给客户端的IP地址。当服
务器进行DHCP响应时,将分配给客户端的IP地址填入此字段。
▫ Siaddr(server ip address):DHCP服务器的IP地址。
▫ Chaddr(client hardware address):客户端的MAC地址。
▫ Options:DHCP通过此字段包含了服务器分配给终端的配置信息
重要字段说明:
▫ Op(op code):表示报文的类型,取值为1或2,含义如下:
▪ 1:客户端请求报。
▪ 2:服务器响应报文。
▫ Secs(seconds):由客户端填充,表示从客户端开始获得IP地址或IP地址续
借后所使用了的秒数,缺省值为3600s。
▫ Flags:客户端请求服务器发送响应报文的形式,只有最高位有意义,其余15
位置0。最高位为0时请求发送单播响应,最高位为1时请求发送广播响应。
▫ Yiaddr(your client ip address):表示服务器分配给客户端的IP地址。当服
务器进行DHCP响应时,将分配给客户端的IP地址填入此字段。
▫ Siaddr(server ip address):DHCP服务器的IP地址。
▫ Chaddr(client hardware address):客户端的MAC地址。
▫ Options:DHCP通过此字段包含了服务器分配给终端的配置信息
DHCP分配地址顺序
DHCP服务器按照如下次序为客户端选择IP地址:
▫ DHCP服务器的数据库中与客户端MAC地址静态绑定的IP地址。
▫ 客户端以前曾经使用过的IP地址,即客户端发送的请求报文中请求IP地址
选项的地址。
▫ 在DHCP地址池中,顺序查找可供分配的空闲IP地址,最先找到的IP地址。
▫ 如果在DHCP地址池中未找到可供分配的空闲IP地址,则依次查询超过租
期、发生冲突的IP地址,如果找到可用的IP地址,则进行分配,否则报告
错误。
DHCP配置命令介绍
- 创建全局地址池
[Huawei]ip pool ip-pool-name
- 配置DHCP客户端的地址
[Huawei-ip-pool-HW]gateway-list ip-address
- 配置全局地址池可动态分配的IP地址范围
[Huawei-ip-pool-HW]network ip-address [ mask { mask | mask-length } ]
- 配置地址池中不参与自动分配的IP地址
[Huawei-ip-pool-HW]excluded-ip-address start-ip-address [ end-ip-address ]
- 配置地址池的地址租期
[Huawei-ip-pool-HW] lease { day day [ hour hour [ minute minute ] ] | unlimited }
- 配置为指定DHCP Client分配固定IP地址
[Huawei-ip-pool-HW] static-bind ip-address ip-address mac-address mac-address [ option-template template-
name | description description ]
- 配置基于接口方式的地址池
[Huawei]interface interface-type interface-number [subinterface-number ]
[Huawei-GigabitEthernet0/0/1]ip address ip-address { mask| mask-length}
接口地址所属的IP地址网段即为接口地址池。并且接口地址的掩码不能配置为31,否则会导致接口地址池配置失败。
- 配置接口地址池的IP地址
[Huawei-GigabitEthernet0/0/1]DHCP server gateway-list ip-address
- 配置为指定DHCP Client分配固定IP地址
[Huawei-GigabitEthernet0/0/1]DHCP server static-bind ip-address ip-address mac-address mac-address
[ description description ]
- 配置地址池中不参与自动分配的IP地址在这里插入代码片
[Huawei-GigabitEthernet0/0/1]DHCP server excluded-ip-address start-ip-address [ end-ip-address ]
- 配置地址池的地址租期
[Huawei-GigabitEthernet0/0/1]DHCP server lease { day day [ hour hour [ minute minute ] ] | unlimited }
完整命令
[R1]DHCP enable
[R1]ip pool HW
[R1-ip-pool-HW]gateway-list 192.168.1.1
[R1-ip-pool-HW]network 192.168.1.0 mask 24
[R1-ip-pool-HW]excluded-ip-address 192.168.1.200 192.168.1.254
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]DHCP select global #选择全局地址池
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.2.1 24
[R1-GigabitEthernet0/0/1]DHCP select interface
#选择接口地址池
[R1-GigabitEthernet0/0/1]DHCP server excluded-ip-address 192.168.2.254
[R1-GigabitEthernet0/0/1]DHCP server static-bind ip-address 192.168.2.2 mac-
address 00e0-fc00-00aa #为PC3分配固定的IP地址
配置结果
根据IP地址的使用情况,地址池中的IP地址可以分为多种状态:
▫ Used:表示此IP地址已使用。
▫ Idle:表示此IP地址处于空闲状态。
▫ Expired:表示此IP地址租期已过,处于空闲状态。
▫ Conflict:表示此IP地址与网络上其他地址冲突。
▫ Disable:表示此IP地址无法使用。