본문 바로가기
AWS

[AWS] IDC/AWS Site-to-Site VPN 구성하기 (with BGP, Active-Active) (1)

by chan10 2025. 3. 5.

AWS와 온프레미스(IDC) 간 네트워크 연결을 구축하기 위한 방법으로 Site-to-Site VPN이 있습니다. 특히 BGP(Border Gateway Protocol)를 활용한 Active-Active 설정을 적용하면 고가용성과 부하 분산이 가능해집니다. 이 글에서는 AWS에서 IDC와 Site-to-Site VPN을 구성하는 전 과정을 단계별로 설명합니다. 이를 통해 기업 환경에서 보다 안정적이고 효율적인 네트워크 연결을 구축할 수 있습니다.

 

구성 순서

  1. Customer Gateway(CGW) 생성
  2. Transit Gateway 생성
  3. Site-to-Site VPN 연결
  4. Transit Gateway attachment 생성
  5. Transit Gateway 라우팅 테이블 생성
  6. VPC Subnet에서 라우팅 생성
  7. VPN Tunnel 통신 확인 (+ECMP)

 

Customer Gateway(CGW) 생성

Site-to-Site VPN 구성을 위한 첫 번째 스텝으로 CGW를 구성합니다.

CGW는 VPN 연결을 위해 미리 IDC VPN 장비 정보를 입력하는 것 입니다.

VPC → VPN → 고객 게이트웨이(Customer Gateways) 탭으로 이동해 생성 버튼을 눌러줍니다.

 

CGW 이름과 IDC VPN의 IP정보를 입력하여 생성합니다.

 

Transit Gateway 생성

다음은 CGW와 연동하기 위한 Transit Gateway(TGW)를 생성합니다.

Site-to-Site VPN 연동 시 두 개의 터널이 생성되며 이번 실습은 두 터널을 Active-Active 구성으로 사용 할 것입니다.

그러기 위해서는 ECMP 기능을 사용해야 하기에 VGW가 아닌 TGW를 생성합니다.

 

TGW 생성 시 TGW이름, VPN ECMP 지원 옵션을 체크 후 생성합니다.

ASN(AS Number)은 BGP 연동 시 꼭 필요한 요소이며 미 작성 시 Default 64512로 지정됩니다.

 

# 옵션 설명

  • ASN(Autonomous System Number, 자율 시스템 번호)
    • AS(Autonomous System)는 일관된 라우팅 정책을 가지고 있는 라우터의 집단입니다.
    • AS간에 연결하는데 있어서 유일한 통신규약이 BGP(Border Gateway Protocol, TCP 179)인데 이 BGP를 사용하기 위해서는 ASN을 지정해줘야 합니다. 쉽게 말해 각각의 시스템을 식별하기 위한 식별 번호라고 생각하시면 됩니다.
    • 지정 가능한 ASN의 범위는 64512~65534 혹은 4200000000~4294967294 입니다.
    • 지정하지 않을 경우 default ASN(64512)이 부여됩니다.
  • DNS support(DNS 지원)
    • 해당 옵션을 활성화하면 인스턴스의 Public IPv4 DNS가 가르키는 IP를 Public IP에서 Private IP로 전환합니다.
    • 인터넷을 통해 외부로 통신하는 것이 아닌 내부로 통신하기 때문에 보안성을 향상시킬 수 있습니다.
    • 해당 옵션을 사용하기 위해서는 VPC 옵션에서 DNS hostnames 옵션을 활성화 해야합니다.
  • VPN ECMP support(VPN ECMP 지원)
    • 해당 옵션을 활성화하면 VPN 터널 간에 ECMP(Equal Cost Multipath, 동일 비용 다중 경로) 라우팅을 지원합니다.
    • 예를 들어 동일한 CIDR를 가진 2개의 VPN 터널을 통해 트래픽을 전송하려 하는 경우 트래픽을 1:1로 균등하게 분산하여 전송합니다.
  • Default route table association(기본 라우팅 테이블 연결)
    • 해당 옵션을 활성화하면 Transit Gateway 라우팅을 위한 기본 라우팅 테이블이 생성됩니다.
    • Transit Gateway의 연결되는 attachment를 자동으로 Default route table에 연결합니다.
  • Default route table propagation(기본 라우팅 테이블 전파)
    • 해당 옵션을 활성화하면 association 된 대상(VPC, VPN, DX)의 IP 대역을 자동으로 Default Route Table에 전파합니다.
    • VPN attachment와 함께 동적 라우팅을 사용하는 경우 VPN attachment와 연결된 라우팅 테이블의 경로가 BGP를 통해 CGW(Customer Gateway)에 전달됩니다.
  • Auto accept shared attachments(공유 첨부 파일 자동 수락)
    • AWS Resource Access Manager를 사용해 Transit Gateway를 다른 계정과 공유할 수 있습니다.
    • 다른 계정과 Transit Gateway를 공유하기 위해 공유를 요청한 경우 해당 옵션을 활성화하면 별도의 수락을 하지 않아도 자동으로 수락됩니다.
  • Transit Gateway CIDR Block(선택 사항)
    • 지정한 CIDR의 범위에 해당되는 VPC만 Transit Gateway와 연결할 수 있습니다.
    • 169.254.0.0/16 과 온프레미스 네트워크와 겹치는 CIDR는 지정할 수 없습니다.

+ Default route table association, propagation을 비활성화 하고 TGW를 생성할 경우, default route table은 생기지 않습니다.

+ 1개의 Attachment는 1개의 route table과 매핑됩니다. 1개의 Attachment는 여러개의 route table을 가질 수 없습니다.

+ 1개의 transit gateway는 여러 개의 route table을 가질 수 있습니다.

+ propagations를 활성화 하면 routes에 propagations에 지정한 VPC의 CIDR이 자동으로 등록됩니다.

TGW 생성이 완료되었습니다.

 

TGW 생성이 완료되었습니다.

 

TGW 상세 내용

 

Site-to-Site VPN 연결

Site-to-Site VPN은 사전에 생성한 CGW↔VGW/TGW의 리소스로 실질적인 IPsecVPN Tunnel 구성을 진행합니다.

하나의 연결 당 2개의 터널이 생성되며 IPsecVPN Tunnel 연결 절차에 따라 CGW↔VGW/TGW 간 Phase1(IKE), Phase2(IPsec) 협상 절차를 거친 후 BGP Peering을 연결하게 됩니다.

터널 협상은 서로 가지고 있는 Public IP를 사용하지만 BGP는 터널 내부 IP인 169.254.x.x/30를 이용해 Peering을 맺습니다.

https://docs.aws.amazon.com/ko_kr/vpn/latest/s2svpn/cgw-dynamic-routing-examples.html

 

생성한 CGW와 TGW의 터널링 연동을 위해 Site-to-Site VPN을 생성합니다.

 

아래 정보를 입력하여 VPN 연결을 생성합니다.

  • 이름 : [Name] 정보 입력
  • 대상 게이트웨이 유형 : Transit Gateway
  • 고객 게이트웨이 : 기존 생성 연결
  • 라우팅 옵션 : 동적 - Dynamic(BGP)

 

여기서 라우팅을 동적으로 생성하는 이유는 VPN 터널을 Active-Active로 구성하기 위해서는 TGW:ECMP 기능이 필요합니다. 그러나 TGW:ECMP 기능은 Dynamic Routing VPN에서만 지원하기 때문입니다.

https://docs.aws.amazon.com/ko_kr/vpc/latest/tgw/tgw-transit-gateways.html#create-tgw

 

VPN 연결을 생성했다면 Pending 상태에서 몇분 후 Available 상태로 변하는 것을 볼 수 있습니다.

구성 다운로드 버튼 클릭 후 CGW 벤더 사에 맞는 컨피그를 다운로드 하면 VPN 연동에 필요한 설정 정보를 받을 수 있습니다.

 

컨피그 파일 다운 시 해당 벤더사에서 설정할 수 있도록 컨피그가 작성되어 있습니다.

대부분의 컨피그는 그대로 적용하면 되지만 포트 번호 등 일부 설정은 환경에 맞게 변경이 필요하니 확인하면서 적용합니다.

 

 

다음 포스팅으로 이어집니다~!!

https://chan-it-note.tistory.com/169