AWS Transit Gateway의 1:1 NAT - Part 2 : 기능/특징
Today Keys : AWS, Transit Gateway, TGW, 1:1 NAT, NAT Rule, System Route, Routing, tcpdump
지난 포스팅에서는 AWS Transit Gateway에서 새롭게 지원하는 1:1 NAT 기능과 특징에 대해서 알아보았습니다.
TGW 1:1 NAT는 별도의 NAT Gateway나 NAT Appliance를 생성하지 않고도 TGW Attachment에서 IP 주소를 변환할 수 있는 기능입니다.
이번 포스팅에서는 AWS Console에서 직접 NAT Rule을 구성하고, TGW Route Table의 라우팅 변경과 실제 EC2 간 통신을 통해 NAT 동작을 확인해 보겠습니다.
Transit Gateway 1:1 NAT 구성 환경
이번 실습에서는 두 개의 VPC가 TGW를 통해 연결되어 있으며, 다음과 같이 EC2가 구성되어 있다고 가정하겠습니다.
| 구분 | EC2 1호기 (VPC-1) | EC2 2호기 (VPC-2) |
| EC2 IP | 10.1.0.10 | 10.0.0.116 |
| NAT 적용 | O | X |
| NAT CIDR | 10.2.0.0/26 | - |
| TGW 연결 | Attachment-1 | Attachment-2 |
EC2 1호기가 위치한 VPC의 Attachment에 다음과 같은 NAT 정책을 설정합니다.
- Source CIDR : 10.1.0.0/26
- NAT CIDR : 10.2.0.0/26
이렇게 설정하면 EC2 1호기의 IP인 10.1.0.10이 TGW를 통과하면서 10.2.0.10으로 변환됩니다.
반면 목적지인 EC2 2호기에는 NAT Rule을 설정하지 않았으므로 목적지 IP인 10.0.0.116은 그대로 유지됩니다.
즉, 이번 실습은 중복 CIDR 환경이 아닌,
한쪽 Attachment에만 NAT를 적용하여 Source IP가 변경되는 것을 확인하는 구성입니다.
Transit Gateway Attachment NAT 설정
AWS Console에서 VPC → Transit Gateway Attachments 메뉴로 이동합니다.
NAT를 적용할 Attachment를 선택한 후 'NAT 규칙' 탭에서 'NAT 규칙 관리'를 선택합니다.

NAT 규칙을 처음 시작할 경우에는 NAT 활성화를 선택합니다.
NAT 경로 설치의 경우, Attachment 유형에 따라서 기본 값과 설정 가능 여부가 달라지는 데,
VPC의 경우, NAT 경로 설치 활성화가 기본 값이고, 비활성화는 불가합니다.
여기에서는 VPC1의 CIDR 중 일부인 10.1.0.0/26을 소스 CIDR로 설정하고,
10.2.0.0/26을 NAT CIDR로 설정하여 설정을 저장합니다.

NAT 설정 전/후로 10.1.0.10에서 10.0.0.116으로 ping 테스트를 하면서 tcpdump를 떠 보면,
처음에는 10.1.0.10으로 10.0.0.116으로 ping이 오던 것이
10.2.0.10으로 NAT되서, 10.0.0.116으로 ping이 들어오는 것을 볼 수 있습니다.

Transit Gateway Attachment NAT CIDR 매핑
Transit Gateway Attachment에 지정되는 NAT의 경우, 1:1 NAT로 설정되기 때문에
소스 CIDR과 NAT CIDR의 크기를 동일하게 설정해야 합니다.
그리고, 설정된 크기의 CIDR에서 동일한 순서로 NAT가 됩니다.
예를 들어서, 앞서 소스 CIDR을 10.1.0.0/26으로, NAT CIDR을 10.2.0.0/26로 설정했을 때
10.1.0.10의 IP가 10.2.0.10으로 NAT 된 것을 볼 수 있었습니다.
만약 아래와 같이 NAT CIDR을 10.2.0.64/26 으로 설정해보겠습니다.

이 경우에는 NAT되는 IP가 아래와 같이 10.1.0.10인 IP주소가 10.2.0.74로 NAT 된 것을 볼 수 있습니다.

Transit Gateway Attachment NAT 라우팅 관련
VPC에 선언된 CIDR의 크기의 일부를 소스 CIDR로 설정하는 것이 아니라,
전체 CIDR로 설정하고, Attachment를 라우팅 테이블에서 전파(Propagation)하는 경우에는
Transit Gateway의 라우팅 테이블에 경로를 NAT된 CIDR로 자동 갱신 할 수 있습니다.
아래와 같이 NAT 규칙에서 소스 CIDR을 VPC에 선언된 CIDR인 10.1.0.0/22로 수정합니다.
NAT IP CIDR도 동일 크기로 함께 수정합니다.

Transit Gateway 라우팅 테이블에서 Attachment가 전파된 경우에는
다음과 같이 경로에서 VPC의 CIDR이 '전파됨' 경로 유형으로 자동으로 라우팅 테이블에 반영됩니다.

Attachment에 NAT 설정을 하는 경우에는 아래와 같이
소스 CIDR인 10.1.0.0/22 대신에 NAT CIDR인 10.2.0.0/22로 변경되어서 라우팅 테이블에 반영 된 것을 볼 수 있고, 이 때의 경로 유형은 '전파됨'이 아니라 'System'입니다.

만약, 소스 CIDR을 VPC의 CIDR을 그대로 사용하지 않고, 일부 대역으로 설정한 경우에는
전파됨에 Attachment가 들어가 있는 경우에 원래의 VPC CIDR만 자동으로 라우팅이 반영되고
NAT CIDR은 추가로 Static 라우팅 설정으로 추가해줘야 합니다.