DHCP - 자동 IP 주소 할당

Dong-Hyeon Park·2023년 10월 10일
0

Network

목록 보기
2/8
post-thumbnail

본 글은 Computer Networking: a Top Down Approach의 DHCP 챕터를 정리한 글입니다.

🟢 DHCP (Dynamic Host Configuration Protocol) 개요

  • 주소 블록(block of IP address)를 확보한 조직이라면, 조직 내의 호스트 및 라우터에 개별 IP 주소를 할당할 수 있다.

  • 일반적으로 라우터는 수동 IP로 구성한다.

  • 반면에 호스트 주소는 DHCP로 구성한다. (수동으로 구성할 수도 있긴 함)

🟢 DHCP의 기능

  • DHCP를 사용하면 호스트가 자동으로 IP 주소를 획득(할당)할 수 있다.

  • 특정 호스트가 네트워크에 연결할 때마다 동일한 IP 주소를 받도록 구성하거나, 임시 IP 주소를 할당할 수 있다.

  • 호스트 IP 주소 할당 외에도 서브넷 마스크, 기본 게이트웨이(첫번째 홉 라우터), 로컬 DNS 서버 주소와 같은 추가 정보를 DHCP를 통해 알 수 있다.

🟡 플러그 앤 플레이 (제로 컨피규레이션) 프로토콜

  • 네트워크를 자동화해주는 DHCP의 기능 때문에 DHCP는 플러그 앤 플레이 혹은 제로 컨피규레이션 이라고도 불린다.

  • 만약 이런 자동화 기능이 없다면 얼마나 불편할지 생각해보자.

    • 대학생이 기숙사에 거주하며 도서관과 교실에 수시로 이동한다.

    • 이 학생이 각 위치에서 노트북을 사용할 때, 각 위치에 새로운 서브넷이 존재하기 때문에 위치마다 새로운 IP 주소가 필요하다.

    • 이렇게 많은 사용자가 드나들면서 제한된 시간동안 주소가 필요한 곳에 DHCP는 매우 이상적이다.

    • 네트워크 관리자가 각 위치의 노트북에게 새로운 IP 주소를 수동으로 제공하는 것은 쉽지 않으며, 모든 노트북 사용자가 그럴 만한 능력을 가지기가 힘들다.

🟢 DHCP: 클라이언트-서버 프로토콜

  • 클라이언트란, 다르게 말하면 자신의 IP 주소를 포함한 네트워크 구성 정보를 얻으려는 호스트이다.

  • 서브넷에 DHCP 서버가 존재할 수도 있고 안 할 수도 있다.

  • 존재하지 않는다면, 해당 네트워크 DHCP의 서버 주소를 알고 있는 DHCP 릴레이 에이전트(일반적으로 라우터)가 필요하다.

🟡 DHCP 설정 과정


(yiaddr은 클라이언트에게 할당되는 주소를 의미한다)

  • 새로 도착한 호스트는 DHCP를 통해 네 단계의 네트워크 설정을 거친다.

🟠 DHCP 서버 검색(discovery):

  • 가장 먼저 통신할 DHCP 서버를 찾는다.

  • 클라이언트는 UDP를 기반으로 하는 67 포트DHCP 검색(discover) 메시지를 송신한다. (IP 데이터그램으로 캡슐화됨)

  • 이때 DHCP 서버의 주소를 알지 못하기 때문에, 도착 IP 255.255.255.255 와 소스 IP 0.0.0.0 을 Link layer에 데이터그램에 담아 전달한다.

  • 그리고 Link layer가 이 프레임을 서브넷의 모든 노드에 전송(브로드캐스트)한다.

🟠 DHCP 서버 오퍼(offer):

  • DHCP 검색 메시지를 수신한 DHCP 서버모든 클라이언트에게 DHCP 오퍼 메시지로 응답(브로드캐스트)한다. (같은 서브넷에 존재한다면 유니캐스트 할 수도 있다)

  • 이 오퍼 메시지에는 다시 255.255.255.255 주소가 브로드캐스트에 쓰인다.

  • 서브넷에는 여러 DHCP 서버가 존재할 수 있어, 클라이언트는 그 중에 선택하면 된다.

  • DHCP 오퍼 메시지에 기록된 데이터

    • 검색 데이터의 트랜잭션 ID

    • 클라이언트에게 제안하는 IP 주소

    • 네트워크 마스크

    • IP 주소 유효 기간 (일반적으로 몇 시간 혹은 며칠로 정해짐)

🟠 DHCP 요청(request):

  • 서버 오퍼 중 하나를 선택해서 DHCP 요청 메시지로 응답한다.

  • 이때도 각 DHCP 서버에 중복이 생기지 않기 위해 브로드캐스트한다.

🟠 DHCP ACK(acknowledgement):

  • 서버가 DHCP 요청 메세지를 받아 이전 데이터들(구성 매개변수)이 기록됐는지 확인하고 ACK 메시지로 응답한다.

  • 위 과정을 거치면 클라이언트가 유효 기간 동안 DHCP에 할당된 IP 주소를 사용하게 된다. (주소가 만료될 것을 염두에 두고 유효 기간을 갱신하는 메커니즘도 제공한다)

🟢 DHCP의 단점

  • 클라이언트가 새로운 서브넷에 연결할 때마다 DHCP에서 새로운 IP 주소를 가져온다.

  • 그래서 서브넷을 옮기면 애플리케이션에 대한 TCP 연결을 유지할 수가 없다.

  • 그로 인해 모바일 네트워크에서는 IP와 TCP 연결을 유지하기 위해 MME, S-GW 등이 활용되고 있다.

☑️ 요약

  • DHCP는 자동으로 IP 주소를 할당해주는 프로토콜이다.

  • 클라이언트가 위치를 옮기며 새로운 서브넷에 접속할 때마다 자동으로 새로운 IP를 제공해준다.

  • DHCP를 통해 IP 주소를 할당 받기 위해 네 과정을 거친다.

  • 클라이언트는 DHCP 서버를 찾기 위해 DHCP 요청 메시지를 브로드캐스트하고, DHCP는 해당 메시지를 받아 네트워크 구성 정보가 담긴 DHCP 오퍼 메시지를 브로드캐스트한다.

  • 다른 서브넷에 접속하면 DHCP가 새로운 IP 주소를 할당하게 되고, TCP 연결은 끊긴다.

profile
Android 4 Life

0개의 댓글

관련 채용 정보