본문 바로가기

Web Sever 개발과 CS 기초/네트워크 지식

NAT DHCP 목적, 구조와 동작 방법

관련 내용

[리눅스 인프라/우분투] - VirtualBox NAT network 고정 IP 할당하기

개요와 목적

관련 내용 블로그 글에서는 VirtualBox의 NAT Network를 사용한 고정 IP 할당 방법에 대해서 알아보았다.

이번 글에서는 위에서 언급한 NAT란 무엇인지, 그리고 자동으로 IP를 할당해주는 DHCP는 무엇이고 어떻게 동작하는 지 알아보겠다.

NAT

목적1 - 공인 IP 절약

NAT(Network Address Translation)는 하나의 공인 IP를 하나 또는 여러 개의 사설 IP 변환해준다. 하나의 공인 IP를 여러 사설 IP로 나누어 사용 할 수 있기 때문에, 공인 IP를 절약하는 효과가 있다.

사설 IP에서 외부 인터넷과 연결하려면 반드시, NAT을 거쳐서 공인 IP로 변환되어야 한다. 인터넷 네트워크를 사용하기 위해서는 유니크한 IP주소가 있어야 하고, 그 역할을 공인 IP가 하기 때문이다. 사설 IP만으로는 정확한 주소를 설정할 수 없다.

그래서, 내부에서 외부로 나갈 때 출발지 IP Address를 변경한다는 의미로 SNAT(Source NAT)라고 하고, 외부에서 내부로 들어올 때 목적지 IP Address를 변경한다는 의미로 DNAT(Destination NAT)라고 한다.

목적2 - 보안 기능 강화

NAT를 사용하여, 통신하면, 보안 기능이 높아진다. 그 이유는, 각 PC가 NAT를 거치면서, 기존의 사설 IP는 숨기게 되고, 출발지를 공인 IP로 변환해서 통신하기 때문이다. 그래서 해커가 최종 목적지 PC를 찾는 것이 어렵다.

NAT의 통신 원리

사설 IP → 외부 서버와 통신

패킷 헤더에 출발지는 자신의 사설 IP를 입력하고 목적지는 외부 서버 IP를 입력한다. 기본 게이트 웨이(공유기)에서 나가는 패킷을 확인하면, 출발지 IP를 공인 IP로 변경한다.(10.0.0.1→150.150.0.1). 이 때 사설 IP와 공유 IP 짝을 NAT 테이블에 저장한다.

외부 서버 → 사설 IP

외부 서버에서 response를 보낼 때, 목적지를 공인 IP로 설정한다. 이 패킷이 게이트웨이를 다시 통과할 때 NAT 테이블을 참고하여 해당 패킷을 사설 IP를 가진 컴퓨터에게 전달된다.

NAPT의 통신 원리

NAPT는 NAT 기능에 Port 정보를 추가한 기술이다. 두 개의 사설 IP가 하나의 외부 서버에 동시에 접속했을 때, 두 호스트를 구별할 수 없는 문제가 발생한다. NAPT 방식은 공인 IP로 변환할 때, [사설 IP, 사설 포트, 공인 IP, 공인 포트]를 기록하여 두 호스트를 비교할 수 있다.

NAT 종류

  • Static NAT - 사설 IP와 공인 IP가 1:1 매칭 한다.
  • Dynamic NAT - 사설 IP와 공인 IP가 N:M 매칭 한다.
  • PAT - 사설 IP와 공인 IP가 N:1 매칭 한다.

DHCP

목적

DHCP(Dynamic Host Configuration Protocol)은 다양한 네트워크 정보(IP주소, 서브넷 마스크, DNS서버, 등)를 호스트에게 자동 임대 해주는 프로토콜이다. 호스트에서 네트워크 정보의 임대 기간이 끝난다면, 연장하거나 반납을 하게 된다.

가정집에서는 라우터가 DHCP 서버의 역할을 한다. 가정집에서 라우터란, NAT 기능을 가진 공유기를 의미한다. 그래서 가정집에서 와이파이를 사용하면 본인이 직접 설정하지 않은 IP를 자동 할당 받아 인터넷 통신을 할 수 있는 것이다.

DHCP 네트워크 임대 절차

IP 주소가 아직 할당되지 않은 호스트가, DHCP서버에게 네트워크 요청을 보내는 방식은 브로드캐스트 방식이다. 브로드 캐스트란 로컬 랜에 있는 모든 네트워크 장비에게 보내는 통신이다. 모든 네트워크 장치에게 “DHCP 서버님이 계시다면, 답장을 주세요”라고 메세지를 보낸다. 이것이 1단계 Discover단계이다.

  • DHCP Discover - PC 단말기가 DHCP 서버를 찾기 위해 Discover 메세지를 이더넷에 보낸다.

(IP 주소가 아직 할당되지 않은 호스트가, DHCP서버에게 네트워크 요청을 보내는 방식은 브로드캐스트 방식이다. 브로드 캐스트란 로컬 랜에 있는 모든 네트워크 장비에게 보내는 통신이다. 모든 네트워크 장치에게 “DHCP 서버님이 계시다면, 답장을 주세요”라고 메세지를 보낸다. DHCP서버는 같은 네트워크 내에 있어야 하고, 브로드캐스트 주소 255.255.255.255로 메세지를 보낸다.)

  • DHCP Offer - Discover 수신 받은 DHCP서버가, 할당해 줄 수 있는 IP주소와 함께 Offer메세지를 PC에게 보낸다.
  • DHCP Request - Offer 메세지를 받은 PC는 다시 한번 Request 메세지를 보낸다.
  • DHCP Ack - IP 주소와 함께 필요한 정보(IP , Subnet , Gateway , DNS , Lease Time)들을 할당 해준다.

DHCP 임대 기간 연장 절차

  • DHCP Request - 연장을 원한다는 메세지를 DHCP 서버에게 보낸다.
  • DHCP Ack  - 요청을 수락하겠다는 답장을 보낸다.

DHCP 네트워크 정보 반납 절차

  • DHCP Release - 네트워크를 반납하겠다는 메세지를 보낸다.

Reference

https://ja-gamma.tistory.com/entry/NAT주소변환개념동작원리

https://sdesigner.tistory.com/86

https://layer3.tistory.com/26

https://layer3.tistory.com/26