在大型企业网络中,会有大量的主机获取IP地址等网络参数。如果采用手工配置,则工作量大不好管理,若用户擅自更改网络参数,则容易导致IP冲突。
因此使用动态主机配置协议(DHCP)可以减少管理员的工作量,同时避免手工配置造成的IP冲突。
一、DHCP
DHCP需要一台DHCP服务器来分配地址。DHCP服务器可以使用一台linux或windows的主机来做,也可以使用一台路由器来做。
1.dhcp工作原理
- 客户端开机的时候没有IP地址,所以通过Discover报文查找dhcp服务器
- 客户端是通过广播形式发送Discover报文,确保dhcp服务器和客户端在同一个网络中
- dhcp服务器返回单播的Offer报文给客户端,Offer报文会包含客户端的mac地址、IP地址以及其他dhcp选项
- 客户端收到后会发送Request报文广播给dhcp服务器
- dhcp服务器收到后会发送ACK报文进行响应
- 客户端收到IP地址之后,会发送ARP请求查找网络上是否有主机具有相同的IP地址,若冲突,则会重新发送Discover报文获得IP
dhcp报文:
报文类型:
2.DHCP的租期
客户端拿到IP之后不是永久的,是存在租约时间的。例如租约时间为8个小时,则在4个小时之后,客户端会重新发送请求进行续约。若客户端一直不关机,则客户端的IP地址是不会发生变动的。
若在50%租期时,没有成功续约,则在87.5%租期时,会再进行续约。
若租约到期前没有收到服务器响应,则会释放IP,这时客户端的IP是0.0.0.0
以下为抓包的请求报文
以下为Offer的报文里的内容
通过ipconfig /release
可以释放掉IP地址。通过ipconfig /renew
会重新刷新IP地址的租期。
二、配置基于接口地址池的DHCP
我们可以配置两种地址池,一种是基于接口的地址池,一种是基于全局的地址池。
首先来试着配置基于接口的地址池。
# 开启全局的dhcp,dhcp enable命令是DHCP相关功能的总开关,DHCP Relay、DHCP Snooping、DHCP Server等功能都要在执行dhcp enable命令使能DHCP功能后才会生效。
dhcp enable
#基于接口的地址池的dhcp需要进入接口配置
interface GigabitEthernet 0/0/0
#dhcp选择基于接口的配置,这个前提是必须提前给路由器的接口配置IP地址,否则会报错
# Error: Failed to create interface IP pool because no IP address has been configured on the interface.
dhcp select interface
#给dhcp服务器配置dns列表
dhcp server dns-list 114.114.114.114
#排除不需要分配的IP
dhcp server excluded-ip-address 192.168.88.2
#设置dhcp的租期的天数,为0的话,则为永久
dhcp server lease day 3
查看IP池
display ip pool
查看IP池的接口的使用情况
display ip pool interface GigabitEthernet 0/0/0
查看IP池的接口的IP的分配情况
display ip pool interface GigabitEthernet 0/0/0 all
三、配置基于全局地址池的DHCP
配置基于全局地址池的DHCP服务器时,从设备上所有接口上线的用户都可以选择对应地址池进行IP地址分配。
它的基本配置思想就是,在系统视图下为各 DHCP 客户端所在网段配置对应网段的 IP 地址池,然后在DHCP服务器连接对应DHCP客户端的接口上使能基于全局地址的DHCP服务器功能,这样DHCP服务器就会自动选择对应的全局地址池为对应网段的DHCP客户端分配IP地址。
配置步骤如下:
① 配置全局地址池。
这项配置任务包括创建全局地址池,然后配置包括地址范围、地址租期、要排除的IP地址以及要静态绑定的IP地址的全局地址池属性。
② 配置接口工作在全局地址池模式。
配置了全局地址池后,还需要配置连接 DHCP 客户端或者 DHCP 中继设备的对应DHCP服务器接口启用全地址池的DHCP服务器功能。
- 一是全局使能路由器的DHCP服务器功能,使它担当DHCP服务器;
dhcp enable
- 二是为DHCP服务器连接DHCP客户端或DHCP中继设备的各个接口上配置对应网段的IP地址配置,使它们成为对应网段DHCP客户端的出口网关IP地址;
ip address x.x.x.x mask-length
- 三是使能这些接口采用全局地址池的 DHCP 服务器功能。
dhcp select global
dhcp enable
# 创建地址池
ip pool pool2
# 在地址池下配置网段
network 1.1.1.0 mask 24
# 在地址池下配置网关和dns
gateway-list 1.1.1.1
dns-list 114.114.114.114
# 配置租约时间
lease day 10
# 退出
quit
# 进入接口视图,dhcp选择全局配置
interface GigabitEthernet0/0/1
dhcp select global
总结:
基于全局地址池的DHCP服务器一般应用于DHCP服务器和DHCP客户端在不同网段的情况。
对于基于接口地址池的DHCP服务器,只有从对应接口上线的用户才可以从该地址池中分配地址,一般应用于DHCP服务器和DHCP客户端在同一网段的情况。
四、配置DHCP中继
若在大型网络中有几千个子网,对每个路由器的端口配置dhcp服务是很麻烦的,若我们需要统一更改dns配置,则需要去每台路由器更改配置,那么我们是否可以另外设置一个windows或linux的服务器作为核心的dhcp服务器,而其他路由器作为中继使用呢?
如图,通常客户端只能去请求同在一个子网的DHCP服务器,因为它是通过广播的形式寻找DHCP服务器的,若是跨过子网,就无法访问到DHCP服务器了。因此,需要将中间的路由器配置DHCP中继。
配置命令如下:
五、关于交换机
华为交换机上的接口不能直接选择基于接口或全局的dhcp地址池的配置,需要将接口加入到vlan中,然后在虚拟接口vlanif中再进行配置。可参考路由器中dhcp的配置
# 进入接口视图
interface vlanif 20
# 配置DHCP类型
dhcp select interface
# 配置DHCP服务器排除IP地址范围:
dhcp server excluded-ip-address 192.168.20.200 192.168.20.253
在大型企业网络中,会有大量的主机获取IP地址等网络参数。如果采用手工配置,则工作量大不好管理,若用户擅自更改网络参数,则容易导致IP冲突。
因此使用动态主机配置协议(DHCP)可以减少管理员的工作量,同时避免手工配置造成的IP冲突。
一、DHCP
DHCP需要一台DHCP服务器来分配地址。DHCP服务器可以使用一台linux或windows的主机来做,也可以使用一台路由器来做。
1.dhcp工作原理
- 客户端开机的时候没有IP地址,所以通过Discover报文查找dhcp服务器
- 客户端是通过广播形式发送Discover报文,确保dhcp服务器和客户端在同一个网络中
- dhcp服务器返回单播的Offer报文给客户端,Offer报文会包含客户端的mac地址、IP地址以及其他dhcp选项
- 客户端收到后会发送Request报文广播给dhcp服务器
- dhcp服务器收到后会发送ACK报文进行响应
- 客户端收到IP地址之后,会发送ARP请求查找网络上是否有主机具有相同的IP地址,若冲突,则会重新发送Discover报文获得IP
dhcp报文:
报文类型:
2.DHCP的租期
客户端拿到IP之后不是永久的,是存在租约时间的。例如租约时间为8个小时,则在4个小时之后,客户端会重新发送请求进行续约。若客户端一直不关机,则客户端的IP地址是不会发生变动的。
若在50%租期时,没有成功续约,则在87.5%租期时,会再进行续约。
若租约到期前没有收到服务器响应,则会释放IP,这时客户端的IP是0.0.0.0
以下为抓包的请求报文
以下为Offer的报文里的内容
通过ipconfig /release
可以释放掉IP地址。通过ipconfig /renew
会重新刷新IP地址的租期。
二、配置基于接口地址池的DHCP
我们可以配置两种地址池,一种是基于接口的地址池,一种是基于全局的地址池。
首先来试着配置基于接口的地址池。
# 开启全局的dhcp,dhcp enable命令是DHCP相关功能的总开关,DHCP Relay、DHCP Snooping、DHCP Server等功能都要在执行dhcp enable命令使能DHCP功能后才会生效。
dhcp enable
#基于接口的地址池的dhcp需要进入接口配置
interface GigabitEthernet 0/0/0
#dhcp选择基于接口的配置,这个前提是必须提前给路由器的接口配置IP地址,否则会报错
# Error: Failed to create interface IP pool because no IP address has been configured on the interface.
dhcp select interface
#给dhcp服务器配置dns列表
dhcp server dns-list 114.114.114.114
#排除不需要分配的IP
dhcp server excluded-ip-address 192.168.88.2
#设置dhcp的租期的天数,为0的话,则为永久
dhcp server lease day 3
查看IP池
display ip pool
查看IP池的接口的使用情况
display ip pool interface GigabitEthernet 0/0/0
查看IP池的接口的IP的分配情况
display ip pool interface GigabitEthernet 0/0/0 all
三、配置基于全局地址池的DHCP
配置基于全局地址池的DHCP服务器时,从设备上所有接口上线的用户都可以选择对应地址池进行IP地址分配。
它的基本配置思想就是,在系统视图下为各 DHCP 客户端所在网段配置对应网段的 IP 地址池,然后在DHCP服务器连接对应DHCP客户端的接口上使能基于全局地址的DHCP服务器功能,这样DHCP服务器就会自动选择对应的全局地址池为对应网段的DHCP客户端分配IP地址。
配置步骤如下:
① 配置全局地址池。
这项配置任务包括创建全局地址池,然后配置包括地址范围、地址租期、要排除的IP地址以及要静态绑定的IP地址的全局地址池属性。
② 配置接口工作在全局地址池模式。
配置了全局地址池后,还需要配置连接 DHCP 客户端或者 DHCP 中继设备的对应DHCP服务器接口启用全地址池的DHCP服务器功能。
- 一是全局使能路由器的DHCP服务器功能,使它担当DHCP服务器;
dhcp enable
- 二是为DHCP服务器连接DHCP客户端或DHCP中继设备的各个接口上配置对应网段的IP地址配置,使它们成为对应网段DHCP客户端的出口网关IP地址;
ip address x.x.x.x mask-length
- 三是使能这些接口采用全局地址池的 DHCP 服务器功能。
dhcp select global
dhcp enable
# 创建地址池
ip pool pool2
# 在地址池下配置网段
network 1.1.1.0 mask 24
# 在地址池下配置网关和dns
gateway-list 1.1.1.1
dns-list 114.114.114.114
# 配置租约时间
lease day 10
# 退出
quit
# 进入接口视图,dhcp选择全局配置
interface GigabitEthernet0/0/1
dhcp select global
总结:
基于全局地址池的DHCP服务器一般应用于DHCP服务器和DHCP客户端在不同网段的情况。
对于基于接口地址池的DHCP服务器,只有从对应接口上线的用户才可以从该地址池中分配地址,一般应用于DHCP服务器和DHCP客户端在同一网段的情况。
四、配置DHCP中继
若在大型网络中有几千个子网,对每个路由器的端口配置dhcp服务是很麻烦的,若我们需要统一更改dns配置,则需要去每台路由器更改配置,那么我们是否可以另外设置一个windows或linux的服务器作为核心的dhcp服务器,而其他路由器作为中继使用呢?
如图,通常客户端只能去请求同在一个子网的DHCP服务器,因为它是通过广播的形式寻找DHCP服务器的,若是跨过子网,就无法访问到DHCP服务器了。因此,需要将中间的路由器配置DHCP中继。
配置命令如下:
五、关于交换机
华为交换机上的接口不能直接选择基于接口或全局的dhcp地址池的配置,需要将接口加入到vlan中,然后在虚拟接口vlanif中再进行配置。可参考路由器中dhcp的配置
# 进入接口视图
interface vlanif 20
# 配置DHCP类型
dhcp select interface
# 配置DHCP服务器排除IP地址范围:
dhcp server excluded-ip-address 192.168.20.200 192.168.20.253