✔️ 고정(Static) IP 와 동적(Dynamic) IP
고정 IP는 컴퓨터에 고정적으로 부여된 IP로 한 번 부여되면 IP를 반납하기 전까지는 다른 장비에 부여할 수 없는 IP 주소를 말합니다.
유동 IP는 장비에 고정적으로 IP를 부여하지 않고 컴퓨터를 사용할 때 남아 있는 IP 중에서 돌아가면서 부여하는 IP 주소를 말합니다.
✔️ DHCP란?
부여받은 IP가 10개이고 접속해야 할 컴퓨터가 20대라면 10대는 고정 IP를 부여할 경우 IP가 모자라므로 유동 IP로 10개를 20대가 돌아가면서 사용할 수 있습니다.
이러한 유동 IP를 컴퓨터에게 자동으로 할당해서 사용할 수 있도록 해주고, 사용하지 않으면 반환받아 다른 컴퓨터가 사용할 수 있도록 해주는 것이 DHCP입니다.
이는 보통 라우터 장비에 해당 기능이 탑재되지만, 별도의 서버에 DHCP 서비스를 설정하여 사용할 수도 있습니다.
라우터는 단지 게이트웨이 역할만 하고 DHCP 서버는 별도로 두는 구성도 많이 사용됩니다.
✔️ DHCP의 과정
📌 임대(Lease)
IP를 할당해 주는 것을 임대라고 합니다. 임대에는 임대 기간이 있는데 이 임대 기간이 끝나면 해당 IP 주소는 DHCP 주소 풀로 반환됩니다.
1. DHCP Discover
IP 주소가 할당되지 않은 클라이언트는 MAC 주소를 기반으로 할당 받기 위해 로컬 네트워크에 Discover 패킷을 Broadcast합니다.
이 때 Broadcast로 뿌려진 패킷은 해당 네트워크 내의 모든 호스트에게 날아가게 됩니다.
이 Discover 패킷에는 IP 주소가 필요한 호스트의 MAC 주소가 담겨져 있어 DHCP 서버가 응답할 때 패킷을 수신할 수 있게 됩니다.
호스트들이 패킷을 받고 나서, DHCP 서버가 Discover 패킷을 받게 되면 2단계로 넘어갑니다.
다른 호스트들은 자신의 패킷이 아니면 패킷을 폐기합니다.
2. DHCP Offer
DHCP 서버가 Discover 패킷을 받게 되면, DHCP 서버는 Offer 패킷을 Broadcast합니다.
이 때 MAC 주소에 아까 Discover 패킷을 보낸 호스트의 MAC 주소를 적어서 보냅니다.
마찬가지로 Broadcast이기 때문에 해당 네트워크에 호스트 전체에 패킷이 날아가지만 역시 다른 호스트는 패킷을 전부 폐기합니다.
Discover를 보낸 호스트가 Offer 패킷을 받으면 3단계로 넘어갑니다.
3. DHCP Request
해당 호스트는 Offer를 받았으면 해당 네트워크에는 DHCP 서버가 있다고 판단, Request 패킷을 Broadcast합니다.
Request 패킷은 말 그대로 IP를 달라는 것이고 Broadcast하는 이유는 DHCP 서버가 1대 이상일 수 있기 때문입니다.
DHCP 서버가 Request 패킷을 받으면 4단계로 넘어갑니다.
4. DHCP ACK
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" 의 패킷을 Broadcast로 날리게 됩니다.
호스트가 이 패킷을 정상적으로 받았다면 IP 주소가 할당됩니다.
📌 갱신(Renewal)
임대 기간이 끝나면 IP 주소를 반환하게 됩니다. 만약 임대 기간이 1시간이라면 1시간마다 반환하고 다시 임대하면 비효율적이게 됩니다.
그렇기 때문에 임대 갱신은 두 차례 시도를 하게 되는데, 첫 시도는 임대 기간이 50% 남았을 때 시도됩니다.
이 때 갱시네 성공하면 갱신된 시간으로부터 임대 기간이 다시 차게 됩니다.
하지만 클라이언트 전원이 꺼져 있다든가, 아니면 모종의 이유(DHCP 서버가 점검 중)로 갱신에 실패하게 된다면 한 번의 기회를 더 줍니다.
87.5%의 시간이 지났을 때 다시 갱신을 시도하고 성공한다면 그 시점으로부터 임대 기간이 다시 차게 됩니다.
1. DHCP Request
DHCP 서버에 갱신을 요청하는 Request 패킷을 Unicast로 보내고 DHCP 서버가 이 패킷을 받으면 2단계로 넘어갑니다.
2. DHCP ACK
DHCP 서버에서 Request를 요청한 클라이언트에게 ACK 패킷을 Unicast로 보냅니다. 이 패킷에는 갱신에 대한 정보가 담겨 있습니다.
📌 반환(Release)
임대 기간이 끝났거나, IP 주소를 더 이상 사용하지 않는다면 DHCP 서버에 IP 주소를 반환하게 되고 이것을 반환이라고 합니다.
DHCP 서버와 클라이언트 모두 임대 기간에 대한 정보를 가지고 있기 때문에 임대 기간이 끝났는데 클라이언트가 연결되지 않았더라도 해당 주소를 사용 가능하도록 주소 풀로 보냅니다.
📄 참고
'🖥 CS > 네트워크' 카테고리의 다른 글
OWASP 보안 취약점 (0) | 2022.04.16 |
---|---|
SSL/TLS, HTTPS (0) | 2022.04.16 |
NAT(Network Address Translation) (0) | 2022.04.14 |
브라우저와 작동원리 (0) | 2022.04.14 |
호스팅(Hosting) (0) | 2022.04.13 |