diff --git "a/docs/playhuck/2024-02-21[7\354\236\245]NAT,PAT.md" "b/docs/playhuck/2024-02-21[7\354\236\245]NAT,PAT.md" new file mode 100644 index 0000000..601d600 --- /dev/null +++ "b/docs/playhuck/2024-02-21[7\354\236\245]NAT,PAT.md" @@ -0,0 +1,91 @@ + + +종단 장비에서 패킷이 시작되어 중간 네트워크 장비에서 이 패킷을 처리하는 과정 외에도 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이라고 한다.