
Amazon Web Services에 서브넷이 172.31.0.0/16인 단일 VPC가 있습니다. 이 서브넷에 EC2 인스턴스를 생성하고 여기에 퍼블릭 탄력적 IP를 부여했습니다. 이 VPC에는 인터넷 게이트웨이가 있습니다. 따라서 내 라우팅 테이블은 다음과 같습니다.
172.31.0.0/16 local
0.0.0.0/0 igw-b4ac67d0
내가 제어하지 않는 외부 서비스에서 일부 IP 액세스 문제를 해결하기 위해 단일 외부 주소 ABCD에 대한 모든 트래픽이 NAT 게이트웨이를 통해 라우팅되도록 이 VPC에 NAT 게이트웨이를 추가했습니다. 즉, 라우팅 테이블이 다음과 같기를 원합니다.
# GOAL
172.31.0.0/16 local
A.B.C.D/32 nat-451b3be9
0.0.0.0/0 igw-b4ac67d0
하지만 제가 할 수 있는 대로 시도해 보세요. "SAVE"를 클릭하면 AWS 인터페이스가 순서를 전환하여 항상 다음과 같이 끝납니다.
# What AWS gives me
172.31.0.0/16 local
0.0.0.0/0 igw-b4ac67d0
A.B.C.D/32 nat-451b3be9
이 라우팅 테이블은 어리석은 것 같습니다. NAT 게이트웨이는 결코 사용되지 않으며 내 트래픽은 A.B.C.D
여전히 EC2 인스턴스의 탄력적 IP에서 나오는 것처럼 보입니다.
라우팅 테이블 GOAL을 어떻게 얻나요?
참고: 외부 서비스를 사용하면하나의액세스를 허용할 IP 주소입니다. EC2 인스턴스가 하나만 있는 경우 EC2 인스턴스의 탄력적 IP 주소만 제공하면 됩니다. 하지만 동일한 방식으로 설정된 EC2 인스턴스를 여러 개 더 추가하고 싶습니다. 따라서 NAT 게이트웨이입니다. 또한 외부에서 액세스할 수 있도록 EC2 인스턴스의 서비스가 필요하기 때문에 단순히 인터넷 게이트웨이를 생략하고 NAT 게이트웨이만 사용할 수는 없습니다.
답변1
이 라우팅 테이블은 어리석은 것 같습니다.
네, 당신의 해석에서는... 하지만 당신의 해석은 정확하지 않습니다. VPC의 라우팅 테이블 항목에는 실제로 순서가 없습니다.
항상 가장 구체적인 경로가 선택됩니다.
테이블의 각 경로는 대상 CIDR과 대상을 지정합니다. 예를 들어 외부 기업 네트워크 172.16.0.0/12로 향하는 트래픽은 가상 프라이빗 게이트웨이를 대상으로 합니다. 우리는 트래픽과 일치하는 가장 구체적인 경로를 사용하여 트래픽 라우팅 방법을 결정합니다.
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html
그러나 NAT 게이트웨이가 실제로 이 라우팅 테이블을 사용하는 서브넷에 있는 경우 구성은 여전히 작동하지 않습니다. NAT 게이트웨이는 라우팅 테이블이 없는 서브넷에 있어야 합니다.어느NAT 게이트웨이를 다시 가리키는 경로입니다. 그렇지 않으면 라우팅 루프입니다. 인터넷 방향으로 NAT 게이트웨이는 인터넷 게이트웨이에 액세스하기 위해 실제로 연결된 서브넷의 VPC 라우팅 테이블을 사용합니다. 따라서 NAT 게이트웨이는 인스턴스가 있는 서브넷과 다른 서브넷에 있어야 합니다. /32
NAT 게이트웨이의 아웃바운드 트래픽에 영향을 미치는 위치에 이 경로를 배치할 수 없기 때문에 이 경로를 사용하십시오 .
이는 VPC 네트워크가 라우터가 있는 기존 이더넷 네트워크가 아니라는 사실을 모르는 사람들에게는 직관에 어긋납니다. 전체 네트워크는 물리적이 아닌 소프트웨어로 정의되므로 트래픽이 가용성 영역 내의 서브넷 경계를 통과할 때 성능 저하가 없습니다. 다른 서브넷 또는 한 서브넷의 Elastic Load Balancer가 다른 서브넷의 EC2 인스턴스에 연결됩니다. 실제로 이러한 경우 한 서브넷에서 다른 서브넷으로 이동하는 트래픽은 NAT 게이트웨이 및 ELB를 퍼블릭 서브넷(기본 경로는 IGW)에 배치하고 EC2 인스턴스를 프라이빗 서브넷(기본 경로는 NAT 장치)에 배치하는 표준 구성입니다.
또한 시도 중인 구성에서는 아웃바운드를 허용하지만 해당 A.B.C.D
주소에서 이 서브넷의 모든 항목으로의 인바운드 연결(외부에서 시작)은 허용하지 않습니다. 반환 경로가 NAT 게이트웨이를 통해 비대칭이기 때문입니다.