KakaoCloud 환경에서 Prod VPC 내부 서브넷 간 East-West 트래픽(Intra-VPC)에 대한 방화벽 검사를 적용하기 위한 아키텍처 설계 및 구현 문서입니다.
| # | 문서 | 요약 |
|---|---|---|
| 1 | TGW Hairpin 제약 | Intra-VPC 트래픽을 TGW로 우회하는 방식이 KakaoCloud 라우팅 제약으로 불가능함을 확인 |
| 2 | Cross-VPC ENI 구성 | Hub VPC 방화벽의 보조 trust ENI를 Prod VPC에 배치하여 Intra-VPC 검사를 실현한 해법 |
| 3 | Inter-VPC 비대칭 라우팅 대응 | Cross-VPC ENI 도입 후 발생한 Inter-VPC 비대칭 라우팅 문제의 원인 분석 및 조치 |
Prod VPC 내부 서브넷 간 트래픽(App 10.228.249.0/23 ↔ DB 10.228.251.0/25)에 대해 Hub VPC 방화벽(External-FW)을 통한 중앙 집중형 검사(Centralized Inspection) 적용.
- 방화벽 인스턴스·정책·라이선스를 Hub VPC 단일 지점에서 운영
- Prod VPC에 별도 방화벽 인스턴스를 추가하지 않음
- 모든 트래픽 유형(North-South, Inter-VPC, Intra-VPC)을 하나의 방화벽으로 검사
트래픽 유형 검사 경로
────────────────────────────────────────────────────────
North-South (외부 피어) TGW → Hub VPC 방화벽
Inter-VPC (Mgt ↔ Prod) TGW → Hub VPC 방화벽
Intra-VPC (Prod App ↔ DB) Cross-VPC ENI (Prod trust 서브넷 보조 포트)
- 시도: Prod App 서브넷 RT에
10.228.251.0/25 → TGWmore-specific 경로 추가 - 결과: KakaoCloud가 경로 생성 단계에서 거부
- 이유: VPC 내부 목적지 경로의 target은
Instance(ENI)만 허용,TGW불가 - 결론: Intra-VPC 검사는 방화벽 ENI가 Prod VPC 내부에 위치해야 함
-
Hub VPC 방화벽에 보조 trust ENI(
port4)를 Prod VPC trust 서브넷에 배치 -
ENI의 네트워크 소속(IP/서브넷/라우팅)은 Prod VPC, 처리 인스턴스는 Hub VPC
-
라우팅 구성:
Prod App 서브넷 RT: 10.228.251.0/25 → Prod-trust-ENI (Instance) # DB 방향 Prod DB 서브넷 RT: 10.228.249.0/23 → Prod-trust-ENI (Instance) # App 방향 (대칭) Prod Trust 서브넷 RT: local만 유지 (loop-breaker) -
데이터플레인 검증 완료 (세션 로그 + 패킷 캡처)
Cross-VPC ENI 도입으로 FortiGate FIB에서 Prod 대역이 port4(intra)와 port2(inter) 두 경로를 갖게 되어, Inter-VPC 통신 시 비대칭 라우팅 발생.
필수 조치 2가지 (모두 적용 필수):
| 조치 | 내용 |
|---|---|
| 조치 1 | port2에 한해 RPF(src-check) 비활성화 |
| 조치 2 | reply(mgt→prod) 방향 policy route 1개 추가 → port2 강제 egress |
⚠️ 주의: 목적지가 Prod app/db인 신규 inter-VPC 플로우 구성 시, reply 방향 policy route 추가 및 양방향 검증을 표준 절차로 적용할 것.
firewall-upgrade/
├── README.md # 본 문서
├── 01_TGW_Hairpin_제약.md # TGW Hairpin 시도 및 제약 분석
├── 02_Cross-VPC_ENI_구성.md # Cross-VPC ENI 구현 해법
├── 03_Inter-VPC_비대칭_라우팅_대응.md # 비대칭 라우팅 문제 해결
└── images/ # 구성도 및 다이어그램
├── 01_TGW_Hairpin_제약_img01.png # TGW Hairpin 시도 구성
├── 01_TGW_Hairpin_제약_img02.png # 오류 화면
├── 01_TGW_Hairpin_제약_img03.png # 오류 화면
├── 01_TGW_Hairpin_제약_img04.png # 적용 구성도
├── 02_Cross-VPC_ENI_구성_img01.png # Cross-VPC ENI 구성
├── 02_Cross-VPC_ENI_구성_img02.png # 적용 구성도
└── 03_Inter-VPC_비대칭_라우팅_대응_img01.png # 비대칭 라우팅 구성도
- 클라우드: KakaoCloud
- 방화벽: FortiGate (External-FW, Hub VPC)
- VPC 구조: Hub VPC (방화벽) + Prod VPC (App/DB) + Mgt VPC
- 네트워크 연결: TGW(Transit Gateway) 중심 Hub-and-Spoke