1.DHCPv4的概念
动态主机配置协议(DHCP)会动态为设备分配IP地址。
(1)DHCPv4 的工作方式
DHCPv4工作在客户端/服务器模式下。当客户端与 DHCPv4 服务器通信时,服务器会将 IPv4 地址分配或出租给该客户端。然后客户端使用租用的IPv4地址连接到网络,直到租期届满。客户端必须定期联系 DHCP 服务器以续展租期。这种租用机制确保移动或关闭的客户端不保留它们不再需要的地址。租期届满后,DHCP 服务器会将地址返回地址池,如有必要,可将其再次分配。
(2)获得租约的步骤
当客户端启动(或者要加入网络)时,它就会开始执行这个四步的过程来租赁地址。
-
DHCP 发现 (DHCPDISCOVER)
客户端使用包含自己MAC地址的广播DHCPDISCOVER消息启动整个过程,来查找可用DHCPv4服务器。由于客户端启动时没有有效的 IPv4 信息,因此,它将使用第 2 层和第 3 层广播地址与服务器通信。DHCPDISCOVER 消息的目的是在网络中查找 DHCPv4 服务器。
-
DHCP 提供 (DHCPOFFER)
当 DHCPv4 服务器收到 DHCPDISCOVER 消息时,会保留一个可用 IPv4 地址以租赁给客户端。服务器还会创建一个 ARP 条目,该条目包含请求客户端的 MAC 地址和客户端的租用 IPv4 地址。DHCPv4 服务器会把绑定 DHCPOFFER 消息发送到请求客户端。
-
DHCP 请求 (DHCPREQUEST)
当客户端从服务器那里接收到DHCPOFFER消息时,客户端就会发回DHCPREQUEST广播消息。此消息用于发起租用和租约更新。用于发起租用时,将 DHCPREQUEST 用作已提供参数所选定服务器的绑定接受通知,并隐式拒绝任何其他可能已为客户端提供了绑定服务的服务器。
许多企业网络使用多台 DHCPv4 服务器。DHCPREQUEST 消息以广播的形式发送,将已接受提供的情况告知此 DHCPv4 服务器和任何其它 DHCPv4 服务器。
-
DHCP 确认 (DHCPACK)
在接收到DHCPREQUEST消息后,服务器就会使用ICMP ping测试来验证这个地址当前没有设备正在使用,它也为客户端租用该地址创建出一个新的ARP条目,然后使用DHCPACK消息进行应答。除消息类型字段不同外,DHCPACK 消息与 DHCPOFFER 消息别无二致。在客户端接收到DHCPACK消息后,它会记录下配置信息,并且对分配给它的地址执行APR查找。如果没有对 ARP 的应答,客户端就会知道 IPv4 地址是有效的,并开始像使用自己的地址一样使用该地址。
(3)续订租约的步骤
-
DHCP请求(DHCPREQUEST)
租期届满后,客户端会把DHCPREQUEST消息直接发送到最初提供IPv4地址的那台DHCPv4服务器。如果在指定的时间内没有收到 DHCPACK,客户端会广播另一个 DHCPREQUEST,这样,另外一个 DHCPv4 服务器便可续展租期。
-
DHCP确认(DHCPACK)
在接收到DHCPREQUEST消息后,服务器会返回一个DHCPACK消息来验证租用信息。
注意: 根据 IETF RFC 2131,这些消息(主要是 DHCPOFFER 和 DHCPACK)可以以单播或广播的形式发送。
2.配置思科 IOS DHCPv4 服务器的步骤
(1)排除 IPv4 地址
除非配置了排除特定地址,否则路由器将充当 DHCPv4 服务器,为客户端分配 DHCPv4 地址池中的所有 IPv4 地址。通常,将地址池中的某些 IPv4 地址分配给需要静态地址分配的网络设备。因此,这些 IPv4 地址不应分配给其他设备。排除 IPv4 地址的命令语法如下:
Router(config)# ip dhcp excluded-address low-address [high-address]
可以通过指定范围内的低位地址(low-address)和高位地址(high-address)来排除某一个地址或某一个范围内的所有地址。排除地址应包括分配给路由器、服务器、打印机和其他已经手动配置或者马上要手动配置给设备的地址。您可以多次输入这条命令。
(2)定义一个 DHCPv4 地址池的名称。
ip dhcp pool pool-name命令可以以某指定的名称创建出一个地址池,并且让路由器进入 DHCPv4 配置模式,这种模式的提示符是Router(dhcp-config)# 。
定义地址池的命令语法如下:
Router(config)# ip dhcp pool pool-name Router(dhcp-config)#
(3)配置 DHCPv4 地址池。
必须配置地址池和默认网关路由器。使用network 语句来定义可用的地址范围。使用default-router 命令来定义默认网关路由器。通常,网关是最接近客户端设备的路由器的 LAN 接口。虽然只需要一个网关,但是如果有多个网关,您最多可以列出八个地址。
其他 DHCPv4 池命令为可选命令。例如,使用 dns-server命令来配置可以为 DHCPv4 客户端提供服务的 DNS服务器 IPv4 地址。domain-name 命令的作用是定义域名。使用 lease命令可以更改 DHCPv4 的租期。默认租用值为一天。netbios-name-server命令的作用是定义 NetBIOS WINS 服务器。
(4)配置示例
这个示例显示了如何把 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#
3.DHCPv4验证命令
命令 | 描述 |
---|---|
show running-config | section dhcp | 显示路由器上配置的 DHCPv4 命令。 |
show ip dhcp binding | 显示所有由DHCPv4服务提供的 IPv4 地址与 MAC 地址绑定关系的列表。 |
show ip dhcp server statistics | 显示关于已发送和接收的 DHCPv4 消息的数量信息。 |
4.DHCPv4 中继
在图中,PC1 正在尝试使用广播消息从 DHCPv4 服务器那里获取 IPv4 地址。在这个场景中,路由器 R1 没有配置为 DHCPv4 服务器,而且也不会转发广播。由于 DHCPv4 服务器位于不同的网络上,因此 PC1 不能使用 DHCP 接收 IP 地址。必须配置 R1 把 DHCPv4 消息中继给 DHCPv4 服务器。
使用 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#
5.配置 DHCPv4 客户端
(1)充当 DHCPv4 客户端的思科路由器
有时,小型办公室/家庭办公室 (SOHO) 和分支机构站点中的思科路由器需要配置为DHCPv4客户端,让它们扮演和客户端计算机类似的角色。所用方法取决于 ISP。
要将以太网接口配置为 DHCP 客户端,需要使用接口配置模式命令ip address dhcp 。
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)