하마롱크의 블로그
DHCP 본문
1. DHCP(Dynamic Host Protocol)
1.1. 호스트가 네트워크와 통신하려면 물리적인 네트워크 구성은 물론 IP 주소, 서브넷 마스크, 게이트웨이와 같은 네트워크 정보와 DNS 주소 설정이 필요하다.
1.2. 네트워크 정보를 호스트에 적용하려면 사용자가 IP 정보를 직접 설정하거나 IP 정보를 할당해주는 서버를 이용해 자동으로 설정해야 한다.
1.3. 수동으로 IP와 네트워크 정보를 직접 설정하는 것을 ‘정적 할당’이라고 하고 자동으로 설정하는 것을 ‘동적 할당’이라고 한다.
1.4. 운영 망에서 사용되는 IP는 주로 정적 할당을 사용하지만, PC 사용자를 위해 운영되는 네트워크에서는 IP를 자동으로 할당받는 동적 할당 방식을 많이 사용
1.5. IP를 별도로 설정하지 않아도 네트워크에 쉽게 접속되므로 특별한 경우를 제외하고는 동적 할당 방식을 기본으로 사용(공유기도 동적 할당 방식을 기본을 사용)
1.6. DHCP를 사용하면 IP 주소, 서브넷 마스크, 게이트웨이, DNS 정보를 자동으로 할당받아 사용할 수 있다.
1.7. 별도의 IP 설정 작업 없이 사용자와 관리자 모두 편리하게 네트워크에 접속할 수 있고, 사용하지 않는 IP 정보는 회수되어 사용하는 경우에만 재할당되어 사용자 이동이 많고 한정된 IP 주소를 가진 경우 유용하게 사용 가능
1.8. IP가 자동으로 관리되므로 사용자가 직접 입력하면서 발생할 수 있는 설정 정보 오류나 중복 IP 할당과 같은 문제 예방 가능
2. DHCP 프로토콜
2.1. DHCP는 BOOTP(Bootstrap Protocol)라는 프로토콜을 기반으로 한다.
2.2. DHCP는 BOOTP와 유사하가 동작하지만 BOOTP에서 지원되지 않는 몇 가지 기능이 추가된 확정 프로토콜이다.
2.3. DHCP와 BOOTP프로토콜 사이에는 호환성이 있어 사용하는 포트가 같고, BOOTP 클라이언트가 DHCP 서버를 사용하거나 반대의 경우에도 정보를 수신할 수 있다.
2.4. DHCP는 서버와 클라이언트로 동작하며, 클라이언트의 서비스 포트는 68(bootpc), 서버의 서비스 포트는 67(bootpc)이다.
3. DHCP 동작 방식
3.1. DHCP Discover
- DHCP 클라이언트는 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트로 전송
- DHCP 클라이언트의 IP가 아직 없으므로 출발지는 Zero IP(0.0.0.0), 목적지는 브로드캐스트 주소(255.255.255.255)로 설정
- 출발지는 UDP 68(bootpc), 목적지는 UDP 67(bootpc)을 사용
- IP를 할당받는 과정이므로 패킷을 정상적으로 주고받을 수 없어 UDP 사용
3.2. DHCP Offer
- DHCP 서버는 클라이언트에 할당할 수 있는 IP 리스트인 IP Pool 중에서 할당할 IP를 선택(별도의 설정이 없으면 IP Pool에서 임의로 할당)
- 특정 클라이언트의 MAC 주소와 IP 주소를 사전에 정의해두면 설정된 IP를 할당하므로 DHCP를 사용하면서도 고정된 IP 할당 가능
- DHCP Discover를 수신한 DHCP 서버는 클라이언트에 할당할 IP 주소와 서브넷, 게이트웨이, DNS 정보, 임대 시간 등의 정보을 포함한 DHCP 메시지를 클라이언트로 전송
3.3. DHCP Request
DHCP 서버로부터 제안받은 IP 주소(Requested IP)와 DHCP 서버 정보(DHCP Server Identifier)를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송
3.4. DHCP Acknowledgement
DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어ᄄᅠᆫ 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상적으로 수신했다는 응답을 전송