소개
이 문서에서는 Cisco SD-WAN IOS® XE Router에서 DHCP 서버를 구성하고 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco SD-WAN(Software-defined Wide Area Network)
- Cisco SD-WAN IOS XE 명령줄 인터페이스(CLI)
- 패킷 분석기
- 기본 DHCP
사용되는 구성 요소
이 문서는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Router c8000v 17.9.4
- vManage 20.9.4
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
이 섹션에서는 DHCP(Dynamic Host Configuration Protocol)가 클라이언트에 유효한 IP 주소를 할당하는 데 사용하는 프로세스 및 기본 개념에 대해 설명합니다.
메시지 |
설명 |
DHCP 검색 |
새 디바이스가 네트워크에 연결되거나 IP 주소 임대를 갱신해야 할 경우 DHCP Discover 메시지를 보냅니다. 이 메시지는 일반적으로 사용 가능한 DHCP 서버를 검색하기 위해 로컬 네트워크 세그먼트에서 브로드캐스트됩니다. |
DHCP 제안 |
네트워크의 DHCP 서버는 DHCP Discover 메시지를 수신하고 DHCP Offer로 응답합니다. 이 제안에서는 사용 가능한 IP 주소 및 기타 네트워크 컨피그레이션 설정을 요청 디바이스에 제안합니다. |
DHCP 요청 |
요청 장치는 제공된 IP 주소 중 하나를 선택하고 선택한 DHCP 서버에 DHCP 요청 메시지를 보냅니다. 이 메시지는 제공된 IP 주소 및 컨피그레이션 설정에 대한 디바이스의 요청을 확인합니다. |
DHCP 승인 |
DHCP 요청 메시지를 받는 DHCP 서버는 DHCP ACK(Acknowledge)로 응답합니다. 이 ACK는 요청을 승인하고 디바이스에서 제공된 IP 주소 및 관련 네트워크 컨피그레이션을 사용할 수 있는지 확인합니다. |
IP 주소 할당 |
DHCP ACK가 있는 경우 디바이스는 제공된 IP 주소 및 기타 컨피그레이션 매개변수를 사용하여 네트워크 인터페이스를 구성합니다. 이제 유효한 IP 주소가 있으며 네트워크에서 통신할 수 있습니다. |
리스 기간 |
DHCP 서버는 IP 주소에 임대 기간을 할당합니다. 이 임대는 디바이스에서 IP 주소를 사용할 수 있는 기간을 지정합니다. 동일한 IP 주소를 유지하려면 디바이스가 만료되기 전에 임대를 갱신해야 합니다. |
리스 갱신 |
주기적으로 디바이스는 리스 갱신을 시작하고, IP 주소를 처음 할당한 DHCP 서버에 DHCP 요청을 보냅니다. 서버에서 갱신을 승인하면 DHCP ACK가 전송되고 디바이스 임대가 연장됩니다. |
기본 리스 시간 |
디바이스가 할당된 IP 주소를 사용하도록 허용된 기본 시간이며, 디바이스가 이를 갱신하거나 IP 주소 할당에 대한 확장을 요청해야 합니다. 이 값은 86400초입니다. |
리스 만료 |
디바이스가 임대를 갱신하지 않거나 네트워크에서 연결이 끊기면 DHCP 서버는 결국 임대한 IP 주소를 회수합니다. 이렇게 하면 다른 디바이스에서 사용할 수 있는 주소가 만들어집니다. |
요약하면, DHCP는 클라이언트 디바이스가 요청을 브로드캐스트하는 프로세스를 수행합니다. DHCP 서버는 오퍼(offer)로 응답하고, 디바이스는 오퍼(offer)를 선택하고, DHCP 서버는 요청을 승인합니다. 이는 IP 주소 할당이 작동하는 방식입니다. 임대 기간을 사용하면 IP 주소를 효율적으로 관리하고 더 이상 사용하지 않을 때 재확보할 수 있습니다.
구성
가장 일반적인 사용 사례 중 하나는 라우터가 게이트웨이 역할을 하여 DIA 기능을 사용하여 지사의 사용자에게 인터넷 서비스를 제공한 다음 제공된 특정 네트워크 세그먼트에서 IP 주소를 얻어야 하는 경우입니다.
네트워크 다이어그램
설정
이 가이드에서는 라우터에 Cisco vManage with Control Connections의 온보드 컨피그레이션이 이미 구성되어 있고 서비스 VPN이 구성된 디바이스 템플릿이 이미 연결되어 있는 것으로 간주합니다. 이 문서의 범위에서는 동적 IP 할당을 제공하기 위해 DHCP 컨피그레이션을 추가하는 방법을 다룹니다.
vManage 템플릿을 통해 Cisco IOS XE SD-WAN 라우터에서 DHCP 서버 구성
1단계. vManage에서 Configuration > Templates
.
2단계. 탐색 Feature Templates > Add Template
올바른 모델(이 예제의 경우 C8000v)을 선택합니다.
3단계. 다른 템플릿에서 Cisco DHCP Server
.
4단계. 이름과 설명을 추가합니다.
5단계. 여기에 나열된 것과 같은 DHCP 서버 매개변수를 구성하고 변경 사항을 저장합니다.
- 주소 풀: 할당 가능한 주소 풀.
- 주소 제외: 할당하지 않을 주소입니다.
- Lease Time (seconds)(리스 시간(초)): 이 IP 주소를 임대할 수 있는 시간입니다.
- Default Gateway(기본 게이트웨이): DHCP 클라이언트가 기본 게이트웨이로 인식하는 IP 주소입니다.
6단계. 탐색 Device Templates
, 기존의 디바이스 템플릿을 수정하거나 새 템플릿을 생성하고 Service VPN
옵션을 선택합니다.
7단계. 탐색 Add VPN
, 클릭 Create VPN Template
를 누르고 VPN 서비스 값을 추가합니다.
8단계. 추가 Cisco VPN Interface Ethernet
드롭다운 목록에서 Create Template
,
여기에 나열된 값과 같은 기본 값을 추가하고 변경 사항을 저장합니다.
- Shutdown(종료): 인터페이스를 켜려면 no로 설정합니다.
- Interface Name(인터페이스 이름): DHCP 클라이언트의 기본 게이트웨이로 선택할 인터페이스를 선택합니다.
- 설명: 해당 인터페이스에 대한 설명입니다.
- Dynamic/Static IPv4 Address(동적/고정 IPv4 주소): 인터페이스의 IP 주소를 선택합니다.
- IPv4 Address/prefix-length(IPv4 주소/접두사 길이): IP 주소와 접두사 길이를 선택합니다.
9단계. Sub-Templates and Cisco DHCP Server를 선택합니다. 드롭다운 목록에서 생성된 이전 템플릿을 선택하고 Add를 클릭합니다.
10단계. 템플릿을 생성하거나 변경 사항을 저장하고 Device Templates(디바이스 템플릿)에서 올바른 Device Template(디바이스 템플릿)을 선택하고 Attach Devices(디바이스 연결)를 선택합니다.
11단계. 올바른 디바이스를 선택하고 Attach를 클릭합니다.
12단계. 요청된 정보를 추가하고 Next(다음)를 클릭합니다.
13단계. 디바이스 및 컨피그레이션 차이를 클릭합니다.
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)#
2단계. 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
3단계. 인터페이스에서 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 ---
수신 및 발신된 메시지의 카운터, 만료된 임대 주소 등 모든 통계를 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
를 사용하여 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#
문제 해결
여기서 IP 주소 할당을 완료하기 위해 DHCP 서버와 DHCP 클라이언트 간에 교환해야 하는 메시지를 찾을 수 있습니다.
*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 문제를 해결하기 위해 라우터에서 활성화할 수 있는 디버깅입니다.
디버그 |
설명 |
Debug ip dhcp server events(ip dhcp 서버 이벤트 디버그) |
이 명령은 DHCP 클라이언트 요청, IP 주소 할당 및 기타 중요한 서버 작업과 같은 DHCP 서버 관련 이벤트를 표시합니다. DHCP 이벤트의 요약을 보는 것은 유용합니다. |
IP dhcp 서버 패킷 디버그 |
이 명령은 서버에 들어오고 나가는 DHCP 패킷에 대한 자세한 정보를 표시합니다. DHCP 요청, 제안, 요청 및 확인을 보고 통신 문제를 디버그할 수 있습니다. |
IP DHCP 충돌 디버그 |
네트워크에서 IP 주소 충돌 문제가 발생하는 경우 이 명령을 사용하여 DHCP 충돌에 대한 정보를 디버깅하고 표시할 수 있습니다. |
IP dhcp 바인딩 디버그 |
이 명령은 할당된 IP 주소, 클라이언트의 MAC 주소 및 임대 기간을 포함하여 DHCP 서버가 할당한 IP 주소에 대한 정보를 표시합니다. |
IP dhcp 서버 통계 디버그 |
이 명령은 수신된 DHCP 요청 수, IP 주소 임대, 임대 시간 등 DHCP 서버 운영과 관련된 통계를 표시합니다. |
모두 디버그 해제 |
모든 디버깅 명령을 중지하려면 undebug all 명령을 사용하여 진행 중인 모든 디버깅을 비활성화합니다. |
EPC(Embedded Packet Capture) 및 vManage Capture Tool을 사용하여 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
.
2단계. DHCP 서버 디바이스를 클릭합니다.
3단계. Security Monitoring에서 Troubleshooting
.
4단계. 트래픽에서 Packet Capture
.
5단계. 캡처에 대한 매개변수를 설정하고 시작을 클릭합니다.
6단계. 캡처가 완료될 때까지 기다렸다가 다운로드합니다.
내보내고 WireShark와 같은 패킷 분석기에서 패킷을 확인합니다.
관련 정보