Azure NAT Gateway란?
Azure VM의 현재 연결 문제를 해결하는 업무를 담당하는 리드 시스템 엔지니어이자 Azure 관리자로서 첫 번째 단계는 기술적인 배경과 Azure NAT Gateway의 기능을 이해하는 것입니다.
Azure NAT Gateway는 Azure에서 실행되는 완전 관리형 클라우드 서비스입니다. 복원력이 뛰어나고 확장 가능하며 구성이 쉽습니다. Azure의 기존 가상 네트워크에서 Azure NAT Gateway를 사용하는 경우 개별 VM 또는 기타 Azure 리소스는 인터넷에서 인바운드 연결을 수락하는 서비스를 호스트하지 않는 한 완전히 비공개 상태로 유지될 수 있습니다. 가상 네트워크에서 시작된 모든 아웃바운드 연결은 NAT Gateway의 고정 공용 IP 주소를 사용합니다.
NAT 개요
NAT는 새로운 기술이 아닙니다. 수십 년 동안 로컬 IP 주소를 공용 주소에 매핑하는 데 사용되었습니다. NAT의 주요 목적 중 하나는 공용 IPv4 주소를 저장하는 것입니다. 이는 ISP(인터넷 서비스 공급자)에게 특히 유용합니다. 이러한 회사는 NAT를 사용하여 여러 개인 IPv4 주소의 범위를 하나의 공용 IP 주소 또는 몇 개의 공용 IP 주소에 매핑할 수 있습니다.
NAT는 홈 및 로컬 네트워크에서도 사용됩니다. 인터넷에 연결하는 홈 라우터가 있는 경우 NAT가 구현되어 있을 가능성이 높습니다. 이 경우 모든 디바이스가 하나의 공용 IP 주소를 사용하여 인터넷으로 라우팅됩니다. 또한 NAT는 내부 주소 공간을 숨기므로 모든 아웃바운드 트래픽이 단일 공용 IP 주소에서 오는 것처럼 보입니다. IP 주소는 라우터 또는 게이트웨이 디바이스에 할당됩니다.
NAT를 사용하는 경우 TCP(Transmission Control Protocol) 포트와 해당 용도를 이해하는 것이 중요합니다. 포트 주소 변환을 사용하면 개인 네트워크의 각 호스트가 단일 공용 IP 주소를 사용하여 인터넷에서 통신할 수 있으므로 각 통신 경로는 고유한 TCP 포트를 통해 설정됩니다. 프로세스는 다음과 같습니다.
프라이빗 네트워크의 디바이스가 인터넷의 리소스에 대한 연결을 설정합니다. NAT는 패킷 헤더의 내부 디바이스 IP 주소를 NAT 디바이스의 외부 IP 주소로 대체합니다.
그런 다음 포트 주소 변환은 사용 가능한 포트 풀에서 포트 번호를 연결에 할당합니다.
해당 포트 번호는 패킷 헤더의 원본 포트 필드에 삽입되고, 그 패킷은 인터넷으로 전달됩니다.
그런 다음 NAT 디바이스는 네트워크 변환 테이블에 항목을 기록합니다.
- 설정된 연결마다 이 항목에는 내부 IP 주소, 원래 원본 포트 및 변환된 원본 포트가 포함됩니다.
- 동일한 내부 원본 IP 주소 및 포트 번호의 후속 패킷은 항상 동일한 외부 IP 주소 및 포트 번호로 변환됩니다.
NAT를 거친 패킷을 수신하는 컴퓨터는 변경된 패킷에 지정된 포트 및 IP 주소에 대한 연결을 설정하며 제공된 주소가 변환되고 있다는 사실을 알지 못합니다.
다음 다이어그램은 NAT 프로세스를 설명합니다.
참고
NAT는 주로 인터넷에 대한 아웃바운드 연결을 설정하는 데 사용됩니다. 그러나 인터넷에서 인바운드 연결을 직접 관리할 수는 없습니다. 이 목적을 위해서는 다른 기술을 사용해야 합니다.
Azure의 NAT 서비스
Azure에서 가상 네트워크를 만들 때 개인 주소 공간을 할당한 다음 해당 네트워크에 하나 이상의 서브넷을 만듭니다. Azure에서 VM을 만든 다음 해당 가상 네트워크에 배치하면 네트워크에서 로컬 IP 주소를 가져옵니다. VM에서 아웃바운드 인터넷 연결을 허용하려면 해당 VM에 공용 IP 주소 개체를 할당해도 됩니다.
참고
공용 IP 주소를 할당하지 않는 Azure VM은 Azure NAT(Network Address Translation) 또는 포트 주소 변환을 사용하여 인터넷에 계속 액세스할 수 있습니다. 그러나 이러한 경우 아웃바운드 연결에 사용할 공용 IP 주소를 제어할 수 없습니다. 인바운드 연결을 사용하도록 설정하거나 RDP(원격 데스크톱 프로토콜)를 사용하여 외부에서 이러한 VM에 연결할 수도 없습니다. 대신 Azure Bastion 호스트를 사용해야 합니다.
Azure VM 및 기타 리소스에 대해 안전하고 제어 가능하며 확장 가능한 아웃바운드 연결을 보장하기 위해서는 Azure NAT Gateway 서비스의 인스턴스를 만들면 됩니다. 그런 다음 Azure에서 동일한 가상 네트워크 내의 하나 이상의 서브넷에 인스턴스를 할당합니다.
그런 다음 Azure NAT Gateway 서비스를 사용하면 다음 다이어그램과 같이 개인 IP 주소를 공용 IP 주소로 안전하게 변환할 수 있습니다.