**동적으로 호스트를 설정**하는 규약

네트워크 내 디바이스에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소와 같은 다양한 네트워크 정보들을 할당해주는 역할 (클라이언트에게 일정 기간동안 임대를 해주는 동적 주소 할당 프로토콜)

큰 흐름

  1. 공유기에 노트북을 LAN으로 연결하면 자동으로 DHCP Client의 MAC 주소(8c:85...)가 DHCP Server에게 IP 주소를 요청

    스크린샷 2024-10-29 오후 4.14.50.png

  2. DHCP Server는 DHCP Client에게 사용 가능한 IP를 자동으로 할당

    스크린샷 2024-10-29 오후 4.15.08.png

  3. 단, DHCP를 통해 할당 받은 IP 주소는 영구적인 것은 X

    사용가능한 IP주소를 임대한 것

    사용가능한 IP주소를 임대한 것

  4. 할당 받은 IP 주소를 사용하다가 임대 시간이 지나면 기간을 연장하거나 IP 주소를 반납

    스크린샷 2024-10-29 오후 4.15.47.png

좀 더 자세한 설명

1. 임대(Lease)

IP를 할당해 주는 것(임대 기간은 기본적으로 8일이며, 장소에 따라서 적당한 값을 찾아서 설정 가능)

유동 인구가 많은 공간에서 IP주소 임대 기간을 길게 설정하면, 순식간에 주소 풀이 동나기 때문에, 임대 기간을 2~3시간처럼 짧게 설정하는 것이 좋음(카페에서 공공 와이파이로 잘 쓰고 있던 네트워크가 갑자기 끊기면서 다시 로그인하라고 자꾸 그러는 이유가 다음과 같음)

임대 상세 동작 과정(4가지 : DORA)

  1. DHCP Discover

    1. IP 주소가 할당되지 않은 클라이언트는 MAC 주소를 기반으로 IP 주소를 받아오기 위해 로컬 네트워크에 Discover 패킷을 Broadcast
      1. 이때, Broadcast로 뿌려진 패킷은 해당 네트워크 내의 모든 호스트에게 날아가게 됨
    2. 이 Discover 패킷에는 IP 주소가 필요한 호스트의 MAC 주소가 담겨져 있어서 DHCP 서버가 응답할 때 패킷을 수신할 수 있게됨
      1. 호스트들이 패킷을 받고 나서, DHCP 서버가 Discover 패킷을 받게 되면 2단계로 넘어감
      2. 이 때, 다른 호스트들은 '어? 내 패킷이 아니네?' 하고 패킷을 폐기
  2. DHCP Offer

    1. DHCP 서버가 Discover 패킷을 받게 되면, DHCP 서버는 Offer 패킷을 Broadcast
      1. 이때, MAC 주소에 아까 Discover 패킷을 보낸 호스트의 MAC 주소를 적어서 보냄
      2. 마찬가지로 Broadcast이기 때문에 해당 네트워크의 호스트 전체에 패킷이 날아가지만, 역시 Discover를 보낸 호스트 이외의 다른 호스트는 패킷을 전부 폐기
      3. Discover를 보낸 호스트가 Offer 패킷을 받으면 3단계로 넘어감
  3. DHCP Request

    1. 해당 호스트는 Offer를 받았으면 해당 네트워크에는 DHCP 서버가 있다고 판단하고, Request 패킷(IP Address를 달라는)을 Broadcast함
      1. 이것도 역시 Broadcast이기 때문에 해당 네트워크의 호스트 전체에게 날아가고, DHCP 서버 이외의 다른 호스트는 패킷을 폐기

        의문점 : 왜 Broadcast를 할까? 그냥 해당 DHCP 서버에 바로 패킷을 전송하면 안되나? 이유 : DHCP 서버가 1대 이상일 수 있기 때문

  4. DHCP Ack

    1. DHCP 서버가 Request 패킷을 받으면, 자신의 IP 임대 풀에서 할당 가능한 IP 주소를 찾음

      예시 : 게이트웨이와 DHCP가 모두 192.168.0.1일 경우 192.168.0.1을 제외한 0.2~0.254까지의 임대 풀을 가지고 있다고 가정 설명 : 이 임대 풀에서 가장 앞에 있는 IP 주소부터 할당하게 되는데, 사용 중이 아닌 경우엔 해당 IP 주소를 할당을 하게 된다. 여기서는 192.168.0.2를 할당한다고 가정 하면, "Your (Client) IP Address: 192.168.0.2 (192.168.0.2)" 이런 패킷을 날리게 됨. 역시나 Broadcast로 전송되며, 호스트가 이 패킷을 정상적으로 받았다면 IP 주소를 할당

2. 갱신(Renewal)

그냥 말 그대로 기간만 좀 늘려달라고 부탁하는 과정