AWS/AWS 서비스

[VPC] NAT(Network Address Translate) 개념잡기

[앙금빵] 2021. 11. 22. 01:44

NAT (Network Address Translate)

  • NAT는 Network Address Translation의 약자로, 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서, 내부 IP 주소를 외부 IP주소로 변환하는 작업을 수행하는 서비스이다.
  • IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
  • 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다.
  • NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.
NAT를 사용하는 목적

[인터넷의 공인 IP 주소를 절약]

  • 인터넷의 공인 IP주소는 한정되어 있기 때문에 가급적 이를 공유할 수 있도록 하는 것이 필요
  • NAT를 이용하면 사설 IP주소를 사용하면서 이를 공인 IP주소와 상호변환할 수 있도록 함
  • 공인 IP주소를 다수가 함께 사용할 수 있도록 함으로써 이를 절약할 수 있다.

[고유한 사설망을 침입자들로부터 보호]

  • 공개된 인터넷과 사설망 사이에 방화벽(Firewall)을 설치하여 외부 공격으로부터 사용자의 통신망을 보호하는 기본적인 수단으로 활용할 수 있다.
  • 외부 통신망 즉 인터넷망과 연결하는 장비인 라우터에 NAT를 설정할 경우 라우터는 자신에게 할당된 공인 IP주소만 외부로 알려지게 하고, 내부에서는 사설 IP주소만 사용하도록 하여 필요시에 이를 서로 변환시켜 준다.
  • 외부 침입자가 공격하기 위해서는 사설망의 내부 사설 IP주소를 알아야 하기 때문에 공격이 불가능해지므로 내부 네트워크를 보호할 수 있게 된다.

 

NAT(Network Address Translation) 역할

  • Private Subnet에서 인터넷 통신을 하기 위해서는 NAT(Network Address Translation) 역할이 필요하다.
  • NAT는 Private IP를 Public IP로 변환하여 통신을 돕는다.
  • 이러한 기능을 제공하기 위해 AWS에서는 NAT Gateway와 NAT Instance의 서비스를 제공한다.

출처: ANOS 2기 Study 자료

 

NAT Gateway vs NAT Instance

요즘은 NAT Instance는 거의 이용하지 않으며, NAT Gateway를 이용한다고 한다.

NAT Gateway NAT Instance
  • AWS에서 제공하는 서비스
  • Highly Available & Scalable
    - Region Level 서비스이며 AZ 단위로 Span 가능
  • SPOF(Single Point of Failure;단일 장애점) 요인이 적다.
  • Bastian Server에 사용될 수 없다.
  • Uniform Offering; type 및 size를 고려할 필요 없다.
  • NAT 기능이 탑재된 EC2 인스턴스라고 생각하면 된다.
  • Customizable, 사용자가 생성하고 관리한다.
    (업데이트 경우도 사용자의 몫이다.)
  • SPOF(Single Point of Failure;단일 장애점) 요인
  • Bastion Server에 사용될 수 있다. (권장 X)
  • Flexibility: Type 와 Size에 대하여 선택할 수 있다.
💡 NAT Gateway는 내부적으로 이중화 구성이 되어 있다.
다시말하자면, NAT Gateway를 구현하기 위해 AWS 데이터센터에 구성되어 있는 네트워크 장비들 및 회선이 이중화가 되어있다. 이에 Client는 NAT Gateway가 이중화로 구성되어 있는지는 알 수 없다.