DHCP 서버

sunnyjjang·2025년 4월 13일

네트워크

목록 보기
1/26
post-thumbnail

DHCP

DHCP란? Dynamic Host Configuration Protocol

네트워크 장치에 IP 주소, 서브넷 마스크, 게이트웨이, DNS 등을 자동으로 할당해주는 프로토콜

  1. DHCP Discover: 브로드캐스트 요청

클라이언트 장치가 네트워크에 처음 연결되었을 때 IP를 받기 위해 브로드캐스트로 요청 보냄

출발지 IP: 0.0.0.0  
목적지 IP: 255.255.255.255  
→ "DHCP 서버 누구 있어요? 나 IP 필요해요!"
  1. DHCP Offer: IP 제안

DHCP 서버가 Discover 패킷을 수신하고 보유한 IP 풀 중 사용 가능한 IP를 골라 클라이언트에게 제안

"192.168.0.10 이 IP 어때요? 1시간 동안 사용 가능해요!"
  1. DHCP Request: IP 요청

클라이언트가 여러 서버 중 한 서버의 Offer를 선택하여 명확히 "이 IP 주세요!"라고 요청

"192.168.0.10 주세요! 이걸 쓰겠습니다!"
  1. DHCP Acknowledge: IP 할당 완료 응답

DHCP 서버가 요청을 수락하고 "할당 완료" 응답을 보냄

"192.168.0.10은 너한테 할당됐어요. 1시간 동안 사용 가능!"

DHCP Offer 단계에서 DHCP 서버가 Discover 패킷을 수신하고 보유한 IP 풀 중 사용 가능한 IP를 골라 클라이언트에게 제안할 때, 여러가지 ip를 제안하고 클라이언트가 그 중 하나를 골라 사용하는거야?

DHCP 서버는 한 번의 Offer에 "하나의 IP 주소"만 제안하고, 클라이언트는 “한 번에 여러 DHCP 서버”로부터 각각의 Offer를 받을 수 있음

예시 상황)

  1. Discover (클라이언트 → 브로드캐스트)

    "누가 나한테 IP 줄 수 있어요?"
  2. Offer (각 DHCP 서버 → 클라이언트)

    서버 A:

    "192.168.0.15 써봐요~"

    서버 B:

    "192.168.0.120 어때요?"
  3. Request (클라이언트 → 브로드캐스트)

    클라이언트는 둘 중 하나를 고름

    "192.168.0.15 주세요! (서버 A의 제안 수락)"
  4. Acknowledge (서버 A → 클라이언트)

    "좋아요, 192.168.0.15 할당 완료!"

서버 B는 자기 Offer가 선택되지 않았으므로 IP를 회수하거나 다시 풀에 넣음

추가 설명)

일반적인 네트워크에는 보통 DHCP 서버가 1대만 존재함. 그래서 클라이언트는 Offer 1개만 받는 것이 일반적 !!

DHCP 이중화 구성(DHCP Failover)을 하면 2대 이상 서버가 존재할 수도 있으나, 이 경우에도 Offer는 각 서버당 1개씩만 오고, 클라이언트가 하나만 선택함

1번(브로드캐스트 요청) 단계에서 클라이언트가 "누가 나한테 IP 줄 수 있어요?" 라고 브로드캐스트한다고 했는데, 그냥 DHCP 서버에 요청 날리면 되는거 아냐? 왜 굳이 브로드 캐스트 해야해?

클라이언트는 네트워크에 처음 접속하는 시점에는 ‘자신도, DHCP 서버도 위치를 모름’

그래서 브로드캐스트를 이용해서 “누구든 들을 수 있게” 요청을 보냄

DHCP Discover 패킷 구조

출발지 IP: 0.0.0.0
목적지 IP: 255.255.255.255
출발지 MAC: 장치의 MAC 주소
출발지 포트: 68 (클라이언트)
목적지 포트: 67 (서버)
→ 브로드캐스트 방식으로 네트워크에 요청 전파

추가 설명)

IP를 받은 이후에는 Renew 요청은 직접 DHCP 서버 IP로 유니캐스트 전송함 !

브로드캐스트

동일 네트워크 대역에 있는 모든 장치에게 동시에 데이터를 전송하는 방식

클라이언트가 ip를 할당받기 위해 브로드캐스트 요청을 보낼 땐 DHCP 서버가 있는지조차 모르는데, 그 많은 장치들 중 어떻게 DHCP 서버만 반응하는 거지?

DHCP Discover 브로드캐스트 요청은 모든 장치가 받을 수 있지만, 그 중에서 DHCP 서버 역할을 수행하는 장치만이 “내가 응답할게!” 하고 반응하도록 설계되어 있음

DHCP Discover 패킷

출발지 IP: 0.0.0.0
목적지 IP: 255.255.255.255
출발지 포트: 68 (클라이언트)
목적지 포트: 67 (서버)

→ 이 네트워크 안에 UDP 67번 포트를 듣고 있는 누구든 DHCP 서버라면 응답해주세요!

즉, 네트워크 상의 모든 장치는 이 패킷을 수신하지만 대부분의 장치는 UDP 67 포트를 열어두지 않음. DHCP 서버의 기능이 활성화된 장치만 이 요청을 이해하고 응답함.

profile
지금 이 순간이 다시 넘겨볼 수 있는 한 페이지가 될 수 있게

0개의 댓글