Skip to Content

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을 사용하여 암호화 대상 트래픽을 명시적으로 지정한다.

토폴로지

03_Cisco IPsec Tunnel Mode Configuration_img_p01_01
  • 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 2

Pre-shared Key 설정

피어(Peer) 인증에 사용할 사전 공유 키를 지정한다.

R1(config)#crypto isakmp key 0 MYPASSWORD address 192.168.23.3

Phase 2: Transform-set (IKE Phase 2)

데이터 암호화에 사용할 ESP 알고리즘 조합을 정의한다.

R1(config)#crypto ipsec transform-set MYTRANSFORMSET esp-aes esp-sha-hmac

Crypto 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 100

ACL + 라우팅 + 인터페이스 적용

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)
  1. R1에서 ACL 100에 매칭되는 트래픽이 발생한다.
  2. Crypto map이 적용된 인터페이스에서 ISAKMP 협상이 시작된다.
  3. Phase 1(ISAKMP SA) → Phase 2(IPsec SA)가 수립된다.
  4. ACL에 매칭되는 트래픽이 암호화되어 전송된다.

2. GRE over IPsec (암호화된 GRE 터널)

GRE(Generic Routing Encapsulation) 터널 위에 IPsec 암호화를 적용하는 방식이다. 기본 IPsec의 한계를 극복하기 위해 사용한다.

토폴로지

04_Encrypted GRE Tunnel with IPSEC_img_p01_01
  • 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 암호화를 적용하는 방식으로 두 기술의 장점을 결합한다.

설정 순서

  1. 인터페이스 IP + 라우팅 설정
  2. GRE 터널 생성 (tunnel interface)
  3. OSPF 등 라우팅 프로토콜 설정 (터널 인터페이스 위에서 동작)
  4. ISAKMP 정책 + Pre-shared Key
  5. Transform-set + Crypto Map (ACL: permit gre any any)
  6. 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.0

ACL (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을 구성하는 방식이다. 설정이 간소화되고 라우팅이 쉬워진다.

토폴로지

05_IPSec Static Virtual Tunnel Interface_img_p02_01

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.2

Phase 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 ipv4tunnel 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 VTIDynamic 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_R3

ISAKMP 정책

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-share

Transform-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_SET

Virtual-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_PROFILE

ISAKMP 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 1

Spoke (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_KEYmatch identity address 0.0.0.0을 사용하여 모든 IP를 수용할 수 있다.


IPsec VPN 설정 방식 비교

방식ACLCrypto Map터널 인터페이스라우팅 프로토콜확장성
IPsec Tunnel Mode필요필요없음불가낮음
GRE over IPsecGRE만 허용필요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