[네트워크] 7-1. NAT/PAT
by 콰이엇고재성, 이상훈 저자님의 “IT 엔지니어를 위한 네트워크 입문” 책을 학습하고 정리한 글입니다.
📌 NAT (Network Address Translation, 네트워크 주소 변환)
이름 그대로 네트워크 주소를 변환하는 기술이다.
- 기본적으로 하나의 네트워크 주소에 다른 하나의 네트워크 주소로 변환하는 1:1 변환이 기본이다.
- IP 주소 고갈 문제를 해결하기 위해 여러 개의 IP를 하나의 IP로 변환하는 것을 공식적으로 NAPT(Network Address Port Translation, RFC2663)라고 하며, PAT(Port Address Translation)라는 용어로 더 많이 사용된다.
- 사설 IP ↔ 공인 IP 또는 사설 IP ↔ 다른 사설 IP, 공인 IP ↔ 다른 공인 IP 전환도 NAT로 정의할 수 있다.
- IPv4 주소를 IPv6 주소로 변환하거나 그 반대로 IP 주소를 변환하는 기술인 AFT(Address Family Translation)도 NAT 기술의 일종이다.
1. NAT/PAT의 용도와 필요성
1. IPv4 주소 고갈 문제 해결
IP 주소 요구를 극복하기 위해 단기, 중기, 장기의 3단계 IP 주소 보존과 전환 전략을 수립했다.
- 단기 전략 : 서브네팅
- 중기 전략 : NAT와 사설 IP 체계
- 장기 전략 : IPv6
2. 보안 강화
외부와 통신할 때 내부 IP를 다른 IP로 변환하여 통신하면 외부로부터 사내 IP 주소 체계를 숨길 수 있다.
- 주소 변환 후 역변환이 정상적으로 다시 수행되어야만 통신이 가능하다.
- 내부 네트워크에서 외부 네트워크로 나가는 방향 통신은 사용하지만, 외부에서 시작해 내부로 들어오는 통신은 방어할 수 있다.
3. IP 주소 체계가 같은 두 개의 네트워크 간 통신 가능
📌 더블 나트 (Double NAT)
IP 대역이 같은 네트워크와 통신할 가능성이 높은 대외계 네트워크를 연결하기 위해 출발지와 도착지를 한꺼번에 변환하는 NAT 기술
- 대외계라고 부르는 회사 간 통신에서 이런 상황이 많이 발생한다.
- 카드, 금융 대외사와 서비스를 연동할 때 인터넷 구간을 이용해 통신하기도 하지만, 개인정보 보호와 각종 법규 준수로 아직도 별도 전용 회선이나 암호화된 별도 네트워크를 이용해 통신한다.
4. 불필요한 설정 변경 최소화
NAT/PAT를 이용해 내부 네트워크를 구성하고 있었다면 서버와 PC의 IP 주소 변경 없이 회선과 IDC 사업자 이전이 가능하다.
- 내부 서버나 PC 설정 변경을 최소화
- 특정 사업자에 종속되지 않는 유연한 인프라 스트럭쳐의 기본 요소로 비즈니스 유연성을 높임
5. NAT 기술은 장점만 있는 것은 아니다.
- IP가 변환되면 장애 발생 시 문제 해결이 힘들다
- 애플리케이션 개발자들은 복잡한 NAT 환경을 반드시 고려해야 한다.
- NAT 기술의 복잡성을 해결하기 위한 홀 펀칭 (Hole Punching) 기술이 나오기도 했지만 더 복잡해지는 악순환이 계속되었다.
2. NAT 동작 방식
NAT 테이블을 통해 출발지 IP 주소와 도착지 IP 주소, 서비스 포트를 기억하여 응답 패킷이 왔을 때 NAT 테이블을 바탕으로 통신하게 된다.
✍🏻 NAT 동작 과정
- 사용자가 웹 서버 접근을 위해 패킷에 출발지 IP/포트, 목적지 IP/포트를 채워 전송한다. 출발지 서비스 포트는 임의의 서비스 포트가 할당되며 2000번 포트가 할당되었다고 가정하자.
- NAT 장비는 사용자가 보낸 패킷을 수신한 후 NAT 정책에 따라 외부 네트워크와 통신이 가능한 공인 IP 주소로 변경한다. 변경 전후의 IP 주소는 NAT 테이블에 저장한다.
- NAT 장비에서 출발지 IP 주소를 공인 IP 주소로 변경한 패킷을 목적지 웹 서버로 전송한다.
- 패킷을 수신한 웹 서버는 사용자에게 응답을 보낸다. 패킷 정보는 출발지 정보와 도착지 정보가 반대로 되어 사용자에게 전송한다.
- 웹 서버 응답 패킷을 수신한 NAT 장비는 NAT 테이블을 확인해 출발지 IP 주소 정보와 매핑되는 정보를 확인한다.
- NAT테이블에서 확인한 원래 패킷 출발지 IP로 변경하여 사용자에게 전송하여 최종적으로 패킷을 수신한다.
3. PAT 동작 방식
- NAT와 거의 동일하지만 IP 주소 뿐만 아니라 서비스 포트까지 함께 변경해 NAT 테이블을 관리하여 하나의 IP 만으로 다양한 포트 번호를 사용해 사용자를 구분할 수 있다.
- 하지만 서비스 포트의 개수는 제한되어 있어 재사용하고, 동시에 모두 사용 중이거나 재사용할 수 없을 때는 PAT가 정상적으로 동작하지 않는다.
- 따라서, 동시 사용자가 매우 많을 때는 PAT에서 사용하는 공인 IP 주소를 IP 하나가 아닌 풀(Pool)로 구성해야 한다.
- PAT IP가 목적지일 때는 해당 IP가 어느 IP에 바인딩되는지 확인할 수 없으므로 사용하지 않는다.
✍🏻 PAT 동작 과정
- 사용자가 웹서버 접근을 위해 패킷에 출발지 IP/포트, 목적지 IP/포트를 채워 전송한다. 마찬가지로 출발지 서비스 포트는 임의의 서비스 포트 2000번이 할당되었다고 가정하자.
- NAT 장비는 사용자 패킷을 받아 외부 네트워크와 통신 가능한 공인 IP로 변경한다. 다만 출발지에 있는 다수 사용자가 동일한 공인 IP로 변환되어야 하므로 패킷의 주소 변경 시 출발지 IP 뿐만 아니라 출발지의 서비스 포트도 변경하고, NAT 장비가 이 변경 정보를 NAT 테이블에 기록한다.
- NAT 장비에서 변경된 출발지 IP 주소와 서비스 포트로 패킷을 재작성해 웹 서버로 전송한다.
- 패킷을 수신한 웹 서버는 사용자에게 출발지와 도착지 정보를 반대로 변경하여 패킷을 전송한다.
- 웹 서버 응답 패킷을 수신한 NAT 장비는 NAT 테이블을 통해 패킷의 목적지 IP 주소와 서비스 패킷을 확인한다.
- 확인한 목적지 IP 주소와 서비스 포트로 패킷을 재작성 후 사용자에게 전송하여 최종적으로 패킷을 수신한다.
4. SNAT & DNAT
NAT는 트래픽이 출발하는 시작 지점을 기준으로 두 가지로 구분한다.
📌 SNAT (Source NAT)
출발지 주소를 변경하는 NAT
- 사설에서 공인으로 통신할 때
- 보안상 회사에서 다른 대외사와 통신 시 내부 IP 주소를 숨길 때
- 로드 밸런서 구성에 따라 변경
📌 DNAT (Destination NAT)
도착지 주소를 변경하는 NAT
- 로드 밸런서에 많이 사용
- 사내가 아닌 대외망과의 네트워크 구성
5. 동적 NAT & 정적 NAT
📌 정적 NAT
출발지와 목적지의 IP를 미리 매핑해 고정해놓은 NAT
- 1:1 NAT라고 부르기도 하며 방향성 없이 서비스 흐름을 고려하지 않고 NAT를 설정할 수 있다.
📌 동적 NAT
출발지나 목적지 어느 경우든 사전에 정해지지 않고 NAT를 수행할 때 IP를 동적으로 변경하는 것
- 출발지와 목적지가 모두 정의된 것이 아니라 다수의 IP 풀에서 정해지므로 둘 중 한 곳이 다수의 IP로 구성된 IP 풀이나 레인지(Range)로 설정되어 있다.
- NAT 타임아웃으로 NAT 테이블의 값 정보가 사라질 수 있으므로 서비스 흐름을 고려해 적용해야 한다.
참고자료
- 책 - IT 엔지니어를 위한 네트워크 입문 (고재성/이상훈, 2020년 10월)
'컴퓨터과학 > 네트워크' 카테고리의 다른 글
[네트워크] 7-3. GSLB와 DHCP (0) | 2024.11.04 |
---|---|
[네트워크] 7-2. DNS (0) | 2024.10.29 |
[네트워크] 6. 로드밸런서/방화벽: 4계층 장비 (0) | 2024.10.24 |
[네트워크] 5. 라우터/L3 스위치: 3계층 장비 (0) | 2024.10.24 |
[네트워크] 4. 스위치: 2계층 장비 (0) | 2024.10.21 |
블로그의 정보
콰이엇의 개발기록
콰이엇