DHCPv4
主题标题 | 主题目标 |
---|---|
DHCPv4的概念 | 介绍 DHCPv4 在中小型企业网络中的 的工作方式。 |
配置思科 IOS DHCPv4 服务器 | 将路由器配置为 DHCPv4 服务器。 |
配置 DHCPv4 客户端 | 将路由器配置为 DHCPv4 客户端。 |
DHCPv4的概念
动态主机配置协议 v4 (DHCPv4) 会动态分配 IPv4 地址和其他网络配置信息。
DHCPv4 服务器动态地从地址池中分配或出租 IPv4 地址,使用期限为服务器选择的一段有限时间,或者直到客户端不再需要该地址为止。
客户端的租用期限由管理员确定。管理员在配置 DHCPv4 服务器时,可为其设定不同的租期届满时间。租用时间在任何地方通常都是 24 小时到一周或更长时间。租期届满后,客户端必须申请另一地址,但通常是把同一地址重新分配给客户端。
DHCPv4 的工作方式:DHCPv4工作在客户端/服务器模式下。当客户端与 DHCPv4 服务器通信时,服务器会将 IPv4 地址分配或出租给该客户端。然后客户端使用租用的IPv4地址连接到网络,直到租期届满。客户端必须定期联系 DHCP 服务器以续展租期。这种租用机制确保移动或关闭的客户端不保留它们不再需要的地址。租期届满后,DHCP 服务器会将地址返回地址池,如有必要,可将其再次分配。
当客户端启动(或者要加入网络)时,它就会开始执行这个四步的过程来租赁地址。
- 步骤 1. DHCP 发现 (DHCPDISCOVER)
- 客户端使用包含自己MAC地址的广播DHCPDISCOVER消息启动整个过程,来查找可用DHCPv4服务器。由于客户端启动时没有有效的 IPv4 信息,因此,它将使用第 2 层和第 3 层广播地址与服务器通信。DHCPDISCOVER 消息的目的是在网络中查找 DHCPv4 服务器。
- 步骤 2. DHCP 提供 (DHCPOFFER)
- 当 DHCPv4 服务器收到 DHCPDISCOVER 消息时,会保留一个可用 IPv4 地址以租赁给客户端。服务器还会创建一个 ARP 条目,该条目包含请求客户端的 MAC 地址和客户端的租用 IPv4 地址。DHCPv4 服务器会把绑定 DHCPOFFER 消息发送到请求客户端。
- 步骤 3. DHCP 请求 (DHCPREQUEST)
- 当客户端从服务器那里接收到DHCPOFFER消息时,客户端就会发回DHCPREQUEST播消息。此消息用于发起租用和租约更新。用于发起租用时,将 DHCPREQUEST 用作已提供参数所选定服务器的绑定接受通知,并隐式拒绝任何其他可能已为客户端提供了绑定服务的服务器。
- 许多企业网络使用多台 DHCPv4 服务器。DHCPREQUEST 消息以广播的形式发送,将已接受提供的情况告知此 DHCPv4 服务器和任何其它 DHCPv4 服务器。
- 步骤 4. DHCP 确认 (DHCPACK)
- 在接收到DHCPREQUEST消息后,服务器就会使用ICMP ping测试来验证这个地址当前没有设备正在使用,它也为客户端租用该地址创建出一个新的ARP条目,然后使用DHCPACK消息进行应答。除消息类型字段不同外,DHCPACK 消息与 DHCPOFFER 消息别无二致。在客户端接收到DHCPACK消息后,它会记录下配置信息,并且对分配给它的地址执行APR查找。如果没有对 ARP 的应答,客户端就会知道 IPv4 地址是有效的,并开始像使用自己的地址一样使用该地址。
在租约到期之前,客户端会执行两个步骤,来向DHCPv4服务器续订租约:
1. DHCP请求(DHCPREQUEST)
租期届满后,客户端会把DHCPREQUEST消息直接发送到最初提供IPv4地址的那台DHCPv4服务器。如果在指定的时间内没有收到 DHCPACK,客户端会广播另一个 DHCPREQUEST,这样,另外一个 DHCPv4 服务器便可续展租期。
2. DHCP确认(DHCPACK)
在接收到DHCPREQUEST消息后,服务器会返回一个DHCPACK消息来验证租用信息。
小结
配置思科 IOS DHCPv4 服务器
配置思科 IOS DHCPv4 服务器的步骤
- 步骤 1. 排除 IPv4 地址
- 步骤 2. 定义一个 DHCPv4 地址池的名称。
- 步骤 3. 配置 DHCPv4 地址池
步骤 1. Exclude IPv4 Addresses
通常将地址池中的某些 IPv4 地址分配给需要静态地址分配的网络设备。排除 IPv4 地址的命令语法如下:
Router(config)# ip dhcp excluded-address low-address [high-address]
可以通过指定范围内的低位地址(low-address)和高位地址(high-address)来排除某一个地址或某一个范围内的所有地址。排除地址应包括分配给路由器、服务器、打印机和其他已经手动配置或者马上要手动配置给设备的地址。您可以多次输入这条命令。
步骤 2. Define a DHCPv4 Pool Name
ip dhcp pool pool-name命令可以以某指定的名称创建出一个地址池,并且让路由器进入 DHCPv4 配置模式,这种模式的提示符是Router(dhcp-config)# 。定义地址池的命令语法如下:
Router(config)# ip dhcp pool pool-name
Router(dhcp-config)#
步骤 3. Configure the DHCPv4 Pool
任务 | IOS 命令 |
---|---|
定义地址池。 | network network-number [mask | / prefix-length] |
定义默认路由器或网关。 | default-router address [ address2….address8] |
定义 DNS 服务器。 | dns-server address [ address2…address8] |
定义域名。 | domain-name domain |
定义 DHCP 租期的持续时间。 | lease {days [hours [ minutes]] | infinite} |
定义 NetBIOS WINS 服务器。 | netbios-name-server address [ address2…address8] |
注:必须配置地址池和默认网关路由器,其他 DHCPv4 池命令为可选命令。
配置示例的拓扑如图所示。
这个示例显示了如何把 R1 配置成为 192.168.10.0/24 这个局域网的 DHCPv4 服务器。
R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.9
R1(config)# ip dhcp excluded-address 192.168.10.254
R1(config)# ip dhcp pool LAN-POOL-1
R1(dhcp-config)# network 192.168.10.0 255.255.255.0
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# dns-server 192.168.11.5
R1(dhcp-config)# domain-name example.com
R1(dhcp-config)# end
R1#
DHCPv4验证命令
使用表中的命令来验证思科 IOS DHCPv4 服务器是否运行正常。
命令 | 描述 |
---|---|
show running-config | section dhcp | 显示路由器上配置的 DHCPv4 命令。 |
show ip dhcp binding | 显示所有由DHCPv4服务提供的 IPv4 地址与 MAC 地址绑定关系的列表。 |
show ip dhcp server statistics | 显示关于已发送和接收的 DHCPv4 消息 的数量信息。 |
- 验证 DHCPv4 配置
如示例中所示,show running-config | section dhcp 命令的输出信息显示了配置在 R1 上的 DHCPv4 命令。| section 参数只显示了与 DHCPv4 配置有关的命令。
R1# show running-config | section dhcp
ip dhcp excluded-address 192.168.10.1 192.168.10.9
ip dhcp excluded-address 192.168.10.254
ip dhcp pool LAN-POOL-1
network 192.168.10.0 255.255.255.0
default-router 192.168.10.1
dns-server 192.168.11.5
domain-name example.com
- 验证 DHCPv4 绑定信息
如示例中所示,show ip dhcp binding 命令可以验证 DHCPv4 的运行情况。此命令显示 DHCPv4 服务所提供的全部 IPv4 地址与 MAC 地址绑定的列表。
R1# show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type State Interface
Hardware address/
User name
192.168.10.10 0100.5056.b3ed.d8 Sep 15 2019 8:42 AM Automatic Active GigabitEthernet0/0/0
验证 DHCPv4 统计数据
show ip dhcp server statistics 的输出信息可以验证路由器正在接收或发送的消息。此命令显示关于已发送和接收的 DHCPv4 消息数量的计数信息。
R1# show ip dhcp server statistics
Memory usage 19465
Address pools 1
Database agents 0
Automatic bindings 2
Manual bindings 0
Expired bindings 0
Malformed messages 0
Secure arp entries 0
Renew messages 0
Workspace timeouts 0
Static routes 0
Relay bindings 0
Relay bindings active 0
Relay bindings terminated 0
Relay bindings selecting 0
Message Received
BOOTREQUEST 0
DHCPDISCOVER 4
DHCPREQUEST 2
DHCPDECLINE 0
DHCPRELEASE 0
DHCPINFORM 0
验证接收到了 IPv4 编址信息的 DHCPv4 客户端
如示例中所示,在 PC1 上输入 ipconfig /all 命令可以显示 TCP/IP 参数。由于 PC1 连接到网段 192.168.10.0/24,因此,它会自动从该地址池接收 DNS 后缀、IPv4 地址、子网掩码、默认网关和 DNS 服务器地址。不需要在路由器接口做特定的 DHCP 配置,如果 PC 连接到包含可用 DHCPv4 池的网段,该 PC 就能从相应的池中自动获取 IPv4 地址。
C:\Users\Student> ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : ciscolab
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . : example.com
Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
Physical Address. . . . . . . . . : 00-05-9A-3C-7A-00
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 192.168.10.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained . . . . . . . . . : Saturday, September 14, 2019 8:42:22AM
Lease Expires . . . . . . . . . : Sunday, September 15, 2019 8:42:22AM
Default Gateway . . . . . . . . . : 192.168.10.1
DHCP Server . . . . . . . .. . . : 192.168.10.1
DNS Servers . . . . . . . .. . . :192.168.11.5
禁用思科 IOS DHCPv4 服务器
DHCPv4服务默认就是启用的。要禁用这项服务,应该使用全局配置模式命令no service dhcp。使用全局配置模式命令 service dhcp 可以重新启用 DHCPv4 服务器进程。
DHCPv4 中继
在复杂的分层网络中,企业服务器通常位于网络的中心位置。这些服务器可为网络提供 DHCP、DNS、TFTP 和 FTP 服务。网络客户端未必会和这些服务器处于同一个子网当中。为了定位服务器并接收服务,客户端通常使用广播消息。
在图中,PC1 正在尝试使用广播消息从 DHCPv4 服务器那里获取 IPv4 地址。在这个场景中,路由器 R1 没有配置为 DHCPv4 服务器,而且也不会转发广播。由于 DHCPv4 服务器位于不同的网络上,因此 PC1 不能使用 DHCP 接收 IP 地址。必须配置 R1 把 DHCPv4 消息中继给 DHCPv4 服务器。
- ipconfig /release
PC1是一台Windows计算机。网络管理员使用 ipconfig /release 命令释放了所有当前的 IPv4 编址信息。请注意,IPv4 地址已经释放,目前显示没有地址。
C:\Users\Student> ipconfig /release
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . :
Default Gateway . . . . . . . . . :
- ipconfig /renew
接下来,网络管理员尝试使用 ipconfig /renew 命令来更新 IPv4 编址信息。此命令使 PC1 广播 DHCPDISCOVER 消息。输出显示 PC1 无法定位 DHCPv4 服务器。由于路由器不转发广播,因此请求未成功。
网络管理员可以在 R1 上为所有子网添加 DHCPv4 服务器。但是,这会增加成本,提升管理难度。
C:\Users\Student> ipconfig /renew
Windows IP Configuration
An error occurred while renewing interface Ethernet0 : unable to connect to your DHCP server. Request has timed out.
- ip helper-address
更好的解决方案是使用 ip helper-address address 接口配置命令来配置 R1。这可以让 R1 把 DHCPv4 广播消息中继给 DHCPv4 服务器。如示例所示,R1 上接收到了 PC1 广播的那个接口在配置之后,会把 DHCPv4 地址中继给位于 192.168.11.6 的 DHCPv4 服务器。
R1(config)# interface g0/0/0
R1(config-if)# ip helper-address 192.168.11.6
R1(config-if)# end
R1#
- show ip interface
当 R1 配置为 DHCPv4 中继代理时,它会接收 DHCPv4 服务的广播请求,然后将这些请求作为单播转发至 IPv4 地址 192.168.11.6。网络管理员可以使用 show ip interface 命令来验证配置。
R1# show ip interface g0/0/0
GigabitEthernet0/0/0 is up, line protocol is up
Internet address is 192.168.10.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper address is 192.168.11.6
(output omitted)
- ipconfig /all
如输出信息所示 ,PC1 现在能够从 DHCP v4 服务器那里获取 IPv4 地址了 ,这可以通过 ipconfig /all 命令 进行验证。
C:\Users\Student> ipconfig /all
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . : example.com
IPv4 Address. . . . . . . . . . . : 192.168.10.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.10.1
配置 DHCPv4 客户端
有时,小型办公室/家庭办公室 (SOHO) 和分支机构站点中的思科路由器需要配置为DHCPv4客户端,让它们扮演和客户端计算机类似的角色。所用方法取决于 ISP。但是,最简单的配置是使用以太网接口来连接 Cable 或 DSL 调制解调器。
要将以太网接口配置为 DHCP 客户端,需要使用接口配置模式命令ip address dhcp 。
在图中,ISP已经经过配置,在使用ip address dhcp命令配置了客户端的G0/0/1接口之后,ISP就可以为选定客户提供209.165.201.0/27网络范围内的IP地址了。
SOHO(config)# interface G0/0/1
SOHO(config-if)# ip address dhcp
SOHO(config-if)# no shutdown
Sep 12 10:01:25.773: %DHCP-6-ADDRESS_ASSIGN: Interface GigabitEthernet0/0/1 assigned DHCP address 209.165.201.12, mask 255.255.255.224, hostname SOHO
使用 show ip interface g0/0/1 命令确认这个接口已经启动(up),且通过 DHCPv4 服务器分配了地址。
SOHO# show ip interface g0/0/1
GigabitEthernet0/0/1 is up, line protocol is up
Internet address is 209.165.201.12/27
Broadcast address is 255.255.255.255
Address determined by DHCP
(output omitted)
总结
DHCPv4概念
DHCPv4 服务器会动态地从地址池中分配或出租 IPv4 地址,使用期限为服务器选择的一段有限时间,或者直到客户端不再需要这个地址为止。DHCPv4租借地址的过程始于客户端向DHCP服务器发送请求服务的消息。如果有DHCPv4服务器接收到这条消息,这台服务器就会使用IPv4地址和其他可能的网络配置信息作出响应。客户端必须定期联系 DHCP 服务器以续展租期。这种租用机制确保移动或关闭的客户端不保留它们不再需要的地址。当客户端启动(或者要加入网络)时,它就会开始执行这个四步的过程来租赁地址:先是DHCPDISCOVER、然后是DHCPOFFER、然后是DHCPREQUEST,最后是DHCPACK。在租约到期之前,客户端会执行两个步骤,来向DHCPv4服务器续订租约:先是DHCPREQUEST,然后是DHCPACK。
配置Cisco IOS DHCPv4服务器
可以将运行思科 IOS 软件的思科路由器配置为 DHCPv4 服务器。使用以下步骤配置思科 IOS DHCPv4 服务器:排除 IPv4 地址、定义 DHCPv4 地址池名称,然后配置 DHCPv4 地址池。使用 show running-config | section dhcp、show ip dhcp binding和 show ip dhcp server statistics命令来验证前面的配置。默认情况下,DHCPv4 服务已启用。要禁用这项服务,应该使用全局配置模式命令no service dhcp。在复杂的分层网络中,企业服务器通常位于网络的中心位置。这些服务器可为网络提供 DHCP、DNS、TFTP 和 FTP 服务。网络客户端未必会和这些服务器处于同一个子网当中。为了定位服务器并接收服务,客户端通常使用广播消息。一台 PC 正在尝试使用广播消息从 DHCPv4 服务器那里获取 IPv4 地址。如果它的网关路由器 R1 没有配置为 DHCPv4 服务器,它就不会转发广播。如果 DHCPv4 服务器位于不同的网络上,那么这台 PC1 就无法通过 DHCP 接收到 IP 地址。必须配置 R1 来把 DHCPv4 消息中继给 DHCPv4 服务器。网络管理员使用 ipconfig /release 命令释放所有当前 IPv4 编址信息。接下来,网络管理员尝试使用 ipconfig /renew 命令来续订 IPv4 编址信息。更好的解决方案是使用 ip helper-addressaddress interface接口配置命令来配置 R1。网络管理员可以使用 show ip interface 命令来验证配置。这台 PC 现在能够从 DHCP v4 服务器那里获取 IPv4 地址了 ,可以通过 ipconfig /all 命令 进行验证。默认情况下,ip helper-address 命令会转发以下八项 UDP 服务:
- Port 37: 时间
- Port 49: TACACS
- Port 53: DNS
- Port 67: DHCP/BOOTP 服务器
- Port 68: DHCP/BOOTP 客户端
- Port 69: TFTP
- Port 137: NetBIOS 名称服务
- Port 138: NetBIOS 数据报服务
配置DHCPv4客户端
以太网接口用来连接 Cable 或者 DSL 调制解调器。要把以太网接口配置为 DHCP 客户端,需要使用ip address dhcp interface 配置模式命令。家用路由器一般都会设置为自动从 ISP 接收 IPv4 编址信息。互联网连接类型设置为 Automatic Configuration - DHCP(自动配置 - DHCP)。当路由器连接到 DSL 或 Cable 调制解调器并且充当 DHCPv4 客户端,从 ISP 请求 IPv4 地址时,将使用此选项。