[문의사항]
DHCP Processor에 대하여 알고 싶습니다.
DHCP를 통해 IP를 요청하면 임의의 IP를 제공 받는 걸로 알고 있습니다.
그런데 기존에 수동 설정으로 설정되어 있던 IP가 있으면 그 IP를 부여 받더군요.
왜 그럴까요.
[문의답변]
오래전 mcpworld.com 사이트에 제가 올린 글이 있더군요.
다시 만들기 싫어서 그냥 그 때 만든 글을 올립니다. (게으름의 극치. ㅎㅎ)
아래 화면은 DHCP 서버에서 IP를 부여 받은 그림
DHCP 기본 프로세서는 아래와 같습니다.
패킷을 네트워크 모니터로 잡아 DHCP서비스만 필터링 한 그림
필터링을 하여도 많은 패킷이 있다면 보기가 힘들것입니다.
DHCP 패킷은 해당 패킷의 xid 가 일치하는 것이 같은 패킷이라고 보면 됩니다.
아래의 화면은 xid 즉 Transaction ID를 나타내는 그림
패킷을 분석하여 얻을 수 있는 여러가지가 있습니다. 그 중 클라이언트가 IP를 요청하였더니 그전에 고정 IP로 지정한 IP를 DHCP 서버에서 받게 되는 현상이 나오는 것입니다. 그렇다면 왜 그런 현상이 나올까요
DHCP는 랜덤하게 IP를 부여하는 것이 아니었던가요.
또한 브로드캐스트를 기반으로 하는 DHCP 서비스가 여러 개의 Scope를 가지고 있다면 어떻게 해당 Scope에 대한 IP를 클라이언트에게 부여 할 수 있을까요?
이러한 의문이 생길 수 있습니다. 아래 패킷을 통해 그러한 문제를 살펴 볼까 합니다.
IP를 요청하는 그림
위의 그림을 보면 클라이언트는 브로드캐스트를 통해 Discover를 보내고 있습니다. 그런데 Requested Address 라고 기존에 사용하던 IP를 요청하는 모습을 볼 수 있죠.
즉 클라이언트가 전체 브로드캐스트를 하고 있지만 서버에 요청할 때는 기존에 사용하던 IP에 대한 요청과 해당 서브넷 정보가 표현되어 있는 것을 알 수 있습니다.
DHCP 서비스는 왜 브로드캐스트만을 통해서 패킷을 전달하나요 유니캐스트를 통해서 패킷을 부여 할 수 는 없는 것인가요?
DHCP 서비스 또한 유니캐스트와 브로드캐스트 둘 다 이용하고 있습니다.
우리가 알고 있는 네트워크는 IP나 컴퓨터이름을 알고 있으면 유니캐스트를 할 수 있다고 생각하는데 문제가 있습니다.
바로 문제는 MAC 주소 이기 때문이죠.
IP를 알고 있다 하더라도 상대방의 MAC 주소를 알지 못하면 우리는 ARP_RARP 패킷을 보내어 상대방의 MAC 주소를 알아낼려고 합니다.
아래의 화면은 ARP 패킷을 모니터링 한 그림
즉 IP를 부여 받지 못한 경우에는 ARP Cache를 할 수 없으므로 결국은 브로드캐스트를 통한 요청 받게 할 수 없는 것이죠
그러나 IP를 부여 받은 클라이언트는 서버에게 일정시간 (50%) IP를 재 요청하게 됩니다. 즉 1시간의 IP를 부여 받았다면 30분 후에 IP를 부여한 서버에게 IP 갱신을 요청함으로써 원래의 IP를 계속 사용 할 수 있게 되는 것이죠.
이때 클라이언트는 DHCP 서버에게 IP Request 패킷을 보내게 되는데 이때에는 유니캐스트를 통해서 IP를 요청하게 됩니다.
IP 임대 갱신기간을 확인 할 수 있는 그림
유니캐스트를 통해 IP를 요청하는 그림
댓글