////
Search

DHCP(Dynamic Host Configuration Protocol)

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

큰 흐름

1.
공유기에 노트북을 LAN으로 연결하면 자동으로 DHCP Client의 MAC 주소(8c:85...)가 DHCP Server에게 IP 주소를 요청
2.
DHCP Server는 DHCP Client에게 사용 가능한 IP를 자동으로 할당
3.
단, DHCP를 통해 할당 받은 IP 주소는 영구적인 것은 X
사용가능한 IP주소를 임대한 것
4.
할당 받은 IP 주소를 사용하다가 임대 시간이 지나면 기간을 연장하거나 IP 주소를 반납

좀 더 자세한 설명

1. 임대(Lease)

IP를 할당해 주는 것(임대 기간은 기본적으로 8일이며, 장소에 따라서 적당한 값을 찾아서 설정 가능)
유동 인구가 많은 공간에서 IP주소 임대 기간을 길게 설정하면, 순식간에 주소 풀이 동나기 때문에, 임대 기간을 2~3시간처럼 짧게 설정하는 것이 좋음(카페에서 공공 와이파이로 잘 쓰고 있던 네트워크가 갑자기 끊기면서 다시 로그인하라고 자꾸 그러는 이유가 다음과 같음)
임대 상세 동작 과정(4가지 : DORA)
1.
DHCP Discover
a.
IP 주소가 할당되지 않은 클라이언트는 MAC 주소를 기반으로 IP 주소를 받아오기 위해 로컬 네트워크에 Discover 패킷을 Broadcast
i.
이때, Broadcast로 뿌려진 패킷은 해당 네트워크 내의 모든 호스트에게 날아가게 됨
b.
이 Discover 패킷에는 IP 주소가 필요한 호스트의 MAC 주소가 담겨져 있어서 DHCP 서버가 응답할 때 패킷을 수신할 수 있게됨
i.
호스트들이 패킷을 받고 나서, DHCP 서버가 Discover 패킷을 받게 되면 2단계로 넘어감
ii.
이 때, 다른 호스트들은 '어? 내 패킷이 아니네?' 하고 패킷을 폐기
2.
DHCP Offer
a.
DHCP 서버가 Discover 패킷을 받게 되면, DHCP 서버는 Offer 패킷을 Broadcast
i.
이때, MAC 주소에 아까 Discover 패킷을 보낸 호스트의 MAC 주소를 적어서 보냄
ii.
마찬가지로 Broadcast이기 때문에 해당 네트워크의 호스트 전체에 패킷이 날아가지만, 역시 Discover를 보낸 호스트 이외의 다른 호스트는 패킷을 전부 폐기
iii.
Discover를 보낸 호스트가 Offer 패킷을 받으면 3단계로 넘어감
3.
DHCP Request
a.
해당 호스트는 Offer를 받았으면 해당 네트워크에는 DHCP 서버가 있다고 판단하고, Request 패킷(IP Address를 달라는)을 Broadcast함
i.
이것도 역시 Broadcast이기 때문에 해당 네트워크의 호스트 전체에게 날아가고, DHCP 서버 이외의 다른 호스트는 패킷을 폐기
의문점 : 왜 Broadcast를 할까? 그냥 해당 DHCP 서버에 바로 패킷을 전송하면 안되나? 이유 : DHCP 서버가 1대 이상일 수 있기 때문
4.
DHCP Ack
a.
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 주소를 할당
왜 굳이 4단계로 나눠져있을까?

2. 갱신(Renewal)

그냥 말 그대로 기간만 좀 늘려달라고 부탁하는 과정
임대 기간이 끝나면 IP 주소를 반환 만약 임대 기간이 1시간이라면, 1시간마다 IP 주소를 반환하고 다시 임대 시 불필요한 Broadcast traffic 발생 → DHCP에는 임대 갱신이라는 과정이 존재(비효율적 과정 제거 위함)
갱신은 두 차례 시도
첫 시도 : 임대 기간이 50% 남았을 때
이 때, 갱신에 성공하면 갱신된 시간으로 부터 임대 기간이 다시 차게됨 만약 어떠한 이유로 실패시, 다시 한 번 기회 제공
두번째 시도 : 임대 기간의 87.5%의 시간이 지났을 때
이 때, 갱신에 성공한다면 그 시점으로부터 임대 기간이 다시 차게됨
좀 더 상세한 갱신 과정

3. 반환(Release)

임대 기간이 끝났거나, IP 주소를 더 이상 사용하지 않는다면 DHCP 서버에 IP 주소를 반환
DHCP 서버와 클라이언트 모두 임대 기간에 대한 정보를 가지고 있기 때문에, 임대 기간이 끝났는데 클라이언트가 연결되지 않았더라도 해당 주소를 사용 가능하도록 주소 풀로 보냄
반환 과정이 없다면, 고정 IP를 사용하는 것보다 단점이 더 많은 프로토콜이 되기 때문에 반환 과정은 DHCP에 있어서 임대 생성/갱신보다 중요
<요약 사진> - Discover → Offer → Request → Ack 순서 - Offer, Ack만 Unicast 통신(갱신 과정일때)
참고자료