Cloud

OCI와 AWS 간 IPSec VPN 연결(feat. Failover)

newdoin 2025. 2. 5. 14:22

들어가며

OCI와 AWS를 IPSec VPN 연결을 하고 싶다면 어떻게 해야할까? 간단하다. 각 클라우드 콘솔에서 VPN 관련 리소스들을 만들고 서로의 IP 정보를 통해 연결 설정을 마치면 된다. 하지만, 조금 의아한 점이 있을 수 있다. 바로 하나의 터널만 UP 상태가 되어 있는 것..

연결된 각 클라우드의 VPN 터널 상태

OCI에서 On-premise와 IPSec VPN 연결을 해봤던 사람이라면 이상하다고 느낄 것이다. 원래라면 두 개의 터널 모두 UP 상태이면서 Active인 터널을 맞추는 것이 통상적이니 말이다.

왜 이런 일이 발생하는거지?

이 현상을 이해하기 위해 OCI와 On-premise의 연결 상황을 떠올려봤다.

OCI와 On-premise간 IPSec VPN 연결

OCI와 On-premise의 CPE(Customer Premises Equipment)와 연결을 하게 된다. 그 후 아래의 단계로 통신하게 된다.

OCI와 On-premise 간 ping 테스트를 진행하는 시나리오

 

  1. OCI의 Instance에서 On-premise에 있는 서버로 ping을 보낸다.
  2. OCI의 DRG에 의해 IPSec VPN의 Active 터널로 라우팅을 한다.
  3. OCI의 터널과 연결된 CPE 장비로 라우팅을 한다.
  4. CPE에서도 On-premise의 Active 터널로 라우팅을 한다.
  5. On-premise의 Active 터널에서 서버로 라우팅을 한다.
  6. 서버가 ping request를 수신하고, reply를 보낸다.
  7. 역방향으로 reply가 전송된다.

여기서 핵심은 OCI에서는 CPE를 통해 On-premise로 데이터를 전송한다는 것이다.

그럼 AWS와의 연결에서는 어떤 것이 다른걸까?

OCI와 AWS 모두 IPSec VPN을 구성하게 된다면, 터널의 인터페이스 IP 2개가 주어진다. 각 클라우드에 위치한 터널끼리 연결을 하려면 CPE 역할을 할 수 있도록 IP를 전달해주어야 한다.

즉, 각 터널의 IP를 전달하게 되므로 터널 간 1대1로 연결되기 때문에 다른 터널은 아예 사용하지 않게 되는 것이다. 그렇기 때문에 1대1로 연결된 1개의 터널만 UP 상태가 되고, 나머지 터널은 DOWN 상태가 되어 있는 것이다.

그럼 Failover 구성을 못하나?

가능하다. 우선, 기존 IPSec VPN 연결에 사용한 CPE 정보는 서로의 터널 IP로 지정해두었기 때문에 추가 및 수정이 불가능하다. 따라서 새로운 IPSec VPN 연결이 필요하다. 참고로 새롭게 생성한 IPSec VPN을 백업용으로 두면 OCI의 DRG에서는 같은 대역대로 나가는 규칙이 중복되기 때문에 충돌을 방지하여 막아둔다. (Route Status가 Conflict 상태)

그래서 평상시엔 백업용 IPSec VPN으로는 통신이 안되다가 메인용 IPSec VPN으로 통신이 불가능한 상황이 되면 충돌하는 라우팅 규칙이 없어지는 것이므로 Conflict에서 Active로 전환된다. 즉, Failover로 동작하게 된다.