IPsec 터널 설정
핵심 요약
- IPsec Tunnel Mode: crypto map + ACL로 암호화할 트래픽을 지정하는 전통적 방식이다.
- GRE over IPsec: GRE 터널 위에 IPsec 암호화를 적용한다. 멀티캐스트/라우팅 프로토콜을 지원한다.
- Static VTI: tunnel interface + ipsec profile을 사용한다. crypto map/ACL이 불필요하여 설정이 간소화된다.
- Dynamic VTI (DVTI): hub에서 virtual-template을 사용하여 여러 spoke와 자동으로 터널을 생성한다.
IPsec을 사용한 사이트 간 VPN 터널의 다양한 설정 방법을 다룬다: 기본 IPsec Tunnel Mode, GRE over IPsec, Static VTI, Dynamic VTI.
1. IPsec Tunnel Mode (기본 방식)
가장 전통적인 IPsec VPN 구성 방식으로, crypto map과 ACL을 사용하여 암호화 대상 트래픽을 명시적으로 지정한다.
토폴로지
- R1(1.1.1.1) --- R2(중간 라우터) --- R3(3.3.3.3)
- R1과 R3 사이에 IPsec 터널을 구성한다.
설정 단계 (R1)
Phase 1: ISAKMP 정책 (IKE Phase 1)
IKE Phase 1에서 사용할 암호화, 해시, 인증 방식, DH 그룹을 정의한다.
R1(config)#crypto isakmp policy 1
R1(config-isakmp)#encryption aes
R1(config-isakmp)#hash sha
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 2Pre-shared Key 설정
피어(Peer) 인증에 사용할 사전 공유 키를 지정한다.
R1(config)#crypto isakmp key 0 MYPASSWORD address 192.168.23.3Phase 2: Transform-set (IKE Phase 2)
데이터 암호화에 사용할 ESP 알고리즘 조합을 정의한다.
R1(config)#crypto ipsec transform-set MYTRANSFORMSET esp-aes esp-sha-hmacCrypto Map 설정
피어 주소, transform-set, 암호화 대상 ACL을 하나의 crypto map으로 묶는다.
R1(config)#crypto map CRYPTOMAP 10 ipsec-isakmp
R1(config-crypto-map)#set peer 192.168.23.3
R1(config-crypto-map)#set transform-set MYTRANSFORMSET
R1(config-crypto-map)#match address 100ACL + 라우팅 + 인터페이스 적용
ACL로 암호화 대상 트래픽을 지정하고, 라우팅을 설정한 후 crypto map을 물리 인터페이스에 적용한다.
R1(config)#access-list 100 permit ip host 1.1.1.1 host 3.3.3.3
R1(config)#ip route 192.168.23.0 255.255.255.0 192.168.12.2
R1(config)#ip route 3.3.3.3 255.255.255.255 192.168.23.3
R1(config)#interface gi0/1
R1(config-if)#crypto map CRYPTOMAP참고: R3에도 동일한 설정을 미러링하여 적용한다. 피어 주소와 ACL 방향만 반대로 구성하면 된다.
동작 흐름
[R1 LAN] --- [R1] ===== IPsec 터널 (crypto map) ===== [R3] --- [R3 LAN]
| |
crypto map 적용 crypto map 적용
(gi0/1) (gi0/1)- R1에서 ACL 100에 매칭되는 트래픽이 발생한다.
- Crypto map이 적용된 인터페이스에서 ISAKMP 협상이 시작된다.
- Phase 1(ISAKMP SA) → Phase 2(IPsec SA)가 수립된다.
- ACL에 매칭되는 트래픽이 암호화되어 전송된다.
2. GRE over IPsec (암호화된 GRE 터널)
GRE(Generic Routing Encapsulation) 터널 위에 IPsec 암호화를 적용하는 방식이다. 기본 IPsec의 한계를 극복하기 위해 사용한다.
토폴로지
- HQ(172.16.1.0/24) --- ISP --- Branch(172.16.3.0/24)
GRE가 필요한 이유
| 항목 | IPsec만 사용 | GRE over IPsec |
|---|---|---|
| 유니캐스트 | 지원 | 지원 |
| 멀티캐스트/브로드캐스트 | 불가 | 지원 |
| 라우팅 프로토콜(OSPF, EIGRP) | 불가 | 지원 |
| 암호화 | 지원 | GRE 자체는 암호화 없음 → IPsec으로 보완 |
기본 IPsec은 유니캐스트만 지원하므로 OSPF, EIGRP 등 라우팅 프로토콜이 동작하지 않는다. GRE 터널은 멀티캐스트/브로드캐스트를 지원하지만 암호화 기능이 없다. 따라서 GRE 터널을 먼저 구성하고, 그 위에 IPsec 암호화를 적용하는 방식으로 두 기술의 장점을 결합한다.
설정 순서
- 인터페이스 IP + 라우팅 설정
- GRE 터널 생성 (tunnel interface)
- OSPF 등 라우팅 프로토콜 설정 (터널 인터페이스 위에서 동작)
- ISAKMP 정책 + Pre-shared Key
- Transform-set + Crypto Map (ACL:
permit gre any any) - Crypto map을 물리 인터페이스에 적용
핵심 설정 (HQ)
GRE 터널 인터페이스
HQ(config)#interface tunnel 1
HQ(config-if)#tunnel source fastEthernet 0/0
HQ(config-if)#tunnel destination 192.168.23.3
HQ(config-if)#ip address 192.168.13.1 255.255.255.0ACL (GRE 트래픽만 암호화)
HQ(config)#access-list 100 permit gre any any핵심 포인트: ACL에서
permit gre any any를 사용하여 GRE 프로토콜 트래픽만 IPsec으로 암호화한다. GRE가 이미 원본 트래픽을 캡슐화하므로, GRE 패킷 전체를 암호화하면 내부의 모든 트래픽이 보호된다.
패킷 캡슐화 구조
[새 IP 헤더] [ESP 헤더] [GRE 헤더] [원본 IP 헤더] [데이터] [ESP 트레일러]
|---------- IPsec 암호화 ----------|
|------------- GRE 캡슐화 ----------|3. IPsec Static VTI (Virtual Tunnel Interface)
VTI(Virtual Tunnel Interface)는 crypto map과 ACL 없이 터널 인터페이스와 IPsec Profile만으로 VPN을 구성하는 방식이다. 설정이 간소화되고 라우팅이 쉬워진다.
토폴로지
Crypto Map 방식과의 비교
| 항목 | Crypto Map 방식 | VTI 방식 |
|---|---|---|
| ACL | 필요 | 불필요 |
| Crypto Map | 필요 | 불필요 (IPsec Profile 사용) |
| 터널 인터페이스 | 없음 | 사용 |
| 라우팅 | 복잡 (정적 경로 필수) | 간단 (터널 인터페이스로 라우팅) |
| 터널 모드 | - | tunnel mode ipsec ipv4 |
설정 (R1)
Phase 1: ISAKMP 정책 + Pre-shared Key
R1(config)#crypto isakmp policy 1
R1(config-isakmp)#encryption aes
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 2
R1(config)#crypto isakmp key MY_PASSWORD address 192.168.12.2Phase 2: Transform-set + IPsec Profile
crypto map 대신 IPsec Profile을 생성하여 transform-set을 연결한다.
R1(config)#crypto ipsec transform-set MY_TRANSFORM_SET esp-aes esp-sha-hmac
R1(cfg-crypto-trans)#mode tunnel
R1(config)#crypto ipsec profile IPSEC_PROFILE
R1(ipsec-profile)#set transform-set MY_TRANSFORM_SET터널 인터페이스 설정
tunnel mode ipsec ipv4와 tunnel protection으로 IPsec Profile을 터널에 적용한다.
R1(config)#interface Tunnel 0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#tunnel source 192.168.12.1
R1(config-if)#tunnel destination 192.168.12.2
R1(config-if)#tunnel mode ipsec ipv4
R1(config-if)#tunnel protection ipsec profile IPSEC_PROFILE라우팅
터널 인터페이스를 next-hop으로 사용할 수 있어 라우팅이 간단해진다.
R1(config)#ip route 192.168.2.0 255.255.255.0 Tunnel0확인 명령
R1#show interfaces Tunnel 0
Tunnel0 is up, line protocol is up
Tunnel source 192.168.12.1, destination 192.168.12.2
Tunnel protocol/transport IPSEC/IP
Tunnel protection via IPSec (profile "IPSEC_PROFILE")핵심 포인트:
Tunnel protocol/transport IPSEC/IP가 표시되면 GRE가 아닌 순수 IPsec VTI로 동작하고 있는 것이다. GRE over IPsec과 달리 GRE 오버헤드가 없다.
4. Dynamic VTI (DVTI)
DVTI(Dynamic Virtual Tunnel Interface)는 hub-and-spoke 구조에서 hub 라우터가 virtual-template 하나로 여러 spoke와 자동으로 터널을 생성하는 방식이다.
Static VTI 대비 장점
| 항목 | Static VTI | Dynamic VTI |
|---|---|---|
| 터널 인터페이스 | spoke마다 별도 생성 | 자동 생성 (virtual-access) |
| hub 설정 | spoke 수만큼 터널 필요 | virtual-template 1개 |
| 확장성 | spoke 추가 시 hub 설정 변경 필요 | spoke만 추가하면 됨 |
많은 spoke 라우터가 있을 때, 각각 별도의 터널 인터페이스를 만들면 관리 부담이 크다. DVTI는 virtual-template 하나로 여러 spoke와 자동으로 virtual-access 인터페이스를 생성한다.
Hub (R1) 설정
Keyring (Pre-shared Key 관리)
spoke별로 서로 다른 키를 사용할 수 있도록 keyring으로 관리한다.
R1(config)#crypto keyring KEY_RING
R1(conf-keyring)#pre-shared-key address 192.168.123.2 key R1_R2
R1(conf-keyring)#pre-shared-key address 192.168.123.3 key R1_R3ISAKMP 정책
R1(config)#crypto isakmp policy 1
R1(config-isakmp)#encryption aes
R1(config-isakmp)#hash sha
R1(config-isakmp)#group 5
R1(config-isakmp)#authentication pre-shareTransform-set + IPsec Profile
R1(config)#crypto ipsec transform-set TRANSFORM_SET esp-aes esp-sha-hmac
R1(cfg-crypto-trans)#mode tunnel
R1(config)#crypto ipsec profile IPSEC_PROFILE
R1(ipsec-profile)#set transform-set TRANSFORM_SETVirtual-Template (핵심)
virtual-template에 IPsec profile을 적용한다. spoke가 연결되면 이 템플릿을 기반으로 virtual-access 인터페이스가 자동 생성된다.
R1(config)#interface Virtual-Template 1 type tunnel
R1(config-if)#tunnel mode ipsec ipv4
R1(config-if)#ip unnumbered loopback 0
R1(config-if)#tunnel protection ipsec profile IPSEC_PROFILEISAKMP Profile (spoke 매칭)
spoke의 IP를 매칭하고 virtual-template과 연결한다.
R1(config)#crypto isakmp profile ISAKMP_PROFILE
R1(conf-isa-prof)#keyring KEY_RING
R1(conf-isa-prof)#match identity address 192.168.123.2 255.255.255.255
R1(conf-isa-prof)#match identity address 192.168.123.3 255.255.255.255
R1(conf-isa-prof)#virtual-template 1Spoke (R2) 설정
spoke는 Static VTI와 유사하게 구성한다. hub의 IP를 tunnel destination으로 지정한다.
R2(config)#crypto isakmp key R1_R2 address 192.168.123.1
R2(config)#crypto isakmp policy 1
R2(config-isakmp)#encryption aes
R2(config-isakmp)#hash sha
R2(config-isakmp)#group 5
R2(config-isakmp)#authentication pre-share
R2(config)#crypto ipsec transform-set TRANSFORM_SET esp-aes esp-sha-hmac
R2(cfg-crypto-trans)#mode tunnel
R2(config)#crypto ipsec profile IPSEC_PROFILE
R2(ipsec-profile)#set transform-set TRANSFORM_SET
R2(config)#interface Tunnel 0
R2(config-if)#ip unnumbered loopback 0
R2(config-if)#tunnel source 192.168.123.2
R2(config-if)#tunnel destination 192.168.123.1
R2(config-if)#tunnel mode ipsec ipv4
R2(config-if)#tunnel protection ipsec profile IPSEC_PROFILE참고: 동적 IP를 가진 spoke의 경우, hub에서
pre-shared-key address 0.0.0.0 key SHARED_KEY와match identity address 0.0.0.0을 사용하여 모든 IP를 수용할 수 있다.
IPsec VPN 설정 방식 비교
| 방식 | ACL | Crypto Map | 터널 인터페이스 | 라우팅 프로토콜 | 확장성 |
|---|---|---|---|---|---|
| IPsec Tunnel Mode | 필요 | 필요 | 없음 | 불가 | 낮음 |
| GRE over IPsec | GRE만 허용 | 필요 | GRE 터널 | 가능 | 보통 |
| Static VTI | 불필요 | 불필요 | IPsec 터널 | 가능 | 보통 |
| Dynamic VTI | 불필요 | 불필요 | 자동 생성 | 가능 | 높음 |
실무 권장: 소규모 site-to-site는 Static VTI, 대규모 hub-and-spoke 환경에서는 DVTI 또는 [[DMVPN]]을 권장한다. Crypto map 방식은 레거시 장비 호환이 필요한 경우에만 사용한다.
관련 문서
- [[01_VPN 소개 및 IPsec]] - VPN 개요 및 IPsec 프레임워크
- 원본:
04_VPN/원본/03_Cisco IPsec Tunnel Mode Configuration.pdf - 원본:
04_VPN/원본/04_Encrypted GRE Tunnel with IPSEC.pdf - 원본:
04_VPN/원본/05_IPSec Static Virtual Tunnel Interface.pdf - 원본:
04_VPN/원본/06_IPSec VTI Virtual Tunnel Interface.pdf