Bootstrap

交换、路由和无线基础v7.02部分资料整理---7.DHCPv4

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验证命令

验证思科 IOS 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) 

6.模块测验

;