DHCP
一、DHCP产生背景
一个网络如果要正常地运行,则网络中的主机(Host)必需要知道某些重要的网络参数,如IP地址、网络掩码、网关地址、DNS服务器地址、网络打印机地址等等。显然,在每台主机上都采用手工方式来配置这些参数是非常困难的、或是根本不可能的,而且存在人员素质要求高、容易出错、灵活性差、IP地址资源利用率低、工作量大、IP地址冲突等问题。
IETF于1993年发布了动态主机配置协议(DHCP:Dynamic Host Configuration Protocol)DHCP的应用,实现了网络参数配置过程的自动化。使用自动化的协议,自动下发IP地址、网关、DNS等各项配置信息。
二、DHCP的基本原理
*DHCP采用了Client/Server模型
*DHCP应用层协议
*DHCP Client需要从DHCP Server那里获得各种网络配置参数,这个过程是通过DHCP Client与DHCP Server之间交互各种DHCP消息来实现的。DHCP消息是封装在UDP报文中的,DHCP Server使用端口号67来接收DHCP消息,DHCP Client使用端口号68来接收DHCP消息。
*DHCP的实现方式:在具有路由功能的设备上,开启DHCP功能,定义一个地址池.。
*DHCP 报文
discover offer request ack
*DHCP服务器在现网中的一般的载体:具有路由功能的设备:路由器、三层交换机
*能提供DHCP服务功能的服务器:Windows Linux(常用)
三、DHCP的通信过程
发现阶段(Discove)也就是PC上的DHCP Client寻找DHCP Server的阶段。PC上的DHCP Client开始运行后,会以广播的方式发送一个DHCP Discover消息
提供阶段(Offer)(单播/广播) 也就是DHCP Server向DHCP Client提供IP地址的阶段,每一个接收到DHCP Discover消息的DHCP Server(包括路由器上运行的DHCP Server)都会从自己维护的地址池中选择一个合适的IP地址,并通过DHCP Offer消息将这个IP地址发送给DHCP Client。DHCP Server是以单播的方式来发送DHCP Offer消息的
请求阶段(Request) (广播)PC上的DHCP Client会在若干个收到的Offer(即若干个收到的DHCP Offer消息)中根据某种原则来确定出自己将要接受哪一个Offer。通常情况下,DHCP Client会接受它所收到的第一个Offer(即最先收到的那个DHCP Offer消息)。这时DHCP Request消息中携带有DHCP Server的标识(称为Server Identifier),表示PC上的DHCP Client愿意接受这个DHCP Server所给出的Offer。 二层广播域中所有的DHCP Server都会接收到PC上的DHCP Client发送的DHCP Request消息。DHCP Server收到并分析了该DHCP Request消息后,会明白PC已经愿意接受自己的Offer了。其他的DHCP Server收到并分析了该DHCP Request消息后,会明白PC拒绝了自己的Offer。于是,这些DHCP Server就会收回自己当初给予PC的Offer。也就是说,当初准备提供给PC使用的IP地址现在可以用来分配给别的设备使用了。
确认阶段(ACK)DHCP Server会向PC上的DHCP Client发送一个DHCP Ack消息。注意,由于种种原因,DHCP Server也可能会向PC上的DHCP Client发送一个DHCP Nak消息。如果PC接收到了DHCP Nak消息,就说明这次获取IP地址的尝试失败了。在这种情况下,PC只能重新回到发现阶段来开始新一轮的IP地址申请过程。
四、DHCP租期更新
默认的租期 一天 24小时
续租:IP租约达到50% 时,DHCP clinet请求更新IP地址的租约时间
五、DHCP的重绑定
DHCP客户端在租约期限到达87.5%时,还没收到服务器响应,会申请重绑定IP
六、DHCP配置
1.接口地址池配置
[Huawei]dhcp enable ##全局开启DHCP enable 功能
[Huawei]linterfaceGigabitEthernet0/0/0 ##进入接口
[Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 24 ##配置好IP地址
[Huawei-GigabitEthernet0/0/0]dhcp select interface ##选择地址池的接口模式
[Huawei-GigabitEthernet0/0/0]dhcp server dns-list 114.114.114.114 ##指定DNS服务器的地址
[Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.10.3 ##配置接口地址池中不参与自动分配的IP地址范围
[Huawei-GigabitEthernet0/0/0]dhcp server lease day 3 ##指定租期 dhcp server lease day 1 hour 3 minute 5 租期可以精确到 minutes
2.全局地址池配置
[Huawei]dhcp enable ##开启全局DHCP功能
[Huawei]ip pool pool1 ##创建地址池(给地址池起名字)
[Huawei-ip-pool-pool1]network 1.1.1.0 mask 24 ##指定地址池的网段大小
[Huawei-ip-pool-pool1]gateway-list 1.1.1.1 ##指定网关
[Huawei-ip-pool-pool1]lease day 10 ##指定租期时间
[Huawei-ip-pool-pool1]quit
[Huawei]interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1]dhcp select global ##进入相关的接口 选择DHCP的模式为全局 global
七、DHCP优缺点
DHCP的优点: 1、 网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机
2、 DHCP不会同时租借相同的IP地址给两台主机
3、 DHCP管理员可以约束特定的计算机使用特定的IP地址
4、 可以为每个DHCP地址池设置很多选项
5、 客户机在不同子网间移动时不需要重新设置IP地址
DHCP的缺点: 1、 DHCP不能发现网络上非DHCP客户机已经在使用的IP地址
2、 当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址
3、 DHCP服务器不能跨路由器与客户机通信,除非路由器允许DHCP转发 - --- 中继
DHCP协议基本上是一个单向驱动协议;SERVER完全是被动的,其动作行为基本完全由CLIENT的请求行为而激发。 即SERVER端无法主动控制CLIENT端。
八、DHCP中继
1.产生背景
DHCP Discover、DHCP Offer等消息都是以广播报文的方式发送的,也就是说DHCP Client和DHCP Server必须在同一个二层广播域中才能接收到彼此发送的DHCP消息。DHCP消息无法跨越二层广播域传递。
PC客户端与DHCP server有时不在同一个网段,PC发出的广播DHCP discover包到达三层设备,被三层接口丢弃,因此数据无法到达DHCP服务器
DHCP Relay (DHCP中继),可以实现在不同子网和物理网段之间处理和转发dhcp信息的功能
2.通信过程
1>、DHCP客户端发出DHCP discover广播报文
2>、DHCP中继设备根据自己配置的DHCP中继服务器,将此DHCP discover广播报文以单播的形式转发给DHCP服务器,并将自己用来代理
3>、DHCP服务器收到发现报文后,根据Relay agent IP选项的值,来检测自己的作用域是否包含此网段地址
如果不包含,DHCP服务器将不做任何反应
包含则从作用域中拿出一个IP,然后发送ICMP Request报文以确定此IP未被分配
确定此IP未被使用后,仍以单播的形式向DHCP中继设备发出DHCP Offer提供应答报文
4>、DHCP中继设备以单播的形式将收到的DHCP Offer报文转发给DHCP客户端
5>、DHCP客户端仍以广播的形式发送DHCP Request请求报文
6>、DHCP中继设备以单播形式向DHCP服务器转发此报文
7>、DHCP服务器以单播形式应答此请求报文,分配IP地址选项等
8>、DHCP中继设备以单播形式向DHCP转发此DHCP应答报文
9>、DHCP客户端收到报文,配置相关选项,DHCP通信完成
3.配置
注: