简介
本文档介绍如何在Cisco SD-WAN IOS® XE路由器上配置DHCP服务器并对其进行故障排除。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科软件定义的广域网(SD-WAN)
- Cisco SD-WAN IOS XE命令行界面(CLI)
- 数据包分析器
- 基本DHCP
使用的组件
本文档基于以下软件和硬件版本:
- 路由器c8000v 17.9.4
- vManage 20.9.4
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
本节介绍动态主机配置协议(DHCP)用于向客户端分配有效IP地址的基本概念和过程。
邮件 |
描述 |
DHCP 发现 |
当新设备加入网络或需要更新其IP地址租用时,它会发送DHCP发现消息。此消息通常在本地网段上广播,以便发现可用的DHCP服务器。 |
DHCP 提供 |
网络上的DHCP服务器接收DHCP Discover消息并使用DHCP Offer响应。在此产品中,他们向请求设备建议可用的IP地址和其他网络配置设置。 |
DHCP 请求 |
请求设备选择所提供的IP地址之一,并向所选DHCP服务器发送DHCP请求消息。此消息确认设备对所提供的IP地址和配置设置的请求。 |
DHCP 确认 |
获取DHCP请求消息的DHCP服务器使用DHCP确认(ACK)进行响应。此ACK确认请求并确认设备可以使用提供的IP地址和相关网络配置。 |
IP 地址分配 |
当存在DHCP ACK时,设备使用提供的IP地址和其他配置参数配置其网络接口。它现在拥有有效的IP地址,并且可以在网络上通信。 |
租用期限 |
DHCP服务器为IP地址分配租用持续时间。此租用指定设备可以使用IP地址的时间。如果设备要保留相同的IP地址,则必须在租期到期之前续订租期。 |
租约续期 |
设备会定期启动租用续订,并会向最初分配IP地址的DHCP服务器发送DHCP请求。如果服务器批准续约,它将发送DHCP ACK,并延长设备的租期。 |
默认租用时间 |
是设备在必须更新其分配的IP地址或请求延长其IP地址分配之前,允许其使用其分配的IP地址的默认时间量,此值为86400秒。 |
租赁到期 |
如果设备不续租或断开与网络的连接,DHCP服务器最终会收回租用的IP地址。这样,该地址可供其他设备使用。 |
总之,DHCP执行客户端设备广播请求的过程。DHCP服务器使用提议响应,设备选择提议,DHCP服务器确认请求。IP地址分配就是这样。租用期限可确保IP地址得到有效管理,并在不再使用时收回它们。
配置
最常见的一个使用案例是,路由器充当网关,以便使用DIA功能为分支机构的用户提供互联网服务,然后需要从给定的特定网段获取IP地址。
网络图
配置
本指南认为路由器已经在Cisco vManage with Control Connections上形成了板载配置,并且已经配置了带服务VPN的设备模板。本文档的范围包括添加DHCP配置以提供动态IP分配。
通过vManage模板在Cisco IOS XE SD-WAN路由器上配置DHCP服务器
步骤1:在vManage上,导航至 Configuration > Templates
.
第二步:导航至 Feature Templates > Add Template
并选择正确的型号;C8000v用于此示例。
第三步:在其他模板中,选择 Cisco DHCP Server
.
第四步:添加名称和说明。
第五步:配置DHCP服务器参数(如此处列出的参数)并保存更改。
- Address Pool:可分配地址池。
- Exclude Addresses:您不想分配的地址。
- 租用时间(秒):此IP地址可以租用的时间量。
- 默认网关:DHCP客户端视为默认网关的IP地址。
第六步:导航至 Device Templates
,编辑现有设备模板或创建新模板并导航至 Service VPN
选项.
步骤 7.导航至 Add VPN
,单击 Create VPN Template
,并添加VPN服务值。
步骤 8添加 Cisco VPN Interface Ethernet
,从下拉列表中选择 Create Template
,
添加基本值(如此处列出的值),然后保存更改。
- Shutdown:将其置于no中以打开接口。
- Interface Name:选择要作为DHCP客户端的默认网关的接口。
- Description:该接口的说明。
- 动态/静态IPv4地址:选择接口的IP地址。
- IPv4 Address/prefix-length:选择IP地址和前缀长度。
步骤 9选择Sub-Templates 和Cisco DHCP Server;从下拉列表中选择先前创建的模板,然后单击Add。
步骤 10创建模板或保存更改,然后从Device Templates中选择正确的Device Template并选择Attach Devices。
步骤 11选择正确的设备,然后单击Attach。
步骤 12添加请求的信息,然后点击下一步。
步骤 13单击设备和Config diff。
步骤 14验证配置。
步骤 15单击Configure Devices,等待任务完成。
通过CLI在Cisco IOS XE SD-WAN路由器上配置DHCP服务器
步骤1:导航到配置模式。
cEdge#config-transaction
admin connected from 127.0.0.1 using console on Router
cEdge(config)#
第二步:配置DHCP池,分配此处列出的值并保存更改。
- Name:为DHCP池命名。
- VRF:添加服务VRF。
- 网络:使用要分配的地址配置网络。
- Default-Router:定义DHCP客户端的默认网关。
- DNS-Server:指定DNS服务器。
cEdge(config)# ip dhcp pool CISCO
cEdge(dhcp-config)# vrf 40
cEdge(dhcp-config)# network 10.4.5.0 255.255.255.0
cEdge(dhcp-config)# default-router 10.4.5.1
cEdge(dhcp-config)# dns-server 8.8.8.8
cEdge(dhcp-config)# commit
第三步:在接口上配置DHCP客户端的默认网关IP地址并保存更改。
cEdge(config)# interface GigabitEthernet2
cEdge(config-if)# ip address 10.4.5.1 255.255.255.0
cEdge(config-if)# no shut
cEdge(config-if)# commit
验证
使用 show ip dhcp pool
命令。
cEdge#show ip dhcp pool CISCO
Pool CISCO :
Utilization mark (high/low) : 100 / 0
Subnet size (first/next) : 0 / 0
Total addresses : 254
Leased addresses : 77
Excluded addresses : 86
Pending event : none
1 subnet is currently in the pool :
Current index IP address range Leased/Excluded/Total
10.4.5.1 10.4.5.1 - 10.4.5.254 77 / 86 / 254
cEdge#
验证所有已分配地址 show ip dhcp binding
命令。
cEdge#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
--- Output omitted ---
10.4.5.5 c08f.2073.8a83 Oct 3 2023 06:39 PM Automatic Active GigabitEthernet1
--- Output omitted ---
使用Packet Tracer检验所有统计信息,如接收和发送的消息计数器、过期的租用地址等 show ip dhcp server statistics
.
cEdge#show ip dhcp server statistics
Memory usage 60892
Address pools 1
Database agents 0
Automatic bindings 78
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 120
DHCPREQUEST 78
DHCPDECLINE 0
DHCPRELEASE 0
DHCPINFORM 0
DHCPVENDOR 0
BOOTREPLY 0
DHCPOFFER 0
DHCPACK 0
DHCPNAK 0
Message Sent
BOOTREPLY 0
DHCPOFFER 78
DHCPACK 78
DHCPNAK 0
Message Forwarded
BOOTREQUEST 0
DHCPDISCOVER 0
DHCPREQUEST 0
DHCPDECLINE 0
DHCPRELEASE 0
DHCPINFORM 0
DHCPVENDOR 0
BOOTREPLY 0
DHCPOFFER 0
DHCPACK 0
DHCPNAK 0
DHCP-DPM Statistics
Offer notifications sent 0
Offer callbacks received 0
Classname requests sent 0
Classname callbacks received 0
cEdge#
验证是否可能与冲突 show ip dhcp conflicts
.
cEdge#show ip dhcp conflict
IP address Detection method Detection time VRF
10.4.5.3 Ping Oct 03 2023 06:39 PM
10.4.5.5 Ping Oct 03 2023 06:39 PM
10.4.5.4 Ping Oct 03 2023 06:39 PM
10.4.5.6 Ping Oct 03 2023 06:39 PM
10.4.5.8 Ping Oct 03 2023 06:39 PM
10.4.5.7 Ping Oct 03 2023 06:39 PM
10.4.5.9 Ping Oct 03 2023 06:39 PM
10.4.5.13 Ping Oct 03 2023 06:39 PM
10.4.5.14 Ping Oct 03 2023 06:39 PM
10.4.5.16 Ping Oct 03 2023 06:39 PM
10.4.5.15 Ping Oct 03 2023 06:39 PM
10.4.5.17 Ping Oct 03 2023 06:39 PM
10.4.5.18 Ping Oct 03 2023 06:39 PM
10.4.5.19 Ping Oct 03 2023 06:39 PM
10.4.5.21 Ping Oct 03 2023 06:39 PM
10.4.5.22 Ping Oct 03 2023 06:39 PM
10.4.5.23 Ping Oct 03 2023 06:39 PM
10.4.5.24 Ping Oct 03 2023 06:39 PM
10.4.5.25 Ping Oct 03 2023 06:39 PM
10.4.5.26 Ping Oct 03 2023 06:39 PM
10.4.5.31 Ping Oct 03 2023 06:39 PM
10.4.5.32 Ping Oct 03 2023 06:39 PM
10.4.5.36 Ping Oct 03 2023 06:39 PM
10.4.5.35 Ping Oct 03 2023 06:39 PM
10.4.5.40 Ping Oct 03 2023 06:39 PM
10.4.5.39 Ping Oct 03 2023 06:39 PM
使用验证DHCP配置 show running-config | section dhcp
.
cEdge#show running-config | section dhcp
no ip dhcp use class
ip dhcp pool CISCO
network 10.4.5.0 255.255.255.0
default-router 10.4.5.1
dns-server 8.8.8.8
lease 100
ip route 0.0.0.0 0.0.0.0 dhcp 20
cEdge
使用CLI验证充当DHCP客户端默认网关的接口的状态 show interfaces GigabitEthernet1
命令。
cEdge#show interfaces GigabitEthernet1
GigabitEthernet1 is up, line protocol is up
Hardware is vNIC, address is 0050.56b3.6fbb (bia 0050.56b3.6fbb)
Internet address is 10.4.5.1/24
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full Duplex, 1000Mbps, link type is auto, media type is Virtual
output flow-control is unsupported, input flow-control is unsupported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:00, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/51623/140000 (size/max/drops/flushes); Total output drops: 1322
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 1628000 bits/sec, 855 packets/sec
5 minute output rate 21000 bits/sec, 13 packets/sec
2868354905 packets input, 657207872035 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
588 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 0 multicast, 0 pause input
66586780 packets output, 23880813581 bytes, 0 underruns
Output 0 broadcasts (0 IP multicasts)
0 output errors, 0 collisions, 4 interface resets
1102044 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out
cEdge#
故障排除
您可以在此处找到在DHCP服务器和DHCP客户端之间交换消息才能完成IP地址分配:
*Oct 3 20:35:48.042: DHCPD: DHCPDISCOVER received from client c08f.2073.8a83 on interface
GigabitEthernet1.
*Oct 3 20:35:48.042: DHCPD: Option 125 not present in the msg.
*Oct 3 20:35:48.042: Option 82 not present
*Oct 3 20:35:48.042: Option 82 not present
*Oct 3 20:35:48.042: DHCPD: Option 125 not present in the msg.
*Oct 3 20:35:48.042: DHCPD: Sending notification of DISCOVER:
*Oct 3 20:35:48.042: DHCPD: htype 1 chaddr c08f.2073.8a83
*Oct 3 20:35:48.042: DHCPD: remote id 020a0000ac0c025f01000000
*Oct 3 20:35:48.042: DHCPD: interface = GigabitEthernet1
*Oct 3 20:35:48.042: DHCPD: Sending DHCPOFFER to client c08f.2073.8a83 (10.4.5.5).DHCPD:
Setting only requested parameters
*Oct 3 20:35:48.042: DHCPD: classname not set in msg
*Oct 3 20:35:48.042: DHCPD: Selecting relay q from pool
*Oct 3 20:35:48.042: DHCPD: DHCPREQUEST received from client c08f.2073.8a83.
*Oct 3 20:35:48.042: DHCPD: DHCPREQUEST received on interface GigabitEthernet1.
*Oct 3 20:35:48.042: DHCPD: Found previous binding
*Oct 3 20:35:48.042: DHCPD: Allocated binding 7F6C1C366788
*Oct 3 20:35:48.042: DHCPD: Adding binding to radix tree (10.4.5.5)
*Oct 3 20:35:48.042: DHCPD: Adding binding to hash tree 7F6C1C366788
*Oct 3 20:35:48.042: DHCPD:dhcpd_binding_add_to_mac_hash: index- 461 add binding 7F6C1C366788
*Oct 3 20:35:48.042: DHCPD: 7F6C1C366788 inserting in mac hash next to 7F6C1C368FC8
*Oct 3 20:35:48.043: DHCPD: assigned IP address 10.4.5.5 to client c08f.2073.8a83.
*Oct 3 20:35:48.043: DHCPD: Saving workspace (ID=0xB200004F)
*Oct 3 20:35:48.043: DHCPD: New packet workspace 0x7F6C9CBE0FB8 (ID=0xAE000050)
*Oct 3 20:35:50.043: DHCPD: Reprocessing saved workspace (ID=0xB200004F)
*Oct 3 20:35:50.054: DHCPD: Sending DHCPACK to client c08f.2073.8a83 (10.4.5.5).DHCPD: Setting
only requested parameters
以下是可在路由器上激活的调试,以排除DHCP问题:
调试 |
描述 |
调试ip dhcp服务器事件 |
此命令显示DHCP服务器相关事件,例如DHCP客户端请求、IP地址分配和其他重要的服务器活动。查看DHCP事件的摘要非常有用。 |
Debug ip dhcp server packet |
此命令显示有关进入和离开服务器的DHCP数据包的详细信息。您可以查看DHCP请求、提供、请求和确认以调试通信问题。 |
Debug ip dhcp conflict |
如果您的网络存在IP地址冲突问题,可以使用此命令调试和显示有关DHCP冲突的信息。 |
Debug ip dhcp binding |
此命令显示有关DHCP服务器分配的IP地址的信息,包括分配的IP地址、客户端的MAC地址和租用持续时间。 |
调试ip dhcp服务器统计信息 |
此命令显示与DHCP服务器操作相关的统计信息,例如收到的DHCP请求数、IP地址租用和租用时间等。 |
Undebug all |
要停止所有调试命令,您可以使用 undebug all 命令禁用所有正在进行的调试。 |
使用嵌入式数据包捕获(EPC)和vManage捕获工具捕获DHCP流量
cEdge#monitor capture DHCP interface GigabitEthernet 1 both match any buffer circular limit pps 2000
Interface GigabitEthernet1 direction BOTH is already attached to the capture
Packets per second limit is already set, replace?[confirm]
cEdge#monitor capture DHCP start
Started capture point : DHCP
cEdge#
--- Wait some time to let DHCP negotiation proceed ---
cEdge#monitor capture DHCP stop
Stopped capture point : DHCP
cEdge#
然后,您可以使用以下命令导出捕获:
cEdge#monitor capture DHCP export bootflash:DHCP.pcap
Exported Successfully
cEdge#
要清除捕获,请发出以下命令:
cEdge#monitor capture DHCP clear
Captured data is deleted [clear]?[confirm]
cleared buffer : DHCP
cEdge#
然后,使用WireShark,验证您看到这些数据包参与协商:
打开数据包时必须看到以下信息:
发现数据包
- 必须验证的最重要信息是源MAC地址;该地址必须与DHCP客户端的MAC匹配。
- 目的地是
ff:ff:ff:ff:ff:ff
因为它是广播地址;DHCP客户端发送此消息以发现DHCP服务器。
- 源IP地址设置为
0.0.0.0
.
- 用于此协商的端口是UDP 67和68。
- 您可以看到数据包包含的选项;这与数据包上的DHCP服务器所请求的信息有关。
提供数据包
- 现在您可以看到源地址不同,因为DHCP服务器已使用IP地址
10.4.5.1
.
- 目的IP地址称为
10.4.5.5
因为此地址是池中的一个可用地址。
请求数据包
在请求数据包中,源地址显示为 0.0.0.0
现在, 10.4.5.5
地址是新请求。
ACK 数据包
- 源地址设置为
10.4.5.1
.
- 目标地址设置为
10.4.5.5
因为现在这是DCHP客户端的新IP地址。
可以在vManage GUI上执行以下步骤进行数据包捕获:
步骤1:导航至 Monitor > Devices
.
第二步:单击DHCP服务器设备。
第三步:在“安全监控”上,单击 Troubleshooting
.
第四步:在流量上,点击 Packet Capture
.
第五步:设置捕获的参数,然后单击start。
第六步:等待捕获完成并下载。
将其导出并在数据包分析器(例如WireShark)上验证数据包。
相关信息