# DHCP服务
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。
DHCP采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,服务器返回为客户端分配的配置信息(包括IP地址、缺省网关、DNS Server、WINS Server等参数),可以实现IP地址动态分配,以及其他网络参数的集中配置管理。
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。
DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。后面可以看到,在用Wireshark过滤显示DHCP包,需要输入过滤条件BOOTP,而不是DHCP,但或许是因为我使用的Wireshark版本是比较旧的1.12.9,没有在新版本中尝试过,也许可以输入DHCP让其只显示DHCP包。
#### DHCP的实现

DHCP的实现分为4步,分别是:
第一步:Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCP Server。
第二步:可用的DHCP Server接收到Discover包之后,通过发送DHCP Offer包给予Client端应答,意在告诉Client端它可以提供IP地址。
第三步:Client端接收到Offer包之后,发送DHCP Request包请求分配IP。
第四步:DHCP Server发送ACK数据包,确认信息。
拓扑图:
#### 配置步骤(有些顺序不重要)
1.创建地址池
2.分配的地址池范围
3.配置网关
4.配置dns
5.给路由器端口配置IP
6.如有需要则配置不自动分配的地址段或某个地址
```
命令配置
Router>en
Router#config t
Router(config)#ip dhcp pool 1 (创建地址池,名字(1)自定义)
Router(dhcp-config)#network 192.168.1.0 255.255.255.0 (地址池范围)
Router(dhcp-config)#default-router 192.168.1.1 (默认网关)
Router(dhcp-config)#dns-server 192.168.1.2 (dns-server服务,dns地址)
Router(dhcp-config)#int fa 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0 (路由端口IP)
Router(config-if)#no shutdown
Router(config-if)#exit
show ip route #查看路由表
拓展
Router(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.9 (表示某一段IP地址不由DHCP分配)
Router(config)#ip dhcp excluded-address 192.168.1.254 (表示某一个IP地址不由DHCP分配)
```
方法2
```
给vlan ip版
int vlan 10 #进入vlan
ip add 192.168.10.254 255.255.255.0
int f0/1
sw mode acc
sw acc vlan 10
Router(config)#service dhcp //开启DHCP服务
Router(config)#ip dhcp pool gzs //创建地址池 后面跟你想要创建的地址
池名字
Router(dhcp-config)#network 192.168.10.0 255.255.255.0 //地址池中的
ip
Router(dhcp-config)#default-router 192.168.10.254 //配置默认网关
Router(dhcp-config)#dns-server 8.8.8.8 // 配置dns地址
```
# DHCP中继
DHCPRelay(DHCPR)DHCP中继(也叫做DHCP中继代理)是一个小程序,其可以实现在不同子网和物理网段之间处理和转发dhcp信息的功能。如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。
中继代理:如果DHCP 客户端和DHCP 服务器都位于同一个网段内,客户端获取IP 地址的过程与描述的基 本相同。但是,如果DHCP 客户端和DHCP 服务器位于被一个或多个路由器分展开的不同的网段上,整 个过程就会变得更复杂一些。路由器通常是不能将广播发送到其他网络上的。为了DHCP 可以工作,需 要有一个中介来协助完成DHCP 的处理过程。这个中介是与DHCP 客户端在相同网络中的另一台主机(通 常就是路由器)。 在客户端设备和DHCP服务器不在同一广播域内的时候,中间设备即路有器(路有功能的设备)必须要 能够转发这种广播包,具体到cisco的设备上,则启用ip helper-address命令,来实现这种中继。
DHCP中继的指向地址是服务器上的网关
拓扑图

```
路由器1(dhcp服务器)
int g0/0
ip address 172.16.1.2 255.255.255.0
ip dhcp pool 1 #创建dhcp地址池,命名为1
network 192.168.10.0 255.255.255.0
dns-server 8.8.8.8 #dns服务器(可不打)
default-route 192.168.10.254 #指定地址池默认网关
ip route 192.168.10.0 255.255.255.0 172.16.1.1
#配置下一跳使路由器1与PC0连同
三层交换机(dhcp中继)
int f0/2
no shutdown
no switch #关闭二层交换功能开启三层
ip address 172.16.1.1 255.255.255.0
no shutdown
ip routing #开启路由功能
vlan 10
int vlan 10
ip helper-address 172.16.1.2 #指向dhcp服务器的ip地址
int f0/1
sw mode acc
sw acc vlan 10
no sh
int vlan 10
ip add 192.168.10.254 255.255.255.0
no shutdown
int vlan 10
ip helper-address 172.16.1.2
交换机0
vlan 10
int vlan 10
no shutdown
int range f0/1-2
switchport access vlan 10
```
最后修改:2021 年 10 月 19 日
© 允许规范转载