Overview
NAT에 대해서 알아본다. 그리고 SNAT , DNAT와 같은 여러가지 기능에 대해서 알아본다.
NAT란?
NAT는 네트워크 주소를 다른 주소로 변환하는 과정이다. 이 기술은 주로 IP 주소의 부족 문제를 해결하고, 내부 네트워크를 인터넷으로부터 보호하기 위해 사용된다. 일반적으로 홈 라우터나 기업의 방화벽에서 많이 볼 수 있으며, 여러 장치가 하나의 공인 IP 주소를 사용하여 인터넷에 접속할 수 있도록 해준다.
NAT는 내부 네트워크(사설 네트워크)와 외부 네트워크(인터넷) 사이의 IP 주소를 매핑하는데 사용되며, 내부 IP 주소를 외부로 노출시키지 않고 인터넷과 통신할 수 있게 한다.
NAT 유형
Static NAT
단일 개인 IP 주소와 단일 공인 IP 주소 간의 일대일 매핑입니다. 일반적으로 웹 사이트를 호스팅하는 서버와 같이 외부 네트워크에서 직접 액세스해야 하는 장치에 사용된다.
Dynamic NAT
이 유형에는 개인 IP 주소 풀을 공인 IP 주소 풀에 매핑하는 작업이 포함된다. 각 연결의 개인 IP 주소에 대해 항상 동일한 공인 IP 주소를 보장하는 것은 아니다. 아웃바운드 연결을 시작해야 하는 여러 장치가 있고 공인 IP 주소 풀이 있는 경우에 사용된다.
PAT(Port Address Translation)
NAT 오버로드라고도 하는 PAT는 여러 포트 번호를 사용하여 여러 개인 IP 주소를 단일 공인 IP 주소 또는 몇 개의 공인 IP 주소에 매핑한다. 이는 많은 내부 장치가 ISP에서 제공하는 단일 공인 IP 주소를 공유하는 소규모 사무실/홈 오피스(SOHO) 네트워크에서 매우 일반적이다.
SNAT (Source Network Address Translation)
SNAT는 발신 트래픽에 대해 내부 소스 IP 주소를 외부 IP 주소로 변환하는 과정이다. 이는 주로 내부 네트워크에서 외부 네트워크로 나가는 트래픽에 적용된다. SNAT를 사용하면 여러 개의 사설 IP 주소를 가진 장치들이 단일 공인 IP 주소를 통해 인터넷에 접근할 수 있다. 이 과정에서 포트 번호도 함께 변환되어, 외부 응답이 올바른 내부 장치로 라우팅될 수 있게 한다.
DNAT (Destination Network Address Translation)
DNAT는 목적지 주소를 변환하는 방식으로, 외부 네트워크에서 들어오는 트래픽에 대해 공인 IP 주소를 내부 IP 주소로 매핑한다. DNAT는 주로 인바운드 서버 접속이나 포트 포워딩 설정에 사용된다. 예를 들어, 인터넷에서 특정 공인 IP 주소와 포트로 들어오는 요청을 내부 네트워크의 특정 서버로 전달하고자 할 때 DNAT 규칙이 사용된다.
NAT Workflow
내부 네트워크의 장치가 인터넷에 접속할 때 SNAT를 통해 IP 주소가 어떻게 변환되는지, 그리고 외부 네트워크에서 내부 서버로 트래픽이 들어올 때 DNAT를 통해 어떻게 목적지 IP 주소가 변환되는지를 보여준다. SNAT는 주로 발신 트래픽에 대해 적용되며, DNAT는 주로 들어오는 트래픽에 대해 적용된다. 이 과정은 라우팅과 포트 번호도 관련이 있어, 트래픽이 올바른 내부 장치로 정확히 전달될 수 있도록 한다.
- Internal Network [Private IP Space]
- 사설 IP 주소 공간을 가진 내부 네트워크이다. 클라이언트 기기와 내부 서버가 이에 속한다.
- SNAT Device
- 내부 네트워크에서 외부 인터넷으로 나가는 트래픽의 소스 IP 주소를 사설에서 공인으로 변환한다.
- DNAT Device
- 외부에서 내부 네트워크로 들어오는 트래픽의 목적지 IP 주소를 공인에서 사설로 변환한다.
- Internet [Public IP Space]
- 공인 IP 주소 공간을 가진 인터넷이다. 외부 클라이언트가 이에 속한다.
NAT Workflow Scenario
SNAT와 DNAT가 모두 포함된 NAT 시나리오를 설명하는 업로드된 이미지를 기반으로 IP 주소와 포트가 포함된 예제를 추가하여 어떻게 작동하는지 알아본다.
Internal Client Machine | Internet-Facing Public IP | External Client | Internal Server |
192.168.1.100 | 198.51.100.1 | 203.0.113.50 | 192.168.1.200 |
내부 클라이언트 시스템이 인터넷에 액세스하려고 하면 다음 세부 정보가 포함된 패킷을 보낸다.
Source IP | Source Port | Destination IP | Destination Port |
192.168.1.100 | 12345 | 203.0.113.50 | 80 |
내부 서버의 사설 IP | 클라이언트 운영 체제에서 선택한 임의의 포트 | 외부 클라이언트의 공인 IP | HTTP 요청이라고 가정 |
요청이 SNAT 장치를 통과하면 소스 IP와 포트가 변환된다.
Translated Source IP | Translated Source Port |
198.51.100.1 | 54321 |
SNAT 장치의 공인 IP | NAT 장치에서 할당한 새 포트 |
외부 클라이언트가 내부 서버에 요청을 보낼 때 다음 세부 정보가 사용된다.
Source IP | Source Port | Destination IP | Destination Port |
203.0.113.50 | 44321 | 198.51.100.1 | 80 |
외부 클라이언트의 퍼블릭 IP | 외부 클라이언트의 OS가 선택한 임의의 포트 | 인터넷에 연결된 공인 IP, 내부 서버와 연결됨 | HTTP 요청이라고 가정 |
이 패킷이 DNAT 장치에 도착하면 대상 IP와 포트가 내부 서버에 도달하도록 변환된다.
Translated Source IP | Translated Source Port |
192.168.1.200 | 80 |
내부 서버의 사설 IP | 내부 서버가 Listen하고 있는 포트 |
내용을 정리하자면 다음과 같다.
내부 클라이언트에서 인터넷으로: 내부 클라이언트(192.168.1.100)가 외부 공인 IP(203.0.113.50)를 목표로 인터넷으로 패킷을 보낸다.
SNAT 변환: 패킷이 SNAT 장치를 통과하면서 소스 IP가 내부 클라이언트의 IP에서 라우터의 공용 IP(198.51.100.1)로 변경된다.
외부 클라이언트에서 내부 서버로: 외부 클라이언트(203.0.113.50)가 내부 서버로 향하는 라우터의 공인 IP(198.51.100.1)로 패킷을 보낸다.
DNAT Translation: DNAT 장치는 이 패킷을 가로채서 대상 IP를 내부 서버의 사설 IP(192.168.1.200)로 변환한다.
해당 프로세스는 내부 네트워크의 개인 주소 공간을 보존하면서 양방향 통신을 보장한다.
Reference
https://itwiki.kr/w/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EC%A3%BC%EC%86%8C_%EB%B3%80%ED%99%98
https://aws-hyoh.tistory.com/145
https://whatismyipaddress.com/nat
https://en.wikipedia.org/wiki/Network_address_translation
'CS 지식' 카테고리의 다른 글
[CS 지식13.] 동기 및 비동기 처리란? (0) | 2024.06.06 |
---|---|
[CS 지식12.] SSO(Single Sign-On)란? (With OAuth SAML OIDC) (0) | 2024.03.23 |
[CS 지식10.] 웹1.0(Web1.0) vs 웹2.0(Web2.0) vs 웹3.0(Web3.0) (2) | 2024.01.09 |
[CS 지식9.] 클라우드 컴퓨팅이란?(Public & Private Cloud / IaaS SaaS PaaS / Multitenancy) (0) | 2023.12.30 |
[CS 지식8.] 프로세스(Process)와 스레드(Thread)란? (1) | 2023.12.27 |