홍카나의 공부방

[컴퓨터 네트워크] 10. DHCP 개념과 과정 본문

Computer Network

[컴퓨터 네트워크] 10. DHCP 개념과 과정

홍문관카페나무 2023. 4. 18. 16:00

DHCP

 

Dynamic Host Configuration Protocol

DHCP는 특정 호스트가 인터넷을 사용하기 위한 정보들을 제공하는 프로토콜이다.

DHCP서버는 다음과 같은 4가지 정보를 제공하는데, 이는 Host가 인터넷을 사용하기 위해 필요한 정보들이다.

 

  • IP 주소
  • 서브넷 마스크
  • 라우터 주소
  • 네임서버 주소

 

DHCP 클라이언트의 포트 번호는 68번으로, Well-Known된 번호다.

DHCP 서버의 포트 번호는 67번이다.

 


 

DHCP 요청과 응답

 

처음에 DHCP 요청을 보내는 클라이언트는 DHCP 서버의 주소를 알지 못하니, 네트워크로 BroadCast 요청을 보낸다.

그러면 DHCP 서버가 요청을 받고 DHCP 응답을 보내는데, 응답은 Unicast 전송과 BroadCast 전송 중 하나로 보낸다.

 

같은 LAN의 DHCP 요청과 응답

 

Unicast로 보내면 Client의 요청 패킷에 있었던 MAC 주소를 이용하여 응답을 전송한다.

그렇지 않으면 Broadcast로 뿌리게 된다.

이는 헤더의 Flag 태그로 구분하게 되는데, Flag에 0이 들어가있으면들어가 있으면 Unicast, 1이 들어가 있으면 Broadcast가 된다.

 

만약, DHCP 서버가 다른 LAN에 있다면 요청과 응답을 하기 위한 Relay Agent가 같은 LAN에 연결되어 있어야 한다.

Relay Agent가 인터넷으로 DHCP 요청을 대행할 것이다.

 

다른 LAN에 있는 DHCP 서버로부터의 요청과 응답

 


 

DHCP 패킷 포맷과 옵션, 단계

 

DHCP 패킷에는 Operation Code, Hardware type, length, Flags 등이 존재한다.

그리고 앞서 말했듯이 DHCP로부터 IP주소 뿐만 아니라 서브넷 마스크, DNS 주소, 라우터 주소 등을 받아와야 하는데

이는 모두 패킷의 옵션에 들어가게 된다.

 

보통 DHCP 요청과 응답은 DISCOVER, OFFER, REQUEST, ACK의 과정을 거치게 된다.

DISCOVER는 DHCP 응답을 받을 수 있는 서버를 클라이언트가 탐색하는 단계다.

OFFER는 여러 개의 DHCP 서버가 "내가 제공해주겠다"며 제안을 하는 것이라고 생각하면 된다.

REQUEST는 클라이언트가 특정 DHCP 서버를 선택해서 정보를 요청받는 것이다.

ACK는 DHCP 서버가 해당 요청에 응답하여 host로서의 기능을 할 수 있도록 정보를 할당하는 것이다.

 

우리가 카페에서 스마트폰을 켜고, 와이파이에 연결하려 할 때를 생각해보면 쉽게 이해할 수 있다.

그리고 각 상태별 표준패킷의 값이나, 옵션의 값은 다음과 같다.

 

각 state별 표준 패킷 및 옵션의 value

 

Client H/W Addr은 어차피 단말기별로 MAC주소는 unique한 고정 값이므로 꾸준히 유효한 것이고,

tag value의 경우 53번 태그(dynamic configuration)의 값을 의미하는데, 각 state를 나타내는 값이라고 보면 된다.

OFFER와 ACK 과정에서 서브넷 마스크, 기본 라우터 주소, DNS 주소, IP 주소가 모두 제공되는 것을 볼 수 있다.

 

DHCP는 기본적으로 "임대"의 개념이다. 따라서 Lease Time이라는 개념도 존재한다.

IP lease Time은 IP 주소를 사용할 수 있는 시간을 의미하는데, 기본적으로 1일이다.

host 정보를 할당 받은지 1일이 지나면 DHCP로부터 새로 제공받거나.. 뭐 그러면 된다.

 

사용이 끝나면 서버에 release를 보내어 동적 할당받은 IP 주소를 반납한다.

반응형