CCIE EI
DMVPN Deep Dive
Optimus Joo
2026. 3. 20. 10:12
DMVPN · Deep Dive
Zero to Hero · Cisco · CCIE Enterprise
DMVPN
완전 정복
Dynamic Multipoint VPN — mGRE · NHRP · IPSec · Phase 1/2/3
Hub-and-Spoke → Spoke-to-Spoke Direct Tunnel · QoS · 이중화 · 운영까지
Cisco CCIE Enterprise 출제 핵심 영역 완전 분석
⏱ 총 70H 커리큘럼
🔗 mGRE · NHRP · IPSec
🌐 Phase 1 / 2 / 3
📡 Spoke-to-Spoke Direct
🔐 IKEv1 / IKEv2 / GRE over IPSec
🏅 CCNP ENARSI · CCIE ENT
📑 Table of Contents
- Phase 0 — DMVPN 등장 배경 & 기초
- Phase 1 — DMVPN 핵심 구성 요소
- mGRE · NHRP · IPSec의 역할과 상호 관계
- Phase 2 — NHRP Deep Dive
- 등록 · 결정 · 리다이렉트 · 캐시 관리
- Phase 3 — DMVPN Phase 1 / 2 / 3 완전 분석
- 각 Phase 동작 원리 · 라우팅 프로토콜 차이 · 선택 기준
- Phase 4 — IPSec Integration Deep Dive
- IKEv1 / IKEv2 · ISAKMP · IPSec Profile · 트래픽 보호
- Phase 5 — 라우팅 프로토콜 완전 설정
- EIGRP · OSPF · BGP over DMVPN · Summary · Split Horizon
- Phase 6 — 이중화 & 고가용성
- Dual Hub · Dual Cloud · HSRP/IP SLA Tracking
- Phase 7 — QoS & 고급 기능
- Per-Tunnel QoS · NHRP Authentication · NAT Traversal
- Phase 8 — 프리세일즈 실전 설계 & CCIE 핵심
- 트러블슈팅 완전 가이드
🗺 커리큘럼 로드맵
PHASE 0
배경 & 기초
전통 VPN 한계, DMVPN 탄생, 핵심 용어
⏱ 4H
PHASE 1
핵심 구성 요소
mGRE, NHRP, IPSec 역할 분리
⏱ 8H
PHASE 2
NHRP Deep Dive
등록·결정·리다이렉트·캐시
⏱ 10H
PHASE 3
Phase 1/2/3 ★
동작원리·라우팅·선택기준 완전분석
⏱ 12H
PHASE 4
IPSec Integration
IKEv1/v2, Profile, Crypto Map
⏱ 10H
PHASE 5
라우팅 프로토콜
EIGRP·OSPF·BGP·Split Horizon
⏱ 10H
PHASE 6
이중화 & HA
Dual Hub·Dual Cloud·IP SLA
⏱ 8H
PHASE 7
QoS & 고급기능
Per-Tunnel QoS·NAT-T·인증
⏱ 5H
PHASE 8
프리세일즈 & CCIE
풀 설계·시나리오·CCIE 출제포인트
⏱ 3H
🏛 Phase 0 — DMVPN 등장 배경 & 기초 4H
0-1. 전통 VPN의 한계 vs DMVPN
⛔ 전통 Point-to-Point GRE / IPSec
- N개 지사 = N개 허브 터널 수동 설정
- Spoke-to-Spoke 직접 통신 불가 → Hub 경유 필수
- Hub 장애 시 전체 WAN 다운
- 신규 지사 추가 시 허브·기존 Spoke 모두 재설정
- Static Mapping 의존 — 동적 IP Spoke 지원 불가
- 대규모 환경에서 Hub CPU·메모리 과부하
✅ DMVPN
- Hub 1개 설정으로 무제한 Spoke 자동 수용
- Spoke-to-Spoke 직접 터널 동적 생성 (Phase 2/3)
- Dual Hub로 Hub 이중화 — 장애 시 자동 절체
- 신규 Spoke = Spoke 라우터만 설정, Hub 무변경
- NHRP로 동적 공인 IP Spoke 지원
- On-Demand 터널 — 미사용 시 자동 해제
0-2. DMVPN 핵심 용어 사전
| 용어 | 설명 | 비고 |
|---|---|---|
| DMVPN | Dynamic Multipoint VPN — 동적으로 생성/해제되는 멀티포인트 VPN. mGRE + NHRP + IPSec의 조합 | Cisco 독자 기술 (RFC 기반) |
| mGRE | Multipoint GRE — 하나의 터널 인터페이스로 다수의 GRE 피어와 통신 가능한 GRE 확장 | interface tunnel0 + tunnel mode gre multipoint |
| NHRP | Next Hop Resolution Protocol (RFC 2332) — GRE 터널 내에서 논리 주소(터널 IP)와 물리 주소(NBMA IP) 매핑 관리 | ARP와 유사, 동적 IP 지원 |
| NHS | Next Hop Server — Hub 라우터. Spoke의 NBMA 주소 등록 요청 처리 | nhrp map multicast dynamic |
| NHC | Next Hop Client — Spoke 라우터. 자신의 NBMA 주소를 NHS에 등록 | nhrp registration |
| NBMA | Non-Broadcast Multi-Access — 인터넷/MPLS처럼 직접 Broadcast가 불가능한 환경 | DMVPN의 Underlay 네트워크 타입 |
| 터널 IP | mGRE 인터페이스에 부여된 논리 IP. DMVPN 오버레이 네트워크 주소 | 보통 10.0.0.x/24 |
| NBMA IP (물리 IP) | 인터넷 또는 MPLS 상의 실제 공인/사설 IP. GRE 패킷의 Outer 주소 | 동적 할당 가능 |
| Spoke-to-Spoke | Hub를 거치지 않고 Spoke 간 직접 GRE 터널 생성. Phase 2/3에서만 가능 | NHRP Resolution으로 동적 생성 |
| DMVPN Phase | DMVPN의 동작 방식을 결정하는 구성 모드. Phase 1 (HS only), Phase 2 (S2S direct), Phase 3 (S2S + NHRP shortcut) | ip nhrp shortcut / redirect 명령으로 구분 |
🔩 Phase 1 — DMVPN 핵심 구성 요소 8H
DMVPN은 mGRE + NHRP + IPSec 세 가지 기술의 조합입니다. 각 기술은 독립적인 역할을 담당하며, 이 세 가지가 통합될 때 DMVPN의 동적 특성이 실현됩니다.
1-1. 3대 구성 요소 역할 분리
| 구성 요소 | 계층 | 역할 | 없으면? |
|---|---|---|---|
| mGRE | 데이터 플레인 | 하나의 인터페이스에서 다수 피어와 GRE 터널. IP 패킷을 GRE로 캡슐화하여 NBMA 위로 전송 | Spoke마다 별도 터널 인터페이스 필요 → 수백 개 불가 |
| NHRP | 컨트롤 플레인 | 터널 IP ↔ NBMA IP 매핑 관리. Spoke 등록, 동적 IP 해결, Spoke-to-Spoke 주소 조회 | Spoke의 공인 IP를 알 수 없어 터널 형성 불가 |
| IPSec | 보안 플레인 | GRE 터널 트래픽 암호화·인증. IKE로 키 협상. ESP/AH로 패킷 보호 | GRE 터널은 평문 전송 — 데이터 노출 위험 |
DMVPN 전체 구성 요소 아키텍처 — Hub + 3 Spoke
1-2. DMVPN 패킷 캡슐화 구조
레이어
Outer IP
20B
20B
ESP Header
8B
8B
GRE Header
4~8B
4~8B
Inner IP
20B
20B
Payload
TCP/UDP
TCP/UDP
ESP Trailer
+Auth
+Auth
내용
NBMA src→dst
실제 공인 IP
실제 공인 IP
SPI · Seq
IPSec SA
IPSec SA
Protocol 0x800
IPv4 payload
IPv4 payload
터널 IP
10.0.0.x
10.0.0.x
원본 사용자
데이터
데이터
Pad+HMAC
무결성
무결성
🔑
캡슐화 순서 이해
원본 패킷 → GRE 캡슐화(mGRE가 수행, Outer IP = NBMA) → IPSec ESP 암호화. 즉 GRE가 먼저, IPSec이 나중입니다. IPSec은 GRE 터널 트래픽 전체를 보호합니다. Outer IP의 목적지가 상대방의 NBMA IP이므로, NHRP가 이 NBMA IP를 동적으로 해결합니다.1-3. Hub 라우터 기본 설정 구조
Hub Router — mGRE + NHRP 기본 설정
! ─── Hub 터널 인터페이스 ─────────────────────────── interface Tunnel0 ip address 10.0.0.1 255.255.255.0 ! 터널 IP (오버레이 주소) ! mGRE 설정 tunnel mode gre multipoint ! 핵심: 멀티포인트 GRE tunnel source GigabitEthernet0/0 ! NBMA 인터페이스 ! tunnel destination 없음 — 동적으로 결정 ! NHRP 설정 (Hub = NHS 역할) ip nhrp network-id 100 ! NHRP 도메인 ID (모든 장비 동일) ip nhrp map multicast dynamic ! Spoke 멀티캐스트 자동 허용 ! Hub는 nhrp nhs 설정 없음 (자신이 NHS) ! 기타 ip mtu 1400 ip tcp adjust-mss 1360 no ip split-horizon eigrp 100 ! EIGRP 사용 시 Split Horizon 비활성화 no shutdown
1-4. Spoke 라우터 기본 설정 구조
Spoke Router — mGRE + NHRP 기본 설정
! ─── Spoke 터널 인터페이스 ───────────────────────── interface Tunnel0 ip address 10.0.0.11 255.255.255.0 tunnel mode gre multipoint tunnel source GigabitEthernet0/0 ! Spoke의 NBMA 인터페이스 ! NHRP 설정 (Spoke = NHC 역할) ip nhrp network-id 100 ip nhrp nhs 10.0.0.1 ! Hub 터널 IP = NHS 주소 ip nhrp map 10.0.0.1 203.0.113.1 ! Hub의 터널IP ↔ NBMA IP 매핑 (정적) ip nhrp map multicast 203.0.113.1 ! 라우팅 프로토콜 멀티캐스트 → Hub로 ip nhrp registration no-unique ! 동적 IP 환경 시 (IP 변경 허용) ip nhrp holdtime 300 ip mtu 1400 ip tcp adjust-mss 1360 no shutdown
📡 Phase 2 — NHRP Deep Dive 10H
NHRP는 DMVPN의 컨트롤 플레인입니다. 인터넷(NBMA 환경)에서 논리 터널 주소(EID 역할)와 실제 공인 IP(NBMA IP)를 연결하는 동적 매핑 프로토콜입니다.
2-1. NHRP 메시지 타입 (4종)
| 메시지 타입 | 방향 | 역할 | DMVPN Phase |
|---|---|---|---|
| NHRP Registration Request | Spoke → Hub(NHS) | Spoke가 자신의 터널IP ↔ NBMA IP 매핑을 NHS에 등록. 30~600초마다 갱신 | 모든 Phase |
| NHRP Registration Reply | Hub(NHS) → Spoke | 등록 확인 응답. Holdtime 전달 | 모든 Phase |
| NHRP Resolution Request | Spoke-ITR → Hub(NHS) | 목적지 Spoke의 NBMA IP 쿼리. "10.0.0.12의 공인 IP가 뭐야?" | Phase 2/3 |
| NHRP Resolution Reply | Spoke-ETR → Spoke-ITR (직접) | 목적지 Spoke가 자신의 NBMA IP로 직접 응답 → Spoke-to-Spoke 터널 생성 | Phase 2/3 |
| NHRP Redirect (Phase 3) | Hub → Source Spoke | Phase 3 전용. Hub가 "저 목적지로 직접 가라"고 알림 | Phase 3 only |
NHRP 동작 흐름 — Spoke-1이 Spoke-2로 처음 패킷 전송 시
2-2. NHRP 캐시 관리
| 캐시 타입 | 생성 방법 | TTL | 삭제 조건 |
|---|---|---|---|
| Static (정적) | ip nhrp map [tunnel-ip] [nbma-ip] 수동 설정 | 영구 | 설정 제거 시만 삭제 |
| Dynamic (동적) | NHRP Registration Reply 수신 시 자동 생성 | Holdtime (기본 7200초) | Holdtime 만료 또는 NHRP Purge |
| Incomplete (불완전) | Resolution Request 전송 후 Reply 미수신 상태 | Resolution Timeout | Reply 수신 또는 타임아웃 |
| Negative (부정) | Resolution 실패 시 | 짧음 (재쿼리 방지) | 자동 만료 |
NHRP 상태 확인 명령어
! ─── NHRP 캐시 테이블 ─────────────────────────────── show ip nhrp ! 출력 예시: ! 10.0.0.12/32 via 10.0.0.12 ! Tunnel0 created 00:05:23, expire 01:54:36 ! Type: dynamic, Flags: router nhop rib ! NBMA address: 100.64.2.2 show ip nhrp detail ! 플래그, 레퍼런스 카운트 포함 show ip nhrp nhs ! Hub(NHS) 연결 상태 show ip nhrp multicast ! 멀티캐스트 매핑 목록 show dmvpn ! DMVPN 터널 전체 요약 show dmvpn detail ! 터널별 상세 (NHRP + IKE + IPSec)
⭐ Phase 3 — DMVPN Phase 1 / 2 / 3 완전 분석 12H
DMVPN의 "Phase"는 Spoke-to-Spoke 트래픽 처리 방식의 차이입니다. 혼동 주의 — 위 커리큘럼의 Phase 0~8과 전혀 다른 개념입니다.
3-0. 세 Phase 핵심 비교표
| 항목 | Phase 1 | Phase 2 | Phase 3 |
|---|---|---|---|
| S2S 직접 터널 | ❌ 불가 (Hub 경유만) | ✅ 동적 생성 | ✅ 동적 생성 (더 효율적) |
| Hub 터널 모드 | mGRE (또는 P2P) | mGRE | mGRE |
| Spoke 터널 모드 | P2P GRE (Hub 방향만) | mGRE | mGRE |
| NHRP Redirect | 없음 | 없음 | ip nhrp redirect (Hub) |
| NHRP Shortcut | 없음 | 없음 | ip nhrp shortcut (Spoke) |
| 라우팅 — Hub의 역할 | 경로 집약/요약 가능 | 경로 요약 불가 (구체 경로 필요) | 경로 요약 가능 (Shortcut이 라우팅 대체) |
| EIGRP Split Horizon | Hub에서 비활성화 필요 | Hub에서 비활성화 필요 | Hub 요약 경로 사용 — 비활성화 불필요 |
| OSPF 네트워크 타입 | point-to-multipoint | broadcast (DR/BDR 선출 필요) | point-to-multipoint |
| 권장 사용 시나리오 | 단순 Hub-Spoke, 소규모 | 대용량 S2S, 레거시 호환 | 대규모, 동적 경로, 확장성 최우선 ★ |
DMVPN Phase 1 — Hub-and-Spoke Only (모든 트래픽 Hub 경유)
DMVPN Phase 2 — Spoke-to-Spoke Direct (NHRP Resolution)
DMVPN Phase 3 — NHRP Redirect + Shortcut (권장)
3-1. Phase별 라우팅 핵심 차이점
🔬
Phase 3: Hub에서
Phase 2 vs Phase 3 — 라우팅 관점에서 핵심 차이
Phase 2: Spoke가 직접 터널을 만들려면 목적지 Spoke의 구체 경로가 라우팅 테이블에 있어야 합니다. Hub에서 경로를 요약(Summary)하면 Spoke는 "어느 Spoke로 가야 할지"를 모르기 때문에 S2S 터널을 생성하지 않습니다.Phase 3: Hub에서
ip nhrp redirect, Spoke에서 ip nhrp shortcut 설정. Hub가 요약 경로만 광고해도 됩니다. 첫 패킷은 Hub를 거치지만 Hub가 "Redirect" 메시지를 보내면 Spoke가 NHRP로 목적지를 해결하고 라우팅 테이블을 NHRP Shortcut 항목으로 덮어씁니다.3-2. Phase 선택 기준 가이드
| 시나리오 | 권장 Phase | 이유 |
|---|---|---|
| 소규모 WAN (지사 10개 미만), S2S 트래픽 없음 | Phase 1 | 단순 설정, Hub 부하 낮음 |
| 중규모 WAN, S2S 대용량 트래픽, 라우팅 단순 | Phase 2 | 직접 터널 성능 최대화 |
| 대규모 WAN, 경로 요약 필요, 확장성 최우선 | Phase 3 ★ | 경로 요약 + S2S 직접 + EIGRP/BGP 유연성 |
| Hub-Spoke 혼용 (일부 S2S 허용) | Phase 2 or 3 | 정책에 따라 선택 |
| MPLS WAN 위에서 암호화 오버레이 | Phase 3 | MPLS는 이미 신뢰망이지만 추가 암호화 필요 시 |
🔐 Phase 4 — IPSec Integration Deep Dive 10H
4-1. IKEv1 vs IKEv2 비교
| 항목 | IKEv1 (ISAKMP) | IKEv2 (권장) |
|---|---|---|
| 표준 | RFC 2409 | RFC 7296 |
| 협상 단계 | Phase 1 (Main/Aggressive) + Phase 2 (Quick) | IKE_SA_INIT + IKE_AUTH (2 exchange) |
| 메시지 수 | Main: 9개 / Aggressive: 6개 | 4개 (훨씬 효율적) |
| 재인증 | Phase 1 SA 만료 시 전체 재협상 | Rekey 메커니즘 내장 (중단 없음) |
| 비대칭 인증 | 불가 | 가능 (Hub-Spoke 다른 인증 방식) |
| EAP 인증 | 불가 | 가능 |
| NAT Traversal | RFC 3947 별도 구현 | 내장 (자동 감지) |
| DMVPN 권장 | 레거시 / 호환성 | ✅ 신규 구축 표준 |
4-2. DMVPN with IPSec — IKEv1 방식 (Crypto Map)
IKEv1 / Crypto Profile 방식 (Hub + Spoke 공통)
! ─── ISAKMP Policy (IKE Phase 1) ───────────────── crypto isakmp policy 10 encr aes 256 hash sha256 authentication pre-share group 14 ! DH Group 14 (2048-bit) lifetime 86400 ! ─── Pre-Shared Key (모든 Spoke 공통 키 사용 가능) ─ crypto isakmp key CiscoSecret123! address 0.0.0.0 0.0.0.0 ! 특정 피어별 키: crypto isakmp key [key] address [peer-ip] ! ─── IPSec Transform Set ────────────────────────── crypto ipsec transform-set DMVPN_TS esp-aes 256 esp-sha256-hmac mode transport ! GRE over IPSec → transport mode! ! tunnel mode: GRE가 이미 있으면 transport 사용 (이중 IP 헤더 방지) ! ─── IPSec Profile (Tunnel Interface에 적용) ────── crypto ipsec profile DMVPN_PROFILE set transform-set DMVPN_TS set security-association lifetime seconds 3600 set pfs group14 ! Perfect Forward Secrecy ! ─── Tunnel Interface에 IPSec Profile 적용 ──────── interface Tunnel0 tunnel protection ipsec profile DMVPN_PROFILE ! Crypto Map 방식 대신 Profile 방식 사용 (DMVPN 표준)
4-3. DMVPN with IKEv2 (권장 방식)
IKEv2 — Hub + Spoke 설정 (신규 구축 권장)
! ─── IKEv2 Proposal ────────────────────────────── crypto ikev2 proposal DMVPN_PROP encryption aes-cbc-256 integrity sha256 group 14 ! ─── IKEv2 Policy ──────────────────────────────── crypto ikev2 policy DMVPN_POL proposal DMVPN_PROP ! ─── IKEv2 Keyring (Pre-Shared Key) ────────────── crypto ikev2 keyring DMVPN_KEYS peer ANY address 0.0.0.0 0.0.0.0 ! 모든 피어 (동적 IP Spoke 지원) pre-shared-key local HubKey#2024! pre-shared-key remote HubKey#2024! ! ─── IKEv2 Profile ─────────────────────────────── crypto ikev2 profile DMVPN_IKE match identity remote address 0.0.0.0 ! 모든 원격 피어 authentication local pre-share authentication remote pre-share keyring local DMVPN_KEYS ! ─── IPSec Transform + Profile ─────────────────── crypto ipsec transform-set DMVPN_TS esp-aes 256 esp-sha256-hmac mode transport crypto ipsec profile DMVPN_IPSEC set transform-set DMVPN_TS set ikev2-profile DMVPN_IKE ! IKEv2 Profile 연결 set pfs group14 ! ─── Tunnel Interface ──────────────────────────── interface Tunnel0 tunnel protection ipsec profile DMVPN_IPSEC
⚠️
transport mode vs tunnel mode — 반드시 이해
DMVPN에서 IPSec은 반드시 transport mode를 사용합니다. GRE가 이미 Inner IP를 Outer IP로 캡슐화하기 때문에, IPSec tunnel mode를 쓰면 IP 헤더가 2중으로 추가되어 불필요한 오버헤드 발생. Transport mode는 GRE 페이로드만 암호화하고 Outer GRE 헤더의 IP는 유지합니다.🛣 Phase 5 — 라우팅 프로토콜 완전 설정 10H
5-1. DMVPN Phase별 라우팅 주의사항 요약
| 프로토콜 | Phase 1 | Phase 2 | Phase 3 |
|---|---|---|---|
| EIGRP | Hub: no ip split-horizon eigrp [AS]Hub: 요약 경로 OK | Hub: no ip split-horizon eigrp [AS]Hub: 요약 경로 사용 시 S2S 불가 | Hub: Split Horizon 기본 OK Hub: 요약 경로 사용 가능 ✅ |
| OSPF | 네트워크 타입: point-to-multipointHub = DR 불필요 | 네트워크 타입: broadcastHub를 DR로 강제 (priority 255) | 네트워크 타입: point-to-multipoint또는 P2P Non-Broadcast |
| BGP | iBGP 풀메시 또는 RR Hub = RR 권장 | Hub = RR next-hop-self 필요 | Hub = RR next-hop-self 필요 ✅ |
5-2. EIGRP over DMVPN (Phase 3)
EIGRP over DMVPN Phase 3 — Hub + Spoke
! ─── Hub 라우터 ───────────────────────────────── router eigrp 100 network 10.0.0.0 0.0.0.255 ! 터널 네트워크 포함 network 192.168.0.0 0.0.0.255 ! LAN 네트워크 ! Phase 3: Split Horizon 비활성화 불필요 (요약 경로 사용) ! Phase 1/2: no ip split-horizon eigrp 100 (tunnel 인터페이스에서) interface Tunnel0 ! Phase 3에서 요약 경로 광고 (Spoke들에게 집약 경로만) ip summary-address eigrp 100 10.1.0.0 255.255.0.0 ip summary-address eigrp 100 192.168.0.0 255.255.0.0 ip nhrp redirect ! Phase 3 필수 ! ─── Spoke 라우터 ────────────────────────────── router eigrp 100 network 10.0.0.0 0.0.0.255 network 10.10.1.0 0.0.0.255 ! Spoke LAN interface Tunnel0 ip nhrp shortcut ! Phase 3 필수 (Spoke에서) ip bandwidth-percent eigrp 100 40 ! EIGRP 대역폭 제한 (WAN 보호)
5-3. OSPF over DMVPN (Phase 3)
OSPF over DMVPN Phase 3
! ─── Hub 라우터 ───────────────────────────────── router ospf 1 router-id 1.1.1.1 network 10.0.0.0 0.0.0.255 area 0 network 192.168.0.0 0.0.0.255 area 0 interface Tunnel0 ! Phase 3 권장: point-to-multipoint ip ospf network point-to-multipoint ! Phase 2: ip ospf network broadcast + priority 255 (Hub=DR) ip ospf priority 255 ! broadcast 모드 시 DR 강제 ip nhrp redirect ! ─── Spoke 라우터 ────────────────────────────── router ospf 1 router-id 2.2.2.2 network 10.0.0.0 0.0.0.255 area 0 network 10.10.2.0 0.0.0.255 area 0 interface Tunnel0 ip ospf network point-to-multipoint ip ospf priority 0 ! DR 선출 제외 ip nhrp shortcut
5-4. BGP over DMVPN (대규모 엔터프라이즈)
iBGP over DMVPN — Hub = Route Reflector
! ─── Hub (Route Reflector) ────────────────────── router bgp 65000 bgp router-id 10.0.0.1 bgp log-neighbor-changes ! Spoke들과 iBGP (동적 피어 — 터널 IP 기반) neighbor 10.0.0.0 peer-group SPOKES neighbor SPOKES remote-as 65000 neighbor SPOKES update-source Tunnel0 neighbor SPOKES route-reflector-client ! Hub = RR neighbor SPOKES next-hop-self ! 핵심! Spoke가 다른 Spoke 경로 수신 시 address-family ipv4 network 192.168.0.0 mask 255.255.0.0 neighbor SPOKES activate ! ─── 동적 피어 — Spoke 추가 시 Hub 변경 불필요 ─ bgp listen range 10.0.0.0/24 peer-group SPOKES ! ─── Spoke 라우터 ────────────────────────────── router bgp 65000 bgp router-id 10.0.0.11 neighbor 10.0.0.1 remote-as 65000 neighbor 10.0.0.1 update-source Tunnel0 address-family ipv4 network 10.10.11.0 mask 255.255.255.0 neighbor 10.0.0.1 activate
✅
Dynamic Peer:
BGP over DMVPN의 장점
next-hop-self: Hub가 Spoke 경로를 RR로 반영할 때 Next-Hop을 Hub 자신으로 변경하지 않으면, Spoke는 다른 Spoke의 터널 IP를 Next-Hop으로 보고 NHRP 없이는 도달 불가. next-hop-self 설정으로 해결.Dynamic Peer:
bgp listen range로 새 Spoke 추가 시 Hub BGP 설정 변경 불필요.🔄 Phase 6 — 이중화 & 고가용성 8H
6-1. Dual Hub DMVPN 아키텍처
Dual Hub DMVPN — Hub-1 Active / Hub-2 Standby
6-2. Dual Hub 설정
Spoke — Dual NHS (Hub 이중화) 설정
! ─── Spoke: 두 Hub를 NHS로 설정 ──────────────── interface Tunnel0 ip address 10.0.0.11 255.255.255.0 tunnel mode gre multipoint tunnel source GigabitEthernet0/0 ip nhrp network-id 100 ! Hub-1 (Primary NHS) ip nhrp nhs 10.0.0.1 nbma 203.0.113.1 priority 10 cluster 1 ip nhrp map multicast 203.0.113.1 ! Hub-2 (Backup NHS) ip nhrp nhs 10.0.0.2 nbma 203.0.113.2 priority 5 cluster 1 ip nhrp map multicast 203.0.113.2 ! Fallback: Hub-1 미응답 시 Hub-2로 전환 대기 시간 ip nhrp nhs cluster 1 max-connections 1 ! Active NHS 1개만 ip nhrp shortcut ! Phase 3 tunnel protection ipsec profile DMVPN_IPSEC
6-3. IP SLA + Tracking으로 Hub 장애 시 라우팅 전환
IP SLA Tracking — Hub 장애 감지 및 Default Route 전환
! ─── IP SLA: Hub-1 터널 IP 핑 감시 ───────────── ip sla 10 icmp-echo 10.0.0.1 source-interface Tunnel0 frequency 5 ! 5초마다 핑 ip sla schedule 10 life forever start-time now ! ─── Track 객체 ───────────────────────────────── track 10 ip sla 10 reachability ! ─── Default Route: Hub-1 경유 (정상 시 우선) ip route 0.0.0.0 0.0.0.0 10.0.0.1 10 track 10 ! AD=10, Hub-1 살아있을 때 ! ─── Backup: Hub-2 경유 (Hub-1 다운 시 자동 활성) ip route 0.0.0.0 0.0.0.0 10.0.0.2 20 ! AD=20, 항상 존재 ! Hub-1 다운 → Track 10 Down → AD 10 라우트 제거 ! → AD 20 라우트 활성화 → Hub-2 경유로 자동 전환
⚙️ Phase 7 — QoS & 고급 기능 5H
7-1. Per-Tunnel QoS (DMVPN QoS 핵심)
DMVPN 터널에서 일반 QoS는 물리 인터페이스에 적용됩니다. Per-Tunnel QoS는 각 Spoke 터널별로 다른 QoS 정책을 적용할 수 있어, Spoke별 WAN 대역폭이 다를 때 정밀한 제어가 가능합니다.
| QoS 방식 | 적용 위치 | 특징 | 사용 시나리오 |
|---|---|---|---|
| 물리 인터페이스 QoS | Hub의 WAN 인터페이스 | 모든 Spoke 동일 정책. 설정 단순 | 모든 Spoke 동일 회선 속도 |
| Per-Tunnel QoS (NHRP) | mGRE 터널 인터페이스 | Spoke별 다른 정책 적용. NHRP Group 활용 | Spoke마다 WAN 대역폭 다를 때 |
| DSCP 마킹 (Spoke) | Spoke LAN 인터페이스 | 트래픽 분류 및 마킹 → Hub에서 일관 처리 | End-to-End QoS 구현 |
Per-Tunnel QoS — Hub에서 Spoke별 정책 적용
! ─── Hub: NHRP Group 기반 Per-Tunnel QoS ──────── ! Spoke가 등록 시 NHRP Group 정보를 포함하면 Hub가 구분 ! Policy Map 정의 (VoIP 우선 처리) policy-map DMVPN_QOS class VOICE priority percent 25 ! LLQ — 절대 우선 class VIDEO bandwidth percent 20 class BUSINESS bandwidth percent 30 class class-default fair-queue ! NHRP Group → Policy Map 매핑 interface Tunnel0 ip nhrp map group BRANCH_10M service-policy output DMVPN_QOS ! ─── Spoke: NHRP Group 선언 ───────────────────── interface Tunnel0 ip nhrp group BRANCH_10M ! 자신이 10Mbps 회선 그룹임을 선언 ip nhrp registration timeout 60
7-2. NHRP 인증 (보안 강화)
NHRP Authentication — 인증되지 않은 등록 차단
! Hub와 모든 Spoke에 동일한 인증키 설정 interface Tunnel0 ip nhrp authentication NhrpAuth2024! ! 키가 다른 Spoke는 등록 거부됨
7-3. NAT Traversal (NAT-T)
🔑
NHRP 등록 시
Hub의
DMVPN + NAT 환경
Spoke가 NAT 뒤에 있을 때 IKEv1은 UDP 4500(NAT-T)을 사용합니다. IKEv2는 NAT-T를 자동 감지하여 내장 처리합니다.NHRP 등록 시
ip nhrp registration no-unique를 설정하면 동적으로 변하는 공인 IP도 허용합니다.Hub의
ip nhrp map multicast dynamic은 NAT 뒤 Spoke의 실제 공인 IP를 동적으로 학습합니다.
NAT 환경 Spoke 추가 설정
! Spoke가 NAT 뒤에 있을 때 interface Tunnel0 ip nhrp registration no-unique ! 동적 공인 IP 허용 ip nhrp holdtime 600 ! 갱신 주기 조정 ! IKEv2 NAT-T: 자동 (별도 설정 불필요) ! IKEv1 NAT-T: isakmp 정책에서 자동 감지 crypto isakmp nat keepalive 20 ! NAT 세션 유지 keepalive
🏆 Phase 8 — 프리세일즈 실전 설계 & CCIE 핵심 3H
엔터프라이즈 DMVPN 풀 설계 — Dual Hub · Phase 3 · IPSec IKEv2 · BGP
8-1. 프리세일즈 주요 시나리오
💼
Scenario 1 — "전국 200개 지사 WAN을 저렴하게 구축하고 싶다"
DMVPN Phase 3 + 인터넷 제안. 기존 MPLS 전용선 대비 인터넷 회선 활용으로 비용 70% 절감 가능. Hub 1~2대만 설치하면 200개 Spoke 자동 수용. 신규 지사 추가 시 Hub 설정 변경 없음. IPSec IKEv2로 데이터 보안 보장.
💼
Scenario 2 — "지사 간 직접 통신(영상회의 등)이 필요하다"
DMVPN Phase 3 + Per-Tunnel QoS 제안. Phase 3로 지사 간 직접 터널 자동 생성. 최초 1패킷만 Hub 경유 후 직접 통신. VoIP/Video 트래픽은 LLQ로 지연 보장. 기존 Hub 경유 대비 지연 50% 이상 감소.
💼
Scenario 3 — "일부 지사는 고정 IP가 없고 LTE만 있다"
DMVPN + Dynamic IP + LTE Failover 제안. NHRP의 동적 IP 지원으로 DHCP/LTE Spoke 완전 지원. ip nhrp registration no-unique로 IP 변경 시도 자동 재등록. LTE를 Backup WAN으로 구성 가능.
💼
Scenario 4 — "WAN 장애에도 업무가 계속되어야 한다"
Dual Hub DMVPN + IP SLA Tracking 제안. Hub-1 장애 시 모든 Spoke가 자동으로 Hub-2로 전환. IP SLA로 Hub 상태 실시간 감시. 전환 시간 10~30초 이내. HSRP나 VRRP 없이 라우팅 레벨에서 HA 구현.8-2. CCIE Enterprise — DMVPN 핵심 출제 포인트
| 출제 영역 | 핵심 내용 | 중요도 |
|---|---|---|
| Phase 1/2/3 차이 | Spoke 터널 모드, NHRP redirect/shortcut 설정 위치, 라우팅 요약 가능 여부 | ★★★★★ |
| NHRP 동작 원리 | Registration/Resolution/Redirect 메시지 흐름, Cache 타입, NHS/NHC 역할 | ★★★★★ |
| IPSec transport vs tunnel mode | GRE over IPSec에서 transport mode 사용 이유 — 이중 헤더 방지 | ★★★★★ |
| 라우팅 Split Horizon | Phase별 EIGRP Split Horizon, OSPF 네트워크 타입, BGP next-hop-self | ★★★★☆ |
| IKEv1 vs IKEv2 | 메시지 수, 협상 단계, NAT-T 처리 방식, Dynamic Peer 지원 | ★★★★☆ |
| Dual Hub 이중화 | NHS priority, fallback 설정, IP SLA Tracking 연동 | ★★★☆☆ |
| BGP over DMVPN | bgp listen range로 동적 피어, next-hop-self 필요성, RR 구성 | ★★★☆☆ |
🏆
② OSPF broadcast 모드에서 Hub의 priority를 255로 설정 안 하면 DR 경쟁 발생
③ tunnel protection ipsec 설정 후 IPSec SA가 올라오지 않으면 ISAKMP policy mismatch 확인
④ EIGRP split-horizon 비활성화 안 하면 Phase 1/2에서 Hub가 받은 Spoke 경로를 다른 Spoke에 재광고 안 함
CCIE Lab 시험 시 자주 나오는 DMVPN 함정
① Phase 2에서 경로 요약 설정 시 Spoke-to-Spoke 터널이 생성되지 않음 — Phase 3로 변경하거나 요약 제거② OSPF broadcast 모드에서 Hub의 priority를 255로 설정 안 하면 DR 경쟁 발생
③ tunnel protection ipsec 설정 후 IPSec SA가 올라오지 않으면 ISAKMP policy mismatch 확인
④ EIGRP split-horizon 비활성화 안 하면 Phase 1/2에서 Hub가 받은 Spoke 경로를 다른 Spoke에 재광고 안 함
🔧 트러블슈팅 완전 가이드
NHRP / 터널 트러블슈팅
| 증상 | 원인 | 확인 명령어 | 해결 |
|---|---|---|---|
| NHRP 등록 실패 | Hub NBMA IP 매핑 오류 | show ip nhrp nhs | ip nhrp map / nhs 설정 확인 |
| NHRP 등록 실패 | Network-ID 불일치 | show ip nhrp detail | 모든 장비 network-id 동일 확인 |
| NHRP 등록 실패 | 인증키 불일치 | debug ip nhrp | ip nhrp authentication 키 확인 |
| 터널 Up이지만 통신 불가 | MTU 문제 | ping size 1400 df-bit | ip mtu 1400 + ip tcp adjust-mss 1360 |
| Spoke-to-Spoke 터널 미생성 | Phase 설정 오류 | show dmvpn detail | Phase 2: mGRE 양단 / Phase 3: redirect+shortcut |
| Spoke-to-Spoke 터널 미생성 | Phase 2에서 경로 요약 | show ip route | 구체 경로 광고 또는 Phase 3로 전환 |
| IPSec SA 미생성 | IKE Policy 불일치 | show crypto isakmp sa | 양단 암호화/해시/DH 그룹 일치 확인 |
| IPSec SA 미생성 | Pre-Shared Key 불일치 | debug crypto isakmp | PSK 값 정확히 입력 확인 |
| BGP 피어 미수립 | update-source 미설정 | show bgp summary | neighbor update-source Tunnel0 추가 |
| Spoke가 경로를 못 받음 | EIGRP Split Horizon | show ip eigrp interface detail | no ip split-horizon eigrp [AS] (Hub tunnel) |
핵심 진단 명령어 Quick Reference
DMVPN 필수 진단 명령어 전체
═══ DMVPN 전체 상태 ═══════════════════════════════ show dmvpn ! DMVPN 전체 요약 (핵심 첫 명령어) show dmvpn detail ! NHRP + IKE + IPSec 상세 show dmvpn peer [ip] ! 특정 피어 상세 ═══ NHRP ══════════════════════════════════════════ show ip nhrp ! NHRP 캐시 테이블 show ip nhrp detail ! NHRP 플래그 포함 상세 show ip nhrp nhs ! NHS(Hub) 연결 상태 show ip nhrp multicast ! 멀티캐스트 매핑 show ip nhrp traffic ! NHRP 메시지 카운터 clear ip nhrp [ip] ! 특정 NHRP 캐시 삭제 ═══ IPSec / IKE ═══════════════════════════════════ show crypto isakmp sa ! IKE Phase 1 SA 상태 show crypto ipsec sa ! IPSec SA (encrypt/decrypt 카운터) show crypto ikev2 sa ! IKEv2 SA 상태 show crypto ikev2 sa detail ! IKEv2 상세 (알고리즘, 만료) show crypto engine connections active ! 활성 암호화 세션 show crypto session ! 전체 IPSec 세션 ═══ 터널 인터페이스 ══════════════════════════════ show interface tunnel0 ! 터널 상태, 패킷 카운터 show ip interface tunnel0 ! IP 관련 설정 확인 show ip route ! 라우팅 테이블 (경로 수신 확인) ═══ 라우팅 프로토콜 ══════════════════════════════ show ip eigrp neighbors ! EIGRP 이웃 (Hub-Spoke) show ip eigrp interface detail tunnel0 ! Split Horizon 상태 확인 show ip ospf neighbor ! OSPF 이웃 show bgp summary ! BGP 피어 상태 ═══ 디버그 (프로덕션 주의) ══════════════════════ debug ip nhrp ! NHRP 메시지 상세 debug crypto isakmp ! IKE 협상 과정 debug crypto ipsec ! IPSec SA 생성/삭제 debug dmvpn all ! DMVPN 전체 (주의: 매우 상세)
트러블슈팅 순서 (Top-Down)
1
물리 연결 및 NBMA 확인
Hub의 WAN 인터페이스 UP/UP. Spoke에서 Hub NBMA IP로 Ping 성공 여부. NAT 환경이라면 UDP 4500 포트 허용 확인.
2
IKE/IPSec SA 확인
show crypto isakmp sa → QM_IDLE (IKEv1) 또는 show crypto ikev2 sa → READY 상태 확인. MM_NO_STATE이면 IKE Policy 불일치.3
NHRP 등록 확인
show ip nhrp nhs → Req 전송, Ack 수신 여부 확인. show ip nhrp에서 Hub RLOC가 캐시에 있는지 확인.4
라우팅 경로 확인
show ip route → 원격 네트워크 경로 존재 여부. EIGRP Split Horizon이나 OSPF 네트워크 타입 오류 점검.5
Spoke-to-Spoke 터널 확인
show dmvpn에서 Spoke 간 State 확인. Phase 3이면 ip nhrp redirect/shortcut 설정 여부. show ip nhrp에서 목적지 RLOC 캐시 존재 확인.6
MTU / MSS 확인
ping [dst] size 1400 df-bit 성공 여부. 실패 시 ip mtu 1400, ip tcp adjust-mss 1360 재확인.🏅 자격증 로드맵 & 학습 자료
| 자격증 | 시험 코드 | DMVPN 범위 | 준비 기간 |
|---|---|---|---|
| CCNP ENARSI | 300-410 | DMVPN Phase 1/2/3, NHRP, IPSec 기초~심화 | 3~4개월 |
| CCNP ENCOR | 350-401 | DMVPN 개념, VPN 비교 | 6~9개월 |
| CCIE Enterprise Infrastructure | Lab 400-101 | DMVPN 전체 설계·구현·트러블슈팅 | 1.5~2년+ |
| 유형 | 자료 | 비고 |
|---|---|---|
| 공식 문서 | Cisco DMVPN Configuration Guide | cisco.com — IOS XE DMVPN Guide |
| RFC | RFC 2332 (NHRP), RFC 7296 (IKEv2) | 표준 문서 |
| Cisco Live | BRKSEC-3054 — DMVPN Deep Dive | ciscolive.com 아카이브 |
| 도서 | DMVPN (INE / IPexpert) | CCIE 학습서 |
| dCloud | DMVPN Hands-on Lab | dcloud.cisco.com 무료 |
DMVPN Zero to Hero — Deep Dive
mGRE · NHRP · IPSec · Phase 1/2/3 · Dual Hub · CCIE Enterprise
Hub / NHS
Spoke / NHC
NHRP
IPSec IKEv2
Phase 3
CCNP ENARSI