Skip to content

Commit

Permalink
Create 2024-02-21[7장]NAT,PAT.md
Browse files Browse the repository at this point in the history
  • Loading branch information
playhuck authored Feb 21, 2024
1 parent 9b17d8d commit d32ba17
Showing 1 changed file with 91 additions and 0 deletions.
91 changes: 91 additions & 0 deletions docs/playhuck/2024-02-21[7장]NAT,PAT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<img src="https://github.com/monthly-cs/2024-01-network/assets/105256335/c6ba5881-e4dd-4649-b2df-1bc2cbf64617">

종단 장비에서 패킷이 시작되어 중간 네트워크 장비에서 이 패킷을 처리하는 과정 외에도 IP 네트워크에는 통신을 도와주고 사용자들을 편하게 해주는 다양한 서비스와 프로토콜이 존재한다.

### 7.1 NAT/PAT

---

NAT(Network Address Translation, 네트워크 주소 변환)은 실생활에서 많이 쓰인다.

노트북과 PC는 공유기, 스마트폰은 어딘가의 통신사 장비 등…

NAT은 기본적으로 네트워크 주소 변환 기술로, 1:1로 변환하기도 하지만 여러 개의 IP를 하나로 변환하기도 한다. 여러개는 실제로는 NAPT라고 한다. NAPT의 경우 실무에서는 PAT라고 한다.

RFC2663에서 “NAT는 IP 주소를 다른 IP주소로 변호나해 라우팅을 원활히 해주는 기술”이라고 정의하고 있다.

이 개념을 좀 더 확장하면 IPv4 주소를 IPv6주소로 변환하거나 그 반대로도 가능하다.

**7.1.1 NAT/PAT의 용도와 필요성**

**Pros**

1. IPv4 주소의 고갈문제
2. 보안 강화

⇒ 외부와 통신할 때 IP를 변환하면 사내 IP 주소 체계를 숨길 수 있다.

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

⇒ 사설 IP의 경우 외부와 통신할 때 공인 IP로 변환되어 통신하므로 주소 체계가 같은 네트워크라고 인식되는 선에서도 서로 통신할 수 있습니다.

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

⇒ 일반적으로 IP를 빌려서 요새는 사용하기 때문에, 회선 사업자를 바꾸거나 IDC를 이전하면 공인 IP를 사용할 수 없고 신규 사업자가 빌려주는 IP를 사용해야 한다.

일반적으로 DNS 같은 것은 공인 IP가 변하기 때문에 수정해야 하지만, NAT/PAT 기술을 적용하면 해당 변경으로 인한 문제를 줄일 수 있다.


**Cons**

1. IP가 변환되면 장애를 인식하기 힘들다.
2. Application 개발할 때 해당 고려사항이 늘어났다. (서비스 복잡성 증가)
3. NAT로 인한 오버헤드나 다양한 문제가 있다.

**7.1.2 NAT 동작 방식**

1. 출발지 IP 10.10.10.10, 목적지 IP 20.20.20.20 포트 80으로 패킷 전송
2. NAT 장비에서 패킷 수신 후 정책에 따라 외부 네트워크와 통신 가능한 공인 IP 11.11.11.11로 IP 주소 변경, NAT 변경 전후의 IP 주소는 NAT 테이블에 저장
3. NAT 장비에서 출발지 주소를 11.11.11.11로 변경해 패킷 전송
4. 수신한 Application에서 Response 발신, 출발지 IP가 20.20.20.20으로 목적지는 공인 IP 11.11.11.11
5. Application으로부터 응답을 수신한 NAT 장비가 자신의 NAT 테이블의 목적지 IP에 대한 원래 패킷을 발생시킨 출발지 IP주소 와 매핑 후 재변환 후 패킷 수신



**7.1.3 PAT 동작 방식**

NAT과 동작 방식이 비슷하지만, IP 주소 뿐만 아니라 서비스 포트까지 변경해 NAT 테이블을 관리하기 때문에 하나의 IP만으로도 다양한 포트 번호를 사용해 사용자를 구분할 수 있다.

만약, 서비스 포트가 동시에 모두 사용중이거나 재사용할 수 없는 경우 PAT이 정상 작동하지 않을 수 있다.

따라서 동시 사용자가 매우 많은 경우 PAT에서 사용하는 공인 IP 주소를 IP 하나가 아닌 풀로 구성해야 한다.

PAT의 경우 SNAT(출발지 주소를 변경하는 NAT) 에서만 사용할 수 있고 목적지 주소를 변경하는 NAT인 DNAT에서는 사용할 수 없다.

**7.1.4 SNAT와 DNAT**

1. SNAT(Source NAT)은 언제 사용할까?

일반적으로 사설에서 공인으로 통신할 때 많이 사용한다.

또, 보안상 회사에서 다른 대외 협력사와 통신 시 내부 IP 주소를 숨기고 싶을 때 대내외적으로 실제 IP 주소를 숨기려고 할 때 사용한다.

또한 IP 대역의 중복이 되지 않기 때문에 다른 IP로 변경해 사용할 수도 있다.

로드 밸런서의 경우, 출발지와 목적지가 동일 대역일 경우 로드 밸런서 구성에 따라 트래픽이 로드 밸런서를 거치지 않고 응답할 수 있어 SNAT를 통해 응답 트래픽이 로드 밸런서를 거치게 할 수 있다.

1. DNAT(Destination NAT)은 언제 사용할까?


DNAT는 로드 밸런서에 많이 사용한다.

사용자가 로드 밸런서에 설정된 Virtual IP로 서비스를 요청하고 로드 밸런서에서 서비스 VIP를 로드 밸런싱될 서버의 실제 IP로 DNAT해 보낸다.

사내가 아닌 대외망과 네트워크 구성에서도 사용한다. IP가 중복될 수 있기 때문이다.


**7.1.5 동적 NAT와 정적 NAT**

출발지와 목적지의 IP를 미리 매핑해 고정해놓은 NAT를 정적 NAT

반대로, NAT를 수행할 때 IP 를 동적으로 변경하는 것을 동적 ANT이라고 한다.

0 comments on commit d32ba17

Please sign in to comment.