NAT(Network Address Translation)

Moon·2023년 4월 8일
0

네트워크

목록 보기
9/11
post-thumbnail

NAT는 이름 그대로 네트워크 주소를 변환하는 기술입니다.

NAT는 기본적으로 하나의 네트워크 주소에 다른 하나의 네트워크 주소로 변환하는 1:1 변환이 기본이지만 IP 주소가 고갈되는 문제를 해결하기 위해 1:1 변환이 아닌 여러 개의 IP를 하나의 IP로 변환하기도 합니다.

여러 개의 IP를 하나의 IP로 변환하는 기술도 NAT 기술 중 하나이고 NAT로 통칭하여 불리기도 하지만 실제 공식 용어는 NAPT(Network Address Port Translation)입니다.

실무에서는 PAT(Port Address Translation)라는 용어로 더 많이 사용됩니다.

NAT가 가장 많이 사용되는 경우는 사설 IP 주소에서 공인 IP 주소로 전환하는 경우입니다.

💡 공인 IP와 사설 IP?

인터넷에 접속하려면 IP 주소가 있어야 하고 이 IP는 전 세계에서 유일해야 하는 식별자입니다.

이런 IP 주소를 공인 IP라고 하며, 인터넷에 연결하지 않고 개인적으로 네트워크를 구성한다면 공인 IP를 할당받지 않고 네트워크를 구축할 수 있습니다.

이때 사용하는 IP 주소를 사설 IP 주소라고 합니다.

📌 NAT의 용도와 필요성

  1. IPv4 주소 고갈 문제의 솔루션으로 NAT가 사용됩니다.
    -> 외부에 공개해야 하는 서비스에 대해서는 공인 IP를 사용하고 외부에 공개할 필요가 없는 일반 사용자의 PC나 기타 종단 장비에 대해서는 사설 IP를 사용해 꼭 필요한 곳에만 효율적으로 IP를 사용할 수 있게 되었습니다.

  2. 보안을 강화하는 데 NAT 기술을 사용합니다.
    -> 외부와 통신할 때 내부 IP를 다른 IP로 변환해 통신하면 외부에 사내 IP 주소 체계를 숨길 수 있습니다.

  3. IP 주소 체계가 같은 두 개의 네트워크 간 통신을 가능하게 해줍니다.

  4. 불필요한 설정 변경을 줄일 수 있습니다.

📌 SNAT와 DNAT

NAT를 이용해 네트워크 주소를 변환할 때 어떤 IP 주소를 변환하는지에 따라 두 가지로 구분합니다.

  • SNAT(Soruce NAT) : 출발지 주소를 변경하는 NAT
  • DNAT(Destination NAT) : 도착지 주소를 변경하는 NAT

SNAT사설에서 공인으로 통신할 때 많이 사용합니다.

공인 IP 주소의 목적지에서 출발지로 다시 응답을 받으려면 출발지 IP 주소 경로가 필요한데 공인 대역에서는 사설 대역으로의 경로를 알 수 없으므로 공인 IP의 목적지로 서비스를 요청할 때 출발지에서는 사설 IP를 별도의 공인 IP로 NAT하여 서비스를 요청해야 합니다.

다른 경우는 보안상 SNAT를 사용할 때입니다.

회사에서 다른 대외사와 통신 시 내부 IP 주소가 아니라 별도의 다른 IP로 전환해 전송함으로써 대외에 내부의 실제 IP 주소를 숨길 수 있습니다.

DNAT로드 밸런서에서 많이 사용합니다.

사용자는 서비스 요청을 위해 로드 밸런서에 설정된 서비스 VIP(Virtual IP)로 서비스를 요청하고 로드 밸런서에서는 서비스 VIP를 로드 밸런싱될 서버의 실제 IP로 DNAT해 내보냅니다.

사내가 아닌 대외망과의 네트워크 구성에도 DNAT를 사용합니다.

사내 IP 주소는 중앙에서 일괄적으로 관리되므로 IP가 중복되는 경우가 없지만 사내가 아닌 대외망과의 연동에서는 IP가 중복될 수 있습니다. 이 경우, 대외망에 NAT 장비를 이용해 대외사의 IP를 특정 IP 대역으로 NAT합니다.

📌 동적 NAT와 정적 NAT

출발지와 목적지의 IP를 미리 매핑해 고정해높은 NAT정적 NAT라고 합니다.

반대로 출발지나 목적지 어느 경우든 사전에 정해지지 않고 NAT를 수행할 때 IP를 동적으로 변경하는 것동적 NAT라고 합니다.

동적 NAT는 출발지와 목적지가 모두 정의된 것이 아니라 다수의 IP 풀에서 정해지므로 최소한 출발지나 목적지 중 한 곳이 다수의 IP로 구성된 IP 풀이나 레인지(Range)로 설정되어 있습니다.

NAT가 필요할 때 IP 풀에서 어떤 IP로 매핑될 것인지 판단해 NAT를 수행하는 시점에 NAT 테이블을 만들어 관리합니다.

정적 NAT는 출발지와 목적지 매핑 관계가 특정 IP로 사전에 정의된 것이므로 1:1 NAT라고 부릅니다.

동적 NAT정적 NAT
NAT 설정1:N, N:1, N:M1:1
NAT 테이블NAT 수행 시 생성사전 생성
NAT 테이블 타임아웃동작없음
NAT 수행 정보실시간으로만 확인하거나 별도 변경 로그 저장 필요별도 필요 없음 (설정 = NAT 내역)

이상으로 NAT에 대해서 간단히 알아봤습니다.

참고

  • IT 엔지니어를 위한 네트워크 입문 (고재성, 이상훈 지음)
profile
꾸준함으로 성장하는 개발자 지망생

0개의 댓글